Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
NIPS2015読み会
End-To-End Memory Networks
S. Sukhbaatar, A. Szlam,
J. Weston, R. Fergus
Preferred Infrastructure
海野  裕也(@unno...
Memory networks
l  2013年年辺りからFacebookが取り組んでいる
テーマ
l  ⾃自然⽂文で与えられた事実を記憶し、質問に対し
て⾃自然に答えるフレームワークを考えている
l  今回の話は、全体の仕組みをend-...
これ、1年年前の
論論⽂文だよね
3
4
今⽇日話すわけ
l  春にChainerで再実装した時、ちゃんと動かな
かった
l  年年末に作りなおしたら、ちゃんと動いた(デー
タ読むところのバグだった)
l  トータルで300⾏行行くらい
l  Chainer上での対応を交えなが...
対象のタスク:bAbI task
l  ⼈人が部屋の中を⾏行行動した事実が書かれていて、途中途中
で簡単な質問をされる
l  極めて⼈人⼯工的なタスクで、語彙も⾮非常に限られている
(177語彙)
6
定式化
l  ⼊入⼒力力
l  知識識源: {x1, x2, … , xn}
l  質問: q
l  それぞれ⾃自然⽂文(任意⻑⾧長の単語列列=整数列列)
l  出⼒力力
l  質問への回答: a (単⼀一の単語=整数)
l  パ...
⼿手法概要
8
⽂文のエンコード
l  埋め込みベクトルの和にするだけ
l  F.sum(model.A(x), axis=1)
9	
語彙数 V	
次
元
数
n	
1 3 2 5 1x=	
単語ID
∑	
 =
検索索⽤用の「記憶」を作る
l  ⼊入⼒力力⽂文xiを埋め込みベクトルAで、先の要領領でベクトル
miに直す
10	
1 3 2 5 1x1=	
4 3 1 7x2=	
1 3 4 8 9x3=	
	
m1	
m2	
m3	
m4	
・・・	...
クエリのエンコード
l  クエリは別の埋め込みBで、同様にエンコードしてuに
する
11	
B	
 3 4 1 7 9q =	
u =
記憶の重要度度を計算する
l  各miとuの内積を取って、Softmaxにかけて、⽂文の重要
度度をはかり、piとする(Attention)
l  p = F.softmax(F.batch_matmul(m, u))
12	
m1	
m2...
回答⽤用の「記憶」を作る
各⽂文xiは埋め込みCを使って別のベクトルciを作る
13	
1 3 2 5 1x1=	
4 3 1 7x2=	
1 3 4 8 9x3=	
	
c1	
 c2	
 c3	
 c4	
・・・	
C
回答⽤用の知識識をまとめる
l  ciをpiで重みづけして線形和を取ってoとする
l  o = F.batch_matmul(F.swapaxes(c ,2, 1), p)
14	
p1	
 p2	
 p3	
 p4	
c1	
 c2	
 ...
回答を⽣生成する
l  もとの質問uとoを⾜足して、できたベクトルをWにかけて
答えを得る
l  loss = F.softmax_cross_entropy(model.W(u + o), a)
15	
o	
 u	
+	
 W
おさらい
l  知識識源xiはAを使ってmiに、Cを使ってciに
l  質問qはBを使ってuに
l  miとuの内積とsoftmaxを取って、各知識識に対す
る重みpiに
l  ciをpiで重み付き和を取ってoに
l  o + uをW...
これって何しているんだろう?
17	
類似ベクトルで
検索索している雰囲気
BoWでベク
トル化
答え情報が
埋め込まれる?
答えを選択?
多層化
l  先の処理理の出⼒力力を、次の
層の⼊入⼒力力に使う
l  何回も使う
l  複数の⽂文からしか帰結で
きないことを回答でき
る?
18
ここから細かい⼯工夫が沢⼭山
19
重みに対する制約
l  Adjacent
l  上位階層との重みベクトルを共通にする
l  Ak+t = Ck
l  B = A1
l  これは重みpiの計算のときに、qもxも同じエン
コードをすることを⾔言っている
l  Laye...
時間に対する調整(temporal encoding)
l  新しい知識識を選んで欲しいので、時刻に対して重みをつ
ける
l  さらっと書いてあるが、これがないと新しい情報が重要
ということがわからないので、根本的に⼤大事な(そして
雑な)...
20種類の異異なる種類の質問への正解率率率
22	
※多層化は3段、Adjacent制約
※数字は小さいほうがよい	
ヒントを使った学習なので
スコアが良良い
単語の位置に対する調整(position encoding)
l  流流⽯石に単なる埋め込みベクトルの総和は気が引ける
l  ⽂文中の位置に応じて重みをかえる
23	
単語ごとの重み
位置に基づいて計算
PEの効果
24
さらに⾊色々・・・
l Linear start (LS)
l  学習初期の段階ではsoftmax層を抜いて、学
習を早める
l  Random noise (RN)
l  学習時に10%の空の記憶をいれる
l  正則化の効果がある?...
最終結果
26	
だいぶ良良くなった!
⾔言語モデルによる実験(おまけ?)
l  ⽂文の代わりに全部⽂文字だと思う(単⼀一の埋め込
みベクトル)
l  質問は定数ベクトル
l  回答は次の単語
l  感覚的には何⽂文字前の単語の、どういう情報を
使って次を予測するか学習する
...
結果だけ
28
所感
l  事実を覚えて回答する、という記憶・質問・回
答の⼀一連のプロセスをend-to-endにやるという、
⽅方向性を⽰示したのがポイント
l  タスク⾃自体は依然としてトイタスクだが、徐々
に現実のタスクに近づけていくと思われる
l...
まとめ
l  複数の⽂文からなる事実から、質問に答えるタス
クを、end-to-endで学習する⼿手法を提案した
l  単語の埋め込み、⽂文のエンコード、各事実に対
するattention、回答の⽣生成までを単⼀一のネット
ワークにする
l...
Upcoming SlideShare
Loading in …5
×

NIP2015読み会「End-To-End Memory Networks」

9,123 views

Published on

NIPS2015読み会で話した、「End-To-End Memory Networks」の資料です

Published in: Technology

NIP2015読み会「End-To-End Memory Networks」

  1. 1. NIPS2015読み会 End-To-End Memory Networks S. Sukhbaatar, A. Szlam, J. Weston, R. Fergus Preferred Infrastructure 海野  裕也(@unnonouno) 図はすべて元論文から引用 2016/01/20 NIPS2015読み会@ドワンゴ
  2. 2. Memory networks l  2013年年辺りからFacebookが取り組んでいる テーマ l  ⾃自然⽂文で与えられた事実を記憶し、質問に対し て⾃自然に答えるフレームワークを考えている l  今回の話は、全体の仕組みをend-to-endで学習 する 2
  3. 3. これ、1年年前の 論論⽂文だよね 3
  4. 4. 4
  5. 5. 今⽇日話すわけ l  春にChainerで再実装した時、ちゃんと動かな かった l  年年末に作りなおしたら、ちゃんと動いた(デー タ読むところのバグだった) l  トータルで300⾏行行くらい l  Chainer上での対応を交えながら解説 5
  6. 6. 対象のタスク:bAbI task l  ⼈人が部屋の中を⾏行行動した事実が書かれていて、途中途中 で簡単な質問をされる l  極めて⼈人⼯工的なタスクで、語彙も⾮非常に限られている (177語彙) 6
  7. 7. 定式化 l  ⼊入⼒力力 l  知識識源: {x1, x2, … , xn} l  質問: q l  それぞれ⾃自然⽂文(任意⻑⾧長の単語列列=整数列列) l  出⼒力力 l  質問への回答: a (単⼀一の単語=整数) l  パラメータ l  埋め込みベクトル⾏行行列列: A, B, C (d x V次元) l  回答⽤用⾏行行列列: W (V x d次元) l  d: 埋め込みベクトルの次元数、V: 語彙数 7
  8. 8. ⼿手法概要 8
  9. 9. ⽂文のエンコード l  埋め込みベクトルの和にするだけ l  F.sum(model.A(x), axis=1) 9 語彙数 V 次 元 数 n 1 3 2 5 1x= 単語ID ∑ =
  10. 10. 検索索⽤用の「記憶」を作る l  ⼊入⼒力力⽂文xiを埋め込みベクトルAで、先の要領領でベクトル miに直す 10 1 3 2 5 1x1= 4 3 1 7x2= 1 3 4 8 9x3= m1 m2 m3 m4 ・・・ A
  11. 11. クエリのエンコード l  クエリは別の埋め込みBで、同様にエンコードしてuに する 11 B 3 4 1 7 9q = u =
  12. 12. 記憶の重要度度を計算する l  各miとuの内積を取って、Softmaxにかけて、⽂文の重要 度度をはかり、piとする(Attention) l  p = F.softmax(F.batch_matmul(m, u)) 12 m1 m2 m3 m4 u p1 p2 p3 p4 pi = softmax(mi Tu)
  13. 13. 回答⽤用の「記憶」を作る 各⽂文xiは埋め込みCを使って別のベクトルciを作る 13 1 3 2 5 1x1= 4 3 1 7x2= 1 3 4 8 9x3= c1 c2 c3 c4 ・・・ C
  14. 14. 回答⽤用の知識識をまとめる l  ciをpiで重みづけして線形和を取ってoとする l  o = F.batch_matmul(F.swapaxes(c ,2, 1), p) 14 p1 p2 p3 p4 c1 c2 c3 c4 x ∑ = o
  15. 15. 回答を⽣生成する l  もとの質問uとoを⾜足して、できたベクトルをWにかけて 答えを得る l  loss = F.softmax_cross_entropy(model.W(u + o), a) 15 o u + W
  16. 16. おさらい l  知識識源xiはAを使ってmiに、Cを使ってciに l  質問qはBを使ってuに l  miとuの内積とsoftmaxを取って、各知識識に対す る重みpiに l  ciをpiで重み付き和を取ってoに l  o + uをWにかけて、期待する答えaとの softmax cross entropyをlossとする 16
  17. 17. これって何しているんだろう? 17 類似ベクトルで 検索索している雰囲気 BoWでベク トル化 答え情報が 埋め込まれる? 答えを選択?
  18. 18. 多層化 l  先の処理理の出⼒力力を、次の 層の⼊入⼒力力に使う l  何回も使う l  複数の⽂文からしか帰結で きないことを回答でき る? 18
  19. 19. ここから細かい⼯工夫が沢⼭山 19
  20. 20. 重みに対する制約 l  Adjacent l  上位階層との重みベクトルを共通にする l  Ak+t = Ck l  B = A1 l  これは重みpiの計算のときに、qもxも同じエン コードをすることを⾔言っている l  Layer-wise l  A1 = A2 = … l  C1 = C2 = … 20 基本、こちらを使う
  21. 21. 時間に対する調整(temporal encoding) l  新しい知識識を選んで欲しいので、時刻に対して重みをつ ける l  さらっと書いてあるが、これがないと新しい情報が重要 ということがわからないので、根本的に⼤大事な(そして 雑な)⼯工夫 21 時刻に応じたベクトルを⾜足す x1 = Sam walks into the kitchen x2 = Sam walks into the bedroom q = Where is Sam?
  22. 22. 20種類の異異なる種類の質問への正解率率率 22 ※多層化は3段、Adjacent制約 ※数字は小さいほうがよい ヒントを使った学習なので スコアが良良い
  23. 23. 単語の位置に対する調整(position encoding) l  流流⽯石に単なる埋め込みベクトルの総和は気が引ける l  ⽂文中の位置に応じて重みをかえる 23 単語ごとの重み 位置に基づいて計算
  24. 24. PEの効果 24
  25. 25. さらに⾊色々・・・ l Linear start (LS) l  学習初期の段階ではsoftmax層を抜いて、学 習を早める l  Random noise (RN) l  学習時に10%の空の記憶をいれる l  正則化の効果がある? 25
  26. 26. 最終結果 26 だいぶ良良くなった!
  27. 27. ⾔言語モデルによる実験(おまけ?) l  ⽂文の代わりに全部⽂文字だと思う(単⼀一の埋め込 みベクトル) l  質問は定数ベクトル l  回答は次の単語 l  感覚的には何⽂文字前の単語の、どういう情報を 使って次を予測するか学習する 27
  28. 28. 結果だけ 28
  29. 29. 所感 l  事実を覚えて回答する、という記憶・質問・回 答の⼀一連のプロセスをend-to-endにやるという、 ⽅方向性を⽰示したのがポイント l  タスク⾃自体は依然としてトイタスクだが、徐々 に現実のタスクに近づけていくと思われる l  ヒューリスティックは極めて多く、⼯工夫のしど ころは多い 29
  30. 30. まとめ l  複数の⽂文からなる事実から、質問に答えるタス クを、end-to-endで学習する⼿手法を提案した l  単語の埋め込み、⽂文のエンコード、各事実に対 するattention、回答の⽣生成までを単⼀一のネット ワークにする l  トイタスクだが、平均エラー率率率6%程度度まで達成 した l  ヒューリスティックは極めて多い 30

×