Рекомендовані фільми з додатковими функціями за допомогою спільної фільтрації


17

Я намагаюся побудувати систему рекомендацій за допомогою спільної фільтрації. У мене є звичайна [user, movie, rating]інформація. Я хотів би включити додаткову функцію, наприклад "мова" або "тривалість фільму". Я не впевнений, які методики я міг би використати для такої проблеми.

Пропонуйте, будь ласка, посилання або пакети в python / R.

Відповіді:


17

Ось деякі ресурси, які можуть бути корисними:

  • Recommenderlab - рамкове та відкрите програмне забезпечення для розробки та тестування рекомендаційних алгоритмів: http://lyle.smu.edu/IDA/recommenderlab . Відповідний Rпакет recommenderlab: http://cran.r-project.org/package=recommenderlab .

  • Наступне повідомлення в блозі ілюструє використання recommenderlabпакету (який IMHO можна узагальнити для будь-якого механізму рекомендацій з відкритим кодом) для створення програми рекомендацій щодо фільму на основі спільної фільтрації : http://scn.sap.com/community/developer-center/hana / blog / 2013/11/06 / movie-рекомендація-by-leveraging-r .

  • Дослідження систем рекомендування - приємна веб-сторінка з ресурсами на цю тему, яку підтримує головний розробник рекомендації Майкл Газслер: http://michael.hahsler.net/research/recommender .

  • Mortar рекомендаційний двигун - налаштований механізм рекомендацій з відкритим кодом для Hadoopта Pig, написаний Pythonта Java: https://github.com/mortardata/mortar-recsys . Компанія, яка спонсорує розробку цього проекту, Mortar Data , пропонує загальну комерційну хмарну платформу для розробки та розміщення програмного забезпечення для науково-Mortar Recommendation Engine технічних даних , включаючи проекти, засновані на (розробка та розміщення громадських проектів безкоштовні): http: //www.mortardata. ком . Mortar Data надає допомогу у формі публічного форуму з питань відповідей ( https://answers.mortardata.com ), а також вичерпного підручникащодо побудови рекомендаційних механізмів з використанням відкритих технологій ( http://help.mortardata.com/data_apps/recommendation_engine ).

  • «Вступ до систем рекомендування» - відповідний курс Coursera (MOOC), зміст та опис якого надають додаткові ресурси по темі: https://www.coursera.org/course/recsys .

  • PredictionIO - серверне програмне забезпечення для машинного навчання з відкритим кодом, яке дозволяє будувати програми для наукових даних , включаючи системи рекомендацій : http://prediction.io (вихідний код доступний на GitHub: https://github.com/PredictionIO ). PredictionIOвключає вбудований механізм рекомендацій ( http://docs.prediction.io/current/engines/itemrec/index.html ) і підтримує широкий спектр мов програмування та фреймворків через RESTfulAPI, а також SDK / плагіни. PredictionIO підтримує Amazon Machine Imageна AWS Marketplace для розгортання програм у інфраструктурі AWS: https://aws.amazon.com/marketplace/pp/B00ECGJYGE.

  • Додаткові проекти програмного забезпечення з відкритим кодом , що відповідають темі (відкриті через MLOSSвеб-сайт на машинному навчанні з відкритим кодом: http://www.mloss.org ):

  • Ці цікаві R публікації в блозі також цікаві:


4

Замість спільної фільтрації я б застосував підхід до матричної факторизації, в якому користувачі та фільми подібно представлені векторами прихованих функцій, крапкові продукти яких дають рейтинг. Зазвичай один просто вибирає ранг (кількість особливостей), не зважаючи на те, що представляють функції, а алгоритм робить все інше. Як і PCA, результат не відразу зрозумілий, але він дає хороші результати. Що ви хочете зробити, це розширити матрицю фільму, щоб включити додаткові згадані вами функції та переконайтесь, що вони залишаються фіксованими, оскільки алгоритм оцінює дві матриці за допомогою регуляризації. Відповідні записи в матриці користувача будуть ініціалізовані випадковим чином, після чого оцінюються алгоритмом матричної факторизації. Це універсальний та ефективний підхід, але він потребує певного розуміння машинного навчання,

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


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