Динамические рекомендательные системы

14

Система Рекомендатора будет измерять корреляцию между рейтингами разных пользователей и давать рекомендации для данного пользователя относительно пунктов, которые могут быть ему интересны.

Однако вкусы меняются со временем, поэтому старые рейтинги могут не отражать текущие предпочтения и наоборот. Возможно, вы когда-то поместили «отлично» в книгу, которую вы сейчас оценили бы как «не слишком отвратительно» и так далее. Более того, сами интересы также меняются.

Как рекомендующие системы должны работать в изменяющейся среде?

  1. Один из вариантов - отключить «старые» рейтинги, что может сработать, если вы правильно определите «старые» (можно даже сказать, что рейтинги никогда не истекают и делать вид, что проблема не существует). Но это не самый лучший вариант: конечно, вкусы развиваются, это нормальный жизненный поток, и нет никаких причин, по которым мы не можем использовать дополнительные знания, чтобы однажды исправить прошлые рейтинги.
  2. Другой вариант - как-то приспособить эти дополнительные знания. Таким образом, мы не могли просто найти «мгновенное соответствие» вашим текущим интересам, но предложить вам то, что вам может понравиться дальше (в отличие от того, что вам может понравиться сейчас ).

Я не уверен, объясняю ли я это достаточно хорошо. По сути, я поддерживаю второй подход и говорю о Системе Рекомендора, которая будет измерять корреляции вкусовых траекторий и давать рекомендации, которые будут удовлетворять ... ну, давайте назовем это личным ростом - потому что они будут исходить от людей, чьи «Траектория вкуса» (а не просто «снимок вкуса») похожа на вашу.

Теперь вопрос: мне интересно, существует ли что-то похожее на «вариант 2», и если да, то мне интересно, как это работает. И если его не существует, вы можете обсудить, как это должно работать! :)

andreister
источник

Ответы:

8

Я очень рекомендую статью Коллаборативной фильтрации с временной динамикой Иегуды Корена (Netflix Contest!), Где этот вопрос подробно обсуждается.

Я согласен с автором, что первый вариант («отключение») - не тот путь. Это правда, что устаревшие предпочтения игнорируются таким образом, но а) некоторые предпочтения никогда не меняются, поэтому каждый убивает данные, чтобы идентифицировать вечнозеленые растения, и б) некоторые предпочтения в прошлом требуются, чтобы понять предпочтения будущего ( например, купите сезон 1 -> вы, вероятно, купите сезон 2).

Тем не менее, Корен не пытается явно идентифицировать такие траектории (то есть, чтобы можно было предсказать будущие изменения поведения пользователя), так как это очень и очень сложная задача. Вы можете представить это, имея в виду, что предпочтительные «станции» вдоль траектории связаны НЕ со временем, а с личным развитием пользователя, которое может быть прервано или пересечено другими траекториями или выражено просто по-другому. Например, если вы переходите от жестких боевиков к боевикам, нет такой вещи, как определенный «вступительный мягкий боевик» или что-то в этом роде. Пользователь может войти в эту область в любой момент (во времени и пространстве элемента). Эта проблема в сочетании с редкостью данных делает практически невозможным создание реальной модели здесь.

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

Дополнительная заметка о явном моделировании траекторий

Область Sequence Mining предоставляет методы для выполнения, но критическая точка состоит в том, чтобы найти подходящее абстрактное представление элементов (поскольку использование самих элементов не будет работать из-за разреженности), например, кластеризация в теги. Тем не менее, хотя этот подход может дать некоторое представление о поведении некоторых пользователей (Data Mining!), Он может быть неактуален, когда речь заходит о приложении для всех клиентов (то есть массовых), так что неявное моделирование, предложенное Koren, может быть лучше в конце.

Штеффен
источник
Бумага Yehuda очень близка к тому, о чем я говорил, хотя на самом деле он не говорит о «траекториях вкуса». Возможно, вы правы, и «скорость изменения вкуса» не установлена ​​для любого человека .. Спасибо за ссылку!
andreister
Да, это первое, о чем я подумал.
Stumpy Джо Пит
2

Я не знаю о работающей системе, но не удивлюсь, если у Amazon, NetFlix или у кого-то есть такая система. Даже поисковая система Google может иметь подобный тип системы.

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

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

Поэтому я склоняюсь к чуть более сложной системе. Данные должны быть разделены на два набора; текущие данные - пороговое значение должно будет варьироваться в зависимости от приложения плюс продолжительность взаимодействий индивидуума - которые будут взвешиваться более тяжело, и «исторические» данные, которые будут оцениваться ниже при медленном снижении значений во времени. Во-вторых, будет включен фактор, чтобы попытаться обнаружить «отключение» в случае внезапного исчезновения значительного интереса или участия. «Текущие» данные, которые классифицируются аналогичным образом, будут реклассифицированы, как если бы они были историческими.

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


источник
Ваша идея о более низких весах для старых данных на самом деле похожа на «вариант 1». Вместо этого я говорю, что важна вся траектория изменяющегося вкуса - то есть, если вчера вам понравился жанр А, а сегодня вам понравился жанр Б, система смотрела бы на других людей с тем же «AB- ??». вкус меняется, и можно предположить, что завтра вы хотели бы жанр C.
andreister
1

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

vonPetrushev
источник