2011/10/28 _data mining_lecture 7

24
Системы рекомендаций Катышев Алексей Школа анализа данных

Upload: cs-center

Post on 28-Nov-2014

928 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 2011/10/28 _Data mining_Lecture 7

Системы рекомендаций

Катышев АлексейШкола анализа данных

Page 2: 2011/10/28 _Data mining_Lecture 7

Каков план?

• Рекомендательные системы– Что это?– Зачем это?

• Основные проблемы и методы их решения

• Типы рекомендательных систем– Плюсы и минусы каждого

• Оценка качества системы

28.10.2011 2Системы рекомендаций

Page 3: 2011/10/28 _Data mining_Lecture 7

Пример

• Клиент A– Купил конфеты

– Нравится шоколад

28.10.2011 Системы рекомендаций 3

• Клиент B– Купил шоколад– Рекомендуем

конфеты

Page 4: 2011/10/28 _Data mining_Lecture 7

Механизм

• Пользователь может– Искать объекты (новости, музыка, видео, …)

– Покупать, скачивать, слушать, смотреть, …

– Оценивать (0-5, 1-10, «Мне нравится ♥»)

• Система– Предлагает список рекомендованных объектов

28.10.2011 4Системы рекомендаций

Page 5: 2011/10/28 _Data mining_Lecture 7

Длинный хвост (Long tail)

28.10.2011 Системы рекомендаций 5

• О большинстве товаров пользователь даже не знает

• С появление on-line рекомендации эффект длинного хвоста в некоторых областях значительно снизился

Page 6: 2011/10/28 _Data mining_Lecture 7

Виды рекомендаций

• Общие для всех клиентов (physical)– Выбор эксперта/директора– Популярное, Топ10, Топ50, ...– Новое– «Смотрели только что» и т. п.

• Уникальным пользователям – уникальные рекомендации (on-line)– Рассмотрим далее

28.10.2011 Системы рекомендаций 6

Page 7: 2011/10/28 _Data mining_Lecture 7

Модель

• Множество клиентов – C (customer, client)• Множество объектов – I (item)• Множество возможных рейтингов – R (rating)

– [0, 1]– 0-5 (обычно звёзды)– 0-1 (мне нравится)

• Функция пользы u (utility) : C × I → R – насколько данный объект полезен данному

клиенту.

28.10.2011 Системы рекомендаций 7

Page 8: 2011/10/28 _Data mining_Lecture 7

Матрица пользы

12 Chairs Operation “Y”

Lock, Stock

and Two …

Snatch

User A 9 4 5

User B 9 9

User C 10 9

User D 10 9

28.10.2011 Системы рекомендаций 8

Page 9: 2011/10/28 _Data mining_Lecture 7

Проблемы

• Заполнение матрицы данными– Оценки от пользователей– Оценка действий пользователя

• На основании заполненных ячеек попытаться предугадать (высокие) значения в незаполненных ячейках (экстраполяция)

• Измерить качество экстраполяции

28.10.2011 Системы рекомендаций 9

Page 10: 2011/10/28 _Data mining_Lecture 7

Заполнение матрицы

• Оценки от пользователей– В действительности работает не очень хорошо

– Приходится мотивировать пользователей или

– Упрощать рейтинговую систему

• Оценка действий пользователя– Покупка – однозначно высокий рейтинг

– В остальном довольно сложно выявлять точные рейтинги

28.10.2011 Системы рекомендаций 10

Page 11: 2011/10/28 _Data mining_Lecture 7

Вычисление пользы

• Проблемы:– Холодный старт в целом и для новых

объектов– Матрица всё время очень разреженна

• Обычно метод вычисления пользы и определяет тип рекомендательной системы

28.10.2011 Системы рекомендаций 11

Page 12: 2011/10/28 _Data mining_Lecture 7

Основные типы систем

• Content-based– Основывается на свойствах предлагаемых

объектов

– Похожесть объектов ≈ похожесть отдельных свойств

• Collaborative-Filtering– Рассматривает отношения пользователь-объект

– Похожесть объектов ≈ насколько похожий рейтинг им дали одни и те же пользователи

28.10.2011 Системы рекомендаций 12

Page 13: 2011/10/28 _Data mining_Lecture 7

Content-based, профиль объекта

• Профиль объекта – набор свойств• Фильмы – главные актёры, режиссер,

год, жанр, сценарист, … • Новости, статьи, книги – набор важных

или ключевых слов– Здесь часто применяется TF.IDF

• Картинки – набор тегов

28.10.2011 Системы рекомендаций 13

Page 14: 2011/10/28 _Data mining_Lecture 7

Похожесть объектов

• Похожесть ≈ 0.8328.10.2011 Системы рекомендаций 14

Рейтинг

Звёзда 1

Звезда 2

Звёзда 3

Режиссёр 1

Режиссёр 2

2.5 1 1 0 0 1

4 0 1 1 1 0

• На самом деле профиль объекта - бесконечный вектор из числовых значений (конечное количество которых ≠ 0)

• Как вариант - косинусное расстояние

Page 15: 2011/10/28 _Data mining_Lecture 7

Профиль пользователя

• Как же вычислять полезность для определенного пользователя

• Ответ – профиль пользователя– Это некое среднее профилей тех объектов,

которые оценил пользователь– Может быть взвешенное среднее– Но чаще из весов вычитают средний

рейтинг

• Полезность – u(c, i) = cos(c, i)

28.10.2011 Системы рекомендаций 15

Page 16: 2011/10/28 _Data mining_Lecture 7

Content-based, выводы

Плюсы• Нет проблем с

холодным стартом всей системы

• Рекомендует новые и непопулярные объекты

• Каждому пользователю – свои рекомендации

• Может явно показать причину рекомендации

Минусы• Холодный старт для

новых пользователей• Выявление свойств

трудоёмко• Интересы

пользователей усредняются

• Не используются рейтинги других пользователей

28.10.2011 Системы рекомендаций 16

Page 17: 2011/10/28 _Data mining_Lecture 7

Collaborative-Filtering, user-user

• Для пользователя c– Имеется некоторое количество его оценок

– Хочется заполнить строчку матрицы пользы

• Находим множество пользователей D, похожих на c по выставленным оценкам

• Тогда оценки пользователя c по неоценённым объектам ≈ средняя оценка пользователей из D по этим объектам

28.10.2011 Системы рекомендаций 17

Page 18: 2011/10/28 _Data mining_Lecture 7

Похожесть пользователей

• rc – вектор рейтингов пользователя c

• Косинусное расстояние– sim(x, y) = cos(rx, ry)

• Можно нормализовать рейтинги– Вычесть из всех рейтингов средний

рейтинг

• Есть разные варианты вычисления

28.10.2011 Системы рекомендаций 18

Page 19: 2011/10/28 _Data mining_Lecture 7

Collaborative-Filtering, item-item

• Для объекта i аналогично ищутся похожие объекты– Заполняем матрицу пользы по вертикали

• Аналогичные метрики

• На практике доказано, что такой подход работает лучше

28.10.2011 Системы рекомендаций 19

Page 20: 2011/10/28 _Data mining_Lecture 7

Пример

28.10.2011 Системы рекомендаций 20

Что порекомендуем по “12 Chairs”?cos(12 Chairs, Operation Y) ≈ 0.5cos(12 Chairs, LockStock) ≈ 0.2cos(12 Chairs, Snatch) ≈ 0.3

Page 21: 2011/10/28 _Data mining_Lecture 7

Collaborative-Filtering, выводы

Плюсы• Не нужно выявлять

свойства объектов• Объекты могут быть

любые

Минусы• Холодный старт по всем

фронтам• Интересы

пользователей усредняются

28.10.2011 Системы рекомендаций 21

Вывод: Гибридные системы!

Page 22: 2011/10/28 _Data mining_Lecture 7

Оценка качества

3 5 8 6

4 3 7 4

4 6 7 9 2

3 5 5

8 2

6 3 4 8

28.10.2011 Системы рекомендаций 22

Page 23: 2011/10/28 _Data mining_Lecture 7

Оценка качества

28.10.2011 Системы рекомендаций 23

3 5 8 6

4 3 7 4

4 6 7 9 2

3 5 ? ? ? ?

8 ? ? ? ?

6 3 ? ? ? ?

Page 24: 2011/10/28 _Data mining_Lecture 7

Оценка качества

• Берётся таблица с реальными данными• Часть таблицы вырезается как тестовое

множество• Система пытается предугадать рейтинги в

вырезанной части таблицы• Вычисляется отклонение от реальных

данных– Обычно это среднеквадратичное отклонение

(RMSE)– Обычно вычисляется на топ10% рейтингов– Можно также считать разные дополнительные

характеристики

28.10.2011 Системы рекомендаций 24