1
Рекомендательные системы ифакторизационные модели
Михаил Ройзнер
20 сентября 2014 г.
2
План
Виды и области применения рекомендательных систем
Простейшие алгоритмы
Введение в линейную алгебру
Алгоритм SVD
Измерение качества рекомендаций
Направления развития
3
Фильмы
4
Фильмы
4
Музыка
5
Музыка
5
Товары
6
Товары
6
И другие категории
I Заведения на картеI Новости, статьи, сайтыI Концерты, театры, выставкиI ВидеоI КнигиI ПриложенияI ИгрыI ПутешествияI Социальные связиI . . .
7
Виды рекомендательных систем
I Content-basedI Пользователю рекомендуются объекты, похожие на те,
которые этот пользователь уже употребил.I Похожести оцениваются по признакам содержимого
объектов.I Сильная зависимость от предметной области, полезность
рекомендаций ограничена.
I Коллаборативная фильтрация (Collaborative Filtering)I Для рекомендаций используется история оценок как
самого пользователя, так и других пользователей.I Более универсальный подход, часто дает лучший результат.I Есть свои проблемы (например, холодный старт).
I Гибридные системыI Сочетают оба подхода.
8
Виды рекомендательных систем
I Content-basedI Пользователю рекомендуются объекты, похожие на те,
которые этот пользователь уже употребил.I Похожести оцениваются по признакам содержимого
объектов.I Сильная зависимость от предметной области, полезность
рекомендаций ограничена.I Коллаборативная фильтрация (Collaborative Filtering)
I Для рекомендаций используется история оценок каксамого пользователя, так и других пользователей.
I Более универсальный подход, часто дает лучший результат.I Есть свои проблемы (например, холодный старт).
I Гибридные системыI Сочетают оба подхода.
8
Виды рекомендательных систем
I Content-basedI Пользователю рекомендуются объекты, похожие на те,
которые этот пользователь уже употребил.I Похожести оцениваются по признакам содержимого
объектов.I Сильная зависимость от предметной области, полезность
рекомендаций ограничена.I Коллаборативная фильтрация (Collaborative Filtering)
I Для рекомендаций используется история оценок каксамого пользователя, так и других пользователей.
I Более универсальный подход, часто дает лучший результат.I Есть свои проблемы (например, холодный старт).
I Гибридные системыI Сочетают оба подхода.
8
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
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
План
Виды и области применения рекомендательных систем
Простейшие алгоритмы
Введение в линейную алгебру
Алгоритм SVD
Измерение качества рекомендаций
Направления развития
10
Формальная постановкаИмеется:
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
Формальная постановкаИмеется:
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
Формальная постановкаИмеется:
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
Формальная постановкаИмеется:
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
Таблица оценок
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
Таблица оценок
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
Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их
истории оценок sim(u, v).
I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:
u 7→ F (u)
I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:
rui =1
|F (u)|∑
v∈F (u)
rvi
Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то
предсказание сделать не получится.
13
Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их
истории оценок sim(u, v).
I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:
u 7→ F (u)
I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:
rui =1
|F (u)|∑
v∈F (u)
rvi
Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то
предсказание сделать не получится.
13
Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их
истории оценок sim(u, v).
I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:
u 7→ F (u)
I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:
rui =1
|F (u)|∑
v∈F (u)
rvi
Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то
предсказание сделать не получится.
13
Кластеризация пользователейI Выберем некоторую меру схожести пользователей по их
истории оценок sim(u, v).
I Объеденим пользователей в группы (кластеры) так, чтобыпохожие пользователи оказывались в одном кластере:
u 7→ F (u)
I Оценку пользователя объекту будем предсказывать каксреднюю оценку всего кластера этому объекту:
rui =1
|F (u)|∑
v∈F (u)
rvi
Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Не учитывается специфика каждого пользователя.I Если в кластере никто не оценивал объект, то
предсказание сделать не получится.13
User-based
rui = ru +
∑v∈Ui
sim(u, v)(rvi − rv)∑v∈Ui
sim(u, v)
Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Холодный старт — новые объекты никому не
рекомендуются.
14
User-based
rui = ru +
∑v∈Ui
sim(u, v)(rvi − rv)∑v∈Ui
sim(u, v)
Проблемы:I Нечего рекомендовать новым/нетипичным пользователям.I Холодный старт — новые объекты никому не
рекомендуются.
14
Item-based
rui = ri +
∑j∈Iu sim(i, j)(ruj − rj)∑
j∈Iu sim(i, j)
Проблемы:I Холодный старт — новые объекты никому не
рекомендуются.I Рекомендации часто тривиальны.
15
Item-based
rui = ri +
∑j∈Iu sim(i, j)(ruj − rj)∑
j∈Iu sim(i, j)
Проблемы:I Холодный старт — новые объекты никому не
рекомендуются.I Рекомендации часто тривиальны.
15
Общие проблемы
I Холодный стартI Плохие предсказания для новых/нетипичных
пользователей/объектовI Тривиальность рекомендацийI Ресурсоемкость вычислений
16
План
Виды и области применения рекомендательных систем
Простейшие алгоритмы
Введение в линейную алгебру
Алгоритм SVD
Измерение качества рекомендаций
Направления развития
17
Введение в линейную алгебру
I Вектор:
x =
x1
x2...xn
I Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебру
I Вектор:
x =
x1
x2...xn
I Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебруI Вектор:
x =
x1
x2...xn
Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебру
I Вектор:(x1, x2, . . . , xn)
x =
x1
x2...xn
I Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебру
I Вектор:
x =
x1
x2...xn
I Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебру
I Вектор:
x =
x1
x2...xn
I Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебруI Вектор:
x =
x1
x2...xn
I Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебру
I Вектор:
x =
x1
x2...xn
I Матрица:
An×m
=
a11 a12 . . . a1m
a21 a22 . . . a2m...
.... . .
...an1 an2 . . . anm
18
Введение в линейную алгебру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
Введение в линейную алгебру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
Введение в линейную алгебру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
Введение в линейную алгебру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
Введение в линейную алгебру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
Введение в линейную алгебру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
Введение в линейную алгебру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
Введение в линейную алгебру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
Введение в линейную алгебру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
План
Виды и области применения рекомендательных систем
Простейшие алгоритмы
Введение в линейную алгебру
Алгоритм SVD
Измерение качества рекомендаций
Направления развития
21
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
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
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
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
SVD для рекомендаций
rui = 〈pu, qi〉
I Выявление скрытых признаков объектов и интересовпользователей!
I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:
(UΩ)Σ(V Ω)T = UΣV T
23
SVD для рекомендаций
rui = 〈pu, qi〉
I Выявление скрытых признаков объектов и интересовпользователей!
I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:
(UΩ)Σ(V Ω)T = UΣV T
23
SVD для рекомендаций
rui = 〈pu, qi〉
I Выявление скрытых признаков объектов и интересовпользователей!
I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:
(UΩ)Σ(V Ω)T = UΣV T
23
SVD для рекомендаций
rui = 〈pu, qi〉
I Выявление скрытых признаков объектов и интересовпользователей!
I Проблемы:I Матрица оценок R нам полностью не известна.I Разложение не единственное:
(UΩ)Σ(V Ω)T = UΣV T
23
Обучение
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
Обучение
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
Обучение
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
Зачем нужна регуляризация?
Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.
Как избегать переобучения?I Простые моделиI Регуляризация
25
Зачем нужна регуляризация?
Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.
Как избегать переобучения?I Простые моделиI Регуляризация
25
Зачем нужна регуляризация?
Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.
Как избегать переобучения?
I Простые моделиI Регуляризация
25
Зачем нужна регуляризация?
Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.
Как избегать переобучения?I Простые модели
I Регуляризация
25
Зачем нужна регуляризация?
Переобучение — явление, когда построенная модель хорошообъясняет примеры из обучающей выборки, но достаточноплохо работает на примерах, не участвовавших в обучении.
Как избегать переобучения?I Простые моделиI Регуляризация
25
Численная оптимизация
J(Θ) =∑
(u,i)∈D
(pTuqi − rui
)2+ λ(∑u
‖pu‖2 +∑i
‖qi‖2)
I Градиент:
∇J(Θ) =
(∂J
∂θ1,∂J
∂θ2, . . . ,
∂J
∂θn
)T
26
Численная оптимизация
J(Θ) =∑
(u,i)∈D
(pTuqi − rui
)2+ λ(∑u
‖pu‖2 +∑i
‖qi‖2)
I Градиент:
∇J(Θ) =
(∂J
∂θ1,∂J
∂θ2, . . . ,
∂J
∂θn
)T
26
Численная оптимизация
J(Θ) =∑
(u,i)∈D
(pTuqi − rui
)2+ λ(∑u
‖pu‖2 +∑i
‖qi‖2)
I Градиент:
∇J(Θ) =
(∂J
∂θ1,∂J
∂θ2, . . . ,
∂J
∂θn
)T
26
Градиентный спуск
Θt+1 = Θt − η∇J(Θ)
Проблемы:I Работает очень медленно.I Находит локальный минимум, а не глобальный.
27
Градиентный спуск
Θt+1 = Θt − η∇J(Θ)
Проблемы:I Работает очень медленно.I Находит локальный минимум, а не глобальный.
27
Градиентный спуск
Θt+1 = Θt − η∇J(Θ)
Проблемы:I Работает очень медленно.I Находит локальный минимум, а не глобальный.
27
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
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
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
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
План
Виды и области применения рекомендательных систем
Простейшие алгоритмы
Введение в линейную алгебру
Алгоритм SVD
Измерение качества рекомендаций
Направления развития
29
Метрики
То, что нельзя измерить, нельзя и улучшить.
Метрика предсказания оценки:
RMSE =
√√√√ 1
|D|∑
(u,i)∈D
(rui − rui)2
Недостатки:I У каждого пользователя свое представление о шкале
оценок.I Ошибка в предсказании высокой оценки имеет такой же
вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь
очень плохое качество ранжирования, и наоборот.
30
Метрики
То, что нельзя измерить, нельзя и улучшить.
Метрика предсказания оценки:
RMSE =
√√√√ 1
|D|∑
(u,i)∈D
(rui − rui)2
Недостатки:I У каждого пользователя свое представление о шкале
оценок.I Ошибка в предсказании высокой оценки имеет такой же
вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь
очень плохое качество ранжирования, и наоборот.
30
Метрики
То, что нельзя измерить, нельзя и улучшить.
Метрика предсказания оценки:
RMSE =
√√√√ 1
|D|∑
(u,i)∈D
(rui − rui)2
Недостатки:I У каждого пользователя свое представление о шкале
оценок.I Ошибка в предсказании высокой оценки имеет такой же
вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь
очень плохое качество ранжирования, и наоборот.
30
Метрики
То, что нельзя измерить, нельзя и улучшить.
Метрика предсказания оценки:
RMSE =
√√√√ 1
|D|∑
(u,i)∈D
(rui − rui)2
Недостатки:I У каждого пользователя свое представление о шкале
оценок.I Ошибка в предсказании высокой оценки имеет такой же
вес, что и ошибка в предсказании низкой оценки.I Можно иметь почти идеальную метрику RMSE, но иметь
очень плохое качество ранжирования, и наоборот.
30
Метрики ранжирования
Пусть R — множество рекомендованных объектов, P —множество объектов, которые на самом деле пользователюпонравятся.
Precision =|R ∩ P ||R|
Recall =|R ∩ P ||P |
Проблемы:I Нет данных про рекомендованные объекты, которые
пользователь не оценивал.I Оптимизировать эти метрики напрямую почти
невозможно.
31
Метрики ранжирования
Пусть R — множество рекомендованных объектов, P —множество объектов, которые на самом деле пользователюпонравятся.
Precision =|R ∩ P ||R|
Recall =|R ∩ P ||P |
Проблемы:I Нет данных про рекомендованные объекты, которые
пользователь не оценивал.I Оптимизировать эти метрики напрямую почти
невозможно.
31
Метрики ранжирования
Пусть R — множество рекомендованных объектов, P —множество объектов, которые на самом деле пользователюпонравятся.
Precision =|R ∩ P ||R|
Recall =|R ∩ P ||P |
Проблемы:I Нет данных про рекомендованные объекты, которые
пользователь не оценивал.I Оптимизировать эти метрики напрямую почти
невозможно.
31
Другие свойства рекомендаций
Желаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Другие свойства рекомендацийЖелаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Другие свойства рекомендаций
Желаемые свойства рекомендаций, которые, возможно, невыражаются качеством предсказания оценки:
I Diversity (разнообразие)
I Serendipity (неожиданность)
I Novelty (новизна)
I Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . .
32
Похожие объекты
Что такое похожие объекты?
I Объекты, похожие по своим признакам (content-based).
I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).
I Рекомендации для пользователя, которому понравилсяданный объект.
I Рекомендации, в которых данный объект выступает вкачестве контекста.
33
Похожие объекты
Что такое похожие объекты?
I Объекты, похожие по своим признакам (content-based).
I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).
I Рекомендации для пользователя, которому понравилсяданный объект.
I Рекомендации, в которых данный объект выступает вкачестве контекста.
33
Похожие объекты
Что такое похожие объекты?
I Объекты, похожие по своим признакам (content-based).
I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).
I Рекомендации для пользователя, которому понравилсяданный объект.
I Рекомендации, в которых данный объект выступает вкачестве контекста.
33
Похожие объекты
Что такое похожие объекты?
I Объекты, похожие по своим признакам (content-based).
I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).
I Рекомендации для пользователя, которому понравилсяданный объект.
I Рекомендации, в которых данный объект выступает вкачестве контекста.
33
Похожие объекты
Что такое похожие объекты?
I Объекты, похожие по своим признакам (content-based).
I Объекты, которые часто используют вместе («клиенты,купившие i, также покупали j»).
I Рекомендации для пользователя, которому понравилсяданный объект.
I Рекомендации, в которых данный объект выступает вкачестве контекста.
33
План
Виды и области применения рекомендательных систем
Простейшие алгоритмы
Введение в линейную алгебру
Алгоритм SVD
Измерение качества рекомендаций
Направления развития
34
Концептуальные вопросы
I Как строить списки рекомендаций на основепредсказаний?
I Как улучшать качество именно рекомендаций, а непредсказаний?
I Как измерять похожести объектов?
I Как обосновывать рекомендации?
35
Концептуальные вопросы
I Как строить списки рекомендаций на основепредсказаний?
I Как улучшать качество именно рекомендаций, а непредсказаний?
I Как измерять похожести объектов?
I Как обосновывать рекомендации?
35
Концептуальные вопросы
I Как строить списки рекомендаций на основепредсказаний?
I Как улучшать качество именно рекомендаций, а непредсказаний?
I Как измерять похожести объектов?
I Как обосновывать рекомендации?
35
Концептуальные вопросы
I Как строить списки рекомендаций на основепредсказаний?
I Как улучшать качество именно рекомендаций, а непредсказаний?
I Как измерять похожести объектов?
I Как обосновывать рекомендации?
35
Концептуальные вопросы
I Как строить списки рекомендаций на основепредсказаний?
I Как улучшать качество именно рекомендаций, а непредсказаний?
I Как измерять похожести объектов?
I Как обосновывать рекомендации?
35
Технические вопросы
I Как решать проблему холодного старта для новыхпользователей и новых объектов?
I Как быстро обновлять рекомендации?
I Как быстро находить объекты с наибольшимпредсказанием?
I Как измерять качество онлайн-рекомендаций?
I Как масштабировать систему?
36
Технические вопросы
I Как решать проблему холодного старта для новыхпользователей и новых объектов?
I Как быстро обновлять рекомендации?
I Как быстро находить объекты с наибольшимпредсказанием?
I Как измерять качество онлайн-рекомендаций?
I Как масштабировать систему?
36
Технические вопросы
I Как решать проблему холодного старта для новыхпользователей и новых объектов?
I Как быстро обновлять рекомендации?
I Как быстро находить объекты с наибольшимпредсказанием?
I Как измерять качество онлайн-рекомендаций?
I Как масштабировать систему?
36
Технические вопросы
I Как решать проблему холодного старта для новыхпользователей и новых объектов?
I Как быстро обновлять рекомендации?
I Как быстро находить объекты с наибольшимпредсказанием?
I Как измерять качество онлайн-рекомендаций?
I Как масштабировать систему?
36
Технические вопросы
I Как решать проблему холодного старта для новыхпользователей и новых объектов?
I Как быстро обновлять рекомендации?
I Как быстро находить объекты с наибольшимпредсказанием?
I Как измерять качество онлайн-рекомендаций?
I Как масштабировать систему?
36
Технические вопросы
I Как решать проблему холодного старта для новыхпользователей и новых объектов?
I Как быстро обновлять рекомендации?
I Как быстро находить объекты с наибольшимпредсказанием?
I Как измерять качество онлайн-рекомендаций?
I Как масштабировать систему?
36
Как учитывать дополнительную информацию?
I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?
I Как учитывать контекст? (Context-aware recommendations)
I Как учитывать признаки объектов? (Гибридные системы)
I Как учитывать связи между объектами (таксономию)?
I Как учитывать признаки и связи пользователей?
I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)
37
Как учитывать дополнительную информацию?
I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?
I Как учитывать контекст? (Context-aware recommendations)
I Как учитывать признаки объектов? (Гибридные системы)
I Как учитывать связи между объектами (таксономию)?
I Как учитывать признаки и связи пользователей?
I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)
37
Как учитывать дополнительную информацию?
I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?
I Как учитывать контекст? (Context-aware recommendations)
I Как учитывать признаки объектов? (Гибридные системы)
I Как учитывать связи между объектами (таксономию)?
I Как учитывать признаки и связи пользователей?
I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)
37
Как учитывать дополнительную информацию?
I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?
I Как учитывать контекст? (Context-aware recommendations)
I Как учитывать признаки объектов? (Гибридные системы)
I Как учитывать связи между объектами (таксономию)?
I Как учитывать признаки и связи пользователей?
I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)
37
Как учитывать дополнительную информацию?
I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?
I Как учитывать контекст? (Context-aware recommendations)
I Как учитывать признаки объектов? (Гибридные системы)
I Как учитывать связи между объектами (таксономию)?
I Как учитывать признаки и связи пользователей?
I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)
37
Как учитывать дополнительную информацию?
I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?
I Как учитывать контекст? (Context-aware recommendations)
I Как учитывать признаки объектов? (Гибридные системы)
I Как учитывать связи между объектами (таксономию)?
I Как учитывать признаки и связи пользователей?
I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)
37
Как учитывать дополнительную информацию?
I Как учитывать не только явный (explicit), но и неявный(implicit) фидбек?
I Как учитывать контекст? (Context-aware recommendations)
I Как учитывать признаки объектов? (Гибридные системы)
I Как учитывать связи между объектами (таксономию)?
I Как учитывать признаки и связи пользователей?
I Как учитывать информацию из других предметныхобластей? (Cross-domain recommendations)
37
Литература
I Введение в алгебру, Кострикин А.И.
I Математический анализ, Зорич В.А.
I Курс теории вероятностей, Гнеденко Б.В.
I Машинное обучение, Воронцов К.В., курс лекций
38
Спасибо!
39