SlideShare a Scribd company logo
Рекомендательные системы
Лекция №6:
Sequence recommenders
Андрей Данильченко
НИУ ИТМО, 20 декабря 2014
Почему классических
рекомендаций может быть
недостаточно?
Рекомендательная система – пример
SVDMetadata Features
Recommender
Рекомендательная система – пример
SVDMetadata Features
Recommender
?
Рекомендательная система – пример
SVDMetadata Features
Recommender
Рекомендательная система – пример 2
SVDMetadata Features
Recommender
│ Плейлист — это фраза на
│ некотором естественном
│ языке
7
Где используют этот язык?
Как построить модель
последовательности?
Station-based model
L S;Θ( )= logP i | s;t,Θ( )
(i,t)∈PS
∑
PS ∈S
∑
Правдоподобие плейлиста станции:
Для станции:
P i | s;t,Θ( )=
exp(rsi;t )
exp(rsj;t )
j
∑
rsi;t = bi + qi
T
vs
Как учесть контекст?
rsi;t = bi + qi
T
vs + vs
slot(t)
+
1
Ps
(t,w)
qj
j∈Ps
(t,w)
∑
#
$
%
%%
&
'
(
((
Введем временные слоты (например, 8 равных слотов в день). Тогда
к вектору трека добавится еще параметры — вектора этого трека
для каждого слота:
rsi;t = bi + qi
T
vs + vs
slot(t)
( )
Кроме того, учтем треки из маленького временного окна (например,
30 минут) :t − w,[ t)
Как учесть негативный фидбек?
Будем обучать правдоподобие так:
L S;Θ( )= logP i | s,t,Θ( )
(i,t)∈PS
∑
PS ∈S
∑ +
+ log 1− P i | s,t,Θ( )( )
(i,t)∈NS
∑
NS ∈S
∑
Stationless model
L S;Θ( )= logP i s;t,Θ( )
(i,t)∈PS
∑
PS ∈S
∑
Правдоподобие плейлиста станции:
Для станции:
P i s;t,Θ( )=
exp(rsi;t )
exp(rsj;t )
j
∑
rsi;t = bi + qi
1( )
( )
T 1
Ps
qj
2( )
j∈Ps
∑ +
1
Ps
(t,w)
qj
3( )
j∈Ps
(t,w)
∑
$
%
&
&&
'
(
)
))
Обучение
η
∂logP i s;t( )
∂θ
=η
∂rsi;t
∂θ
− P j s;t( )
∂rsj;t
∂θj
∑
$
%
&&
'
(
))
Простой SGD с шагом:
Обучение
η
∂logP i s;t( )
∂θ
=η
∂rsi;t
∂θ
− P j s;t( )
∂rsj;t
∂θj
∑
$
%
&&
'
(
))
Простой SGD с шагом:
По всем item-ам!
Importance sampling
w i | S( )=
exp rsi;t( ) P i | S( )
exp rsj;t( ) P j | S( )
j∈J
∑
Будем сэмплировать множество item-ов J из P i | S( )
Тогда вероятность можно заменить наP i | s;t( )
Шаг SGD перепишется как
η
∂logP i s;t( )
∂θ
≈ η
∂rsi;t
∂θ
− w j | S( )
∂rsj;t
∂θj∈J
∑
&
'
((
)
*
++
Как выбрать размер J?
Хочется, чтобы с ходом обучения J росло.
Тогда определим такое правило:
P j | s;t( )
j∈J
∑ > P i | s;t( )⇔ exp rsj;t( )
j∈J
∑ > exp rsi;t( )
Будем сэмплировать item-ы в J, пока оно выполнено.
Снова похожести
18
Item2item with multinomial units
P j |i( )=
exp − yi − yj
2
+ bj( )
exp − yi − yk
2
+ bk( )k
∑
Вероятность j быть похожим на i
Как и раньше обучаем log-likelihood:
L = logP j |i( )
i, j( )∈D
∑
Обучение
Это приводит нас к шагу SGD
Δθ =η
∂logP j |i( )
∂θ
=
=η
∂
∂θ
− yi − yj
2
+ bj( )+ P k |i( )
∂
∂θ
− yi − yk
2
+ bk( )k
∑
%
&
'
(
)
*
И снова при подсчете шага нужно пройтись по всем item-ам…
Importance sampling
Как и раньше будем сэмплировать множество J .
Тогда вероятности заменятся на:
w k |i( )=
exp − yi − yk
2
+ bk( ) P k | D( )
exp − yi − yj
2
+ bj( ) P j | D( )
j∈J
∑
А обновление примет вид:
Δθ =η
∂
∂θ
− yi − yj
2
+ bj( )+ w k |i( )
∂
∂θ
− yi − yk
2
+ bk( )k∈J
∑
&
'
(
)
*
+
Fast retrieval
Наилучший похожий item может быть найден как
max
j≠i
P j |i( )⇔ max
j≠i
− yi − yj
2
+ bj( )
Но это не евклидово пространство!
Fast retrieval
Наилучший похожий item может быть найден как
max
j≠i
P j |i( )⇔ max
j≠i
− yi − yj
2
+ bj( )
Но это не евклидово пространство!
Тогда давайте построим сведение:
ˆyj = yj
T
, Mb − bj
"
#
$
%
T
yi = yi
T
,0]!"
T
max
j≠i
P j |i( )⇔ max
j≠i
yi − ˆyj
2
Как треки представляются
в латентном пространстве?
24
Представление треков
│ Плейлист — это путь
│ в латентном пространстве
26
Single-point model
P p[i]
| p[i−1]
( )=
e
− X p[i]
( )−X p[i−1]
( ) 2
2
e
− X s( )−X p[i−1]
( ) 2
2
s∈S
∑
=
e
−Δ p[i]
,p[i−1]
( )
2
Z(p[i−1]
)
Вероятность следующего трека:
Вероятность плейлиста:
P p( )= P
i=1
kp
∏ p[i]
| p[i−1]
( )=
e
−Δ p[i]
,p[i−1]
( )
2
Z(p[i−1]
)i=1
kp
∏
Обучение
X = argmax
X∈ℜ|S|×d
e−Δ( p[i]
,p[i−1]
)2
Z p[i−1]
( )i=1
kp
∑
p∈D
∑
L D;X( )= −Δ(p[i]
, p[i−1]
)2
− logZ p[i−1]
( )
i=1
kp
∑
p∈D
∑
Максимизируем log-likelihood:
Функционал:
Представление треков
Но трек — это не точка во времени!
Dual-point model
Представляем трек как две точки: начало и конец
Dual-point model
Вероятность плейлиста:
P p( )= P
i=1
kp
∏ p[i]
| p[i−1]
( )=
e
−Δ2 p[i]
,p[i−1]
( )
2
Z2 (p[i−1]
)i=1
kp
∏
V,U( )= argmax
V,U∈ℜ|S|×d
e−Δ2 ( p[i]
,p[i−1]
)2
Z2 p[i−1]
( )i=1
kp
∑
p∈D
∑
Функционал:
где Δ2 s, "s( )= V s( )−U "s( )
U s( ) — входной вектор трека s
V s( ) — выходной вектор трека s
Регуляризация
X = argmax
X∈ℜ|S|×d
L D | X( )− λ X F
2
(V,U) = argmax
V,U∈ℜ|S|×d
L D |V,U( )− λ V F
2
+ U F
2
( )−
−ν Δ2 s,s( )
2
s∈S
∑
Single-point model:
Dual-point model:
Обучение модели
L D |U,V( )= Tabl sa,sb( )
b=1
|S|
∑
a=1
|S|
∑ −Ω V,U( )
l sa,sb( )= −Δ2 sa,sb( )
2
− logZ2 sa( )
U sp( )=U sp( )+
τ
N
Tpb
∂l sp,sb( )
∂U sp( )
−
∂Ω V,U( )
∂U sp( )b=1
|S|
∑
%
&
'
'
(
)
*
*
V sq( )=V sq( )+
τ
N
Tpb
∂l sp,sb( )
∂U sq( )
−
∂Ω V,U( )
∂U sq( )b=1
|S|
∑
%
&
'
'
(
)
*
*
Для каждого трека p обновляем его выходной вектор:
И входные вектора по всем его связям q:
Landmark heuristic
L D |U,V( )= Tabl sa,sb( )
sb∈Ca
∑
a=1
|S|
∑ −Ω V,U( )
Сократим множество «входов» в переходах:
Случайно выберем некоторое количество треков (около 50).
Это наши «ориентиры».
При составлении сначала добавим в него существующие связи.
Затем будем дополнять случайными точками из ориентиров до тех
пор, пока
Ca
Ca
r
N
< r
Расширения модели
Учет популярности:
P p
i[ ]
| p
i−1[ ]
( )=
exp −Δ2 p[i]
, p[i−1]
( )
2
+ bi( )
−Δ2 sj, p[i−1]
( )
2
+ bj
j
∑
Персонализация:
P p
i[ ]
| p
i−1[ ]
,u( )=
exp −Δ2 p[i]
, p[i−1]
( )
2
+ A p[i]
( )
T
B u( )( )
−Δ2 sj, p[i−1]
( )
2
+ A sj( )
T
B u( )
j
∑
Учет тэгов
Введем априорное распределение на вектора треков:
P X s( )|T s( )( )= N
1
T s( )
M t( )
t∈T (s)
∑ ,
1
2λ
Id
#
$
%
%
&
'
(
(
Это хорошо обобщает регуляризацию, если тэгов нет, то
P X s( )|T s( )( )= N 0,
1
2λ
Id
!
"
#
$
%
&
Генерация плейлистов
P p
i[ ]
| p
i−1[ ]
, p
0[ ]
( )=
exp −αΔ p[i]
, p[i−1]
( )
2
+ βbi −γΔ p[i]
, p[0]
( )
2
( )
Z p[i−1]
, p[0]
,α,β,γ( )
В общем виде можно задать так:
Как выглядит результат?
Дрейф векторов
User-dynamic embedding
P p
i[ ]
| p
i−1[ ]
,u(t)
( )=
exp −Δ2 p[i]
, p[i−1]
( )
2
+ Δ p[i]
,u(t)
( )
2
+ bi
(t)
( )
Z p[i]
,u(t)
( )
Пользователь тоже может быть представлен вектором:
Запретим вектору пользователя двигаться слишком быстро:
X u(t)
( )~ N X u(t−1)
( ),
1
2νuser
Id
"
#
$
%
&
'
Удачи!
Андрей Данильченко
группа разработки рекомендательных систем, Яндекс
danilchenko@yandex-team.ru
http://www.4ducks.ru/itmo-rs-2014-lecture-6.html

More Related Content

PDF
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
PDF
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
PDF
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...
PDF
ITMO RecSys course. Autumn 2014. Lecture 3
PDF
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
PDF
Sequence recommenders
PDF
ИТМО Machine Learning. Рекомендательные системы — часть 1
PDF
ИТМО Machine Learning 2015. Рекомендательные системы
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...
ITMO RecSys course. Autumn 2014. Lecture 3
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Sequence recommenders
ИТМО Machine Learning. Рекомендательные системы — часть 1
ИТМО Machine Learning 2015. Рекомендательные системы

What's hot (20)

PDF
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
PDF
ИТМО Machine Learning. Рекомендательные системы — часть 2
PDF
Лекция 8: Графы. Обходы графов
PPT
Защита информации семинар №7
PDF
ITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluation
PDF
ITMO RecSys course. Autumn2014. Lecture1
PDF
Лекция 7. Бинарные кучи. Пирамидальная сортировка
ODP
Мезенцев Павел - Машинное обучение на MapReduce
PDF
Метод конечных разностей
PDF
Лекция 9. Поиск кратчайшего пути в графе
PDF
Лекция 10. Графы. Остовные деревья минимальной стоимости
PDF
Лекция 8: Графы. Обходы графов
PDF
Факторизационные модели в рекомендательных системах
PPT
практика 13
PPTX
ИТМО Machine Learning 2016. Рекомендательные системы
PDF
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
PPTX
Q games
PPT
графы
PDF
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
PPT
20120309 formal semantics shilov_lecture06
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
ИТМО Machine Learning. Рекомендательные системы — часть 2
Лекция 8: Графы. Обходы графов
Защита информации семинар №7
ITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluation
ITMO RecSys course. Autumn2014. Lecture1
Лекция 7. Бинарные кучи. Пирамидальная сортировка
Мезенцев Павел - Машинное обучение на MapReduce
Метод конечных разностей
Лекция 9. Поиск кратчайшего пути в графе
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 8: Графы. Обходы графов
Факторизационные модели в рекомендательных системах
практика 13
ИТМО Machine Learning 2016. Рекомендательные системы
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Q games
графы
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
20120309 formal semantics shilov_lecture06
Ad

Viewers also liked (20)

PDF
Sublinear tolerant property_testing_halfplane
PPTX
51 Use Cases and implications for HPC & Apache Big Data Stack
PDF
שיטות הסתברותיות תרגול 6
PDF
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
PPTX
Большие данные в телеком
PDF
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
PDF
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
PDF
Xtrem n p1560t
PPTX
Практическое использование «больших данных» в бизнесе
PDF
Антон Конушин (НИУ ВШЭ)
PDF
Алексей Натекин (Deloitte)
PPTX
Александр Петров (E-contenta)
PPTX
Александр Семенов (НИУ ВШЭ)
PDF
Григорий Бакунов (Яндекс)
PPTX
Кадомский Сергей - Как продать аналитику бизнесу - Wargaming
PDF
Лекция №6 "Линейные модели для классификации и регрессии"
PDF
Лекция №7 "Машина опорных векторов"
PDF
NVIDIA Deep Learning.
PPT
Александра Кирсанова "Использование Data mining"
PDF
ITMO RecSys course. Autumn 2014. Lecture 5
Sublinear tolerant property_testing_halfplane
51 Use Cases and implications for HPC & Apache Big Data Stack
שיטות הסתברותיות תרגול 6
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Большие данные в телеком
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
Xtrem n p1560t
Практическое использование «больших данных» в бизнесе
Антон Конушин (НИУ ВШЭ)
Алексей Натекин (Deloitte)
Александр Петров (E-contenta)
Александр Семенов (НИУ ВШЭ)
Григорий Бакунов (Яндекс)
Кадомский Сергей - Как продать аналитику бизнесу - Wargaming
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №7 "Машина опорных векторов"
NVIDIA Deep Learning.
Александра Кирсанова "Использование Data mining"
ITMO RecSys course. Autumn 2014. Lecture 5
Ad

Similar to ITMO RecSys course. Autumn 2014. Lecture 6 (7)

PDF
PDF
ITMO RecSys course. Autumn 2014. Lecture 4
PDF
Введение в рекомендательные системы
PDF
Математика в сервисах Яндекса
PDF
Математика в сервисах Яндекса
PDF
Настоящее и будущее рекомендательных систем. Михаил Ройзнер
PPT
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
ITMO RecSys course. Autumn 2014. Lecture 4
Введение в рекомендательные системы
Математика в сервисах Яндекса
Математика в сервисах Яндекса
Настоящее и будущее рекомендательных систем. Михаил Ройзнер
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...

ITMO RecSys course. Autumn 2014. Lecture 6

  • 1. Рекомендательные системы Лекция №6: Sequence recommenders Андрей Данильченко НИУ ИТМО, 20 декабря 2014
  • 3. Рекомендательная система – пример SVDMetadata Features Recommender
  • 4. Рекомендательная система – пример SVDMetadata Features Recommender ?
  • 5. Рекомендательная система – пример SVDMetadata Features Recommender
  • 6. Рекомендательная система – пример 2 SVDMetadata Features Recommender
  • 7. │ Плейлист — это фраза на │ некотором естественном │ языке 7
  • 10. Station-based model L S;Θ( )= logP i | s;t,Θ( ) (i,t)∈PS ∑ PS ∈S ∑ Правдоподобие плейлиста станции: Для станции: P i | s;t,Θ( )= exp(rsi;t ) exp(rsj;t ) j ∑ rsi;t = bi + qi T vs
  • 11. Как учесть контекст? rsi;t = bi + qi T vs + vs slot(t) + 1 Ps (t,w) qj j∈Ps (t,w) ∑ # $ % %% & ' ( (( Введем временные слоты (например, 8 равных слотов в день). Тогда к вектору трека добавится еще параметры — вектора этого трека для каждого слота: rsi;t = bi + qi T vs + vs slot(t) ( ) Кроме того, учтем треки из маленького временного окна (например, 30 минут) :t − w,[ t)
  • 12. Как учесть негативный фидбек? Будем обучать правдоподобие так: L S;Θ( )= logP i | s,t,Θ( ) (i,t)∈PS ∑ PS ∈S ∑ + + log 1− P i | s,t,Θ( )( ) (i,t)∈NS ∑ NS ∈S ∑
  • 13. Stationless model L S;Θ( )= logP i s;t,Θ( ) (i,t)∈PS ∑ PS ∈S ∑ Правдоподобие плейлиста станции: Для станции: P i s;t,Θ( )= exp(rsi;t ) exp(rsj;t ) j ∑ rsi;t = bi + qi 1( ) ( ) T 1 Ps qj 2( ) j∈Ps ∑ + 1 Ps (t,w) qj 3( ) j∈Ps (t,w) ∑ $ % & && ' ( ) ))
  • 14. Обучение η ∂logP i s;t( ) ∂θ =η ∂rsi;t ∂θ − P j s;t( ) ∂rsj;t ∂θj ∑ $ % && ' ( )) Простой SGD с шагом:
  • 15. Обучение η ∂logP i s;t( ) ∂θ =η ∂rsi;t ∂θ − P j s;t( ) ∂rsj;t ∂θj ∑ $ % && ' ( )) Простой SGD с шагом: По всем item-ам!
  • 16. Importance sampling w i | S( )= exp rsi;t( ) P i | S( ) exp rsj;t( ) P j | S( ) j∈J ∑ Будем сэмплировать множество item-ов J из P i | S( ) Тогда вероятность можно заменить наP i | s;t( ) Шаг SGD перепишется как η ∂logP i s;t( ) ∂θ ≈ η ∂rsi;t ∂θ − w j | S( ) ∂rsj;t ∂θj∈J ∑ & ' (( ) * ++
  • 17. Как выбрать размер J? Хочется, чтобы с ходом обучения J росло. Тогда определим такое правило: P j | s;t( ) j∈J ∑ > P i | s;t( )⇔ exp rsj;t( ) j∈J ∑ > exp rsi;t( ) Будем сэмплировать item-ы в J, пока оно выполнено.
  • 19. Item2item with multinomial units P j |i( )= exp − yi − yj 2 + bj( ) exp − yi − yk 2 + bk( )k ∑ Вероятность j быть похожим на i Как и раньше обучаем log-likelihood: L = logP j |i( ) i, j( )∈D ∑
  • 20. Обучение Это приводит нас к шагу SGD Δθ =η ∂logP j |i( ) ∂θ = =η ∂ ∂θ − yi − yj 2 + bj( )+ P k |i( ) ∂ ∂θ − yi − yk 2 + bk( )k ∑ % & ' ( ) * И снова при подсчете шага нужно пройтись по всем item-ам…
  • 21. Importance sampling Как и раньше будем сэмплировать множество J . Тогда вероятности заменятся на: w k |i( )= exp − yi − yk 2 + bk( ) P k | D( ) exp − yi − yj 2 + bj( ) P j | D( ) j∈J ∑ А обновление примет вид: Δθ =η ∂ ∂θ − yi − yj 2 + bj( )+ w k |i( ) ∂ ∂θ − yi − yk 2 + bk( )k∈J ∑ & ' ( ) * +
  • 22. Fast retrieval Наилучший похожий item может быть найден как max j≠i P j |i( )⇔ max j≠i − yi − yj 2 + bj( ) Но это не евклидово пространство!
  • 23. Fast retrieval Наилучший похожий item может быть найден как max j≠i P j |i( )⇔ max j≠i − yi − yj 2 + bj( ) Но это не евклидово пространство! Тогда давайте построим сведение: ˆyj = yj T , Mb − bj " # $ % T yi = yi T ,0]!" T max j≠i P j |i( )⇔ max j≠i yi − ˆyj 2
  • 24. Как треки представляются в латентном пространстве? 24
  • 26. │ Плейлист — это путь │ в латентном пространстве 26
  • 27. Single-point model P p[i] | p[i−1] ( )= e − X p[i] ( )−X p[i−1] ( ) 2 2 e − X s( )−X p[i−1] ( ) 2 2 s∈S ∑ = e −Δ p[i] ,p[i−1] ( ) 2 Z(p[i−1] ) Вероятность следующего трека: Вероятность плейлиста: P p( )= P i=1 kp ∏ p[i] | p[i−1] ( )= e −Δ p[i] ,p[i−1] ( ) 2 Z(p[i−1] )i=1 kp ∏
  • 28. Обучение X = argmax X∈ℜ|S|×d e−Δ( p[i] ,p[i−1] )2 Z p[i−1] ( )i=1 kp ∑ p∈D ∑ L D;X( )= −Δ(p[i] , p[i−1] )2 − logZ p[i−1] ( ) i=1 kp ∑ p∈D ∑ Максимизируем log-likelihood: Функционал:
  • 29. Представление треков Но трек — это не точка во времени!
  • 30. Dual-point model Представляем трек как две точки: начало и конец
  • 31. Dual-point model Вероятность плейлиста: P p( )= P i=1 kp ∏ p[i] | p[i−1] ( )= e −Δ2 p[i] ,p[i−1] ( ) 2 Z2 (p[i−1] )i=1 kp ∏ V,U( )= argmax V,U∈ℜ|S|×d e−Δ2 ( p[i] ,p[i−1] )2 Z2 p[i−1] ( )i=1 kp ∑ p∈D ∑ Функционал: где Δ2 s, "s( )= V s( )−U "s( ) U s( ) — входной вектор трека s V s( ) — выходной вектор трека s
  • 32. Регуляризация X = argmax X∈ℜ|S|×d L D | X( )− λ X F 2 (V,U) = argmax V,U∈ℜ|S|×d L D |V,U( )− λ V F 2 + U F 2 ( )− −ν Δ2 s,s( ) 2 s∈S ∑ Single-point model: Dual-point model:
  • 33. Обучение модели L D |U,V( )= Tabl sa,sb( ) b=1 |S| ∑ a=1 |S| ∑ −Ω V,U( ) l sa,sb( )= −Δ2 sa,sb( ) 2 − logZ2 sa( ) U sp( )=U sp( )+ τ N Tpb ∂l sp,sb( ) ∂U sp( ) − ∂Ω V,U( ) ∂U sp( )b=1 |S| ∑ % & ' ' ( ) * * V sq( )=V sq( )+ τ N Tpb ∂l sp,sb( ) ∂U sq( ) − ∂Ω V,U( ) ∂U sq( )b=1 |S| ∑ % & ' ' ( ) * * Для каждого трека p обновляем его выходной вектор: И входные вектора по всем его связям q:
  • 34. Landmark heuristic L D |U,V( )= Tabl sa,sb( ) sb∈Ca ∑ a=1 |S| ∑ −Ω V,U( ) Сократим множество «входов» в переходах: Случайно выберем некоторое количество треков (около 50). Это наши «ориентиры». При составлении сначала добавим в него существующие связи. Затем будем дополнять случайными точками из ориентиров до тех пор, пока Ca Ca r N < r
  • 35. Расширения модели Учет популярности: P p i[ ] | p i−1[ ] ( )= exp −Δ2 p[i] , p[i−1] ( ) 2 + bi( ) −Δ2 sj, p[i−1] ( ) 2 + bj j ∑ Персонализация: P p i[ ] | p i−1[ ] ,u( )= exp −Δ2 p[i] , p[i−1] ( ) 2 + A p[i] ( ) T B u( )( ) −Δ2 sj, p[i−1] ( ) 2 + A sj( ) T B u( ) j ∑
  • 36. Учет тэгов Введем априорное распределение на вектора треков: P X s( )|T s( )( )= N 1 T s( ) M t( ) t∈T (s) ∑ , 1 2λ Id # $ % % & ' ( ( Это хорошо обобщает регуляризацию, если тэгов нет, то P X s( )|T s( )( )= N 0, 1 2λ Id ! " # $ % &
  • 37. Генерация плейлистов P p i[ ] | p i−1[ ] , p 0[ ] ( )= exp −αΔ p[i] , p[i−1] ( ) 2 + βbi −γΔ p[i] , p[0] ( ) 2 ( ) Z p[i−1] , p[0] ,α,β,γ( ) В общем виде можно задать так:
  • 40. User-dynamic embedding P p i[ ] | p i−1[ ] ,u(t) ( )= exp −Δ2 p[i] , p[i−1] ( ) 2 + Δ p[i] ,u(t) ( ) 2 + bi (t) ( ) Z p[i] ,u(t) ( ) Пользователь тоже может быть представлен вектором: Запретим вектору пользователя двигаться слишком быстро: X u(t) ( )~ N X u(t−1) ( ), 1 2νuser Id " # $ % & '
  • 41. Удачи! Андрей Данильченко группа разработки рекомендательных систем, Яндекс danilchenko@yandex-team.ru http://www.4ducks.ru/itmo-rs-2014-lecture-6.html