ИТМО machine learning. Рекомендательные системы — часть 1
DESCRIPTION
Лекция-введение в рекомендательные системы в рамках курса по машинному обучению для студентов четвертого курса на кафедре КТ ИТМО. Часть 1 — kNN, SVD, iALS.TRANSCRIPT
![Page 1: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/1.jpg)
![Page 2: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/2.jpg)
Рекомендательные системы Лекция 1
Андрей Данильченко
НИУ ИТМО, 10 ноября 2014
![Page 3: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/3.jpg)
Что такое рекомендательная система?
![Page 4: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/4.jpg)
![Page 5: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/5.jpg)
5
![Page 6: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/6.jpg)
![Page 7: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/7.jpg)
7
![Page 8: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/8.jpg)
8
![Page 9: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/9.jpg)
F. Ricci “Recommender Systems Handbook”
│ Recommender Systems are software tools and techniques providing suggestions for items to be of use to a user
9
![Page 10: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/10.jpg)
Количество статей в области
по данным google scholar (от 2014-10-17)
![Page 11: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/11.jpg)
11
![Page 12: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/12.jpg)
Какие бывают рекомендательные системы?
![Page 13: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/13.jpg)
Классификация RS
Available data
User history Content
Collaborative Content-based
Hybrid
Tags &
Metadata
![Page 14: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/14.jpg)
Данные
• Рейтинги (explicit feedback)
• унарные (like) • бинарные (like/dislike) • числовые (stars)
• История действий пользователя (implicit feedback)
• Тэги, метаданные
• Комментарии, отзывы
• Друзья
![Page 15: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/15.jpg)
Рекомендательные задачи
15
• Predict
• Recommend
• Similar
![Page 16: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/16.jpg)
Как построить простую рекомендательную систему?
16
![Page 17: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/17.jpg)
User-based kNN Как продукт оценили похожие пользователи?
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 18: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/18.jpg)
Как посчитать расстояние?
Косинусное расстояние
Корреляция Пирсона
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
∑ (rvj − rv )2
j∈Iv
∑
Поправленное косинусное расстояние (adjusted cosine)
AC(u,v) =(rui − ri )(rvi − ri )
i∈Iuv
∑
(rui − ri )2
i∈Iu
∑ (rvj − rj )2
j∈Iv
∑
![Page 19: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/19.jpg)
Как нормализовать рейтинги?
19
h rui( ) = rui − ru
h rui( ) = rui − ruσ u
h rui( ) =j ∈ Iu : ruj ≤ rui{ }
Iu
Mean centering
Z-score
Percentile score
![Page 20: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/20.jpg)
Как выиграть Netflix Prize?
![Page 21: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/21.jpg)
http://sifter.org/~simon/journal/20061211.html
![Page 22: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/22.jpg)
Singular Value Decomposition
Теорема: если в матрице λ оставить k наибольших элементов, то полученное произведение A’ будет наилучшим среди всех матриц ранга k приближением матрицы A.
![Page 23: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/23.jpg)
Baseline predictors
Модель:
r̂uiu = µ + bu + bi
argminb*
ruiu −µ − bu − bi( )(u,i)∈R∑
2+λ bu
2 +u∈U∑ bi
2
i∈I∑
$
%&
'
()
Функция ошибки:
![Page 24: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/24.jpg)
SVD
Модель:
Функция ошибки:
r̂ui = µ + bu + bi + puTqi
argminp*q*b*
rui −µ − bu − bi − puTqi( )
(u,i)∈R∑
2+λ pu
2+ qi
2+ bu
2 + bi2( )
![Page 25: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/25.jpg)
Optimization by SGD
Модель:
Функция ошибки:
r̂ui = µ + bu + bi + puTqi
argminp*q*b*
rui −µ − 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 26: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/26.jpg)
Alternating Least Squares P-step: обновление при фиксированных векторах item-ов
pu = λnuI + Au( )−1 duAu =Q[u]
TQ[u]= qiqiT
i: u,i( )∈R∑
du =Q[u]T ru = ruiqi
i: 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 27: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/27.jpg)
Что делать с implicit feedback?
![Page 28: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/28.jpg)
Как использовать implicit feedback?
Идея: rating => (preference, confidence)
pui ∈ {0,1}
cui ∈ℜ+
∀(u, i)∈ R
cui =1+αrui
pui =1
pui = 0 иначе
или
cui =1+α log 1+ruiβ( )
![Page 29: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/29.jpg)
Обучение модели
argminx*y*
cui pui − xuT yi( )
(u,i)∑
2+λ xu
2
u∑ + yi
2
i∑
#
$%
&
'(
Функция ошибки:
xu = λI +Y TCuY( )−1Y TCup(u)
yi = λI + XTCiX( )−1XTCi p(i)
Это сводится к уравнениям для ALS:
![Page 30: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/30.jpg)
Обучение модели
argminx*y*
cui pui − xuT yi( )
(u,i)∑
2+λ xu
2
u∑ + yi
2
i∑
#
$%
&
'(
Функция ошибки:
xu = λI +Y TCuY( )−1Y TCup(u)
yi = λI + XTCiX( )−1XTCi p(i)
Это сводится к уравнениям для ALS:
Но есть проблема!
![Page 31: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/31.jpg)
в матрице всего ненулевых элементов,
В матрице всего ненулевых элементов,
Ускорение iALS
Идея:
Y TCuY =Y TY +Y T Cu − I( )YCu − I
Cup(u)
Y TY
O f 2N + f 3 U( )
nu
nu
а не зависит от пользователя!
Итого: обновляем вектора пользователей за
![Page 32: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/32.jpg)
Интуиция iALS
xu = λI +Y TCuY( )−1Y TCup(u) = λI + Au( )−1 du
A0 = c0yiT yi
i∑ d0 = c0p0yi
i∑
Au = A0 + (cui − c0 )yiT yi
(u,i)∈N (u)∑
du = d0 + cui pui − c0p0( ) yiu,i( )∈N (u)∑
Введем «нулевого» пользователя без фидбека:
Тогда для остальных пользователей выводим:
Выпишем ALS-шаг в упрощенной форме:
![Page 33: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/33.jpg)
Как выбирать c0 и p0?
∀(u, i)∈ N
cui =1+αrui
pui =1
pui = 0 иначе
Как и раньше:
![Page 34: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/34.jpg)
Как выбирать c0 и p0?
∀(u, i)∈ N
cui =1+αrui
pui =1
pui = 0 иначе
Как и раньше:
c0 =1
p0 = 0
![Page 35: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/35.jpg)
А разве что-то еще осталось?
35
![Page 36: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/36.jpg)
If you like this lecture you will like these books
![Page 37: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/37.jpg)
If you like this lecture you will also like
![Page 38: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/38.jpg)
If you like this lecture you will probably like
http://www.4ducks.ru/pages/itmo-rs-2014.html
![Page 39: ИТМО Machine Learning. Рекомендательные системы — часть 1](https://reader036.vdocuments.us/reader036/viewer/2022082309/559b888b1a28ab78158b4618/html5/thumbnails/39.jpg)
Удачи! Андрей Данильченко группа разработки рекомендательных систем, Яндекс [email protected]
http://www.4ducks.ru/itmo-ml-course-recsys-part-1.html