Как стать автором
Обновить

Комментарии 16

А как рекомендовать по просмотренному контенту? например, рекомендации в ютубе?
Смотреть не на связь пользователей, а на связь контента, используя ту же метрику, о которой говорилось в статье.
Аналогично, в БД разницы нет, что добавление в избранное, что автоматическое добавление в список просмотренных. Разве что психологическое различие — действие производится больше автоматически. Но YouTube, как и другие большие проекты, скорее всего использует гибридный метод.
Надо усложнить, сделать профиль хабраюзера на внешнем сайте, связать его с реальным профилем и прикрутить 10 бальные оценки.
Тогда можно будет делать более точные рекомендации.
Опробовал систему рекомендаций на себе — ни одна из рекомендованных статей не заинтересовала.
То ли что-то глючит, то ли рекомендации по этому алгоритму не работают.
Скорее всего я слишком упростил алгоритм, пытаясь сделать его доступным для самой широкой аудитории.

У меня есть догадка, где основная проблема с этой версией алгоритма. Попробую вечером пофиксить эту проблему, и можно будет посмотреть результат.
Да, у меня тоже все рекомендации абсолютно мимо. Если получится пофиксить — расскажите, в чём дело было.
Попробовал пофиксить. Как сейчас результаты?
Да, так уже намного лучше. Что изменили?
Сделал поиск локальным, N-top user-based filtering. Т.е. сначала определяем neighbourhood пользователя, например 15 самых схожих. Потом делаем всё тоже самое только для этого локального подпространства.

Если сделать поиск глобальным, то самая примитивная регуляризация т.е. деление на np приводит к отвратительным результатам.

Упрощенно говоря, у нас есть один пользователь похожий на нас на 0.5 и он рекомендует статью Неведомая хрень и еще десять пользователей рекомендующих статью Хабр всё еще торт, в том числе два пользователя похожих на нас аж на 0.9 (супер высокий показатель), и еще 8 похожих на нас на 0.01.

Тогда для первой статьи Неведомая хрень: 0.5 / 1 ==> ранг 0.5
Для второй Хабр всё еще торт: ( 0.9 + 0.9 + 0.01*8 )/10 ==> ранг 0.19

Т.е. получается, что «далёкие» пользователи создают шум при регуляризации оценки.
Тоже попробовал на себе, ни одна статья не по теме моих интересов. Хотя в избранном немало статей.
А так идея очень хорошая.
И можно применить ее было бы на своих проектах. Скажем как вариант вытащить данные с поиска или контекстных сетей и показывать рекомендуемые материалы на основе этих данных.
Попробуйте сейчас еще раз.
Уже лучше! Из 20 рекомендаций подошли 6.
Мне тоже рекомендованные статьи не показались интересными. Может это потому, что я не особо добавляю в избранное.
Не, я попытался сильно упростить алгоритм и в итоге получилась лажа. Сейчас внёс небольшие изменения в код; можете посмотреть осмысленность текущей выдачи?
Да, стало гораздо релевантнее. Правда, для меня выдало одну мою статью — 207282
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации