Модель с несколькими входами (текстовая и числовая) для регрессии, дающая одинаковый вывод - PullRequest
1 голос
/ 01 октября 2019

У меня проблема с прогнозированием количества кликов на основе даты, цены за клик (CPC (цена за клик), рынка (США или Великобритания) и ключевых слов (средняя длина 3-4 слова, макс. 6). Итак, функции, которые я решил ввести в модель, были:

Day(1-31)  WeekDay(0-6)  Month(1-12)   US-Market(0 or 1)  UK-Market(0 or 1)   CPC(continuous numeric)

И на выходе получилось непрерывное числовое число кликов.

Для ключевых слов я использовал токенайзер keras для преобразования в последовательности идополнить эти последовательности. Я использовал вложение слова в перчатку, создал матрицу встраивания и подал ее в сетевую модель Nueral, как описано здесь в разделе встраивания перчаток с подготовкой.

Я использовал следующую модель:

enter image description here

Последний плотный слой имеет линейную активацию. Модель имеет два входа (nlp_input для текстовых данных) и meta_input для (числовых, категориальных данных). Обе модели объединяются после двунаправленного LSTM к nlp_input. Потери:

model.compile(loss="mean_absolute_percentage_error", optimizer=opt,metrics=['acc'])

, где opt = Adam(lr=1e-3, decay=1e-3 / 200)

Я обучил модель для 100 эпох, и потеря была близка к 8000 при этомточка. Но когда я применяю прогноз к тесту, они приводят к одному и тому же числу для всех входов теста, и это число даже отрицательно -4.5 * e^-5. Может ли кто-нибудь подсказать мне, как мне следует подойти к этой проблеме и какие улучшения я могу сделать для этой модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...