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
16
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
20
深層学習時代の自然言語処理ビジネス @DLLAB 言語・音声ナイト
unnonouno
0
38
ベンチャー企業で言葉を扱うロボットの研究開発をする @東京大学 電子情報学特論I
unnonouno
0
34
PFNにおけるセミナー活動 @NLP2018 言語処理研究者・技術者の育成と未来への連携WS
unnonouno
0
10
進化するChainer @JSAI2017
unnonouno
0
19
予測型戦略を知るための機械学習チュートリアル @BigData Conference 2017 Spring
unnonouno
0
15
深層学習フレームワーク Chainerとその進化
unnonouno
0
17
深層学習による機械とのコミュニケーション @DeNA TechCon 2017
unnonouno
0
27
最先端NLP勉強会 “Learning Language Games through Interaction” @第8回最先端NLP勉強会
unnonouno
0
12
Other Decks in Technology
See All in Technology
雲勉LT_Amazon Bedrock AgentCoreを知りAIエージェントに入門しよう!
ymae
2
180
改竄して学ぶコンテナサプライチェーンセキュリティ ~コンテナイメージの完全性を目指して~/tampering-container-supplychain-security
mochizuki875
1
370
JJUG CCC 2025 Fall バッチ性能!!劇的ビフォーアフター
hayashiyuu1
1
390
FFMとJVMの実装から学ぶJavaのインテグリティ
kazumura
0
150
Capitole du Libre 2025 - Keynote - Cloud du Coeur
ju_hnny5
0
120
ローカルLLM基礎知識 / local LLM basics 2025
kishida
18
5.7k
機密情報の漏洩を防げ! Webフロントエンド開発で意識すべき漏洩パターンとその対策
mizdra
PRO
14
5.2k
AWS re:Invent 2025 で頻出の 生成 AI サービスをおさらい
komakichi
2
180
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
830
スタートアップの事業成長を支えるアーキテクチャとエンジニアリング
doragt
1
5.1k
技術広報のOKRで生み出す 開発組織への価値 〜 カンファレンス協賛を通して育む学びの文化 〜 / Creating Value for Development Organisations Through Technical Communications OKRs — Nurturing a Culture of Learning Through Conference Sponsorship —
pauli
5
490
プロダクト負債と歩む持続可能なサービスを育てるための挑戦
sansantech
PRO
1
650
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.1k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Docker and Python
trallard
46
3.7k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Embracing the Ebb and Flow
colly
88
4.9k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
RailsConf 2023
tenderlove
30
1.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
It's Worth the Effort
3n
187
28k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
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