Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NIPS2015読み会 End-To-End Memory Networks
Search
Yuya Unno
January 20, 2016
Technology
0
10
NIPS2015読み会 End-To-End Memory Networks
Yuya Unno
January 20, 2016
Tweet
Share
More Decks by Yuya Unno
See All by Yuya Unno
深層学習で切り拓くパーソナルロボットの未来 @東京大学 先端技術セミナー 工学最前線
unnonouno
0
13
深層学習時代の自然言語処理ビジネス @DLLAB 言語・音声ナイト
unnonouno
0
34
ベンチャー企業で言葉を扱うロボットの研究開発をする @東京大学 電子情報学特論I
unnonouno
0
25
PFNにおけるセミナー活動 @NLP2018 言語処理研究者・技術者の育成と未来への連携WS
unnonouno
0
7
進化するChainer @JSAI2017
unnonouno
0
12
予測型戦略を知るための機械学習チュートリアル @BigData Conference 2017 Spring
unnonouno
0
5
深層学習フレームワーク Chainerとその進化
unnonouno
0
13
深層学習による機械とのコミュニケーション @DeNA TechCon 2017
unnonouno
0
21
最先端NLP勉強会 “Learning Language Games through Interaction” @第8回最先端NLP勉強会
unnonouno
0
10
Other Decks in Technology
See All in Technology
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
390
2024年にチャレンジしたことを振り返るぞ
mitchan
0
130
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
podman_update_2024-12
orimanabu
1
260
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
26
11k
Qiita埋め込み用スライド
naoki_0531
0
860
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
31k
UI State設計とテスト方針
rmakiyama
2
440
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Facilitating Awesome Meetings
lara
50
6.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Transcript
NIPS2015読み会 End-To-End Memory Networks S. Sukhbaatar, A. Szlam, J. Weston,
R. Fergus Preferred Infrastructure 海野 裕也(@unnonouno) 図はすべて元論文から引用 2016/01/20 NIPS2015読み会@ドワンゴ
Memory networks l 2013年年辺りからFacebookが取り組んでいる テーマ l ⾃自然⽂文で与えられた事実を記憶し、質問に対し て⾃自然に答えるフレームワークを考えている l 今回の話は、全体の仕組みをend-to-endで学習
する 2
これ、1年年前の 論論⽂文だよね 3
4
今⽇日話すわけ l 春にChainerで再実装した時、ちゃんと動かな かった l 年年末に作りなおしたら、ちゃんと動いた(デー タ読むところのバグだった) l トータルで300⾏行行くらい l
Chainer上での対応を交えながら解説 5
対象のタスク:bAbI task l ⼈人が部屋の中を⾏行行動した事実が書かれていて、途中途中 で簡単な質問をされる l 極めて⼈人⼯工的なタスクで、語彙も⾮非常に限られている (177語彙) 6
定式化 l ⼊入⼒力力 l 知識識源: {x 1 , x 2
, … , x n } l 質問: q l それぞれ⾃自然⽂文(任意⻑⾧長の単語列列=整数列列) l 出⼒力力 l 質問への回答: a (単⼀一の単語=整数) l パラメータ l 埋め込みベクトル⾏行行列列: A, B, C (d x V次元) l 回答⽤用⾏行行列列: W (V x d次元) l d: 埋め込みベクトルの次元数、V: 語彙数 7
⼿手法概要 8
⽂文のエンコード l 埋め込みベクトルの和にするだけ l F .sum(model.A(x), axis=1) 9 語彙数 V
次 元 数 n 1 3 2 5 1 x= 単語ID ∑ =
検索索⽤用の「記憶」を作る l ⼊入⼒力力⽂文x i を埋め込みベクトルAで、先の要領領でベクトル m i に直す 10 1
3 2 5 1 x1 = 4 3 1 7 x2 = 1 3 4 8 9 x3 = 呍 呍 呍 m1 m2 m3 m4 ・・・ A
クエリのエンコード l クエリは別の埋め込みBで、同様にエンコードしてuに する 11 B 3 4 1 7
9 q = u =
記憶の重要度度を計算する l 各m i とuの内積を取って、Softmaxにかけて、⽂文の重要 度度をはかり、p i とする(Attention) l p
= F .softmax(F .batch_matmul(m, u)) 12 m1 m2 m3 m4 u p1 p2 p3 p4 pi = softmax(mi Tu)
回答⽤用の「記憶」を作る 各⽂文x i は埋め込みCを使って別のベクトルc i を作る 13 1 3 2
5 1 x1 = 4 3 1 7 x2 = 1 3 4 8 9 x3 = 呍 呍 呍 c1 c2 c3 c4 ・・・ C
回答⽤用の知識識をまとめる l c i をp i で重みづけして線形和を取ってoとする l o =
F .batch_matmul(F .swapaxes(c ,2, 1), p) 14 p1 p2 p3 p4 c1 c2 c3 c4 x ∑ = o
回答を⽣生成する l もとの質問uとoを⾜足して、できたベクトルをWにかけて 答えを得る l loss = F .softmax_cross_entropy(model.W(u +
o), a) 15 o u + W
おさらい l 知識識源x i はAを使ってm i に、Cを使ってciに l 質問qはBを使ってuに l
m i とuの内積とsoftmaxを取って、各知識識に対す る重みp i に l c i をp i で重み付き和を取ってoに l o + uをWにかけて、期待する答えaとの softmax cross entropyをlossとする 16
これって何しているんだろう? 17 類似ベクトルで 検索索している雰囲気 BoWでベク トル化 答え情報が 埋め込まれる? 答えを選択?
多層化 l 先の処理理の出⼒力力を、次の 層の⼊入⼒力力に使う l 何回も使う l 複数の⽂文からしか帰結で きないことを回答でき る?
18
ここから細かい⼯工夫が沢⼭山 19
重みに対する制約 l Adjacent l 上位階層との重みベクトルを共通にする l A k+t = C
k l B = A 1 l これは重みp i の計算のときに、qもxも同じエン コードをすることを⾔言っている l Layer-wise l A 1 = A 2 = … l C 1 = C 2 = … 20 基本、こちらを使う
時間に対する調整(temporal encoding) l 新しい知識識を選んで欲しいので、時刻に対して重みをつ ける l さらっと書いてあるが、これがないと新しい情報が重要 ということがわからないので、根本的に⼤大事な(そして 雑な)⼯工夫 21
時刻に応じたベクトルを⾜足す x 1 = Sam walks into the kitchen x 2 = Sam walks into the bedroom q = Where is Sam?
20種類の異異なる種類の質問への正解率率率 22 ※多層化は3段、Adjacent制約 ※数字は小さいほうがよい ヒントを使った学習なので スコアが良良い
単語の位置に対する調整(position encoding) l 流流⽯石に単なる埋め込みベクトルの総和は気が引ける l ⽂文中の位置に応じて重みをかえる 23 単語ごとの重み 位置に基づいて計算
PEの効果 24
さらに⾊色々・・・ l Linear start (LS) l 学習初期の段階ではsoftmax層を抜いて、学 習を早める l Random noise
(RN) l 学習時に10%の空の記憶をいれる l 正則化の効果がある? 25
最終結果 26 だいぶ良良くなった!
⾔言語モデルによる実験(おまけ?) l ⽂文の代わりに全部⽂文字だと思う(単⼀一の埋め込 みベクトル) l 質問は定数ベクトル l 回答は次の単語 l 感覚的には何⽂文字前の単語の、どういう情報を
使って次を予測するか学習する 27
結果だけ 28
所感 l 事実を覚えて回答する、という記憶・質問・回 答の⼀一連のプロセスをend-to-endにやるという、 ⽅方向性を⽰示したのがポイント l タスク⾃自体は依然としてトイタスクだが、徐々 に現実のタスクに近づけていくと思われる l ヒューリスティックは極めて多く、⼯工夫のしど
ころは多い 29
まとめ l 複数の⽂文からなる事実から、質問に答えるタス クを、end-to-endで学習する⼿手法を提案した l 単語の埋め込み、⽂文のエンコード、各事実に対 するattention、回答の⽣生成までを単⼀一のネット ワークにする l トイタスクだが、平均エラー率率率6%程度度まで達成
した l ヒューリスティックは極めて多い 30