Як створити систему рекомендацій, яка інтегрує як спільну фільтрацію, так і вміст?


10

Я створюю систему рекомендацій і хочу включити як рейтинги "подібних" користувачів, так і функції елементів. Вихід - прогнозований рейтинг [0-1]. Я розглядаю нейронну мережу (для початку).

Отже, вхідні дані - це поєднання особливостей елементів та рейтингів кожного користувача. Для елемента A та користувача 1 система може бути навчена комбінованим даним, A1. Це був би один приклад навчання.

Що робити, якщо користувач 1 також оцінив фільм B? Тоді чи дані B1 також можуть бути прикладом навчання? Чи є проблема з повторенням тренінгу з функціями користувача 1 таким чином?

Чи є якісь пропозиції щодо кращого способу наближення до проблеми?

Відповіді:


11

Чому ви розглядаєте нейронну мережу, перш ніж повністю зрозуміти проблему?

Стандартні методи матричної факторизації для спільної фільтрації здатні легко використовувати функції вмісту. Для прикладу того, як це можна зробити в байєсівській обстановці, дивіться папір Matchbox .


6

Три статті про інтеграцію матричної факторизації із змістовими функціями (тут, зокрема, тематична модель):

  • Діпак Агарвал і Бі-Чунг Чен. 2010. fLDA: матрична факторизація за допомогою прихованого розподілу диріхлету. У матеріалах третьої міжнародної конференції ACM з веб-пошуку та обміну даними (WSDM '10). ACM, Нью-Йорк, Нью-Йорк, США, 91-100.
  • Ханьхуай-Шань та Аріндам Банерджі. 2010. Узагальнені ймовірнісні матричні чинники для спільної фільтрації. У матеріалах Міжнародної конференції IEEE з питань обміну даними 2010 року (ICDM '10). IEEE Computer Society, Вашингтон, округ Колумбія, США, 1025-1030.
  • Чонг Ван та Девід М. Блей. 2011. Спільне моделювання тем для рекомендування наукових статей. У матеріалах 17-ї міжнародної конференції ACM SIGKDD про відкриття знань та обмін даними (KDD '11). ACM, Нью-Йорк, Нью-Йорк, США, 448-456.

Я також просунув би свій власний запис у блозі, який дещо обговорює це питання: Моделі тем відповідають моделям Lantent Factor


3

Немає потреби в нейромережевому підході, спільна фільтрація - це алгоритм сам по собі. Для вашої проблеми, зокрема, є хороший опис системи cf та recomender на:

ml-class.org

(шукайте XVI: Рекомендаційні системи). Це елегантно, просто, і якщо ви зробите це правильно (тобто використовувати векторизовану форму, швидкі мінімізатори та підготовлені градієнти), це може бути досить швидким.


Я використовував такий підхід, але він не використовує особливостей елементів. Я також хотів би включити функції.
B Сім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.