SlideShare a Scribd company logo
1
Рекомендательные системы и
факторизационные модели
Михаил Ройзнер
23 апреля 2014 г.
2
План
Виды и области применения рекомендательные систем
Стандартные алгоритмы
Измерение качества рекомендаций
Направления развития
Бонус: тензорные разложения
Фильмы
4
Фильмы
4
Музыка
5
Музыка
5
Товары
6
Товары
6
И другие категории
Заведения на карте
Новости, статьи, сайты
Концерты, театры, выставки
Видео
Книги
Приложения
Игры
Путешествия
Социальные связи
. . .
Виды рекомендательных систем
Content-based
Пользователю рекомендуются объекты, похожие на те,
которые этот пользователь уже употребил.
Похожести оцениваются по признакам содержимого
объектов.
Сильная зависимость от предметной области, полезность
рекомендаций ограничена.
8
Виды рекомендательных систем
Content-based
Пользователю рекомендуются объекты, похожие на те,
которые этот пользователь уже употребил.
Похожести оцениваются по признакам содержимого
объектов.
Сильная зависимость от предметной области, полезность
рекомендаций ограничена.
Коллаборативная фильтрация (Collaborative Filtering)
Для рекомендаций используется история оценок как
самого пользователя, так и других пользователей.
Более универсальный подход, часто дает лучший результат.
Есть свои проблемы (например, холодный старт).
8
Виды рекомендательных систем
Content-based
Пользователю рекомендуются объекты, похожие на те,
которые этот пользователь уже употребил.
Похожести оцениваются по признакам содержимого
объектов.
Сильная зависимость от предметной области, полезность
рекомендаций ограничена.
Коллаборативная фильтрация (Collaborative Filtering)
Для рекомендаций используется история оценок как
самого пользователя, так и других пользователей.
Более универсальный подход, часто дает лучший результат.
Есть свои проблемы (например, холодный старт).
Гибридные системы
Сочетают оба подхода.
8
Коллаборативная фильтрация: формальная постановка
Имеется:
Пользователи (users, u ∈ U)
Объекты (items, i ∈ I)
События (events, (rui, u, i, . . .) ∈ D)
9
Коллаборативная фильтрация: формальная постановка
Имеется:
Пользователи (users, u ∈ U)
Объекты (items, i ∈ I)
События (events, (rui, u, i, . . .) ∈ D)
Требуется:
Предсказать предпочтение:
ˆrui = Predict(u, i, . . .) ≈ rui
9
Коллаборативная фильтрация: формальная постановка
Имеется:
Пользователи (users, u ∈ U)
Объекты (items, i ∈ I)
События (events, (rui, u, i, . . .) ∈ D)
Требуется:
Предсказать предпочтение:
ˆrui = Predict(u, i, . . .) ≈ rui
Персональные рекомендации:
u → (i1, . . . , iK) = RecommendK(u, . . .)
9
Коллаборативная фильтрация: формальная постановка
Имеется:
Пользователи (users, u ∈ U)
Объекты (items, i ∈ I)
События (events, (rui, u, i, . . .) ∈ D)
Требуется:
Предсказать предпочтение:
ˆrui = Predict(u, i, . . .) ≈ rui
Персональные рекомендации:
u → (i1, . . . , iK) = RecommendK(u, . . .)
Похожие объекты:
i → (i1, . . . , iM ) = SimilarM (i)
9
Netflix Prize
Рассвет рекомендательных систем — Netflix Prize1.
480 189 пользователей;
17 770 фильмов;
100 480 507 оценок {1, 2, 3, 4, 5};
задача: уменьшить RMSE (средне-квадратичное
отклонение) c 0.9514 до 0.8563 (на 10%);
2 октября 2006 — 21 сентября 2009;
1
www.netflixprize.com
10
Netflix Prize
Рассвет рекомендательных систем — Netflix Prize1.
480 189 пользователей;
17 770 фильмов;
100 480 507 оценок {1, 2, 3, 4, 5};
задача: уменьшить RMSE (средне-квадратичное
отклонение) c 0.9514 до 0.8563 (на 10%);
2 октября 2006 — 21 сентября 2009;
приз $1 000 000.
1
www.netflixprize.com
10
План
Виды и области применения рекомендательные систем
Стандартные алгоритмы
Измерение качества рекомендаций
Направления развития
Бонус: тензорные разложения
Memory-based
Кластеризация:
u ∈ F(u),
F(u) состоит из пользователей, “похожих” на u.
ˆrui =
1
|F(u)|
v∈F(u)
rvi
12
Memory-based
Кластеризация:
u ∈ F(u),
F(u) состоит из пользователей, “похожих” на u.
ˆrui =
1
|F(u)|
v∈F(u)
rvi
User-based:
ˆrui = ¯ru +
v∈Ui
sim(u, v)(rvi − ¯rv)
v∈Ui
sim(u, v)
12
Memory-based
Кластеризация:
u ∈ F(u),
F(u) состоит из пользователей, “похожих” на u.
ˆrui =
1
|F(u)|
v∈F(u)
rvi
User-based:
ˆrui = ¯ru +
v∈Ui
sim(u, v)(rvi − ¯rv)
v∈Ui
sim(u, v)
Item-based:
ˆrui = ¯ri +
j∈Iu
sim(i, j)(ruj − ¯rj)
j∈Iu
sim(i, j)
12
Memory-based
Виды функции sim(·, ·):
Корреляция:
sim(i, j) =
u∈Uij
(rui − ¯ri)(ruj − ¯rj)
u∈Ui
(rui − ¯ri)2
u∈Uj
(ruj − ¯rj)2
Косинус:
sim(i, j) =
u∈Uij
ruiruj
u∈Uij
r2
ui u∈Uij
r2
uj
13
Memory-based
Виды функции sim(·, ·):
Корреляция:
sim(i, j) =
u∈Uij
(rui − ¯ri)(ruj − ¯rj)
u∈Ui
(rui − ¯ri)2
u∈Uj
(ruj − ¯rj)2
Косинус:
sim(i, j) =
u∈Uij
ruiruj
u∈Uij
r2
ui u∈Uij
r2
uj
Проблемы:
холодный старт;
ресурсоемкость вычислений;
точность предсказаний.
13
Singular Value Decomposition
14
Singular Value Decomposition
Сингулярное разложение матрицы:
A
n×m
= U
n×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.
14
Singular Value Decomposition
Сингулярное разложение матрицы:
A
n×m
= U
n×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.
Усеченное разложение ранга d:
λd+1, . . . , λmin(n,m) := 0,
A
n×m
= U
n×d
× Σ
d×d
× V
T
d×m
≈ A
14
Singular Value Decomposition
Сингулярное разложение матрицы:
A
n×m
= U
n×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.
Усеченное разложение ранга d:
λd+1, . . . , λmin(n,m) := 0,
A
n×m
= U
n×d
× Σ
d×d
× V
T
d×m
≈ A
A — наилучшее низкоранговое приближение:
A = arg min
B: rkB=d
||A − B||F
14
Singluar Value Decomposition
15
Singluar Value Decomposition
Выявление скрытых признаков объектов и интересов
пользователей!
15
Singluar Value Decomposition
Выявление скрытых признаков объектов и интересов
пользователей!
Проблемы:
Матрица оценок R нам полностью не известна.
Разложение не единственное:
(UΩ)Σ(V Ω)T
= UΣV T
15
SVD: Обучение
Модель:
ˆrui(Θ) = pT
u qi,
Θ = {pu, qi | u ∈ U, i ∈ I}
16
SVD: Обучение
Модель:
ˆrui(Θ) = pT
u qi,
Θ = {pu, qi | u ∈ U, i ∈ I}
Хотим оптимизировать качество предсказаний в будущем:
E(u,i) ˆrui(Θ) − rui
2
→ min
Θ
SVD: Обучение
Модель:
ˆrui(Θ) = pT
u qi,
Θ = {pu, qi | u ∈ U, i ∈ I}
Хотим оптимизировать качество предсказаний в будущем:
E(u,i) ˆrui(Θ) − rui
2
→ min
Θ
Имеем только оценки из прошлого (обучающая выборка):
(u,i)∈D
ˆrui(Θ) − rui
2
качество на обучающей выборке
+
θ∈Θ
λθ θ 2
регуляризация
→ min
Θ
SVD: Методы оптимизации
L(Θ) =
(u,i)∈D
pT
u qi − rui
2
+ λ
u
||pu||2
+
i
||qi||2
17
SVD: Методы оптимизации
L(Θ) =
(u,i)∈D
pT
u qi − rui
2
+ λ
u
||pu||2
+
i
||qi||2
Градиентный спуск:
Θt+1 = Θt − η L(Θ)
SVD: Методы оптимизации
L(Θ) =
(u,i)∈D
pT
u qi − rui
2
+ λ
u
||pu||2
+
i
||qi||2
Градиентный спуск:
Θt+1 = Θt − η L(Θ)
Проблема: работает очень медленно.
SVD: Методы оптимизации
L(Θ) =
(u,i)∈D
pT
u qi − rui
2
+ λ
u
||pu||2
+
i
||qi||2
Градиентный спуск:
Θt+1 = Θt − η L(Θ)
Проблема: работает очень медленно.
Стохастический градиентный спуск:
L(Θ) =
j
Lj(Θ) =
j
(pT
uj
qij
−rujij )2
+λ||puj
||2
+λ||qij
||2
Θt+1 = Θt − η Ljt (Θ)
SVD: Методы оптимизации
L(Θ) =
(u,i)∈D
pT
u qi − rui
2
+ λ
u
||pu||2
+
i
||qi||2
Градиентный спуск:
Θt+1 = Θt − η L(Θ)
Проблема: работает очень медленно.
Стохастический градиентный спуск:
L(Θ) =
j
Lj(Θ) =
j
(pT
uj
qij
−rujij )2
+λ||puj
||2
+λ||qij
||2
Θt+1 = Θt − η Ljt (Θ)
Проблема: не распараллеливается.
SVD: Методы оптимизации
L зависит от всех параметров квадратично. По каждому
параметру можно найти точный оптимум.
18
SVD: Методы оптимизации
L зависит от всех параметров квадратично. По каждому
параметру можно найти точный оптимум.
Для каждого пользователя и для каждого объекта задача
оптимизации — в точности метод наименьших квадратов.
p∗
u(Θ) = arg min
pu
L(Θ) = (QT
u Qu + λI)−1
QT
u ru,
q∗
i (Θ) = arg min
qi
L(Θ) = (P T
i P i + λI)−1
P T
i ri.
18
SVD: Методы оптимизации
L зависит от всех параметров квадратично. По каждому
параметру можно найти точный оптимум.
Для каждого пользователя и для каждого объекта задача
оптимизации — в точности метод наименьших квадратов.
p∗
u(Θ) = arg min
pu
L(Θ) = (QT
u Qu + λI)−1
QT
u ru,
q∗
i (Θ) = arg min
qi
L(Θ) = (P T
i P i + λI)−1
P T
i ri.
Alternating Least Squares:
∀u ∈ U p2t+1
u = p∗
u(Θ2t),
∀i ∈ I q2t+2
i = q∗
i (Θ2t+1).
18
SVD: Методы оптимизации
L зависит от всех параметров квадратично. По каждому
параметру можно найти точный оптимум.
Для каждого пользователя и для каждого объекта задача
оптимизации — в точности метод наименьших квадратов.
p∗
u(Θ) = arg min
pu
L(Θ) = (QT
u Qu + λI)−1
QT
u ru,
q∗
i (Θ) = arg min
qi
L(Θ) = (P T
i P i + λI)−1
P T
i ri.
Alternating Least Squares:
∀u ∈ U p2t+1
u = p∗
u(Θ2t),
∀i ∈ I q2t+2
i = q∗
i (Θ2t+1).
Каждый шаг можно распараллелить.
18
План
Виды и области применения рекомендательные систем
Стандартные алгоритмы
Измерение качества рекомендаций
Направления развития
Бонус: тензорные разложения
Метрики: предсказание оценки
Задача регрессии.
RMSE = 1
|D| D (ˆrui − rui)2
MAE = 1
|D| D |ˆrui − rui|
Метрики: предсказание оценки
Задача регрессии.
RMSE = 1
|D| D (ˆrui − rui)2
MAE = 1
|D| D |ˆrui − rui|
Проблемы:
Не для всех событий известно численное представление.
У каждого пользователя свое представление о шкале
оценок.
Ошибка в предсказании высокой оценки имеет такой же
вес, что и ошибка в предсказании низкой оценки.
Метрики: понравилось ли пользователю?
Задача классификации.
Метрики: понравилось ли пользователю?
Задача классификации.
Precision = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|ˆrui>θ}|
21
Метрики: понравилось ли пользователю?
Задача классификации.
Precision = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|ˆrui>θ}|
Recall = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|rui=1}|
21
Метрики: понравилось ли пользователю?
Задача классификации.
Precision = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|ˆrui>θ}|
Recall = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|rui=1}|
AUC = 1
|...|
rui=1 ru i =0
[ˆrui > ˆru i ]
21
Метрики: понравилось ли пользователю?
Задача классификации.
Precision = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|ˆrui>θ}|
Recall = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|rui=1}|
AUC = 1
|...|
rui=1 ru i =0
[ˆrui > ˆru i ]
LogLikelihood = 1
|D| D rui log ˆrui + (1 − rui) log(1 − ˆrui)
21
Метрики: понравилось ли пользователю?
Задача классификации.
Precision = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|ˆrui>θ}|
Recall = |{(u,i)∈D|ˆrui>θ,rui=1}|
|{(u,i)∈D|rui=1}|
AUC = 1
|...|
rui=1 ru i =0
[ˆrui > ˆru i ]
LogLikelihood = 1
|D| D rui log ˆrui + (1 − rui) log(1 − ˆrui)
Проблемы:
Необходимость специально задавать понятие
“понравилось”.
По-прежнему нет прямой связи с качеством рекомендаций.
21
Метрики: ранжирование
Precision, Recall, . . . на списке top-K, выданном моделью.
22
Метрики: ранжирование
Precision, Recall, . . . на списке top-K, выданном моделью.
NDCG = 1
|U|
u∈U
1
IDCGu
K
k=1
2
ruik −1
log2(1+k)
22
Метрики: ранжирование
Precision, Recall, . . . на списке top-K, выданном моделью.
NDCG = 1
|U|
u∈U
1
IDCGu
K
k=1
2
ruik −1
log2(1+k)
Проблемы:
Нет данных про рекомендованные объекты, которые
пользователь не оценивал.
Оптимизация метрик вычислительно более сложная.
22
Другие свойства рекомендаций
Желаемые свойства рекомендаций, которые, возможно, не
выражаются качеством предсказания:
23
Другие свойства рекомендаций
Желаемые свойства рекомендаций, которые, возможно, не
выражаются качеством предсказания:
Diversity (разнообразие),
23
Другие свойства рекомендаций
Желаемые свойства рекомендаций, которые, возможно, не
выражаются качеством предсказания:
Diversity (разнообразие),
Serendipity (неожиданность),
23
Другие свойства рекомендаций
Желаемые свойства рекомендаций, которые, возможно, не
выражаются качеством предсказания:
Diversity (разнообразие),
Serendipity (неожиданность),
Novelty (новизна),
23
Другие свойства рекомендаций
Желаемые свойства рекомендаций, которые, возможно, не
выражаются качеством предсказания:
Diversity (разнообразие),
Serendipity (неожиданность),
Novelty (новизна),
Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
23
Похожие объекты
Что такое похожие объекты?
24
Похожие объекты
Что такое похожие объекты?
Объекты, похожие по своим признакам (content-based).
Похожие объекты
Что такое похожие объекты?
Объекты, похожие по своим признакам (content-based).
Объекты, которые часто используют вместе («клиенты,
купившие i, также покупали j»).
24
Похожие объекты
Что такое похожие объекты?
Объекты, похожие по своим признакам (content-based).
Объекты, которые часто используют вместе («клиенты,
купившие i, также покупали j»).
Рекомендации для пользователя, которому понравился
данный объект.
Похожие объекты
Что такое похожие объекты?
Объекты, похожие по своим признакам (content-based).
Объекты, которые часто используют вместе («клиенты,
купившие i, также покупали j»).
Рекомендации для пользователя, которому понравился
данный объект.
Рекомендации, в которых данный объект выступает в
качестве контекста.
План
Виды и области применения рекомендательные систем
Стандартные алгоритмы
Измерение качества рекомендаций
Направления развития
Бонус: тензорные разложения
Концептуальные вопросы
26
Концептуальные вопросы
Как строить списки рекомендаций на основе
предсказаний?
26
Концептуальные вопросы
Как строить списки рекомендаций на основе
предсказаний?
Как улучшать качество именно рекомендаций, а не
предсказаний?
26
Концептуальные вопросы
Как строить списки рекомендаций на основе
предсказаний?
Как улучшать качество именно рекомендаций, а не
предсказаний?
Как измерять похожести объектов?
26
Концептуальные вопросы
Как строить списки рекомендаций на основе
предсказаний?
Как улучшать качество именно рекомендаций, а не
предсказаний?
Как измерять похожести объектов?
Как обосновывать рекомендации?
26
Технические вопросы
27
Технические вопросы
Как решать проблему холодного старта для новых
пользователей и новых объектов?
27
Технические вопросы
Как решать проблему холодного старта для новых
пользователей и новых объектов?
Как быстро обновлять рекомендации?
27
Технические вопросы
Как решать проблему холодного старта для новых
пользователей и новых объектов?
Как быстро обновлять рекомендации?
Как быстро находить объекты с наибольшим
предсказанием?
27
Технические вопросы
Как решать проблему холодного старта для новых
пользователей и новых объектов?
Как быстро обновлять рекомендации?
Как быстро находить объекты с наибольшим
предсказанием?
Как измерять качество онлайн-рекомендаций?
27
Технические вопросы
Как решать проблему холодного старта для новых
пользователей и новых объектов?
Как быстро обновлять рекомендации?
Как быстро находить объекты с наибольшим
предсказанием?
Как измерять качество онлайн-рекомендаций?
Как масштабировать систему?
27
Как учитывать дополнительную информацию?
Как учитывать дополнительную информацию?
Как учитывать не только явный (explicit), но и неявный
(implicit) фидбек?
Как учитывать дополнительную информацию?
Как учитывать не только явный (explicit), но и неявный
(implicit) фидбек?
Как учитывать контекст? (Context-aware recommendations)
Как учитывать дополнительную информацию?
Как учитывать не только явный (explicit), но и неявный
(implicit) фидбек?
Как учитывать контекст? (Context-aware recommendations)
Как учитывать признаки объектов? (Гибридные системы)
28
Как учитывать дополнительную информацию?
Как учитывать не только явный (explicit), но и неявный
(implicit) фидбек?
Как учитывать контекст? (Context-aware recommendations)
Как учитывать признаки объектов? (Гибридные системы)
Как учитывать связи между объектами (таксономию)?
28
Как учитывать дополнительную информацию?
Как учитывать не только явный (explicit), но и неявный
(implicit) фидбек?
Как учитывать контекст? (Context-aware recommendations)
Как учитывать признаки объектов? (Гибридные системы)
Как учитывать связи между объектами (таксономию)?
Как учитывать признаки и связи пользователей?
28
Как учитывать дополнительную информацию?
Как учитывать не только явный (explicit), но и неявный
(implicit) фидбек?
Как учитывать контекст? (Context-aware recommendations)
Как учитывать признаки объектов? (Гибридные системы)
Как учитывать связи между объектами (таксономию)?
Как учитывать признаки и связи пользователей?
Как учитывать информацию из других предметных
областей? (Cross-domain recommendations)
28
План
Виды и области применения рекомендательные систем
Стандартные алгоритмы
Измерение качества рекомендаций
Направления развития
Бонус: тензорные разложения
Как учитывать контекст?
30
Тензорные разложения
31
Тензорные разложения
Canonical Decomposition
ˆru,i,l =
d
k=1
pu,k · qi,k · sl,k
31
Тензорные разложения
Canonical Decomposition
ˆru,i,l =
d
k=1
pu,k · qi,k · sl,k
Pairwise Decomposition
ˆru,i,l =
dUI
k=1
pUI
u,k · qUI
i,k +
dUL
k=1
pUL
u,k · sUL
l,k +
dIL
k=1
qIL
i,k · sIL
l,k
31
Тензорные разложения
Canonical Decomposition
ˆru,i,l =
d
k=1
pu,k · qi,k · sl,k
Pairwise Decomposition
ˆru,i,l =
dUI
k=1
pUI
u,k · qUI
i,k +
dUL
k=1
pUL
u,k · sUL
l,k +
dIL
k=1
qIL
i,k · sIL
l,k
Tucker Decomposition
ˆru,i,l =
dU
u =1
dI
i =1
dL
l =1
cu ,i ,l · pu,u · qi,i · sl,l
31
Factorization MachinesLarge Categorical Domains
e Rating
ic 5
ng Hill 3
Wars 1
Wars 4
Trek 5
ic 1
Wars 5
. . .
1 0 0 ...
1 0 0 ...
0 1 0 ...
0 1 0 ...
0 0 1 ...
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
...
...
...
...
...
0 0 1 ... 0 0 1 0 ...
A B C ... TI NH SW ST ...
x(1)
x(2)
x(4)
x(5)
x(6)
x(7)
Feature vector x
User Movie
1 0 0 ... 0 0 1 0 ...x(3)
5
3
4
5
1
5
Target y
y(1)
y(2)
y(4)
y(5)
y(6)
y(7)
1 y(3)
ssion models to this data leads to:
ssion: ˆy(x) = w0 + wu + wi
regression: ˆy(x) = w0 + wu + wi + wu,i
32
Factorization MachinesLarge Categorical Domains
e Rating
ic 5
ng Hill 3
Wars 1
Wars 4
Trek 5
ic 1
Wars 5
. . .
1 0 0 ...
1 0 0 ...
0 1 0 ...
0 1 0 ...
0 0 1 ...
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
...
...
...
...
...
0 0 1 ... 0 0 1 0 ...
A B C ... TI NH SW ST ...
x(1)
x(2)
x(4)
x(5)
x(6)
x(7)
Feature vector x
User Movie
1 0 0 ... 0 0 1 0 ...x(3)
5
3
4
5
1
5
Target y
y(1)
y(2)
y(4)
y(5)
y(6)
y(7)
1 y(3)
ssion models to this data leads to:
ssion: ˆy(x) = w0 + wu + wi
regression: ˆy(x) = w0 + wu + wi + wu,i
SVD:
ˆy(x) = w0 +
n
i=1
wi xi +
n
i=1
n
j=i+1
vi, vj xi xj
Factorization Machines
ˆy(x) = w0 +
n
i=1
wi xi +
n
i=1
n
j=i+1
vi, vj xi xj
orization Machines with libFM
1. Example (from Rendle [2010]) for representing a recommender problem with real valued f
ors x. Every row represents a feature vector xi with its corresponding target yi. For easier inter
the features are grouped into indicators for the active user (blue), active item (red), other movies
33
Спасибо!
34

More Related Content

What's hot

Введение в рекомендательные системы
Введение в рекомендательные системыВведение в рекомендательные системы
Введение в рекомендательные системыAndrey Danilchenko
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
romovpa
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
Technosphere1
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
Technosphere1
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
Technosphere1
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
Technosphere1
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Technosphere1
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийTheoretical mechanics department
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
Technosphere1
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
Technosphere1
 
ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2
Andrey Danilchenko
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
Theoretical mechanics department
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
Technosphere1
 
Morzhin o., november 03, 2011
Morzhin o., november 03, 2011Morzhin o., november 03, 2011
Morzhin o., november 03, 2011oleg_morzhin
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
romovpa
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
Technosphere1
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
Technosphere1
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
Technosphere1
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблей
Technosphere1
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
Technosphere1
 

What's hot (20)

Введение в рекомендательные системы
Введение в рекомендательные системыВведение в рекомендательные системы
Введение в рекомендательные системы
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
Morzhin o., november 03, 2011
Morzhin o., november 03, 2011Morzhin o., november 03, 2011
Morzhin o., november 03, 2011
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблей
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 

Viewers also liked

Кто такой фронтендер
Кто такой фронтендер Кто такой фронтендер
Кто такой фронтендер
Alexandra Kaminskaya
 
Машинное обучение в Яндексе
Машинное обучение в ЯндексеМашинное обучение в Яндексе
Машинное обучение в Яндексе
Alexandra Kaminskaya
 
техпис
техпистехпис
техпис
Alexandra Kaminskaya
 
Академические программы Яндекса
Академические программы ЯндексаАкадемические программы Яндекса
Академические программы Яндекса
Alexandra Kaminskaya
 
Presentation probki-extended-math-ed2
Presentation probki-extended-math-ed2Presentation probki-extended-math-ed2
Presentation probki-extended-math-ed2Alexandra Kaminskaya
 
001 каминская ромашкова
001 каминская ромашкова001 каминская ромашкова
001 каминская ромашковаAlexandra Kaminskaya
 
Сергей Мезенцев — Семантический винегрет
Сергей Мезенцев — Семантический винегрет Сергей Мезенцев — Семантический винегрет
Сергей Мезенцев — Семантический винегрет
Yandex
 

Viewers also liked (8)

002умнов
002умнов002умнов
002умнов
 
Кто такой фронтендер
Кто такой фронтендер Кто такой фронтендер
Кто такой фронтендер
 
Машинное обучение в Яндексе
Машинное обучение в ЯндексеМашинное обучение в Яндексе
Машинное обучение в Яндексе
 
техпис
техпистехпис
техпис
 
Академические программы Яндекса
Академические программы ЯндексаАкадемические программы Яндекса
Академические программы Яндекса
 
Presentation probki-extended-math-ed2
Presentation probki-extended-math-ed2Presentation probki-extended-math-ed2
Presentation probki-extended-math-ed2
 
001 каминская ромашкова
001 каминская ромашкова001 каминская ромашкова
001 каминская ромашкова
 
Сергей Мезенцев — Семантический винегрет
Сергей Мезенцев — Семантический винегрет Сергей Мезенцев — Семантический винегрет
Сергей Мезенцев — Семантический винегрет
 

Similar to Recsys.hse

ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6
Andrey Danilchenko
 
ITMO RecSys course. Autumn 2014. Lecture 3
ITMO RecSys course. Autumn 2014. Lecture 3ITMO RecSys course. Autumn 2014. Lecture 3
ITMO RecSys course. Autumn 2014. Lecture 3
Andrey Danilchenko
 
ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4
Andrey Danilchenko
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...
E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...
E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...
AIST
 
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
AIST
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Nikolay Grebenshikov
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Метод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлМетод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёл
Kirill Netreba
 
Sequence recommenders
Sequence recommendersSequence recommenders
Sequence recommenders
Andrey Danilchenko
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Dmitry Kornev
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Bitworks Software
 
Обработка коллекций. Единая суть и множество проявлений
Обработка коллекций. Единая суть и множество проявленийОбработка коллекций. Единая суть и множество проявлений
Обработка коллекций. Единая суть и множество проявлений
corehard_by
 
LSU2
LSU2LSU2
экспертные системы
экспертные системыэкспертные системы
экспертные системыsokol_klinik
 
2013 03 21_bigdata_seminar_05
2013 03 21_bigdata_seminar_052013 03 21_bigdata_seminar_05
2013 03 21_bigdata_seminar_05
Roman Brovko
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
Mikhail Kurnosov
 
Денис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектированияДенис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектированияYandex
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014
Andrii Gakhov
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс2berkas
 

Similar to Recsys.hse (20)

ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6
 
ITMO RecSys course. Autumn 2014. Lecture 3
ITMO RecSys course. Autumn 2014. Lecture 3ITMO RecSys course. Autumn 2014. Lecture 3
ITMO RecSys course. Autumn 2014. Lecture 3
 
ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...
E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...
E. Ostheimer, V. G. Labunets, D. E. Komarov, T. S. Fedorova and V. V. Ganzha ...
 
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
Метод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлМетод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёл
 
Sequence recommenders
Sequence recommendersSequence recommenders
Sequence recommenders
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
Обработка коллекций. Единая суть и множество проявлений
Обработка коллекций. Единая суть и множество проявленийОбработка коллекций. Единая суть и множество проявлений
Обработка коллекций. Единая суть и множество проявлений
 
LSU2
LSU2LSU2
LSU2
 
экспертные системы
экспертные системыэкспертные системы
экспертные системы
 
2013 03 21_bigdata_seminar_05
2013 03 21_bigdata_seminar_052013 03 21_bigdata_seminar_05
2013 03 21_bigdata_seminar_05
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Денис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектированияДенис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектирования
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
 

Recsys.hse

  • 1. 1
  • 2. Рекомендательные системы и факторизационные модели Михаил Ройзнер 23 апреля 2014 г. 2
  • 3. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  • 10. И другие категории Заведения на карте Новости, статьи, сайты Концерты, театры, выставки Видео Книги Приложения Игры Путешествия Социальные связи . . .
  • 11. Виды рекомендательных систем Content-based Пользователю рекомендуются объекты, похожие на те, которые этот пользователь уже употребил. Похожести оцениваются по признакам содержимого объектов. Сильная зависимость от предметной области, полезность рекомендаций ограничена. 8
  • 12. Виды рекомендательных систем Content-based Пользователю рекомендуются объекты, похожие на те, которые этот пользователь уже употребил. Похожести оцениваются по признакам содержимого объектов. Сильная зависимость от предметной области, полезность рекомендаций ограничена. Коллаборативная фильтрация (Collaborative Filtering) Для рекомендаций используется история оценок как самого пользователя, так и других пользователей. Более универсальный подход, часто дает лучший результат. Есть свои проблемы (например, холодный старт). 8
  • 13. Виды рекомендательных систем Content-based Пользователю рекомендуются объекты, похожие на те, которые этот пользователь уже употребил. Похожести оцениваются по признакам содержимого объектов. Сильная зависимость от предметной области, полезность рекомендаций ограничена. Коллаборативная фильтрация (Collaborative Filtering) Для рекомендаций используется история оценок как самого пользователя, так и других пользователей. Более универсальный подход, часто дает лучший результат. Есть свои проблемы (например, холодный старт). Гибридные системы Сочетают оба подхода. 8
  • 14. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) 9
  • 15. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) Требуется: Предсказать предпочтение: ˆrui = Predict(u, i, . . .) ≈ rui 9
  • 16. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) Требуется: Предсказать предпочтение: ˆrui = Predict(u, i, . . .) ≈ rui Персональные рекомендации: u → (i1, . . . , iK) = RecommendK(u, . . .) 9
  • 17. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) Требуется: Предсказать предпочтение: ˆrui = Predict(u, i, . . .) ≈ rui Персональные рекомендации: u → (i1, . . . , iK) = RecommendK(u, . . .) Похожие объекты: i → (i1, . . . , iM ) = SimilarM (i) 9
  • 18. Netflix Prize Рассвет рекомендательных систем — Netflix Prize1. 480 189 пользователей; 17 770 фильмов; 100 480 507 оценок {1, 2, 3, 4, 5}; задача: уменьшить RMSE (средне-квадратичное отклонение) c 0.9514 до 0.8563 (на 10%); 2 октября 2006 — 21 сентября 2009; 1 www.netflixprize.com 10
  • 19. Netflix Prize Рассвет рекомендательных систем — Netflix Prize1. 480 189 пользователей; 17 770 фильмов; 100 480 507 оценок {1, 2, 3, 4, 5}; задача: уменьшить RMSE (средне-квадратичное отклонение) c 0.9514 до 0.8563 (на 10%); 2 октября 2006 — 21 сентября 2009; приз $1 000 000. 1 www.netflixprize.com 10
  • 20. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  • 21. Memory-based Кластеризация: u ∈ F(u), F(u) состоит из пользователей, “похожих” на u. ˆrui = 1 |F(u)| v∈F(u) rvi 12
  • 22. Memory-based Кластеризация: u ∈ F(u), F(u) состоит из пользователей, “похожих” на u. ˆrui = 1 |F(u)| v∈F(u) rvi User-based: ˆrui = ¯ru + v∈Ui sim(u, v)(rvi − ¯rv) v∈Ui sim(u, v) 12
  • 23. Memory-based Кластеризация: u ∈ F(u), F(u) состоит из пользователей, “похожих” на u. ˆrui = 1 |F(u)| v∈F(u) rvi User-based: ˆrui = ¯ru + v∈Ui sim(u, v)(rvi − ¯rv) v∈Ui sim(u, v) Item-based: ˆrui = ¯ri + j∈Iu sim(i, j)(ruj − ¯rj) j∈Iu sim(i, j) 12
  • 24. Memory-based Виды функции sim(·, ·): Корреляция: sim(i, j) = u∈Uij (rui − ¯ri)(ruj − ¯rj) u∈Ui (rui − ¯ri)2 u∈Uj (ruj − ¯rj)2 Косинус: sim(i, j) = u∈Uij ruiruj u∈Uij r2 ui u∈Uij r2 uj 13
  • 25. Memory-based Виды функции sim(·, ·): Корреляция: sim(i, j) = u∈Uij (rui − ¯ri)(ruj − ¯rj) u∈Ui (rui − ¯ri)2 u∈Uj (ruj − ¯rj)2 Косинус: sim(i, j) = u∈Uij ruiruj u∈Uij r2 ui u∈Uij r2 uj Проблемы: холодный старт; ресурсоемкость вычислений; точность предсказаний. 13
  • 27. Singular Value Decomposition Сингулярное разложение матрицы: A n×m = U n×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. 14
  • 28. Singular Value Decomposition Сингулярное разложение матрицы: A n×m = U n×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. Усеченное разложение ранга d: λd+1, . . . , λmin(n,m) := 0, A n×m = U n×d × Σ d×d × V T d×m ≈ A 14
  • 29. Singular Value Decomposition Сингулярное разложение матрицы: A n×m = U n×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. Усеченное разложение ранга d: λd+1, . . . , λmin(n,m) := 0, A n×m = U n×d × Σ d×d × V T d×m ≈ A A — наилучшее низкоранговое приближение: A = arg min B: rkB=d ||A − B||F 14
  • 31. Singluar Value Decomposition Выявление скрытых признаков объектов и интересов пользователей! 15
  • 32. Singluar Value Decomposition Выявление скрытых признаков объектов и интересов пользователей! Проблемы: Матрица оценок R нам полностью не известна. Разложение не единственное: (UΩ)Σ(V Ω)T = UΣV T 15
  • 33. SVD: Обучение Модель: ˆrui(Θ) = pT u qi, Θ = {pu, qi | u ∈ U, i ∈ I} 16
  • 34. SVD: Обучение Модель: ˆrui(Θ) = pT u qi, Θ = {pu, qi | u ∈ U, i ∈ I} Хотим оптимизировать качество предсказаний в будущем: E(u,i) ˆrui(Θ) − rui 2 → min Θ
  • 35. SVD: Обучение Модель: ˆrui(Θ) = pT u qi, Θ = {pu, qi | u ∈ U, i ∈ I} Хотим оптимизировать качество предсказаний в будущем: E(u,i) ˆrui(Θ) − rui 2 → min Θ Имеем только оценки из прошлого (обучающая выборка): (u,i)∈D ˆrui(Θ) − rui 2 качество на обучающей выборке + θ∈Θ λθ θ 2 регуляризация → min Θ
  • 36. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 17
  • 37. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ)
  • 38. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ) Проблема: работает очень медленно.
  • 39. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ) Проблема: работает очень медленно. Стохастический градиентный спуск: L(Θ) = j Lj(Θ) = j (pT uj qij −rujij )2 +λ||puj ||2 +λ||qij ||2 Θt+1 = Θt − η Ljt (Θ)
  • 40. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ) Проблема: работает очень медленно. Стохастический градиентный спуск: L(Θ) = j Lj(Θ) = j (pT uj qij −rujij )2 +λ||puj ||2 +λ||qij ||2 Θt+1 = Θt − η Ljt (Θ) Проблема: не распараллеливается.
  • 41. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. 18
  • 42. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. Для каждого пользователя и для каждого объекта задача оптимизации — в точности метод наименьших квадратов. p∗ u(Θ) = arg min pu L(Θ) = (QT u Qu + λI)−1 QT u ru, q∗ i (Θ) = arg min qi L(Θ) = (P T i P i + λI)−1 P T i ri. 18
  • 43. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. Для каждого пользователя и для каждого объекта задача оптимизации — в точности метод наименьших квадратов. p∗ u(Θ) = arg min pu L(Θ) = (QT u Qu + λI)−1 QT u ru, q∗ i (Θ) = arg min qi L(Θ) = (P T i P i + λI)−1 P T i ri. Alternating Least Squares: ∀u ∈ U p2t+1 u = p∗ u(Θ2t), ∀i ∈ I q2t+2 i = q∗ i (Θ2t+1). 18
  • 44. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. Для каждого пользователя и для каждого объекта задача оптимизации — в точности метод наименьших квадратов. p∗ u(Θ) = arg min pu L(Θ) = (QT u Qu + λI)−1 QT u ru, q∗ i (Θ) = arg min qi L(Θ) = (P T i P i + λI)−1 P T i ri. Alternating Least Squares: ∀u ∈ U p2t+1 u = p∗ u(Θ2t), ∀i ∈ I q2t+2 i = q∗ i (Θ2t+1). Каждый шаг можно распараллелить. 18
  • 45. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  • 46. Метрики: предсказание оценки Задача регрессии. RMSE = 1 |D| D (ˆrui − rui)2 MAE = 1 |D| D |ˆrui − rui|
  • 47. Метрики: предсказание оценки Задача регрессии. RMSE = 1 |D| D (ˆrui − rui)2 MAE = 1 |D| D |ˆrui − rui| Проблемы: Не для всех событий известно численное представление. У каждого пользователя свое представление о шкале оценок. Ошибка в предсказании высокой оценки имеет такой же вес, что и ошибка в предсказании низкой оценки.
  • 48. Метрики: понравилось ли пользователю? Задача классификации.
  • 49. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| 21
  • 50. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| 21
  • 51. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| AUC = 1 |...| rui=1 ru i =0 [ˆrui > ˆru i ] 21
  • 52. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| AUC = 1 |...| rui=1 ru i =0 [ˆrui > ˆru i ] LogLikelihood = 1 |D| D rui log ˆrui + (1 − rui) log(1 − ˆrui) 21
  • 53. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| AUC = 1 |...| rui=1 ru i =0 [ˆrui > ˆru i ] LogLikelihood = 1 |D| D rui log ˆrui + (1 − rui) log(1 − ˆrui) Проблемы: Необходимость специально задавать понятие “понравилось”. По-прежнему нет прямой связи с качеством рекомендаций. 21
  • 54. Метрики: ранжирование Precision, Recall, . . . на списке top-K, выданном моделью. 22
  • 55. Метрики: ранжирование Precision, Recall, . . . на списке top-K, выданном моделью. NDCG = 1 |U| u∈U 1 IDCGu K k=1 2 ruik −1 log2(1+k) 22
  • 56. Метрики: ранжирование Precision, Recall, . . . на списке top-K, выданном моделью. NDCG = 1 |U| u∈U 1 IDCGu K k=1 2 ruik −1 log2(1+k) Проблемы: Нет данных про рекомендованные объекты, которые пользователь не оценивал. Оптимизация метрик вычислительно более сложная. 22
  • 57. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: 23
  • 58. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), 23
  • 59. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), Serendipity (неожиданность), 23
  • 60. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), Serendipity (неожиданность), Novelty (новизна), 23
  • 61. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), Serendipity (неожиданность), Novelty (новизна), Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . . 23
  • 62. Похожие объекты Что такое похожие объекты? 24
  • 63. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based).
  • 64. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based). Объекты, которые часто используют вместе («клиенты, купившие i, также покупали j»). 24
  • 65. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based). Объекты, которые часто используют вместе («клиенты, купившие i, также покупали j»). Рекомендации для пользователя, которому понравился данный объект.
  • 66. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based). Объекты, которые часто используют вместе («клиенты, купившие i, также покупали j»). Рекомендации для пользователя, которому понравился данный объект. Рекомендации, в которых данный объект выступает в качестве контекста.
  • 67. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  • 69. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? 26
  • 70. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? Как улучшать качество именно рекомендаций, а не предсказаний? 26
  • 71. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? Как улучшать качество именно рекомендаций, а не предсказаний? Как измерять похожести объектов? 26
  • 72. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? Как улучшать качество именно рекомендаций, а не предсказаний? Как измерять похожести объектов? Как обосновывать рекомендации? 26
  • 74. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? 27
  • 75. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? 27
  • 76. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? Как быстро находить объекты с наибольшим предсказанием? 27
  • 77. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? Как быстро находить объекты с наибольшим предсказанием? Как измерять качество онлайн-рекомендаций? 27
  • 78. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? Как быстро находить объекты с наибольшим предсказанием? Как измерять качество онлайн-рекомендаций? Как масштабировать систему? 27
  • 80. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек?
  • 81. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations)
  • 82. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) 28
  • 83. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) Как учитывать связи между объектами (таксономию)? 28
  • 84. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) Как учитывать связи между объектами (таксономию)? Как учитывать признаки и связи пользователей? 28
  • 85. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) Как учитывать связи между объектами (таксономию)? Как учитывать признаки и связи пользователей? Как учитывать информацию из других предметных областей? (Cross-domain recommendations) 28
  • 86. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  • 90. Тензорные разложения Canonical Decomposition ˆru,i,l = d k=1 pu,k · qi,k · sl,k Pairwise Decomposition ˆru,i,l = dUI k=1 pUI u,k · qUI i,k + dUL k=1 pUL u,k · sUL l,k + dIL k=1 qIL i,k · sIL l,k 31
  • 91. Тензорные разложения Canonical Decomposition ˆru,i,l = d k=1 pu,k · qi,k · sl,k Pairwise Decomposition ˆru,i,l = dUI k=1 pUI u,k · qUI i,k + dUL k=1 pUL u,k · sUL l,k + dIL k=1 qIL i,k · sIL l,k Tucker Decomposition ˆru,i,l = dU u =1 dI i =1 dL l =1 cu ,i ,l · pu,u · qi,i · sl,l 31
  • 92. Factorization MachinesLarge Categorical Domains e Rating ic 5 ng Hill 3 Wars 1 Wars 4 Trek 5 ic 1 Wars 5 . . . 1 0 0 ... 1 0 0 ... 0 1 0 ... 0 1 0 ... 0 0 1 ... 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 ... ... ... ... ... 0 0 1 ... 0 0 1 0 ... A B C ... TI NH SW ST ... x(1) x(2) x(4) x(5) x(6) x(7) Feature vector x User Movie 1 0 0 ... 0 0 1 0 ...x(3) 5 3 4 5 1 5 Target y y(1) y(2) y(4) y(5) y(6) y(7) 1 y(3) ssion models to this data leads to: ssion: ˆy(x) = w0 + wu + wi regression: ˆy(x) = w0 + wu + wi + wu,i 32
  • 93. Factorization MachinesLarge Categorical Domains e Rating ic 5 ng Hill 3 Wars 1 Wars 4 Trek 5 ic 1 Wars 5 . . . 1 0 0 ... 1 0 0 ... 0 1 0 ... 0 1 0 ... 0 0 1 ... 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 ... ... ... ... ... 0 0 1 ... 0 0 1 0 ... A B C ... TI NH SW ST ... x(1) x(2) x(4) x(5) x(6) x(7) Feature vector x User Movie 1 0 0 ... 0 0 1 0 ...x(3) 5 3 4 5 1 5 Target y y(1) y(2) y(4) y(5) y(6) y(7) 1 y(3) ssion models to this data leads to: ssion: ˆy(x) = w0 + wu + wi regression: ˆy(x) = w0 + wu + wi + wu,i SVD: ˆy(x) = w0 + n i=1 wi xi + n i=1 n j=i+1 vi, vj xi xj
  • 94. Factorization Machines ˆy(x) = w0 + n i=1 wi xi + n i=1 n j=i+1 vi, vj xi xj orization Machines with libFM 1. Example (from Rendle [2010]) for representing a recommender problem with real valued f ors x. Every row represents a feature vector xi with its corresponding target yi. For easier inter the features are grouped into indicators for the active user (blue), active item (red), other movies 33