Онлайн обучение с Tensorflow - PullRequest
       5

Онлайн обучение с Tensorflow

0 голосов
/ 03 сентября 2018

Моя проблема связана со сборкой системы рекомендаций. Я использую тензорный поток для обучения модели с user_features, item_features и взаимодействиями.

Как я могу обработать новые данные?

Например, всякий раз, когда пользователь нажимает на элемент, я хочу немедленно записать это взаимодействие и извлечь уроки из этого взаимодействия (обучая модель именно этому взаимодействию). Как я могу это сделать?

Текущая реализация

Прямо сейчас я следую традиционному методу обучения модели, а затем делаю прогнозы из этого. Чтобы справиться с новыми взаимодействиями, мне нужно заново инициализировать график и переобучить все данные, чтобы он работал.

Я надеюсь, что есть какое-то решение для этого.

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Из того, что вы описываете:

Например, всякий раз, когда пользователь нажимает на элемент, я хочу немедленно записать это взаимодействие и извлечь уроки из этого взаимодействия (обучая модель именно этому взаимодействию). Как я могу это сделать?

То, что вы, возможно, захотите сделать, это какое-то подкрепление обучения, на верх вашей предварительно обученной модели.

Следующая вещь, на которую стоит обратить внимание, - это пакет OpenAI gym.

Учебное пособие о том, как системы рекомендаций могут быть объединены с обучением с подкреплением, дано здесь в первой лекции (бесплатно для аудита).

0 голосов
/ 03 сентября 2018

Вам не нужно повторно инициализировать график. Tensorflow явно не знает, проводите ли вы этап обучения или тестирования, когда запрашиваете выходной тензор. Скорее, обратное распространение происходит всякий раз, когда вы оцениваете работу оптимизатора (например, tf.train.AdamOptimizer, tf.train.GradientDescentOptimizer и т. Д.).

Обычно вы не делаете этого во время тестирования, так как вы пытаетесь предсказать, насколько хорошо он работает с невидимыми данными. Но если вы хотите добавить эти данные в обучающий набор после первоначального прогнозирования, вы можете сделать это, если у вас есть способ получить истинное значение, чтобы он мог вычислить тензор ошибок.

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

...