Які статистичні методи є, щоб рекомендувати такий фільм, як на Netflix?


14

Я хочу реалізувати динамічну модель, щоб рекомендувати фільм користувачеві. Рекомендацію слід оновлювати щоразу, коли користувач дивиться фільм або оцінює його. Щоб зробити це просто, я думаю врахувати два фактори:

  • минулі рейтинги інших фільмів користувачем
  • час, коли користувач переглядав певні минулі фільми

Як можна створити таку модель та що рекомендує наукова література?

Я новачок у цій галузі і здогадуюсь, що лінійна модель регресії може забезпечити хороший результат, а не уявляти собі складніші методи, щоб уникнути зайвої невизначеності в оцінках параметрів. Але, можливо, вже є усталені методи, які зазвичай застосовуються на практиці?


3
Я не думаю, що це занадто широко, щоб відповідати. Наприклад, він має 2 схвалених відповіді.
gung - Відновіть Моніку

2
Спробуйте курси Mining Massive Dataset і його безкоштовну книгу!
Феліпе Джерард

2
Можливо, ви хочете знайти матричну та / або тензорну факторизацію.
Marc Claesen

1
@ usεr11852 Моя відповідь ширша, ніж питання.
shadowtalker

1
@ usεr11852, у назві запитання, "Які статистичні методи існують ...?" Останнє речення запитує, чи існують інші методи, крім регресії. Я думаю, що кілька відповідей нижче надають подібну інформацію.
gung - Відновіть Моніку

Відповіді:


14

Це насправді відносно відома проблема в галузі машинного навчання. У ~ 2006 році Netflix запропонував $ 1 млн алгоритму, який забезпечив найкраще розумне вдосконалення їх системи рекомендацій. Теорія виграшного рішення коротко обговорена в цьому підручнику Caltech про вступне машинне навчання.

В основному використовувався ансамблевий метод навчання . Зокрема, застосовували тип змішування чи укладання . Це нетривіально, але своєрідно інтуїтивно. Щоб зрозуміти інтуїцію використання гармонійно різних статистичних підходів, розгляньте різні причини, яким різні люди люблять однакові фільми: тобто Джо може подобатися Топгун, тому що він любить бойовики 80-х, а Джейн подобається Топгун, тому що їй подобаються фільми з саундтреками Кенні Логінс. Тож той факт, що обидва глядачі переглядали (і оцінили фільм високо), не обов'язково означає, що вони сподобаються іншим фільмам з високою ймовірністю. Алгоритм прогнозування в ідеалі міг би врахувати ці відмінності, принаймні в якійсь якості.

Це може зробити рішення рішення досить простим, але врівноваження конкуруючих алгоритмів та визначення пріоритетності найкращої здогадки для кожного випадку, безумовно, не просте. Той факт, що Netflix запропонував таку велику винагороду, повинен зробити масштабність виклику досить очевидною.

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


2
+1 на приз Netflix. Як ви зазначали, цей приз є хорошим показником того, наскільки масштабним є цей виклик.
Корт Аммон

11

Половина проблеми в цих проблемах - це знати, що шукати.

Можливо, ви додали тег, не усвідомлюючи його, але ви насправді шукаєте інформацію про системи рекомендацій . Ви можете почати з спільної фільтрації , а ще краще - Введення в посібник із систем рекомендацій Річі, Рокача та Шапіри, цитованого на цій сторінці.


Я дійсно заглянув глибше в тег і натрапив переважно на приклади спільної фільтрації. Проблема, яку я маю з цим методом, полягає в тому, що це залежить від введення інших користувачів, якщо я зрозумів концепцію. Я більше шукаю методи в ситуації одного користувача, ніяких інших даних або необов'язково інших даних. Подивіться на ваші інші посилання.
JohnAndrews

1
@JohnAndrews: Я думаю, що ssdecontrol дає тобі найвідповідніші поради. Вам потрібно вивчити літературу щодо рекомендацій щодо систем. Задіяно багато методик, наприклад. NNMF , Funk SVD , багато різних варіантів класифікаторів найближчих сусідів тощо, щоб назвати деякі очевидні. Зрештою, ви хочете використовувати спільну фільтрацію, але ви не можете просто "зануритися" без жодного фону.
usεr11852

@JohnAndrews CrossValidated - це погане місце для початку вивчення теми, особливо якщо ви просто шукаєте за тегом. Як щодо перегляду посилань, які я натомість нав'язав? Статті зі статистики Вікіпедії не завжди є надійними, але вони досить хороші та містять велику кількість посилань.
shadowtalker

6

Ви повинні ознайомитись з курсом Ендрю Нґ на Coursera: https://www.coursera.org/learn/machine-learning У ньому є урок з побудови систем рекомендацій, який, здається, є тим, що ви шукаєте. По суті це форма лінійної регресії, яка вивчає синтетичні атрибути для фільмів у людей, які оцінили фільми, і використовує їх для прогнозування рекомендацій для людей, які не оцінювали / не переглядали фільми.


3
Ласкаво просимо на наш сайт! Дякуємо за те, що включили деяку інформацію, яка узагальнює вміст посилання, а не просто надає "голе" посилання - ми цінуємо це.
Срібна рибка

4

У програмі Netflix Challenge (жовтень 2006 - вересень 2009 р.) Дуже великий ансамбль (107 окремих підмоделей) виграв головний приз у розмірі 1 мільйонів доларів, але доречно зазначити, що перші прості (не зібрані) алгоритми перемогли Netflix Cinematch орієнтир базувався на узагальненому (розрідженій матриці) SVD. Ця перша віха побиття Cinematch була досягнута лише через 6 днів після змагань, розпочатих командою WXYZConsulting.

SVD (сингулярне значення декомпозиції) - алгоритм розподілу матриць, де ви починаєте з 2d [user, movie]матриці з оцінкою (від 1 до 5 зірок) у кожній [u, m]позиції (*) і розбиваєте її на 3 матриці, де середня матриця є квадратною матрицею латентна взаємодія між користувачами та фільмами.

Ви можете зробити ранг квадратної матриці меншим або більшим, щоб відповідно включати більше або менше таких прихованих факторних взаємодій.

Існує кілька реалізацій безкоштовного програмного забезпечення швидкого / ефективного рідкого SVD. Наприклад, redsvd або vowpal-wabbit, тому перед тим, як написати свій, ви можете спробувати їх.

(*) Більшість цих записів нульові, оскільки більшість користувачів не оцінили більшість фільмів. тобто матриця дуже рідка.

Список літератури:


Що раніше використовував Netflix?
jona

2
Алгоритм під назвою "Cinematch", який не є загальнодоступним, але описується як "лінійна комбінація різних факторів, уточнених роками", наприклад, зважений середній рейтинг у світі (G) + середньозважений рейтинг [u] середнього користувача [u] рейтинг + середньозважений фільм [m] рейтинг, ... і т.д.
аріельф

Дякую за розроблену відповідь. Буде копатися в ньому. Що стосується лінійних комбінацій, то чи не є великою проблемою цієї надпараметризації? Це був би мій переважний підхід. Але SVD звучить багатообіцяюче.
JohnAndrews

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