12. Рекомендации на основе содержания
7
Вася
Большой куш
Поймай меня,
если сможешь
Счастливое
число Слевина
Лучшее
предложение
Нравится
13. Рекомендации на основе содержания
7
Игра на
понижение
Карты, деньги,
два ствола
Волк с
Уолл-стрит
11 друзей Оушена
Рекомендации
Вася
Большой куш
Поймай меня,
если сможешь
Счастливое
число Слевина
Лучшее
предложение
Нравится
14. Netflix Prize
› 2006–2009
› 100 млн оценок
› Задача: улучшить качество
предсказания оценки пользователя
на 10%
› $1 000 000
netflixprize.com 8
24. Матрикснет
› Мощный алгоритм машинного обучения
› Основан на градиентном бустинге
деревьев решений (GBDT)
› Поддерживает различные типы задач
машинного обучения (регрессия,
классификация, ранжирование)
› Устойчив к переобучению
› Хорошо работает даже без настройки
yandex.ru/company/technologies/matrixnet 13
25. Матрикснет
› Мощный алгоритм машинного обучения
› Основан на градиентном бустинге
деревьев решений (GBDT)
› Поддерживает различные типы задач
машинного обучения (регрессия,
классификация, ранжирование)
› Устойчив к переобучению
› Хорошо работает даже без настройки
yandex.ru/company/technologies/matrixnet 13
26. Матрикснет
› Мощный алгоритм машинного обучения
› Основан на градиентном бустинге
деревьев решений (GBDT)
› Поддерживает различные типы задач
машинного обучения (регрессия,
классификация, ранжирование)
› Устойчив к переобучению
› Хорошо работает даже без настройки
yandex.ru/company/technologies/matrixnet 13
пол
возраст
времясуток
…
геолокация
признаки
27. Матрикснет
› Мощный алгоритм машинного обучения
› Основан на градиентном бустинге
деревьев решений (GBDT)
› Поддерживает различные типы задач
машинного обучения (регрессия,
классификация, ранжирование)
› Устойчив к переобучению
› Хорошо работает даже без настройки
yandex.ru/company/technologies/matrixnet 13
пол
возраст
времясуток
…
геолокация
признаки
like
dislike
like
like
like
dislike
28. Матрикснет
› Мощный алгоритм машинного обучения
› Основан на градиентном бустинге
деревьев решений (GBDT)
› Поддерживает различные типы задач
машинного обучения (регрессия,
классификация, ранжирование)
› Устойчив к переобучению
› Хорошо работает даже без настройки
yandex.ru/company/technologies/matrixnet 13
пол
возраст
времясуток
…
геолокация
признаки
like
dislike
like
like
like
dislike
29. Матрикснет
› Мощный алгоритм машинного обучения
› Основан на градиентном бустинге
деревьев решений (GBDT)
› Поддерживает различные типы задач
машинного обучения (регрессия,
классификация, ранжирование)
› Устойчив к переобучению
› Хорошо работает даже без настройки
yandex.ru/company/technologies/matrixnet 13
пол
возраст
времясуток
…
геолокация
признаки
like
dislike
like
like
like
dislike
like
34. › Вместо явных идентификаторов
можно использовать агрегат по
истории
Статистические агрегаты
35. › Вместо явных идентификаторов
можно использовать агрегат по
истории
Статистические агрегаты
– CTR документа
36. › Вместо явных идентификаторов
можно использовать агрегат по
истории
Статистические агрегаты
– CTR документа
– Доля лайков среди всех
прослушиваний трека
37. › Вместо явных идентификаторов
можно использовать агрегат по
истории
› Можно использовать всю историю
действий с объектом или только
персональную
Статистические агрегаты
– CTR документа
– Доля лайков среди всех
прослушиваний трека
38. › Вместо явных идентификаторов
можно использовать агрегат по
истории
› Можно использовать всю историю
действий с объектом или только
персональную
Статистические агрегаты
– CTR документа
– Доля лайков среди всех
прослушиваний трека
– Сколько раз данный
пользователь слушал данный
трек
39. › Вместо явных идентификаторов
можно использовать агрегат по
истории
› Можно использовать всю историю
действий с объектом или только
персональную
› Можно использовать связи
объектов
Статистические агрегаты
– CTR документа
– Доля лайков среди всех
прослушиваний трека
– Сколько раз данный
пользователь слушал данный
трек
40. › Вместо явных идентификаторов
можно использовать агрегат по
истории
› Можно использовать всю историю
действий с объектом или только
персональную
› Можно использовать связи
объектов
Статистические агрегаты
– CTR документа
– Доля лайков среди всех
прослушиваний трека
– Сколько раз данный
пользователь слушал данный
трек
– Когда пользователь
в последний раз покупал товар
той же категории
41. › Среднее значение какого-то
признака объектов, с которыми
взаимодействовал пользователь
Статистические агрегаты
42. › Среднее значение какого-то
признака объектов, с которыми
взаимодействовал пользователь
Статистические агрегаты
– Средняя цена просмотренных
пользователей товаров
43. › Среднее значение какого-то
признака объектов, с которыми
взаимодействовал пользователь
› Среднее значение какого-то
признака пользователей, которые
взаимодействовали с объектом
Статистические агрегаты
– Средняя цена просмотренных
пользователей товаров
44. › Среднее значение какого-то
признака объектов, с которыми
взаимодействовал пользователь
› Среднее значение какого-то
признака пользователей, которые
взаимодействовали с объектом
Статистические агрегаты
– Средняя цена просмотренных
пользователей товаров
– Средний возраст пользователей,
покупающих этот товар
60. Градиентный спуск
27
Обновление параметров
на каждой итерации:
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
X
(u,i)2D
hpu, qii rui
2
+
X
u2U
kpuk2
+
X
i2I
kqik2
! min
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
61. Градиентный спуск
27
Обновление параметров
на каждой итерации:
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
X
(u,i)2D
hpu, qii rui
2
+
X
u2U
kpuk2
+
X
i2I
kqik2
! min
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
62. Стохастический градиентный спуск
28
Обновление параметров
на каждой итерации:
X
(u,i)2D
hpu, qii rui
2
+
X
u2U
kpuk2
+
X
i2I
kqik2
! min
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
NEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
63. Стохастический градиентный спуск
28
Обновление параметров
на каждой итерации:
X
(u,i)2D
hpu, qii rui
2
+
X
u2U
kpuk2
+
X
i2I
kqik2
! min
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
qNEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
pNEW
u = pu 2⌘
⇣ X
i2Du
hpu, qii rui qi + pu
⌘
NEW
i = qi 2⌘
⇣ X
u2Di
hpu, qii rui pu + qi
⌘
65. Обновление параметров на каждой итерации с помощью
метода наименьших квадратов:
Alternating Least Squares (ALS)
29
pNEW
u = argmin
pu
⇣ X
i2Du
hpu, qii rui
2
+ kpuk2
⌘
= (QT
u Qu + I) 1
QuRu
X
(u,i)2D
hpu, qii rui
2
+
X
u2U
kpuk2
+
X
i2I
kqik2
! min
66. Обновление параметров на каждой итерации с помощью
метода наименьших квадратов:
Alternating Least Squares (ALS)
29
pNEW
u = argmin
pu
⇣ X
i2Du
hpu, qii rui
2
+ kpuk2
⌘
= (QT
u Qu + I) 1
QuRu
X
(u,i)2D
hpu, qii rui
2
+
X
u2U
kpuk2
+
X
i2I
kqik2
! min
pNEW
u = argmin
pu
⇣ X
i2Du
hpu, qii rui
2
+ kpuk2
⌘
= (QT
u Qu + I) 1
QuRu
67. Обновление параметров на каждой итерации с помощью
метода наименьших квадратов:
Alternating Least Squares (ALS)
29
pNEW
u = argmin
pu
⇣ X
i2Du
hpu, qii rui
2
+ kpuk2
⌘
= (QT
u Qu + I) 1
QuRu
X
(u,i)2D
hpu, qii rui
2
+
X
u2U
kpuk2
+
X
i2I
kqik2
! min
qNEW
i = argmin
qi
⇣ X
u2Di
hpu, qii rui
2
+ kqik2
⌘
= (PT
i Pi + I) 1
PiRiqNEW
i = argmin
qi
⇣ X
u2Di
hpu, qii rui
2
+ kqik2
⌘
= (PT
i Pi + I) 1
PiRi
pNEW
u = argmin
pu
⇣ X
i2Du
hpu, qii rui
2
+ kpuk2
⌘
= (QT
u Qu + I) 1
QuRu
69. Особенности реализации и модификации
› Обучение в реальном времени
› Учёт неявных предпочтений пользователей (алгоритм IALS)
30
70. Особенности реализации и модификации
› Обучение в реальном времени
› Учёт неявных предпочтений пользователей (алгоритм IALS)
› Учёт связей между объектами
30
71. Особенности реализации и модификации
› Обучение в реальном времени
› Учёт неявных предпочтений пользователей (алгоритм IALS)
› Учёт связей между объектами
› Подбор гиперпараметров
30
87. Ключевые особенности системы Диско
› Обучается в реальном времени
› Сочетает коллаборативную фильтрацию
и рекомендации на основании контента
36
88. Ключевые особенности системы Диско
› Обучается в реальном времени
› Сочетает коллаборативную фильтрацию
и рекомендации на основании контента
› Использует как внутреннюю, так и внешнюю историю
пользовательских действий
36
89. Ключевые особенности системы Диско
› Обучается в реальном времени
› Сочетает коллаборативную фильтрацию
и рекомендации на основании контента
› Использует как внутреннюю, так и внешнюю историю
пользовательских действий
› Поддерживает оптимизацию различных целевых метрик,
интересных для сервиса
36
90. Ключевые особенности системы Диско
› Обучается в реальном времени
› Сочетает коллаборативную фильтрацию
и рекомендации на основании контента
› Использует как внутреннюю, так и внешнюю историю
пользовательских действий
› Поддерживает оптимизацию различных целевых метрик,
интересных для сервиса
› Увеличивает DISCOvery
36
91. Результаты использования системы Диско
Музыка и Радио
› Среднее время прослушивания на пользователя: +50%
› Возвращаемость пользователей: +100%
Маркет
› Переходы в магазины: +146%
› Доход через блоки рекомендаций: +110%
Дзен
› Запущен новый сервис. CTR после запуска: +220%
37