SlideShare a Scribd company logo
Рекомендательные системы 
Лекция №5: 
Deep learning 
Андрей Данильченко 
НИУ ИТМО, 13 декабря 2014
Как построить модель 
естественного языка?
Language probabilistic model 
Текст — это последовательность слов. Тогда можно записать: 
TΠ 
T ) = p(wt | w1 
p(w1 
t−1) 
t=1 
T w1,w2…wT ( ) 
Если использовать только последние n слов, то получим n-gram model: 
t−1) ≈ p(wt | wt−n+1 
p(wt | w1 
t−1 ) 
где w — последовательность слов 1
Как обучать такие модели? 
• Введем вектора слов 
• Выразим вероятность следующего слова через 
вектора предыдущих 
• Обучим вектора и параметры модели, 
максимизируя правдоподобие
Feedforward NN language model
Что происходит в сети? 
p wt | wt−1,!,wt−n+1 ( ) = 
exp ywt ( ) 
exp yi ( ) 
i 
Σ 
x = C wt−1 ( ),( C(wt−2 ),!,C(wt−n+1)) 
C 
H 
U 
W y = b +Wx +U tanh(d +Hx)
Backprop для NNLM 
Forward: 
1. 
2. 
3. 
4. 
x(k) = C wt−k ( ) 
x = (x(1), x(2),!, x(n −1)) 
o = d +Hx 
a = tanh(o) 
yj = bj + aUj 
если есть прямые связи 
yj = yj + xWj 
pj = exp yj ( ) 
s = s + pj 
pj = 
pj 
s 
Backward: 
1. 
2. 
3. (если есть прямые связи) 
4. 
5. 
6. 
∂L 
∂yj 
=δ j == wt ( )− pj 
∂L 
∂yj 
bj = bj +ε 
∂L 
∂x 
= 
∂L 
∂x 
+ 
∂L 
∂yj 
Wj ; 
∂L 
∂a 
= 
∂L 
∂a 
+ 
∂L 
∂yj 
Uj ; 
∂L 
∂yj 
Wj =Wj +ε 
x 
∂L 
∂yj 
Uj =Uj +ε 
a 
∂L 
∂ok 
2 ( ) ∂L 
= 1− ak 
∂ak 
; 
∂L 
∂x 
= 
∂L 
∂x 
+H" 
∂L 
∂o 
∂L 
∂o 
d = d +ε 
∂L 
∂o 
; H = H +ε 
x" 
∂L 
∂x 
C(wt−k ) = C(wt−k )+ε 
(k)
│ Сама NNLM — обучение 
│ с учителем. 
│ Вектора слов — обучение 
│ без учителя! 
8
Recurrent NN Language Model 
Input layer: 
x(t) = w(t)+ s(t −1) 
Σ 
Context layer: 
sj (t) =σ xi (t)uji 
i 
" 
# $ 
% 
& ' 
Σ 
Output layer: 
yk (t) = g sj (t)vkj 
j 
" 
# $$ 
% 
& '' 
где g — softmax.
А можно проще? 
10
Continuous bag of words 
wt 
wt−1 wt−2 wt−3 wt+1 wt+2 wt+3 
output 
projection 
input
Hierarchical softmax 
Обычный softmax — слой размера V 
. 
Но вместо линейного слоя можно 
использовать дерево! 
Таким образом, вместо V 
связей 
получается . 
log2 V !" 
#$ 
Одно из самых удачных представлений: 
коды Хаффмана.
Skip-gram model 
wt−1 wt−2 wt−3 wt+1 wt+2 wt+3 
wt 
output 
projection 
input
Behind the model… 
Цель сети: максимизировать логарифм вероятности 
1 
T 
log p wt+ j | wt ( ) 
Σ 
−c≤ j≤c, j≠0 
TΣ 
t=1 
Простая skip-gram модель задает эту вероятность как 
p wO | wI ( ) = 
TvwI ( ) 
exp v!w 
exp v!wO 
V Σ 
TvwI ( ) w=1 
где v ! — «выходной» вектор слова wO 
v — «входной» вектор слова wI
Behind the model (2)… 
Для skip-gram с иерархическим softmax это можно переписать как 
p wO | wI ( ) = 
L(w)−1 
Π 
σ v!n(w, j )vwI ( ) 
j=1 
L(w)−1 
Π 
σ −v"n(w, j )vwI ( ) 
j=1 
если n(w, j +1) = ch(n(w, j)) 
иначе 
где L(w) длина пути в дереве для слова w 
n(w, j) j-й узел в пути от корня к w , то есть n(w,1) = root 
n(w, L(w)) = w 
ch(n) произвольный узел-ребенок n
Negative sampling 
Будем обучать модель с таким objective (вместо H-SM): 
kΣ 
TvwI ( )+ EwI ~Pn (w) logσ −v!wi 
logσ v!wO 
TvwI ( ) #$ 
%& 
i=1
Negative sampling 
Будем обучать модель с таким objective (вместо H-SM): 
kΣ 
TvwI ( )+ EwI ~Pn (w) logσ −v!wi 
logσ v!wO 
TvwI ( ) #$ 
%& 
i=1 
положительные 
примеры
Negative sampling 
Будем обучать модель с таким objective (вместо H-SM): 
kΣ 
TvwI ( )+ EwI ~Pn (w) logσ −v!wi 
logσ v!wO 
TvwI ( ) #$ 
%& 
i=1 
выберем k примеров 
по популярности
Negative sampling 
Будем обучать модель с таким objective (вместо H-SM): 
kΣ 
TvwI ( )+ EwI ~Pn (w) logσ −v!wi 
logσ v!wO 
TvwI ( ) #$ 
%& 
i=1 
будем обучать их 
как негативные
Subsampling of frequent words 
Выкинем слова из обучающего множества с вероятностью: 
p wi ( ) =1− 
t 
f wi ( ) 
где f w — частота слова i ( ) 
t — параметр (обычно ~ 1 0 ) −5
Semantic relationships = vector operations 
X = vector ("biggest")− vector ("big")+vector ("small") 
X ≈ "smallest" 
X = vector ("red")− vector ("green")+vector ("vert") 
X ≈ "rouge" 
тут примерное равенство означает ближайший к X элемент V
│ Казалось бы, причем тут 
│ рекомендации?.. 
Модели NLP можно применять к любым естественным языкам. 
Это могут быть любые последовательности, создаваемые 
человеком. Например, плейлисты. 
22
Как получить вектора 
более длинных сущностей? 
23
Phrase vectors 
В качестве слов в CBOW и Skip-Gram можно передавать 
все, что хочется. Например, частотные фразы. 
Выделение частотных фраз можно сделать так: 
score wi,wj ( ) = 
count wiwj ( )−δ 
count wi ( )× count wj ( ) 
Теперь добавим результаты к словам и запустим word2vec!
doc2vec: document vector clustering 
Chinese Restaurant Process 
• выбираем стол с ближайшей суммой векторов (по косинусам) 
• с вероятностью n/(n+1) садимся за него, иначе за новый 
• или садимся за него, если sim(v,C) > 1/(n+1) 
Вектор документа — сумма векторов наиболее репрезентативного 
кластера (например, по tf-idf).
Paragraph vector: distributed memory 
wt 
d wt−2 wt−1 wt+1 wt+2 
output 
projection 
input
Paragraph vector: distributed BoW 
output 
projection 
input 
wt−1 wt−2 wt+2 wt+1 wt 
d
│ Казалось бы, причем тут 
│ рекомендации?.. 
В качестве документа может выступать что угодно, например, 
пользователь… 
28
А где же “deep” learning?
Music content-based recommender 
Low-level: 
signal, MFCC, tempo 
Semantic gap! 
High-level: 
genre, mood, epoch, instrument 
Content-based recommender
Сверточные сети 
Идея: вместо обучения полносвязной сети давайте смотреть 
на «окрестности» и вводить связи только там. 
Это реализуется операцией свертки. В нашем случае все просто: 
Σ 
s = xici 
i 
…
Архитектура
Где активируются фильтры? 
14 242 250 253 
14 — vibrato singing 
242 — ambience 
250 — vocal thirds 
253 — bass drums 
Фильтр 37 — китайский язык!
│ Можно обучать что 
│ угодно! 
│ Например, вектора SVD. 
34
Удачи! 
Андрей Данильченко 
группа разработки рекомендательных систем, Яндекс 
danilchenko@yandex-team.ru 
http://www.4ducks.ru/itmo-rs-2014-lecture-5.html

More Related Content

PDF
Лекция №5 "Обработка текстов, Naive Bayes"
PDF
Лекция №10 "Алгоритмические композиции. Завершение"
PDF
Лекция №9 "Алгоритмические композиции. Начало"
PDF
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
PDF
Лекция №6 "Линейные модели для классификации и регрессии"
PDF
L11: Метод ансамблей
PDF
Лекция №1 "Задачи Data Mining"
PDF
L6: Метод опорных векторов
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №6 "Линейные модели для классификации и регрессии"
L11: Метод ансамблей
Лекция №1 "Задачи Data Mining"
L6: Метод опорных векторов

What's hot (20)

PDF
L2: Задача классификации и регрессии. Метрики ошибок
PDF
L5: Л5 Байесовские алгоритмы
PDF
Лекция №12 "Ограниченная машина Больцмана"
PDF
L3: Линейная и логистическая регрессия
PDF
Лекция №8 "Методы снижения размерности пространства"
PDF
Лекция №7 "Машина опорных векторов"
PDF
L10: Алгоритмы кластеризации
PDF
Лекция №4 "Задача классификации"
PDF
20110925 circuit complexity_seminar_lecture01_kulikov
PDF
Лекция 9: Графы. Кратчайшие пути в графах
PDF
Векторизация кода (семинар 2)
PDF
многочлены чебышева
PDF
Лекция №3 "Различные алгоритмы кластеризации"
PDF
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
PDF
L7:Задача кластеризации. Метрики качества
PDF
Лекция 7. Стандарт OpenMP (подолжение)
PDF
Лекция 9. Поиск кратчайшего пути в графе
PDF
Решение краевых задач методом конечных элементов
PDF
ITMO RecSys course. Autumn 2014. Lecture 6
PDF
ИТМО Machine Learning. Рекомендательные системы — часть 1
L2: Задача классификации и регрессии. Метрики ошибок
L5: Л5 Байесовские алгоритмы
Лекция №12 "Ограниченная машина Больцмана"
L3: Линейная и логистическая регрессия
Лекция №8 "Методы снижения размерности пространства"
Лекция №7 "Машина опорных векторов"
L10: Алгоритмы кластеризации
Лекция №4 "Задача классификации"
20110925 circuit complexity_seminar_lecture01_kulikov
Лекция 9: Графы. Кратчайшие пути в графах
Векторизация кода (семинар 2)
многочлены чебышева
Лекция №3 "Различные алгоритмы кластеризации"
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
L7:Задача кластеризации. Метрики качества
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 9. Поиск кратчайшего пути в графе
Решение краевых задач методом конечных элементов
ITMO RecSys course. Autumn 2014. Lecture 6
ИТМО Machine Learning. Рекомендательные системы — часть 1
Ad

Similar to ITMO RecSys course. Autumn 2014. Lecture 5 (20)

PPTX
word2vec (part 1)
PDF
word2vec (часть 2)
PPT
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
PDF
20131022 зобнин
PDF
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
PPT
Speech technologies
PDF
ODS.ai Odessa Meetup #4: NLP: изменения за последние 10 лет
PPTX
Классификация текстовых документов на естественных языках
PPTX
Технологический стек классификации текстов на естественных языках
PPT
Разрешение лексической неоднозначности
PDF
CV2015. Лекция 6. Нейросетевые алгоритмы.
PDF
ИТМО Machine Learning. Рекомендательные системы — часть 2
PPTX
Modern neural net architectures - Year 2019 version
PDF
TopRater.com Машинное понимание миллионов отзывов / Павел Велихов (TopRater)
PDF
20111202 machine learning_nikolenko_lecture06
PPT
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
PDF
Сверточные нейронные сети
PDF
Применение методов Deep Learning к диалоговым системам и чат-ботам
PDF
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
PDF
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...
word2vec (part 1)
word2vec (часть 2)
Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием вект...
20131022 зобнин
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Speech technologies
ODS.ai Odessa Meetup #4: NLP: изменения за последние 10 лет
Классификация текстовых документов на естественных языках
Технологический стек классификации текстов на естественных языках
Разрешение лексической неоднозначности
CV2015. Лекция 6. Нейросетевые алгоритмы.
ИТМО Machine Learning. Рекомендательные системы — часть 2
Modern neural net architectures - Year 2019 version
TopRater.com Машинное понимание миллионов отзывов / Павел Велихов (TopRater)
20111202 machine learning_nikolenko_lecture06
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
Сверточные нейронные сети
Применение методов Deep Learning к диалоговым системам и чат-ботам
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...
Ad

More from Andrey Danilchenko (11)

PPTX
ИТМО Machine Learning 2016. Рекомендательные системы
PDF
ИТМО Machine Learning 2015. Рекомендательные системы
PDF
ITMO RecSys course. Autumn 2014. Lecture 4
PDF
ITMO RecSys course. Autumn 2014. Lecture 3
PDF
ITMO RecSys course. Autumn 2014. Lecture 2
PDF
ITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluation
PDF
ITMO RecSys course. Autumn2014. Lecture1
PDF
Cs center-intern-autumn2014
PDF
Рекомендательная система: быстрый старт
PDF
Sequence recommenders
PDF
Введение в рекомендательные системы
ИТМО Machine Learning 2016. Рекомендательные системы
ИТМО Machine Learning 2015. Рекомендательные системы
ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 3
ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluation
ITMO RecSys course. Autumn2014. Lecture1
Cs center-intern-autumn2014
Рекомендательная система: быстрый старт
Sequence recommenders
Введение в рекомендательные системы

ITMO RecSys course. Autumn 2014. Lecture 5

  • 1. Рекомендательные системы Лекция №5: Deep learning Андрей Данильченко НИУ ИТМО, 13 декабря 2014
  • 2. Как построить модель естественного языка?
  • 3. Language probabilistic model Текст — это последовательность слов. Тогда можно записать: TΠ T ) = p(wt | w1 p(w1 t−1) t=1 T w1,w2…wT ( ) Если использовать только последние n слов, то получим n-gram model: t−1) ≈ p(wt | wt−n+1 p(wt | w1 t−1 ) где w — последовательность слов 1
  • 4. Как обучать такие модели? • Введем вектора слов • Выразим вероятность следующего слова через вектора предыдущих • Обучим вектора и параметры модели, максимизируя правдоподобие
  • 6. Что происходит в сети? p wt | wt−1,!,wt−n+1 ( ) = exp ywt ( ) exp yi ( ) i Σ x = C wt−1 ( ),( C(wt−2 ),!,C(wt−n+1)) C H U W y = b +Wx +U tanh(d +Hx)
  • 7. Backprop для NNLM Forward: 1. 2. 3. 4. x(k) = C wt−k ( ) x = (x(1), x(2),!, x(n −1)) o = d +Hx a = tanh(o) yj = bj + aUj если есть прямые связи yj = yj + xWj pj = exp yj ( ) s = s + pj pj = pj s Backward: 1. 2. 3. (если есть прямые связи) 4. 5. 6. ∂L ∂yj =δ j == wt ( )− pj ∂L ∂yj bj = bj +ε ∂L ∂x = ∂L ∂x + ∂L ∂yj Wj ; ∂L ∂a = ∂L ∂a + ∂L ∂yj Uj ; ∂L ∂yj Wj =Wj +ε x ∂L ∂yj Uj =Uj +ε a ∂L ∂ok 2 ( ) ∂L = 1− ak ∂ak ; ∂L ∂x = ∂L ∂x +H" ∂L ∂o ∂L ∂o d = d +ε ∂L ∂o ; H = H +ε x" ∂L ∂x C(wt−k ) = C(wt−k )+ε (k)
  • 8. │ Сама NNLM — обучение │ с учителем. │ Вектора слов — обучение │ без учителя! 8
  • 9. Recurrent NN Language Model Input layer: x(t) = w(t)+ s(t −1) Σ Context layer: sj (t) =σ xi (t)uji i " # $ % & ' Σ Output layer: yk (t) = g sj (t)vkj j " # $$ % & '' где g — softmax.
  • 11. Continuous bag of words wt wt−1 wt−2 wt−3 wt+1 wt+2 wt+3 output projection input
  • 12. Hierarchical softmax Обычный softmax — слой размера V . Но вместо линейного слоя можно использовать дерево! Таким образом, вместо V связей получается . log2 V !" #$ Одно из самых удачных представлений: коды Хаффмана.
  • 13. Skip-gram model wt−1 wt−2 wt−3 wt+1 wt+2 wt+3 wt output projection input
  • 14. Behind the model… Цель сети: максимизировать логарифм вероятности 1 T log p wt+ j | wt ( ) Σ −c≤ j≤c, j≠0 TΣ t=1 Простая skip-gram модель задает эту вероятность как p wO | wI ( ) = TvwI ( ) exp v!w exp v!wO V Σ TvwI ( ) w=1 где v ! — «выходной» вектор слова wO v — «входной» вектор слова wI
  • 15. Behind the model (2)… Для skip-gram с иерархическим softmax это можно переписать как p wO | wI ( ) = L(w)−1 Π σ v!n(w, j )vwI ( ) j=1 L(w)−1 Π σ −v"n(w, j )vwI ( ) j=1 если n(w, j +1) = ch(n(w, j)) иначе где L(w) длина пути в дереве для слова w n(w, j) j-й узел в пути от корня к w , то есть n(w,1) = root n(w, L(w)) = w ch(n) произвольный узел-ребенок n
  • 16. Negative sampling Будем обучать модель с таким objective (вместо H-SM): kΣ TvwI ( )+ EwI ~Pn (w) logσ −v!wi logσ v!wO TvwI ( ) #$ %& i=1
  • 17. Negative sampling Будем обучать модель с таким objective (вместо H-SM): kΣ TvwI ( )+ EwI ~Pn (w) logσ −v!wi logσ v!wO TvwI ( ) #$ %& i=1 положительные примеры
  • 18. Negative sampling Будем обучать модель с таким objective (вместо H-SM): kΣ TvwI ( )+ EwI ~Pn (w) logσ −v!wi logσ v!wO TvwI ( ) #$ %& i=1 выберем k примеров по популярности
  • 19. Negative sampling Будем обучать модель с таким objective (вместо H-SM): kΣ TvwI ( )+ EwI ~Pn (w) logσ −v!wi logσ v!wO TvwI ( ) #$ %& i=1 будем обучать их как негативные
  • 20. Subsampling of frequent words Выкинем слова из обучающего множества с вероятностью: p wi ( ) =1− t f wi ( ) где f w — частота слова i ( ) t — параметр (обычно ~ 1 0 ) −5
  • 21. Semantic relationships = vector operations X = vector ("biggest")− vector ("big")+vector ("small") X ≈ "smallest" X = vector ("red")− vector ("green")+vector ("vert") X ≈ "rouge" тут примерное равенство означает ближайший к X элемент V
  • 22. │ Казалось бы, причем тут │ рекомендации?.. Модели NLP можно применять к любым естественным языкам. Это могут быть любые последовательности, создаваемые человеком. Например, плейлисты. 22
  • 23. Как получить вектора более длинных сущностей? 23
  • 24. Phrase vectors В качестве слов в CBOW и Skip-Gram можно передавать все, что хочется. Например, частотные фразы. Выделение частотных фраз можно сделать так: score wi,wj ( ) = count wiwj ( )−δ count wi ( )× count wj ( ) Теперь добавим результаты к словам и запустим word2vec!
  • 25. doc2vec: document vector clustering Chinese Restaurant Process • выбираем стол с ближайшей суммой векторов (по косинусам) • с вероятностью n/(n+1) садимся за него, иначе за новый • или садимся за него, если sim(v,C) > 1/(n+1) Вектор документа — сумма векторов наиболее репрезентативного кластера (например, по tf-idf).
  • 26. Paragraph vector: distributed memory wt d wt−2 wt−1 wt+1 wt+2 output projection input
  • 27. Paragraph vector: distributed BoW output projection input wt−1 wt−2 wt+2 wt+1 wt d
  • 28. │ Казалось бы, причем тут │ рекомендации?.. В качестве документа может выступать что угодно, например, пользователь… 28
  • 29. А где же “deep” learning?
  • 30. Music content-based recommender Low-level: signal, MFCC, tempo Semantic gap! High-level: genre, mood, epoch, instrument Content-based recommender
  • 31. Сверточные сети Идея: вместо обучения полносвязной сети давайте смотреть на «окрестности» и вводить связи только там. Это реализуется операцией свертки. В нашем случае все просто: Σ s = xici i …
  • 33. Где активируются фильтры? 14 242 250 253 14 — vibrato singing 242 — ambience 250 — vocal thirds 253 — bass drums Фильтр 37 — китайский язык!
  • 34. │ Можно обучать что │ угодно! │ Например, вектора SVD. 34
  • 35. Удачи! Андрей Данильченко группа разработки рекомендательных систем, Яндекс danilchenko@yandex-team.ru http://www.4ducks.ru/itmo-rs-2014-lecture-5.html