вівторок, 10 грудня 2013 р.

Рекомендаційні системи. Огляд

Закінчився 14-тижневий курс Introduction to Recommender Systems на Coursera, про який я вже писала. Короткий огляд основних питань, а також допоміжних ресурсів можна переглянути в презентації http://rpubs.com/energyfirefox/RS

Ще коротший огляд українською:



Рекомендаційні системи можуть використовуватись для рекомендацій практично будь-яких сутностей:
новини, фільми, книги, статті, готелі, веб-сторінки, музика, готелі, ресторани.Можна рекомендувати нові (фільми, книги, готелі) або раніше оцінені (музика, продукти харчування).
При створенні рекомендацій може враховуватись думка всіх користувачів, експертів, близьких за інтересами користувачів.
Рекомендації можуть бути однакові для всіх користувачів, поділені по групах (вік, стать, проживання, тощо) та персоналізовані.
Оцінка користувачем продукту може бути пряма (рейтинг, відгук, лайк) чи непряма (купив, переглянув, клікнув).

Основні алгоритми:


  • Неперсоналізована система: загальна статистика (найкраще продається, найбільш бажане, популярне, разом з Х купують Y)
  • Фільтрація по контенту (Content Based Filtering): користувачі та продукти представляються вектором фіч (розмірність простору = кількості всіх фіч). Обчислюємо кут між векторами - чим менший кут - тим краще продукт підходить користувачу.
  • Колаборативна фільтрація (Collaborative filtration).
    • Модель "користувач - користувач" (User-User). Обчислюємо подібність між користувачами використовючи коефіцієнт кореляції. Для рекомендацій конкретному користувачу вибираємо його "найближчих сусідів" (достатньо вибрати 30-50) та використвуємо їхні оцінки (хороший підхід: зважене середнє, де  рейтинг "ближчих" сусідів має бульшу вагу).
    • Модель "продукт - продукт" (Item-Item). Подібність між продуктами змінюється не так часто, як між користувачами, тому можна порахувати подібність між продуктами і при покупці одного продукту, рекомендувати подібні на нього.
    • Зменшення розмірності (Dimensionality Reduction) . Матриця Користувач - Продукт - Рейтинг:

 
містить в собі надлишкову інформацію про смаки кожного користувача та категорії кожного продукту. Зменшення розмірності матриці рейтингів, дозволяє виявити ці смаки. Для зменшення розмірності використовують SVD або його поєданння з методом спадного градієнту FuncSVD або SVD++.

Конкретна рекомендаційна система не обов"язково використовує один алгоритм - можна застосовувати поєдання або переключення між різними, в залежності від обставин.

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

Для оцінки ефективності рекомендаційних систем і/або готових алгоритмів можна застосовувати різні набори метрик:

Інструменти для розробки рекомендаційних систем:



Немає коментарів:

Дописати коментар