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

56

Transcript of Введение в рекомендательные системы

Page 1: Введение в рекомендательные системы
Page 2: Введение в рекомендательные системы

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

Андрей Данильченко разработчик

Page 3: Введение в рекомендательные системы

Структура

•  Introduction

•  Collaborative filtering

•  Content-based & hybrid methods

•  Evaluation

Page 4: Введение в рекомендательные системы

F. Ricci

“Recommender Systems (RSs) are software tools and techniques providing suggestions for items to be of use to a user”

Introduction

Page 5: Введение в рекомендательные системы

Историческая справка

199* 200* 2006-2009

Разработки для

супермаркетов

Выход в online

Netflix Prize

2011

KDD cup on

Yahoo! Music

Page 6: Введение в рекомендательные системы

Количество статей в области RS

по данным google scholar (от 2013-10-15)

Page 7: Введение в рекомендательные системы

Мы живем в эпоху рекомендательных систем!

Page 8: Введение в рекомендательные системы

Классификация RS

Available data

User history Content

Collaborative Content-based

Hybrid

Tags &

Metadata

Page 9: Введение в рекомендательные системы

Данные

•  Рейтинги (explicit feedback) •  Унарные (like) •  Бинарные (like/dislike) •  Числовые (stars)

•  История действий (implicit feedback) •  Теги, метаданные

~ •  Отзывы •  Друзья (community-based RS)

Page 10: Введение в рекомендательные системы

Постановка задач RS

•  Predict

•  Recommend

•  Similar

Page 11: Введение в рекомендательные системы

Collaborative filtering

•  Neighborhood methods

•  Matrix factorization methods

Page 12: Введение в рекомендательные системы

Neighborhood methods

Collaborative filtering

Page 13: Введение в рекомендательные системы

Идея метода (user-based)

Как продукт оценили похожие пользователи?

r̂ui =1

Ni u( )rvi

v∈Ni (u)∑

Взвесим вклад каждого

r̂ui =wuvrvi

v∈Ni (u)∑

wuvv∈Ni (u)∑

И нормализуем рейтинги

r̂ui = h−1

wuvh rvi( )v∈Ni (u)∑

wuvv∈Ni (u)∑

$

%

&&&

'

(

)))

Page 14: Введение в рекомендательные системы

Какое расстояние использовать?

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

•  Корреляция Пирсона

cos(u,v) =ruirvi

i∈Iuv

r2uii∈Iu

∑ rvj2

j∈Iv

PC(u,v) =(rui − ru )(rvi − rv )

i∈Iuv

(rui − ru )2

i∈Iu

∑ (rvi − rv )2

j∈Iv

Page 15: Введение в рекомендательные системы

Как нормализовать рейтинги?

•  Mean centering

•  Z-score

•  Percentile

h rui( ) = rui − ru

h rui( ) = rui − ruσ u

h rui( ) =j ∈ Iu : ruj ≤ rui{ }

Iu

Page 16: Введение в рекомендательные системы

Matrix factorization methods

Collaborative filtering

Page 17: Введение в рекомендательные системы

Наилучшее приближение ранга k

Теорема: Если в матрице λ оставить k наибольших сингулярных векторов, то получим наилучшее приближение матрицы A ранга k

Page 18: Введение в рекомендательные системы

Baseline predictors

Модель: r̂uiu = µ + bu + bi

argminb*

ruiu −µ − bu − bi( )(u,i)∈R∑

2+λ bu

2 +u∈U∑ bi

2

i∈I∑

$

%&

'

()

Функция ошибки:

Page 19: Введение в рекомендательные системы

SVD

Модель: r̂uiu = µ + bu + bi + pu

Tqi

argminp*q*b*

ruiu −µ − bu − bi − puTqi( )

(u,i)∈R∑

2+λ pu

2+ qi

2+ bu

2 + bi2( )

Функция ошибки:

Page 20: Введение в рекомендательные системы

Neighborhood (item-based)

Модель:

r̂uiu = bui +sij ruj − buj( )j∈Sk (u,i)∑

sijj∈Sk (u,i)∑= bui + θij

u ruj − buj( )j∈Sk (u,i)∑

Page 21: Введение в рекомендательные системы

Neighborhood (optimization)

r̂uiu = bui + ωij ruj − buj( )j∈R(u)∑

r̂uiu = bui +sij ruj − buj( )j∈Sk (u,i)∑

sijj∈Sk (u,i)∑= bui + θij

u ruj − buj( )j∈Sk (u,i)∑

Page 22: Введение в рекомендательные системы

Neighborhood (optimization + implicit)

r̂uiu = bui + ωij ruj − buj( )j∈R(u)∑ + cij

j∈N (u)∑

r̂uiu = bui +sij ruj − buj( )j∈Sk (u,i)∑

sijj∈Sk (u,i)∑= bui + θij

u ruj − buj( )j∈Sk (u,i)∑

Page 23: Введение в рекомендательные системы

Neighborhood (normalization)

r̂uiu = bui + R(u)−12 ωij ruj − buj( )j∈R(u)∑ + N(u) −

12 cijj∈N (u)∑

r̂uiu = bui + ωij ruj − buj( )j∈R(u)∑ + cij

j∈N (u)∑

r̂uiu = bui + Rk (i,u)

−12 ωij ruj − buj( )j∈Rk (u)∑ + Nk (i,u)

−12 cijj∈Nk (u)∑

Page 24: Введение в рекомендательные системы

Снова SVD

Модель: r̂uiu = µ + bu + bi + pu

Tqi

argminp*q*b*

ruiu −µ − bu − bi − puTqi( )

(u,i)∈R∑

2+λ pu

2+ qi

2+ bu

2 + bi2( )

Функция ошибки:

Page 25: Введение в рекомендательные системы

Asymmetric-SVD

Модель: r̂uiu = µ + bu + bi + qi

T R(u) −12 ruj − buj( ) x jj∈R(u)∑ + N(u) −

12 yjj∈N (u)∑

$

%&&

'

())

argminp*q*b*

ruiu − r̂uiu( )2 +(u,i)∈R∑ λ qi

2+ bu

2 + bi2 + x j

2+ yj

2

j∈N (u)∑

j∈R(u)∑

$

%&&

'

())

Функция ошибки:

Page 26: Введение в рекомендательные системы

SVD++

Модель: r̂uiu = µ + bu + bi + qi

T pu + N(u)−12 yjj∈N (u)∑

$

%&&

'

())

argminp*q*b*

ruiu − r̂uiu( )2 +(u,i)∈R∑ λ pu

2+ qi

2+ bu

2 + bi2 + yj

2

j∈N (u)∑

$

%&&

'

())

Функция ошибки:

Page 27: Введение в рекомендательные системы

Integrated model

Модель: r̂uiu = µ + bu + bi + qi

T pu + N(u)−12 yjj∈N (u)∑

$

%&&

'

())+

+ Rk (i,u)−12 ωij ruj − buj( )j∈Rk (u)∑ + Nk (i,u)

−12 cijj∈Nk (u)∑

Page 28: Введение в рекомендательные системы

Сравнение моделей по RMSE

Модель 50 факторов 100 факторов 200 факторов Лучшее

Item-based kNN — —

0.9406

Neighborhood — — — 0.9002

SVD 0.9046 0.9025 0.9009 0.9009

Asymmetric SVD 0.9037 0.9013 0.9000 0.9000

SVD++ 0.8952 0.8924 0.8911 0.8911

Integrated model

0.8877 0.8870 0.8868 0.8868

на данных Netflix Prize

Page 29: Введение в рекомендательные системы

А как все это оптимизировать?

Page 30: Введение в рекомендательные системы

SGD-оптимизация модели SVD

Модель: r̂uiu = µ + bu + bi + pu

Tqi

argminp*q*b*

ruiu −µ − bu − bi − puTqi( )

(u,i)∈R∑

2+λ pu

2+ qi

2+ bu

2 + bi2( )

Функция ошибки:

Правила для градиентного спуска: bu ← bu +γ1 eui −λ1bu( )bi ← bi +γ1 eui −λ1bi( )pu ← pu +γ2 euiqi −λ2pu( )qu ← qi +γ2 eui pu −λ2qi( )

Page 31: Введение в рекомендательные системы

Ridge regression

Модель: yi ← wT xiwTw→ 0

argminw

λwTw+ wT xi − yi( )2

i=1

n

∑#

$%

&

'(

Функция ошибки:

Точное решение: w = λI + XTX( )

−1XT y = λI + A( )−1 d

A = XTXd = XT y

Page 32: Введение в рекомендательные системы

ALS-оптимизация модели SVD

Модель: r̂uiu = µ + bu + bi + pu

Tqi

argminp*q*b*

ruiu −µ − bu − bi − puTqi( )

(u,i)∈R∑

2+λ pu

2+ qi

2+ bu

2 + bi2( )

Функция ошибки:

P-step: pu = λnuI + Au( )−1 duAu =Q[u]

TQ[u]= qiqiT

i: u,i( )∈R∑

d =Q[u]T ru = ruiqii: u,i( )∈R∑

Q-step: qi = λniI + Ai( )−1 diAi = P[i]

T P[i]= pupuT

u: u,i( )∈R∑

di = P[i]T ri = rui pu

u: u,i( )∈R∑

Page 33: Введение в рекомендательные системы

Ridge regression (RR1 optimization)

Модель: yi ← wT xiwTw→ 0

argminw

λwTw+ wT xi − yi( )2

i=1

n

∑#

$%

&

'(

Функция ошибки:

Покоординатный спуск (по всем k): ∀i=1

n wkxik ≈ yi − wlxill≠k∑

wk ←xikeii=1

n∑

λ + xik xiki=1

n∑( )

Page 34: Введение в рекомендательные системы

ALS1-оптимизация модели SVD

Модель: r̂uiu = µ + bu + bi + pu

Tqi

argminp*q*b*

ruiu −µ − bu − bi − puTqi( )

(u,i)∈R∑

2+λ pu

2+ qi

2+ bu

2 + bi2( )

Функция ошибки:

P-step: RR1 для pu

Q-step: RR1 для qi

Page 35: Введение в рекомендательные системы

Литература

•  Adomavicius G., Tuzhilin A., “Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions”, 2005.

•  Sarwar B., Karypis G., Konstan J., Reidl J., “Item-based collaborative filtering recommendation algorithms”, 2001.

•  Koren Y., “Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model”, 2008.

•  Bell R., and Koren Y., “Scalable Collaborative Filtering with Jointly Derived Neighborhood Interpolation Weights”, 2007.

•  I. Pila ́szy, D. Zibriczky, and D. Tikk, “Fast ALS-based matrix factorization for explicit and implicit feedback datasets”, 2010.

Page 36: Введение в рекомендательные системы

Сontent-based methods

Tag-based methods

True content-based methods

Page 37: Введение в рекомендательные системы

Tag-based methods

Сontent-based methods

Page 38: Введение в рекомендательные системы

Давайте использовать тэги!

Page 39: Введение в рекомендательные системы

Способы генерации тэгов

•  User-generated

•  Web-mining

•  Expert-generated

•  Metadata

Page 40: Введение в рекомендательные системы

Similarity by tags (co-occurrence)

Данные: облака тэгов и Меры сходства: • Жаккарда

• Дайса

• Охаи

Ti Tj

Ti TjTi Tj

2 ⋅ Ti TjTi + Tj

Ti TjTi Tj

Page 41: Введение в рекомендательные системы

Similarity by tags (LSA)

• Разложим матрицу Items x Tags по SVD • Меры сходства: косинусное расстояние и др.

≈ x x Item

fe

atur

es

Tags

Tag

feat

ures

Items

λ

Page 42: Введение в рекомендательные системы

Тэговый вандализм

Тэги Paris Hillton

Last.fm, май 2013

Page 43: Введение в рекомендательные системы

Тэговый вандализм — как бороться?

Исправленные тэги Paris Hillton

•  User listening habbits

•  Filter tags by similarity

Page 44: Введение в рекомендательные системы

True content-based methods

Сontent-based methods

Page 45: Введение в рекомендательные системы

Давайте смотреть на содержание!

Page 46: Введение в рекомендательные системы

Пример — музыка

•  Spectral centroid •  Spectral flatness •  Spectral skewness •  Spectral kurtosis •  Zero-Crossing Rate (ZCR) •  Mel Frequency Cepstrum Coefficients (MFCCs)

•  Instrumentation •  Rhythm •  Harmony •  Structure •  Intensity •  Genre •  Mood

low-level

high-level

Page 47: Введение в рекомендательные системы

Hybrid methods

Page 48: Введение в рекомендательные системы

Классификация методов

•  Weighted •  Switching •  Mixed •  Cascade

Page 49: Введение в рекомендательные системы

Evaluation

Page 50: Введение в рекомендательные системы

Как можно измерить качество RS?

• Offline test • User study • Online experiment

Page 51: Введение в рекомендательные системы

Offline evaluation • Prediction accuracy

–  RMSE –  MAE

• Usage prediction accuracy –  Precision/recall @N –  F1 –  AUC

• Ranking accuracy –  DPM –  DGC –  Average Reciprocal Hit Rank (ARHR)

• Coverage –  Catalog coverage –  Sales diversity –  Gini index –  Shannon entropy

Page 52: Введение в рекомендательные системы

User study

• Confidence • Trust • Novelty • Diversity • Serendipity • Robustness • Adaptivity • Scalability

Page 53: Введение в рекомендательные системы

Сравнивать легче!

Page 54: Введение в рекомендательные системы

Online study methods

• A-B testing

• Team-Driven Interleaving (TDI)

Page 55: Введение в рекомендательные системы

Куда копать дальше?

•  F. Ricci et al. “Recommender Systems Handbook”, 2011

•  O. Celma “Music Recommendation and Discovery”, 2010

•  D. Jannach et al. “Recommender Systems: An Introduction”, 2011

Page 56: Введение в рекомендательные системы

Андрей Данильченко

разработчик

Удачи!