Введение в рекомендательные системы
TRANSCRIPT
Введение в рекомендательные системы
Андрей Данильченко разработчик
Структура
• Introduction
• Collaborative filtering
• Content-based & hybrid methods
• Evaluation
F. Ricci
“Recommender Systems (RSs) are software tools and techniques providing suggestions for items to be of use to a user”
Introduction
Историческая справка
199* 200* 2006-2009
Разработки для
супермаркетов
Выход в online
Netflix Prize
2011
KDD cup on
Yahoo! Music
Количество статей в области RS
по данным google scholar (от 2013-10-15)
Мы живем в эпоху рекомендательных систем!
Классификация RS
Available data
User history Content
Collaborative Content-based
Hybrid
Tags &
Metadata
Данные
• Рейтинги (explicit feedback) • Унарные (like) • Бинарные (like/dislike) • Числовые (stars)
• История действий (implicit feedback) • Теги, метаданные
~ • Отзывы • Друзья (community-based RS)
Постановка задач RS
• Predict
• Recommend
• Similar
Collaborative filtering
• Neighborhood methods
• Matrix factorization methods
Neighborhood methods
Collaborative filtering
Идея метода (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)∑
$
%
&&&
'
(
)))
Какое расстояние использовать?
• Косинусное расстояние
• Корреляция Пирсона
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
∑
Как нормализовать рейтинги?
• Mean centering
• Z-score
• Percentile
h rui( ) = rui − ru
h rui( ) = rui − ruσ u
h rui( ) =j ∈ Iu : ruj ≤ rui{ }
Iu
Matrix factorization methods
Collaborative filtering
Наилучшее приближение ранга k
Теорема: Если в матрице λ оставить k наибольших сингулярных векторов, то получим наилучшее приближение матрицы A ранга k
Baseline predictors
Модель: r̂uiu = µ + bu + bi
argminb*
ruiu −µ − bu − bi( )(u,i)∈R∑
2+λ bu
2 +u∈U∑ bi
2
i∈I∑
$
%&
'
()
Функция ошибки:
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( )
Функция ошибки:
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)∑
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)∑
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)∑
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)∑
Снова 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( )
Функция ошибки:
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)∑
$
%&&
'
())
Функция ошибки:
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)∑
$
%&&
'
())
Функция ошибки:
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)∑
Сравнение моделей по 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
А как все это оптимизировать?
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( )
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
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∑
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∑( )
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
Литература
• 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.
Сontent-based methods
Tag-based methods
True content-based methods
Tag-based methods
Сontent-based methods
Давайте использовать тэги!
Способы генерации тэгов
• User-generated
• Web-mining
• Expert-generated
• Metadata
Similarity by tags (co-occurrence)
Данные: облака тэгов и Меры сходства: • Жаккарда
• Дайса
• Охаи
Ti Tj
Ti TjTi Tj
2 ⋅ Ti TjTi + Tj
Ti TjTi Tj
Similarity by tags (LSA)
• Разложим матрицу Items x Tags по SVD • Меры сходства: косинусное расстояние и др.
≈ x x Item
fe
atur
es
Tags
Tag
feat
ures
Items
λ
Тэговый вандализм
Тэги Paris Hillton
Last.fm, май 2013
Тэговый вандализм — как бороться?
Исправленные тэги Paris Hillton
• User listening habbits
• Filter tags by similarity
True content-based methods
Сontent-based methods
Давайте смотреть на содержание!
Пример — музыка
• 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
Hybrid methods
Классификация методов
• Weighted • Switching • Mixed • Cascade
Evaluation
Как можно измерить качество RS?
• Offline test • User study • Online experiment
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
User study
• Confidence • Trust • Novelty • Diversity • Serendipity • Robustness • Adaptivity • Scalability
Сравнивать легче!
Online study methods
• A-B testing
• Team-Driven Interleaving (TDI)
Куда копать дальше?
• F. Ricci et al. “Recommender Systems Handbook”, 2011
• O. Celma “Music Recommendation and Discovery”, 2010
• D. Jannach et al. “Recommender Systems: An Introduction”, 2011
Андрей Данильченко
разработчик
Удачи!