Михаил Ройзнер - Рекомендательные системы и...

118
1

description

 

Transcript of Михаил Ройзнер - Рекомендательные системы и...

Page 1: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

1

Page 2: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Рекомендательные системы ифакторизационные модели

Михаил Ройзнер

20 сентября 2014 г.

2

Page 3: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

План

Виды и области применения рекомендательных систем

Простейшие алгоритмы

Введение в линейную алгебру

Алгоритм SVD

Измерение качества рекомендаций

Направления развития

3

Page 4: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Фильмы

4

Page 5: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Фильмы

4

Page 6: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Музыка

5

Page 7: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Музыка

5

Page 8: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Товары

6

Page 9: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Товары

6

Page 10: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

И другие категории

I Заведения на картеI Новости, статьи, сайтыI Концерты, театры, выставкиI ВидеоI КнигиI ПриложенияI ИгрыI ПутешествияI Социальные связиI . . .

7

Page 11: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Виды рекомендательных систем

I Content-basedI Пользователю рекомендуются объекты, похожие на те,

которые этот пользователь уже употребил.I Похожести оцениваются по признакам содержимого

объектов.I Сильная зависимость от предметной области, полезность

рекомендаций ограничена.

I Коллаборативная фильтрация (Collaborative Filtering)I Для рекомендаций используется история оценок как

самого пользователя, так и других пользователей.I Более универсальный подход, часто дает лучший результат.I Есть свои проблемы (например, холодный старт).

I Гибридные системыI Сочетают оба подхода.

8

Page 12: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Виды рекомендательных систем

I Content-basedI Пользователю рекомендуются объекты, похожие на те,

которые этот пользователь уже употребил.I Похожести оцениваются по признакам содержимого

объектов.I Сильная зависимость от предметной области, полезность

рекомендаций ограничена.I Коллаборативная фильтрация (Collaborative Filtering)

I Для рекомендаций используется история оценок каксамого пользователя, так и других пользователей.

I Более универсальный подход, часто дает лучший результат.I Есть свои проблемы (например, холодный старт).

I Гибридные системыI Сочетают оба подхода.

8

Page 13: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Виды рекомендательных систем

I Content-basedI Пользователю рекомендуются объекты, похожие на те,

которые этот пользователь уже употребил.I Похожести оцениваются по признакам содержимого

объектов.I Сильная зависимость от предметной области, полезность

рекомендаций ограничена.I Коллаборативная фильтрация (Collaborative Filtering)

I Для рекомендаций используется история оценок каксамого пользователя, так и других пользователей.

I Более универсальный подход, часто дает лучший результат.I Есть свои проблемы (например, холодный старт).

I Гибридные системыI Сочетают оба подхода.

8

Page 14: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Netflix Prize

Рассвет рекомендательных систем — Netflix Prize1.

I 480 189 пользователей;I 17 770 фильмов;I 100 480 507 оценок 1, 2, 3, 4, 5;I задача: уменьшить RMSE (средне-квадратичное

отклонение) c 0.9514 до 0.8563 (на 10%);I 2 октября 2006 — 21 сентября 2009;

I приз $1 000 000.

1www.netflixprize.com9

Page 15: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Netflix Prize

Рассвет рекомендательных систем — Netflix Prize1.

I 480 189 пользователей;I 17 770 фильмов;I 100 480 507 оценок 1, 2, 3, 4, 5;I задача: уменьшить RMSE (средне-квадратичное

отклонение) c 0.9514 до 0.8563 (на 10%);I 2 октября 2006 — 21 сентября 2009;I приз $1 000 000.

1www.netflixprize.com9

Page 16: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

План

Виды и области применения рекомендательных систем

Простейшие алгоритмы

Введение в линейную алгебру

Алгоритм SVD

Измерение качества рекомендаций

Направления развития

10

Page 17: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Формальная постановкаИмеется:

I Пользователи (users, u ∈ U)I Объекты (items, i ∈ I)I События (events, (rui, u, i, . . .) ∈ D)

Требуется:I Предсказать предпочтение:

rui = Predict(u, i, . . .) ≈ rui

I Персональные рекомендации:

u 7→ (i1, . . . , iK) = RecommendK(u, . . .)

I Похожие объекты:

i 7→ (i1, . . . , iM ) = SimilarM (i)

11

Page 18: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Формальная постановкаИмеется:

I Пользователи (users, u ∈ U)I Объекты (items, i ∈ I)I События (events, (rui, u, i, . . .) ∈ D)

Требуется:I Предсказать предпочтение:

rui = Predict(u, i, . . .) ≈ rui

I Персональные рекомендации:

u 7→ (i1, . . . , iK) = RecommendK(u, . . .)

I Похожие объекты:

i 7→ (i1, . . . , iM ) = SimilarM (i)

11

Page 19: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Формальная постановкаИмеется:

I Пользователи (users, u ∈ U)I Объекты (items, i ∈ I)I События (events, (rui, u, i, . . .) ∈ D)

Требуется:I Предсказать предпочтение:

rui = Predict(u, i, . . .) ≈ rui

I Персональные рекомендации:

u 7→ (i1, . . . , iK) = RecommendK(u, . . .)

I Похожие объекты:

i 7→ (i1, . . . , iM ) = SimilarM (i)

11

Page 20: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Формальная постановкаИмеется:

I Пользователи (users, u ∈ U)I Объекты (items, i ∈ I)I События (events, (rui, u, i, . . .) ∈ D)

Требуется:I Предсказать предпочтение:

rui = Predict(u, i, . . .) ≈ rui

I Персональные рекомендации:

u 7→ (i1, . . . , iK) = RecommendK(u, . . .)

I Похожие объекты:

i 7→ (i1, . . . , iM ) = SimilarM (i)

11

Page 21: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Таблица оценок

Item 1 Item 2 Item 3 Item 4 Item 5 Item 6User 1 5 4 5User 2 4 5User 3 3 5 4User 4 3 4User 5 4 2 4User 6 3 5

12

Page 22: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Таблица оценок

Item 1 Item 2 Item 3 Item 4 Item 5 Item 6User 1 5 4 5User 2 4 ? 5User 3 3 5 ? 4User 4 ? 3 4User 5 ? 4 2 4 ?User 6 3 5

12

Page 23: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их

истории оценок sim(u, v).

I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:

u 7→ F (u)

I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:

rui =1

|F (u)|∑

v∈F (u)

rvi

Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то

предсказание сделать не получится.

13

Page 24: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их

истории оценок sim(u, v).

I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:

u 7→ F (u)

I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:

rui =1

|F (u)|∑

v∈F (u)

rvi

Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то

предсказание сделать не получится.

13

Page 25: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их

истории оценок sim(u, v).

I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:

u 7→ F (u)

I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:

rui =1

|F (u)|∑

v∈F (u)

rvi

Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то

предсказание сделать не получится.

13

Page 26: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их

истории оценок sim(u, v).

I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:

u 7→ F (u)

I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:

rui =1

|F (u)|∑

v∈F (u)

rvi

Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то

предсказание сделать не получится.13

Page 27: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

User-based

rui = ru +

∑v∈Ui

sim(u, v)(rvi − rv)∑v∈Ui

sim(u, v)

Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Холодный старт — новые объекты никому не

рекомендуются.

14

Page 28: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

User-based

rui = ru +

∑v∈Ui

sim(u, v)(rvi − rv)∑v∈Ui

sim(u, v)

Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Холодный старт — новые объекты никому не

рекомендуются.

14

Page 29: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Item-based

rui = ri +

∑j∈Iu sim(i, j)(ruj − rj)∑

j∈Iu sim(i, j)

Проблемы:I Холодный старт — новые объекты никому не

рекомендуются.I Рекомендации часто тривиальны.

15

Page 30: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Item-based

rui = ri +

∑j∈Iu sim(i, j)(ruj − rj)∑

j∈Iu sim(i, j)

Проблемы:I Холодный старт — новые объекты никому не

рекомендуются.I Рекомендации часто тривиальны.

15

Page 31: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Общие проблемы

I Холодный стартI Плохие предсказания для новых/нетипичных

пользователей/объектовI Тривиальность рекомендацийI Ресурсоемкость вычислений

16

Page 32: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

План

Виды и области применения рекомендательных систем

Простейшие алгоритмы

Введение в линейную алгебру

Алгоритм SVD

Измерение качества рекомендаций

Направления развития

17

Page 33: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебру

I Вектор:

x =

x1

x2...xn

I Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 34: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебру

I Вектор:

x =

x1

x2...xn

I Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 35: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Вектор:

x =

x1

x2...xn

Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 36: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебру

I Вектор:(x1, x2, . . . , xn)

x =

x1

x2...xn

I Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 37: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебру

I Вектор:

x =

x1

x2...xn

I Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 38: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебру

I Вектор:

x =

x1

x2...xn

I Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 39: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Вектор:

x =

x1

x2...xn

I Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 40: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебру

I Вектор:

x =

x1

x2...xn

I Матрица:

An×m

=

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

18

Page 41: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Сложение:

A + B =

a11 + b11 . . . an1 + bn1...

. . ....

a1m + b1m . . . anm + bnm

I Транспонирование:

A =

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

, AT =

a11 a21 . . . an1

a12 a22 . . . an2...

.... . .

...a1m a2m . . . anm

I Единичная матрица:

In =

1 0 . . . 00 1 . . . 0...

.... . .

...0 0 . . . 1

19

Page 42: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Сложение:

A + B =

a11 + b11 . . . an1 + bn1...

. . ....

a1m + b1m . . . anm + bnm

I Транспонирование:

A =

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

, AT =

a11 a21 . . . an1

a12 a22 . . . an2...

.... . .

...a1m a2m . . . anm

I Единичная матрица:

In =

1 0 . . . 00 1 . . . 0...

.... . .

...0 0 . . . 1

19

Page 43: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Сложение:

A + B =

a11 + b11 . . . an1 + bn1...

. . ....

a1m + b1m . . . anm + bnm

I Транспонирование:

A =

a11 a12 . . . a1m

a21 a22 . . . a2m...

.... . .

...an1 an2 . . . anm

, AT =

a11 a21 . . . an1

a12 a22 . . . an2...

.... . .

...a1m a2m . . . anm

I Единичная матрица:

In =

1 0 . . . 00 1 . . . 0...

.... . .

...0 0 . . . 1

19

Page 44: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Умножение:

An×k× Bk×m

= Cn×m

, cij =

k∑l=1

ailblj

An×m× Im = In × A

n×m= A

n×m

I Длина (норма) вектора:

‖x‖ =

(n∑i=1

x2i

)1/2

I Скалярное произведение:

〈x, y〉 =

n∑i=1

xiyi = xTy

20

Page 45: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Умножение:

An×k× Bk×m

= Cn×m

, cij =

k∑l=1

ailblj

An×m× Im = In × A

n×m= A

n×m

I Длина (норма) вектора:

‖x‖ =

(n∑i=1

x2i

)1/2

I Скалярное произведение:

〈x, y〉 =

n∑i=1

xiyi = xTy

20

Page 46: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Умножение:

An×k× Bk×m

= Cn×m

, cij =

k∑l=1

ailblj

An×m× Im = In × A

n×m= A

n×m

I Длина (норма) вектора:

‖x‖ =

(n∑i=1

x2i

)1/2

I Скалярное произведение:

〈x, y〉 =

n∑i=1

xiyi = xTy

20

Page 47: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Умножение:

An×k× Bk×m

= Cn×m

, cij =

k∑l=1

ailblj

An×m× Im = In × A

n×m= A

n×m

I Длина (норма) вектора:

‖x‖ =

(n∑i=1

x2i

)1/2

I Скалярное произведение:

〈x, y〉 = ‖x‖‖y‖ cosα

〈x, y〉 =

n∑i=1

xiyi = xTy

20

Page 48: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Умножение:

An×k× Bk×m

= Cn×m

, cij =

k∑l=1

ailblj

An×m× Im = In × A

n×m= A

n×m

I Длина (норма) вектора:

‖x‖ =

(n∑i=1

x2i

)1/2

I Скалярное произведение:

cosα =〈x, y〉‖x‖‖y‖

〈x, y〉 =n∑i=1

xiyi = xTy

20

Page 49: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Введение в линейную алгебруI Умножение:

An×k× Bk×m

= Cn×m

, cij =

k∑l=1

ailblj

An×m× Im = In × A

n×m= A

n×m

I Длина (норма) вектора:

‖x‖ =

(n∑i=1

x2i

)1/2

I Скалярное произведение:

〈x, y〉 =

n∑i=1

xiyi = xTy

20

Page 50: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

План

Виды и области применения рекомендательных систем

Простейшие алгоритмы

Введение в линейную алгебру

Алгоритм SVD

Измерение качества рекомендаций

Направления развития

21

Page 51: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Singular Value Decomposition

I Сингулярное разложение матрицы:

An×m

= Un×n× Σn×m× V T

m×m,

U , V — ортогональные, Σ — диагональная:

UUT = In, V V T = Im,

Σ = diag(λ1, . . . , λmin(n,m)

), λ1 > . . . > λmin(n,m) > 0.

I Усеченное разложение ранга d:

λd+1, . . . , λmin(n,m) := 0,

A′n×m

= U ′n×d× Σ′d×d× V ′

T

d×m≈ A

I A′ — наилучшее “низкоранговое” приближение с точкизрения средне-квадратичного отклонения.

22

Page 52: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Singular Value DecompositionI Сингулярное разложение матрицы:

An×m

= Un×n× Σn×m× V T

m×m,

U , V — ортогональные, Σ — диагональная:

UUT = In, V V T = Im,

Σ = diag(λ1, . . . , λmin(n,m)

), λ1 > . . . > λmin(n,m) > 0.

I Усеченное разложение ранга d:

λd+1, . . . , λmin(n,m) := 0,

A′n×m

= U ′n×d× Σ′d×d× V ′

T

d×m≈ A

I A′ — наилучшее “низкоранговое” приближение с точкизрения средне-квадратичного отклонения.

22

Page 53: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Singular Value DecompositionI Сингулярное разложение матрицы:

An×m

= Un×n× Σn×m× V T

m×m,

U , V — ортогональные, Σ — диагональная:

UUT = In, V V T = Im,

Σ = diag(λ1, . . . , λmin(n,m)

), λ1 > . . . > λmin(n,m) > 0.

I Усеченное разложение ранга d:

λd+1, . . . , λmin(n,m) := 0,

A′n×m

= U ′n×d× Σ′d×d× V ′

T

d×m≈ A

I A′ — наилучшее “низкоранговое” приближение с точкизрения средне-квадратичного отклонения.

22

Page 54: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Singular Value DecompositionI Сингулярное разложение матрицы:

An×m

= Un×n× Σn×m× V T

m×m,

U , V — ортогональные, Σ — диагональная:

UUT = In, V V T = Im,

Σ = diag(λ1, . . . , λmin(n,m)

), λ1 > . . . > λmin(n,m) > 0.

I Усеченное разложение ранга d:

λd+1, . . . , λmin(n,m) := 0,

A′n×m

= U ′n×d× Σ′d×d× V ′

T

d×m≈ A

I A′ — наилучшее “низкоранговое” приближение с точкизрения средне-квадратичного отклонения.

22

Page 55: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

SVD для рекомендаций

rui = 〈pu, qi〉

I Выявление скрытых признаков объектов и интересовпользователей!

I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:

(UΩ)Σ(V Ω)T = UΣV T

23

Page 56: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

SVD для рекомендаций

rui = 〈pu, qi〉

I Выявление скрытых признаков объектов и интересовпользователей!

I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:

(UΩ)Σ(V Ω)T = UΣV T

23

Page 57: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

SVD для рекомендаций

rui = 〈pu, qi〉

I Выявление скрытых признаков объектов и интересовпользователей!

I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:

(UΩ)Σ(V Ω)T = UΣV T

23

Page 58: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

SVD для рекомендаций

rui = 〈pu, qi〉

I Выявление скрытых признаков объектов и интересовпользователей!

I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:

(UΩ)Σ(V Ω)T = UΣV T

23

Page 59: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Обучение

I Модель:rui(Θ) = pTuqi,

Θ = pu, qi | u ∈ U, i ∈ I

I Хотим оптимизировать качество предсказаний в будущем:

E(u,i)

(rui(Θ)− rui

)2 → minΘ

I Имеем только оценки из прошлого (обучающая выборка):∑(u,i)∈D

(rui(Θ)− rui

)2︸ ︷︷ ︸

качество на обучающей выборке

+ λ∑θ∈Θ

θ2

︸ ︷︷ ︸регуляризация

→ minΘ

24

Page 60: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Обучение

I Модель:rui(Θ) = pTuqi,

Θ = pu, qi | u ∈ U, i ∈ I

I Хотим оптимизировать качество предсказаний в будущем:

E(u,i)

(rui(Θ)− rui

)2 → minΘ

I Имеем только оценки из прошлого (обучающая выборка):∑(u,i)∈D

(rui(Θ)− rui

)2︸ ︷︷ ︸

качество на обучающей выборке

+ λ∑θ∈Θ

θ2

︸ ︷︷ ︸регуляризация

→ minΘ

24

Page 61: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Обучение

I Модель:rui(Θ) = pTuqi,

Θ = pu, qi | u ∈ U, i ∈ I

I Хотим оптимизировать качество предсказаний в будущем:

E(u,i)

(rui(Θ)− rui

)2 → minΘ

I Имеем только оценки из прошлого (обучающая выборка):∑(u,i)∈D

(rui(Θ)− rui

)2︸ ︷︷ ︸

качество на обучающей выборке

+ λ∑θ∈Θ

θ2

︸ ︷︷ ︸регуляризация

→ minΘ

24

Page 62: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Зачем нужна регуляризация?

Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.

Как избегать переобучения?I Простые моделиI Регуляризация

25

Page 63: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Зачем нужна регуляризация?

Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.

Как избегать переобучения?I Простые моделиI Регуляризация

25

Page 64: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Зачем нужна регуляризация?

Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.

Как избегать переобучения?

I Простые моделиI Регуляризация

25

Page 65: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Зачем нужна регуляризация?

Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.

Как избегать переобучения?I Простые модели

I Регуляризация

25

Page 66: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Зачем нужна регуляризация?

Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.

Как избегать переобучения?I Простые моделиI Регуляризация

25

Page 67: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Численная оптимизация

J(Θ) =∑

(u,i)∈D

(pTuqi − rui

)2+ λ(∑u

‖pu‖2 +∑i

‖qi‖2)

I Градиент:

∇J(Θ) =

(∂J

∂θ1,∂J

∂θ2, . . . ,

∂J

∂θn

)T

26

Page 68: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Численная оптимизация

J(Θ) =∑

(u,i)∈D

(pTuqi − rui

)2+ λ(∑u

‖pu‖2 +∑i

‖qi‖2)

I Градиент:

∇J(Θ) =

(∂J

∂θ1,∂J

∂θ2, . . . ,

∂J

∂θn

)T

26

Page 69: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Численная оптимизация

J(Θ) =∑

(u,i)∈D

(pTuqi − rui

)2+ λ(∑u

‖pu‖2 +∑i

‖qi‖2)

I Градиент:

∇J(Θ) =

(∂J

∂θ1,∂J

∂θ2, . . . ,

∂J

∂θn

)T

26

Page 70: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Градиентный спуск

Θt+1 = Θt − η∇J(Θ)

Проблемы:I Работает очень медленно.I Находит локальный минимум, а не глобальный.

27

Page 71: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Градиентный спуск

Θt+1 = Θt − η∇J(Θ)

Проблемы:I Работает очень медленно.I Находит локальный минимум, а не глобальный.

27

Page 72: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Градиентный спуск

Θt+1 = Θt − η∇J(Θ)

Проблемы:I Работает очень медленно.I Находит локальный минимум, а не глобальный.

27

Page 73: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Alternating Least Squares

I L зависит от всех параметров квадратично. По каждомупараметру можно найти точный оптимум.

I Для каждого пользователя и для каждого объекта задачаоптимизации — в точности метод наименьших квадратов.

p∗u(Θ) = arg minpu

J(Θ) = (QTuQu + λI)−1QT

uru,

q∗i (Θ) = arg minqi

J(Θ) = (P Ti P i + λI)−1P T

i ri.

I Итеративный алгоритм ALS:

∀u ∈ U p2t+1u = p∗u(Θ2t),

∀i ∈ I q2t+2i = q∗i (Θ2t+1).

I Каждый шаг можно распараллелить.

28

Page 74: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Alternating Least Squares

I L зависит от всех параметров квадратично. По каждомупараметру можно найти точный оптимум.

I Для каждого пользователя и для каждого объекта задачаоптимизации — в точности метод наименьших квадратов.

p∗u(Θ) = arg minpu

J(Θ) = (QTuQu + λI)−1QT

uru,

q∗i (Θ) = arg minqi

J(Θ) = (P Ti P i + λI)−1P T

i ri.

I Итеративный алгоритм ALS:

∀u ∈ U p2t+1u = p∗u(Θ2t),

∀i ∈ I q2t+2i = q∗i (Θ2t+1).

I Каждый шаг можно распараллелить.

28

Page 75: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Alternating Least Squares

I L зависит от всех параметров квадратично. По каждомупараметру можно найти точный оптимум.

I Для каждого пользователя и для каждого объекта задачаоптимизации — в точности метод наименьших квадратов.

p∗u(Θ) = arg minpu

J(Θ) = (QTuQu + λI)−1QT

uru,

q∗i (Θ) = arg minqi

J(Θ) = (P Ti P i + λI)−1P T

i ri.

I Итеративный алгоритм ALS:

∀u ∈ U p2t+1u = p∗u(Θ2t),

∀i ∈ I q2t+2i = q∗i (Θ2t+1).

I Каждый шаг можно распараллелить.

28

Page 76: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Alternating Least Squares

I L зависит от всех параметров квадратично. По каждомупараметру можно найти точный оптимум.

I Для каждого пользователя и для каждого объекта задачаоптимизации — в точности метод наименьших квадратов.

p∗u(Θ) = arg minpu

J(Θ) = (QTuQu + λI)−1QT

uru,

q∗i (Θ) = arg minqi

J(Θ) = (P Ti P i + λI)−1P T

i ri.

I Итеративный алгоритм ALS:

∀u ∈ U p2t+1u = p∗u(Θ2t),

∀i ∈ I q2t+2i = q∗i (Θ2t+1).

I Каждый шаг можно распараллелить.

28

Page 77: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

План

Виды и области применения рекомендательных систем

Простейшие алгоритмы

Введение в линейную алгебру

Алгоритм SVD

Измерение качества рекомендаций

Направления развития

29

Page 78: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Метрики

То, что нельзя измерить, нельзя и улучшить.

Метрика предсказания оценки:

RMSE =

√√√√ 1

|D|∑

(u,i)∈D

(rui − rui)2

Недостатки:I У каждого пользователя свое представление о шкале

оценок.I Ошибка в предсказании высокой оценки имеет такой же

вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь

очень плохое качество ранжирования, и наоборот.

30

Page 79: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Метрики

То, что нельзя измерить, нельзя и улучшить.

Метрика предсказания оценки:

RMSE =

√√√√ 1

|D|∑

(u,i)∈D

(rui − rui)2

Недостатки:I У каждого пользователя свое представление о шкале

оценок.I Ошибка в предсказании высокой оценки имеет такой же

вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь

очень плохое качество ранжирования, и наоборот.

30

Page 80: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Метрики

То, что нельзя измерить, нельзя и улучшить.

Метрика предсказания оценки:

RMSE =

√√√√ 1

|D|∑

(u,i)∈D

(rui − rui)2

Недостатки:I У каждого пользователя свое представление о шкале

оценок.I Ошибка в предсказании высокой оценки имеет такой же

вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь

очень плохое качество ранжирования, и наоборот.

30

Page 81: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Метрики

То, что нельзя измерить, нельзя и улучшить.

Метрика предсказания оценки:

RMSE =

√√√√ 1

|D|∑

(u,i)∈D

(rui − rui)2

Недостатки:I У каждого пользователя свое представление о шкале

оценок.I Ошибка в предсказании высокой оценки имеет такой же

вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь

очень плохое качество ранжирования, и наоборот.

30

Page 82: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Метрики ранжирования

Пусть R — множество рекомендованных объектов, P —множество объектов, которые на самом деле пользователюпонравятся.

Precision =|R ∩ P ||R|

Recall =|R ∩ P ||P |

Проблемы:I Нет данных про рекомендованные объекты, которые

пользователь не оценивал.I Оптимизировать эти метрики напрямую почти

невозможно.

31

Page 83: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Метрики ранжирования

Пусть R — множество рекомендованных объектов, P —множество объектов, которые на самом деле пользователюпонравятся.

Precision =|R ∩ P ||R|

Recall =|R ∩ P ||P |

Проблемы:I Нет данных про рекомендованные объекты, которые

пользователь не оценивал.I Оптимизировать эти метрики напрямую почти

невозможно.

31

Page 84: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Метрики ранжирования

Пусть R — множество рекомендованных объектов, P —множество объектов, которые на самом деле пользователюпонравятся.

Precision =|R ∩ P ||R|

Recall =|R ∩ P ||P |

Проблемы:I Нет данных про рекомендованные объекты, которые

пользователь не оценивал.I Оптимизировать эти метрики напрямую почти

невозможно.

31

Page 85: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендаций

Желаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 86: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 87: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 88: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 89: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 90: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 91: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 92: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Другие свойства рекомендаций

Желаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:

I Diversity (разнообразие)

I Serendipity (неожиданность)

I Novelty (новизна)

I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .

32

Page 93: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Похожие объекты

Что такое похожие объекты?

I Объекты, похожие по своим признакам (content-based).

I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).

I Рекомендации для пользователя, которому понравилсяданный объект.

I Рекомендации, в которых данный объект выступает вкачестве контекста.

33

Page 94: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Похожие объекты

Что такое похожие объекты?

I Объекты, похожие по своим признакам (content-based).

I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).

I Рекомендации для пользователя, которому понравилсяданный объект.

I Рекомендации, в которых данный объект выступает вкачестве контекста.

33

Page 95: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Похожие объекты

Что такое похожие объекты?

I Объекты, похожие по своим признакам (content-based).

I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).

I Рекомендации для пользователя, которому понравилсяданный объект.

I Рекомендации, в которых данный объект выступает вкачестве контекста.

33

Page 96: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Похожие объекты

Что такое похожие объекты?

I Объекты, похожие по своим признакам (content-based).

I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).

I Рекомендации для пользователя, которому понравилсяданный объект.

I Рекомендации, в которых данный объект выступает вкачестве контекста.

33

Page 97: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Похожие объекты

Что такое похожие объекты?

I Объекты, похожие по своим признакам (content-based).

I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).

I Рекомендации для пользователя, которому понравилсяданный объект.

I Рекомендации, в которых данный объект выступает вкачестве контекста.

33

Page 98: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

План

Виды и области применения рекомендательных систем

Простейшие алгоритмы

Введение в линейную алгебру

Алгоритм SVD

Измерение качества рекомендаций

Направления развития

34

Page 99: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Концептуальные вопросы

I Как строить списки рекомендаций на основепредсказаний?

I Как улучшать качество именно рекомендаций, а непредсказаний?

I Как измерять похожести объектов?

I Как обосновывать рекомендации?

35

Page 100: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Концептуальные вопросы

I Как строить списки рекомендаций на основепредсказаний?

I Как улучшать качество именно рекомендаций, а непредсказаний?

I Как измерять похожести объектов?

I Как обосновывать рекомендации?

35

Page 101: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Концептуальные вопросы

I Как строить списки рекомендаций на основепредсказаний?

I Как улучшать качество именно рекомендаций, а непредсказаний?

I Как измерять похожести объектов?

I Как обосновывать рекомендации?

35

Page 102: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Концептуальные вопросы

I Как строить списки рекомендаций на основепредсказаний?

I Как улучшать качество именно рекомендаций, а непредсказаний?

I Как измерять похожести объектов?

I Как обосновывать рекомендации?

35

Page 103: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Концептуальные вопросы

I Как строить списки рекомендаций на основепредсказаний?

I Как улучшать качество именно рекомендаций, а непредсказаний?

I Как измерять похожести объектов?

I Как обосновывать рекомендации?

35

Page 104: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Технические вопросы

I Как решать проблему холодного старта для новыхпользователей и новых объектов?

I Как быстро обновлять рекомендации?

I Как быстро находить объекты с наибольшимпредсказанием?

I Как измерять качество онлайн-рекомендаций?

I Как масштабировать систему?

36

Page 105: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Технические вопросы

I Как решать проблему холодного старта для новыхпользователей и новых объектов?

I Как быстро обновлять рекомендации?

I Как быстро находить объекты с наибольшимпредсказанием?

I Как измерять качество онлайн-рекомендаций?

I Как масштабировать систему?

36

Page 106: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Технические вопросы

I Как решать проблему холодного старта для новыхпользователей и новых объектов?

I Как быстро обновлять рекомендации?

I Как быстро находить объекты с наибольшимпредсказанием?

I Как измерять качество онлайн-рекомендаций?

I Как масштабировать систему?

36

Page 107: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Технические вопросы

I Как решать проблему холодного старта для новыхпользователей и новых объектов?

I Как быстро обновлять рекомендации?

I Как быстро находить объекты с наибольшимпредсказанием?

I Как измерять качество онлайн-рекомендаций?

I Как масштабировать систему?

36

Page 108: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Технические вопросы

I Как решать проблему холодного старта для новыхпользователей и новых объектов?

I Как быстро обновлять рекомендации?

I Как быстро находить объекты с наибольшимпредсказанием?

I Как измерять качество онлайн-рекомендаций?

I Как масштабировать систему?

36

Page 109: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Технические вопросы

I Как решать проблему холодного старта для новыхпользователей и новых объектов?

I Как быстро обновлять рекомендации?

I Как быстро находить объекты с наибольшимпредсказанием?

I Как измерять качество онлайн-рекомендаций?

I Как масштабировать систему?

36

Page 110: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Как учитывать дополнительную информацию?

I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?

I Как учитывать контекст? (Context-aware recommendations)

I Как учитывать признаки объектов? (Гибридные системы)

I Как учитывать связи между объектами (таксономию)?

I Как учитывать признаки и связи пользователей?

I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)

37

Page 111: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Как учитывать дополнительную информацию?

I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?

I Как учитывать контекст? (Context-aware recommendations)

I Как учитывать признаки объектов? (Гибридные системы)

I Как учитывать связи между объектами (таксономию)?

I Как учитывать признаки и связи пользователей?

I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)

37

Page 112: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Как учитывать дополнительную информацию?

I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?

I Как учитывать контекст? (Context-aware recommendations)

I Как учитывать признаки объектов? (Гибридные системы)

I Как учитывать связи между объектами (таксономию)?

I Как учитывать признаки и связи пользователей?

I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)

37

Page 113: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Как учитывать дополнительную информацию?

I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?

I Как учитывать контекст? (Context-aware recommendations)

I Как учитывать признаки объектов? (Гибридные системы)

I Как учитывать связи между объектами (таксономию)?

I Как учитывать признаки и связи пользователей?

I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)

37

Page 114: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Как учитывать дополнительную информацию?

I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?

I Как учитывать контекст? (Context-aware recommendations)

I Как учитывать признаки объектов? (Гибридные системы)

I Как учитывать связи между объектами (таксономию)?

I Как учитывать признаки и связи пользователей?

I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)

37

Page 115: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Как учитывать дополнительную информацию?

I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?

I Как учитывать контекст? (Context-aware recommendations)

I Как учитывать признаки объектов? (Гибридные системы)

I Как учитывать связи между объектами (таксономию)?

I Как учитывать признаки и связи пользователей?

I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)

37

Page 116: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Как учитывать дополнительную информацию?

I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?

I Как учитывать контекст? (Context-aware recommendations)

I Как учитывать признаки объектов? (Гибридные системы)

I Как учитывать связи между объектами (таксономию)?

I Как учитывать признаки и связи пользователей?

I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)

37

Page 117: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Литература

I Введение в алгебру, Кострикин А.И.

I Математический анализ, Зорич В.А.

I Курс теории вероятностей, Гнеденко Б.В.

I Машинное обучение, Воронцов К.В., курс лекций

38

Page 118: Михаил Ройзнер - Рекомендательные системы и факторизационые модели

Спасибо!

39