Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
18
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
39
ベンチャー企業で言葉を扱うロボットの研究開発をする @東京大学 電子情報学特論I
unnonouno
0
37
PFNにおけるセミナー活動 @NLP2018 言語処理研究者・技術者の育成と未来への連携WS
unnonouno
0
11
進化するChainer @JSAI2017
unnonouno
0
19
予測型戦略を知るための機械学習チュートリアル @BigData Conference 2017 Spring
unnonouno
0
16
深層学習フレームワーク Chainerとその進化
unnonouno
0
18
深層学習による機械とのコミュニケーション @DeNA TechCon 2017
unnonouno
0
27
最先端NLP勉強会 “Learning Language Games through Interaction” @第8回最先端NLP勉強会
unnonouno
0
13
Other Decks in Technology
See All in Technology
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
1.4k
20251209_WAKECareer_生成AIを活用した設計・開発プロセス
syobochim
5
1.4k
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
1
160
AI活用によるPRレビュー改善の歩み ― 社内全体に広がる学びと実践
lycorptech_jp
PRO
1
180
最近のLinux普段づかいWaylandデスクトップ元年
penguin2716
1
660
直接メモリアクセス
koba789
0
280
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
1
520
eBPFとwaruiBPF
sat
PRO
4
2.5k
計算機科学をRubyと歩む 〜DFA型正規表現エンジンをつくる~
ydah
3
200
[JAWS-UG 横浜支部 #91]DevOps Agent vs CloudWatch Investigations -比較と実践-
sh_fk2
1
240
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
720
5分で知るMicrosoft Ignite
taiponrock
PRO
0
220
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Agile that works and the tools we love
rasmusluckow
331
21k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Bash Introduction
62gerente
615
210k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Code Review Best Practice
trishagee
74
19k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
69k
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