165K Views
July 21, 21
スライド概要
第1回Webインテリジェンスとインタラクションセミナー(いまさら訊けないシリーズ「言語処理技術」)での発表資料です。
https://www.sigwi2.org/next-sig
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
深層学習による⾃然⾔語処理⼊⾨: word2vecからBERT, GPT-3まで ヤフー株式会社 柴⽥ 知秀 [email protected] 21/07/05 第1回Webインテリジェンスとインタラクションセミナー
⾃⼰紹介 • 柴⽥ 知秀 (しばた ともひで) • 2007年〜 京都⼤学⿊橋研究室 助教・特定講師 • 2019年〜 Yahoo! JAPAN研究所 上席研究員 • 研究分野: 深層学習を⽤いた⽇本語基礎解析 2
⾃然⾔語処理の急激な進展 • BERT(2018年)の登場以降、⽇々新しいモデルが提案されている • ⾃然⾔語処理研究者でも状況を理解するのが⼤変 • 進歩が速い • 少し前の常識がくつがえされる • 論⽂を⾒てもなぜ精度がよくなったか わかりにくい → ここ10年弱の変遷を解説 Transformer [Vaswani+ 17] Figure 1: The Transformer - model architecture. (https://arxiv.org/abs/1706.03762) around each of the sub-layers, followed by layer normalization. We also modify the self-attention sub-layer in the decoder stack to prevent positions from attending to subsequent positions. This 3
⾃然⾔語処理 (Natural Language Processing) ⾃然⾔語(⽇本語、英語など)をコンピュータに処理・理解させる技術 機械翻訳 情報検索 対話システム … 基礎解析 トヨタは1997年、プリウスを発売した。 [組織名] [⼈⼯物] https://translate.google.com/?hl=ja&tab=TT https://www.technologyreview.jp/s/27828/siri-may-get-smarter-by-learning-from-its-mistakes/ 4
⾃然⾔語処理の難しさ • 同じ意味のことが様々な表現で表わされる (同義性) • 東京⼤学 = 東⼤, 購⼊ = 買う, 渡⽶ = アメリカに⾏く • ある表現が様々な意味を表す (多義性) • マック: マクドナルト or マッキントッシュ • かける: (橋を)かける or (ソースを)かける .. • 階層的な系列の扱い • ⽂字 → 単語 → ⽂ → 段落 → ⽂章 • そもそも計算機が⾔語を理解するとはどういうことなのか? 5
画像・⾳声・⾔語 トヨタ は プリウス を 発売 した … https://jaedukseo.me/ppt/powerdeep.pdf http://www.mriaz.me/ 連続値 ⼊⼒ 離散値 固定⻑ ブレークスルー 可変⻑ AlexNet DNN-HMM (2012年) (2010年-) 課題: l 単語をベクトル (連続値)へ l 階層的な系列 (⽂字 → 単語 → ⽂ → ⽂章)の扱い Google翻訳 BERT (2016年) 6 (2018年)
深層学習による⾃然⾔語処理 単語 word2vec Glove ベクトル ⾔語 モデル 単⾔語 解析 ELMo GPT-2 LSTM RoBERTa GPT BERT ALBERT T5 FFN encoder- attention decoder 翻訳 2013 14 15 GPT-3 Transformer 16 17 18 19 20 7 21
https://gluebenchmark.com/leaderboard GLUE (⾔語理解タスク) [Wang+ 18] T5 (2019年): 90.3 ⼈間のスコア: 87.1 BERT (2018年): 80.5 ベースライン: 70.0 8
https://gluebenchmark.com/leaderboard GLUE (⾔語理解タスク) [Wang+ 18] T5 (2019年): 90.3 ⽂のポジネガ判定 [positive] ⼈間のスコア: it 's a charming and often affecting journey . 87.1 [negative] a sometimes tedious film . 2⽂が同じ意味かどうか BERT (2018年): 80.5 [同じ] The top rate will go to 4.45 percent for all residents with taxable incomes above $ 500,000 . For residents with incomes above $ 500,000 , the income-tax rate will increase to 4.45 percent . [異なる] While dioxin levels in the environment were up last year , they have dropped by 75 percent since the ベースライン: 70.0 1970s , said Caswell . The Institute said dioxin levels in the environment have fallen by as much as 76 percent since the 1970s 9 .
本⽇の内容 1. 2. 3. 4. 5. 6. 導⼊ 単語のベクトル表現: word2vec ⾔語モデル 機械翻訳: encoder-decoder, attention, Transformer BERT GPT-3 10
単語のベクトル表現 • 分布仮説 [Firth+ 1957] • 単語の意味はその単語の⽂脈によって特徴付けられる • = 似た⽂脈で出現する単語は意味が似ている 昨⽇、りんごを⾷べた。 りんごジュースを飲んだ。 りんごの⽪を剥いた。 昨⽇、ぶどうを⾷べた。 ぶどうジュースを買った。 ぶどうの⽪を剥いた。 昨⽇、⾞に乗った。 ⾞のタイヤを交換した。 ⾞を買った。 • 共起語に基づくベクトル表現 [Lin 2002] ⾷べる 「りんご」と 「⾷べる」が テキスト中の ある⽂で共起 ジュース タイヤ りんご (0 0 1 0 0 0 0 1 0 0 0 0 ... ... ... ... ... ...) ぶどう (0 0 1 0 0 0 0 1 0 0 0 0 ... ... ... ... ... ...) ⾞ (0 0 0 0 0 0 0 0 0 0 0 1 ... ... ... ... ... ...) 数万〜数⼗万次元の疎なベクトル 似ている 似ていない 11
word2vec [Mikolov+ 13] • 低次元(例えば100次元)で、要素は実数値 • word embeddingまたは分散表現と呼ばれる 単語の情報を低次元に 埋めこんでいる(embed) 各概念は複数の次元で(=分散して) 表現される これらの値をニューラル ネットワークで求める りんご ( 0.82 -1.18 0.74 … ) 似ている ぶどう ( 0.86 -1.23 0.54 … ) 似ていない ⾞ ( 0.15 1.18 -0.34 … ) 数百次元の密なベクトル 12
word2vecの学習 (1/2) • 対象の単語から周辺の単語(⽂脈語)を予測 ・・・ 昨⽇ 彼 wt は 2 wt りんご を wt wt+1 1 • 次の値を⼤きくするようにする ⾷べた ・・・ wt+2 T t=1 テキスト中の全単語 p( <latexit sha1_base64="BBfKbm640aeBgHFQy+xjyygzLi0=">AAACl3ichVE9S8NQFD2N3/WjVRfFpVgUXcqNCIqLgiCOtrUqqJQkPjWYJiF5LdbqH3B1UHBSEBH/g4uD/QMOTs7iqODi4G0M+IV6Q5L7zrvn3PPe1V3L9CXRXUSpq29obGpuiba2tXfE4p1dC75T9AyRMxzL8ZZ0zReWaYucNKUlllxPaAXdEov61nRtf7EkPN907HlZdsVqQduwzXXT0CRDTrwXLoawggJ0ONhG5eieypTHHnY/o7RPBzTP6DAS+XiSUhRE4meihkkSYcw58XOWWmMhA0WWFLAhObegwednGSqIbUisosKYx5kZ7AtuGGVukasEV2iMbvF3g1fLIWrzuqbpB2yDu1j8esxMYIBu6YKeqEqX9ECvv2pVAo2al3Jw5IAr3Hxsvyf78i+rwH+JzQ/Wn54l1jEeeDXZuxsgtVMY7/zSzuFTdiIzUBmkU3pk/yd0R9d8Arv0bJylReYYUR6A+v26fyYLIymVUmp6NDk1Ho6iGX3o53GrGMMUZjGHHPc9whVuUFV6lUllRpl9L1UiIacbX0JJvwHwkpaq</latexit> c j c,j=0 | ) log p(wt+j |wt ) 周辺の単語 • 各単語は単語ベクトルと単語予測ベクトルをもち、 「共起=ベクトルの内積が⼤きい」とする p(wt+j |wt ) = exp(v T wt uwt+j ) T u ) exp(v wt w w W p( <latexit sha1_base64="wmB1oEYxmdJUR0HAxtCsGPRBl9w=">AAAEU3iczZK/axRBFMe/2Vs1OY05TRNIs3hEIsLxNgiKIATSWObHXRLIhWN3nMQl+8vdyeHdmUqrtBYKVgohBP8MG/+BFKmsxTJCCi18M7cmmuCPSpxhZt68ed83n/nhp2GQK6KDAatknzt/YXCofPHS8OWRypWri3mymQnZEEmYZMu+l8swiGVDBSqUy2kmvcgP5ZK/MaPXl9oyy4MkrqtOKlcjbz0O1gLhKXYllSOkmEQTEXwkeIzeyw/UoRa28ORHL23Tc6qz9wYc3OPWxBoyeBDosS05JmXvpJkdq0xUwlUhNr1EjgBdHk8y6lo2GQUemCjnb3Mcs2qurf+GxMFNo+yz/GOS5qNTFN8z5Ox1WpUq1cgU56zhFkYVRZlNKrucQicQ2GQAyRsqtkN++pzrClwQH1JhlbE8/hKKQfS6NEdosipnOzVfZYP7dZ6tFN6Y55GB12rBu4TcMg2KCdqnPTqk9/SWPtLXX+bqmRyapWMuyGhl2hrZHls4+qMq4lHh4Ynqt8yKr/2OYQ2YPTUefQrR17e7Lw4X7s5P9K7TG/rE/K/pgN7xCeL2Z7EzJ+dfocwP4J6+7rPG4lTNpZo7d6s6PVU8xSDGcY0/k4vbmMZ9zKIBYdWtrvXUelbaL32xLdvuh1oDhWYUPxV7+BvfB/RA</latexit> | )= exp( exp( · · ) + exp( ) · ) + ··· 13
word2vecの学習 (2/2) | p( )= exp( · exp( <latexit sha1_base64="wmB1oEYxmdJUR0HAxtCsGPRBl9w=">AAAEU3iczZK/axRBFMe/2Vs1OY05TRNIs3hEIsLxNgiKIATSWObHXRLIhWN3nMQl+8vdyeHdmUqrtBYKVgohBP8MG/+BFKmsxTJCCi18M7cmmuCPSpxhZt68ed83n/nhp2GQK6KDAatknzt/YXCofPHS8OWRypWri3mymQnZEEmYZMu+l8swiGVDBSqUy2kmvcgP5ZK/MaPXl9oyy4MkrqtOKlcjbz0O1gLhKXYllSOkmEQTEXwkeIzeyw/UoRa28ORHL23Tc6qz9wYc3OPWxBoyeBDosS05JmXvpJkdq0xUwlUhNr1EjgBdHk8y6lo2GQUemCjnb3Mcs2qurf+GxMFNo+yz/GOS5qNTFN8z5Ox1WpUq1cgU56zhFkYVRZlNKrucQicQ2GQAyRsqtkN++pzrClwQH1JhlbE8/hKKQfS6NEdosipnOzVfZYP7dZ6tFN6Y55GB12rBu4TcMg2KCdqnPTqk9/SWPtLXX+bqmRyapWMuyGhl2hrZHls4+qMq4lHh4Ynqt8yKr/2OYQ2YPTUefQrR17e7Lw4X7s5P9K7TG/rE/K/pgN7xCeL2Z7EzJ+dfocwP4J6+7rPG4lTNpZo7d6s6PVU8xSDGcY0/k4vbmMZ9zKIBYdWtrvXUelbaL32xLdvuh1oDhWYUPxV7+BvfB/RA</latexit> · ) + exp( ) · ) + ··· すべての単語について計算するのは⼤変 正例 ・・・ 彼 は 実際に存在している を ⾷べた・・・ 近づける 中央 疑似 負例 りんご 同盟 インク ⼭ 遠ざける 平成 ⼈間 ⾳波 ツバメ ランダムに選ぶ (5〜20個) ・・・ ・・・ 14
⾷べた 1.0 word2vecの学習 (2/2) | p( )= exp( · exp( <latexit sha1_base64="wmB1oEYxmdJUR0HAxtCsGPRBl9w=">AAAEU3iczZK/axRBFMe/2Vs1OY05TRNIs3hEIsLxNgiKIATSWObHXRLIhWN3nMQl+8vdyeHdmUqrtBYKVgohBP8MG/+BFKmsxTJCCi18M7cmmuCPSpxhZt68ed83n/nhp2GQK6KDAatknzt/YXCofPHS8OWRypWri3mymQnZEEmYZMu+l8swiGVDBSqUy2kmvcgP5ZK/MaPXl9oyy4MkrqtOKlcjbz0O1gLhKXYllSOkmEQTEXwkeIzeyw/UoRa28ORHL23Tc6qz9wYc3OPWxBoyeBDosS05JmXvpJkdq0xUwlUhNr1EjgBdHk8y6lo2GQUemCjnb3Mcs2qurf+GxMFNo+yz/GOS5qNTFN8z5Ox1WpUq1cgU56zhFkYVRZlNKrucQicQ2GQAyRsqtkN++pzrClwQH1JhlbE8/hKKQfS6NEdosipnOzVfZYP7dZ6tFN6Y55GB12rBu4TcMg2KCdqnPTqk9/SWPtLXX+bqmRyapWMuyGhl2hrZHls4+qMq4lHh4Ynqt8yKr/2OYQ2YPTUefQrR17e7Lw4X7s5P9K7TG/rE/K/pgN7xCeL2Z7EzJ+dfocwP4J6+7rPG4lTNpZo7d6s6PVU8xSDGcY0/k4vbmMZ9zKIBYdWtrvXUelbaL32xLdvuh1oDhWYUPxV7+BvfB/RA</latexit> · ) + exp( ⼭ 0.0 … … 0.7 … … 0.3 … … ⾷べた ) … ⼭ 0.12 0.86 -0.43… · ) + ··· りんご すべての単語について計算するのは⼤変 … 000……010……000 りんご (one-hotベクトル) 正例 ・・・ 彼 は 実際に存在している を ⾷べた・・・ 近づける 中央 疑似 負例 りんご 同盟 インク ⼭ 遠ざける 平成 ⼈間 ⾳波 ツバメ ランダムに選ぶ (5〜20個) ・・・ ・・・ 15
⾷べた 1.0 word2vecの学習 (2/2) | p( )= exp( · exp( <latexit sha1_base64="wmB1oEYxmdJUR0HAxtCsGPRBl9w=">AAAEU3iczZK/axRBFMe/2Vs1OY05TRNIs3hEIsLxNgiKIATSWObHXRLIhWN3nMQl+8vdyeHdmUqrtBYKVgohBP8MG/+BFKmsxTJCCi18M7cmmuCPSpxhZt68ed83n/nhp2GQK6KDAatknzt/YXCofPHS8OWRypWri3mymQnZEEmYZMu+l8swiGVDBSqUy2kmvcgP5ZK/MaPXl9oyy4MkrqtOKlcjbz0O1gLhKXYllSOkmEQTEXwkeIzeyw/UoRa28ORHL23Tc6qz9wYc3OPWxBoyeBDosS05JmXvpJkdq0xUwlUhNr1EjgBdHk8y6lo2GQUemCjnb3Mcs2qurf+GxMFNo+yz/GOS5qNTFN8z5Ox1WpUq1cgU56zhFkYVRZlNKrucQicQ2GQAyRsqtkN++pzrClwQH1JhlbE8/hKKQfS6NEdosipnOzVfZYP7dZ6tFN6Y55GB12rBu4TcMg2KCdqnPTqk9/SWPtLXX+bqmRyapWMuyGhl2hrZHls4+qMq4lHh4Ynqt8yKr/2OYQ2YPTUefQrR17e7Lw4X7s5P9K7TG/rE/K/pgN7xCeL2Z7EzJ+dfocwP4J6+7rPG4lTNpZo7d6s6PVU8xSDGcY0/k4vbmMZ9zKIBYdWtrvXUelbaL32xLdvuh1oDhWYUPxV7+BvfB/RA</latexit> · ) + exp( ⼭ 0.0 … … 0.7 … … 0.3 … … ⾷べた ) ⼭ … 0.12 0.86 -0.43… · ) + ··· りんご すべての単語について計算するのは⼤変 … 000……010……000 りんご (one-hotベクトル) 正例 ・・・ 彼 は 実際に存在している を ⾷べた・・・ 近づける 中央 疑似 負例 りんご 同盟 インク 平成 ⼈間 ⾳波 ・・・ 似ている ⾷べた ぶどう ジュース ツバメ ランダムに選ぶ (5〜20個) りんご ⼭ 遠ざける 最終的には ・・・ 分布仮説そのもの! 16
ベクトルの可視化 (先ほどの⻘いベクトル) • ⽇本語ウェブテキスト1億⽂を⽤いて100次元のベクトルを学習 (数時間) → 2次元に投影 17
本⽇の内容 1. 2. 3. 4. 5. 6. 導⼊ 単語のベクトル表現: word2vec ⾔語モデル 機械翻訳: encoder-decoder, attention, Transformer BERT GPT-3 18
⾔語モデル (Language Model)
• ⽂の⽣成確率を定義するもの
例:
P( ,
,
, ..., ) = P ( )P (
<latexit sha1_base64="xN9SPiXcco5lD7min8ERHCCS09s=">AAADQXicjVLLSuRAFD2JjjrtjLa6EWZhY6NMgzQ3IiiCILqZpY9pFXpEklitwXQSk3Rj2/oD/oALVzMgMvgV4sYfcOEnyGxEBRe6mJsyw6jxVUUlt07dc+rcqjI82wpCojNFbWj80NTc8jHV+ulzW3u6o3MucCu+KQqma7v+gqEHwrYcUQit0BYLni/0smGLeWNtMlqfrwo/sFzne1jzxGJZX3GskmXqIUNu2sEUvuIHyjDgYgP12hG2MYDMQ4zcJFYsVXpiNC97FOV4jPF4TjOXxKXu1nsy492Suc85zf3ztJTOUp5kyyQDLQ6yiNuUmz5gsWWWMlFhUQEHIcc2dATci9BA8BhbRJ0xnyNLrgveNsXcCmcJztAZXePvCs+KMerwPNIMJNvkXWwePjMz6KNT+k1XdEKHdE53L2rVpUbkpSaLllzhLbXvdM/evMkq8z/E6n/Wq55DlDAivVrs3ZNIVIV5z69u7l7Njs701fvpF/1h/z/pjI65Aqd6be5Pi5k9pPgCtKfHnQzmBvMa5bXpoez4SHwVLfiCXn4CGoYxjm/8HAowlQllVVlXfPVYPVcv1Mv7VFWJOV141NTbv0ObuI4=</latexit>
• 利⽤⽅法
|
)P (
|
,
)...
• システムが⽣成した⽂がどれくらい正しそうか
• 古典的⾳声認識 → ⾳響モデル X ⾔語モデル (⾳響との対⽐で「⾔語」)
• 古典的機械翻訳 → 飜訳モデル X ⾔語モデル
• ⽂⽣成: 確率にしたがって⽂を⽣成
• 確率の推定⽅法
• 最近はニューラルネットワークで
(次ページ)
「⾔語をモデル化した」という意味で
最近のモデル(BERTなど)を⾔語モデルと呼ぶこ
とも多い
(が、GPT-3は従来の意味での⾔語モデル)
19
RNN⾔語モデル [Mikolov+ 10] (Recurrent Neural Networks) 再帰的 <latexit sha1_base64="XQBnmtja+QyPkI5qKeChfyjoHvo=">AAACo3ichVLLSsNQED3Gd31V3QguLJaKgpSJCIqrghvBTVutCrWUJN5qME1CkhZr9Qf8AReuFEXErxA34lZd9BPEpYIbF07TgC/Uudxk7rlzzsxkotqG7npEtSapuaW1rb2jM9TV3dPbF+4fWHGtkqOJjGYZlrOmKq4wdFNkPN0zxJrtCKWoGmJV3Z6v36+WhePqlrnsVWyRKyqbpl7QNcVjyAqPIIlxrKMIFRZ2UM0WSiPYx95nrHLFyCQinzGyGJvIh6MUJ98iPx05cKIILGmFz1lkgyU0lFhMwITHvgEFLq8sZBBsxnKoMuawp/v3gtOFmFviKMERCqPb/NzkUzZATT7XNV2frXEWg7fDzAhi9EAX9Ew3dEmP9ParVtXXqNdS8Zv1ucLO9x0MLb3+yyry28PWB+vPmj0UMOvXqnPtto/Uu9Aa/PLu4fPSXDpWHaMTeuL6j6lG19yBWX7RzlIifYQQD0D+/rl/OitTcZnicmo6mpgNRtGBYYzy6GXMIIEF/g0ynPcUt7jDvRSTFqW0tNwIlZoCziC+mJR7B0KfmLA=</latexit> 私 は 学⽣ です 。 P ( )P ( <latexit sha1_base64="wErXCPH1JE3rgif1GZvBtSMemVw=">AAAC7XicjVLLSsNAFL2J7/qKj4UgarFUFKTciKC4KujCZW2tFqqUJE5rMM2EJC3W6g+4FxeKoCAifoW48Qdc+AkiuFFw48KbNCDW5wxJ7pw559x7M6Nahu64iPeC2NDY1NzS2hZq7+js6pZ6elccXrI1lta4we2MqjjM0E2WdnXXYBnLZkpRNdiqujXv7a+Wme3o3Fx2KxZbLyoFU8/rmuISxKUFSMA4rEERVOCwDdXKNezBBITrceSE7/6Hmc2XRr7lThK33tHTx7yZkyIYQ3+EvwZyEEQgGAkuXZDZBllpUCJTBia4FBuggEMzCzIgWIStQ5UwmyLd32eUNkTaErEYMRRCt+hdoFU2QE1ae56Or9Yoi0GPTcowRPEOL/EZb/EKH/DtR6+q7+HVUvGb9rXMynXvD6Re/1QV6evC5ofq15pdyMOsX6tOtVs+4nWh1fTlncPn1FwyWh3DM3yk+k/xHm+oA7P8op0vseQRhOgA5Prf/TVYmYrJGJOXpiPx2eAoWmEQRukKyDADcVik65CmvE9CvzAkDItcPBCPxZMaVRQCTR98GuLFOypJp0s=</latexit> | )P ( 「私 は」の ベクトル | , )... は U 0.1 ・・ 0.2 , ) ・・ 学⽣ です U U W 「私」の ベクトル | P( ⼤規模なラベルなし テキストから学習 W W … 0 0・・ 0 1 0 ・・ 私 私 は 学⽣ 20
LSTM (Long Short-Term Memory) [Hochreiter+ 97] 今⽇はブラックボックス http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 21
本⽇の内容 1. 2. 3. 4. 5. 6. 導⼊ 単語のベクトル表現: word2vec ⾔語モデル 機械翻訳: encoder-decoder, attention, Transformer BERT GPT-3 22
encoder-decoder (seq2seq) [Sutskever+ 14] ⼀単語ずつ⽣成 (先を⾒ることができない) ⼊⼒⽂をすべて⾒ることができる encoder 私 は 学⽣ decoder です I am a student EOS EOS I am a 23 student
encoder-decoder (seq2seq) [Sutskever+ 14] ⼀単語ずつ⽣成 (先を⾒ることができない) ⼊⼒⽂をすべて⾒ることができる encoder 私 は 学⽣ decoder です I am a student EOS EOS I am a 24 student
encoder-decoder (seq2seq) [Sutskever+ 14] ⼀単語ずつ⽣成 (先を⾒ることができない) ⼊⼒⽂をすべて⾒ることができる encoder 私 は 学⽣ decoder です I am a student EOS EOS I am a 25 student
encoder-decoder (seq2seq) [Sutskever+ 14] 原⾔語⽂のベクトル表現 問題: 特に⻑い⽂の場合に情報 をすべて持つことができない 私 は 学⽣ です decoder I am a student EOS EOS I am a 26 student
Attention 機構 [Bahdanau+ 14, Luong+ 15] 私 は 学⽣ です I am a EOS I am a 27
Attention 機構 [Bahdanau+ 14, Luong+ 15] 私 は 学⽣ です a 28
Attention 機構 [Bahdanau+ 14, Luong+ 15] フィードフォワード ネットワークで計算 2.5 関連度 1.6 1.0 2.5 1.6 私 は 学⽣ です a 29
Attention 機構 [Bahdanau+ 14, Luong+ 15] フィードフォワード ネットワークで計算 ⾜して1になるように 正規化 (softmax) 2.5 0.2 0.1 0.5 0.2 1.6 1.0 2.5 1.6 私 は 学⽣ です a 30
Attention 機構 [Bahdanau+ 14, Luong+ 15] contextベクトル attention スコア attentionスコアで 重み付けして ベクトルを⾜す フィードフォワード ネットワークで計算 2.5 0.2 0.1 0.5 0.2 1.6 1.0 2.5 1.6 私 は 学⽣ です a 31
Attention 機構 [Bahdanau+ 14, Luong+ 15] → Google翻訳 (2016年) contextベクトル 0.2 0.1 0.5 0.2 私 は 学⽣ です I am a EOS I am student a 32
その他のEncoder-Decoder • 要約: ⼊⼒⽂書 → 要約⽂ • サッカーのイングランド・プレミアリーグで2⽇、レスター・シティが 初優勝を決めた。... → プレミアリーグでレスターが初優勝 • 対話: ユーザ発話 → システム発話 • ネットワークがつながらないのですが。 → 機種は何ですか? 33
Transformer [Vaswani+ 2017] • “Attention is All You Need”というタイトルで有名 • LSTMを使わずにattentionだけで翻訳 • 2つの拡張 1. Query, Key, Value 2. Self-attention key query value 34
Transformer [Vaswani+ 2017] • “Attention is All You Need”というタイトルで有名 • LSTMを使わずにattentionだけで翻訳 • 2つの拡張 1. Query, Key, Value attention 2. Self-attention attention key query value 35
1. Query, Key, Value Key - Valueデータベースへのアクセスを考える Query Key ⼈参 ナス バナナ ⼈参 Value 80円 50円 30円 80円 36
1. Query, Key, Value Key - Valueデータベースへのアクセスを考える 0.4 Query 0.5 Key ⼈参 ナス バナナ Value 80円 50円 30円 x0.4 0.1 x0.1 ⼈参 野菜 80円 60円 x0.5 37
1. Query, Key, Value 私 は 学⽣ です a 38
1. Query, Key, Value query 名前をつけただけ 私 は 学⽣ です a 39
1. Query, Key, Value フィードフォワード ネットワークで計算 2.5 関連度 key 1.6 1.0 2.5 1.6 key key key key value value value value 私 は 学⽣ です query 2つのベクトルに わけることにより 表現⼒を上げる query 名前をつけただけ a 40
1. Query, Key, Value フィードフォワード ネットワークで計算 ⾜して1になるように 正規化 (softmax) 0.2 0.1 0.5 2.5 0.2 key 1.6 1.0 2.5 1.6 key key key key value value value value 私 は 学⽣ です query 2つのベクトルに わけることにより 表現⼒を上げる query 名前をつけただけ a 41
1. Query, Key, Value contextベクトル フィードフォワード ネットワークで計算 attentionスコアで 重み付けして ベクトルを⾜す 0.2 0.1 2.5 0.5 0.2 key 1.6 1.0 2.5 1.6 key key key key value value value value 私 は 学⽣ です query 2つのベクトルに わけることにより 表現⼒を上げる query 名前をつけただけ a 42
2. Self-Attention 通常のattention 0.2 0.1 0.5 Self-attention 0.2 0.2 0.1 0.5 0.2 私 は 学⽣ です … 私 は 学⽣ です ⼆⾔語間で a 単⾔語内で 43
Q, K, V + Self-attention query key value 64 64 64 768 私 は 学⽣ です 44
⽂脈を考慮した 「学⽣」のベクトル Q, K, V + Self-attention softmax p dk で正規化 qとkの内積 <latexit sha1_base64="kKacpGhHtVl88JRgBgcBf8petPQ=">AAACbXichVHLSsNAFD2N7/qqiiAoUiw+VuVGBMVVwY3LVq0WH5QkjjU0TWIyLWjpD7gWXIiCgoj4GW78ARd+grhwoeDGhbdpQFTUO8zMmTP33Dkzo7uW6Uuih4jS1NzS2tbeEe3s6u7pjfX1r/pO2TNE1nAsx8vpmi8s0xZZaUpL5FxPaCXdEmt6caG+v1YRnm869orcd8VWSSvY5o5paJKp9U1/z5PV7Xyxlo8lKElBxH8CNQQJhJF2YlfYxDYcGCijBAEbkrEFDT63DagguMxtocqcx8gM9gVqiLK2zFmCMzRmizwWeLURsjav6zX9QG3wKRZ3j5VxjNM9XdML3dENPdL7r7WqQY26l32e9YZWuPnew6Hlt39VJZ4ldj9Vf3qW2MFc4NVk727A1G9hNPSVg+OX5fml8eoEXdAT+z+nB7rlG9iVV+MyI5ZOEOUPUL8/90+wOp1UKalmZhKpufAr2jGMMUzxe88ihUWkkeVzbRzhFGeRZ2VQGVFGG6lKJNQM4Esokx//lY4c</latexit> 「私」「は」「です」についても 同じことをする × 0.2 ×0.1 ×0.5 ×0.2 1.6 13 1.0 8 2.5 20 1.6 13 は 学⽣ です 1. 並列計算可能 2. 遠くまで⾒る ことができる = 関連度 query key value 64 64 64 768 私 45
⾏列で記述 T QK softmax( p )V dk ? <latexit sha1_base64="SftefrAHw27vGk0XRSFd/sPtb7o=">AAACj3ichVFNSxtBGH5ca9VUm6gXoRdpiMQewrtFUDxIwIvSi9F8CCYNu+skXbJf7k6Cuuwf8OTNg6cWShHvvbbQS/9AD/kJ4tFCLz34ZrNQWtG+w8w888z7vPPMjO5ZZiCJ+iPK6JOxp+MTk6lnU9PP05mZ2Wrgdn1DVAzXcv09XQuEZTqiIk1piT3PF5qtW6KmdzYG+7We8APTdcry2BMNW2s7Zss0NMlUM/OqLsWR7Hph4LakrR1F+XrL14yw9OZtOQrrwaEvw4NmJ4qWqs1MlgoUx8J9oCYgiyS23cwn1HEAFwa6sCHgQDK2oCHgtg8VBI+5BkLmfEZmvC8QIcXaLmcJztCY7fDY5tV+wjq8HtQMYrXBp1jcfVYuIEc/6JJu6Ttd0TX9frBWGNcYeDnmWR9qhddMn87v/vqvyuZZ4t0f1aOeJVpYjb2a7N2LmcEtjKG+d3J+u7u2kwsX6QPdsP/31KdvfAOn99P4WBI7F0jxB6j/Pvd9UH1dUKmglpazxc3kKybwAi+R5/deQRGb2EaFzz3DZ3zBV2VGWVHWleIwVRlJNHP4K5StOyhgm3s=</latexit> 46
私 は 学⽣ です QK T softmax( p )V dk KT <latexit sha1_base64="SftefrAHw27vGk0XRSFd/sPtb7o=">AAACj3ichVFNSxtBGH5ca9VUm6gXoRdpiMQewrtFUDxIwIvSi9F8CCYNu+skXbJf7k6Cuuwf8OTNg6cWShHvvbbQS/9AD/kJ4tFCLz34ZrNQWtG+w8w888z7vPPMjO5ZZiCJ+iPK6JOxp+MTk6lnU9PP05mZ2Wrgdn1DVAzXcv09XQuEZTqiIk1piT3PF5qtW6KmdzYG+7We8APTdcry2BMNW2s7Zss0NMlUM/OqLsWR7Hph4LakrR1F+XrL14yw9OZtOQrrwaEvw4NmJ4qWqs1MlgoUx8J9oCYgiyS23cwn1HEAFwa6sCHgQDK2oCHgtg8VBI+5BkLmfEZmvC8QIcXaLmcJztCY7fDY5tV+wjq8HtQMYrXBp1jcfVYuIEc/6JJu6Ttd0TX9frBWGNcYeDnmWR9qhddMn87v/vqvyuZZ4t0f1aOeJVpYjb2a7N2LmcEtjKG+d3J+u7u2kwsX6QPdsP/31KdvfAOn99P4WBI7F0jxB6j/Pvd9UH1dUKmglpazxc3kKybwAi+R5/deQRGb2EaFzz3DZ3zBV2VGWVHWleIwVRlJNHP4K5StOyhgm3s=</latexit> Q私 ( softmax は 学⽣ です x p 私 は 学⽣ です <latexit sha1_base64="OrstIRGffw1Um2laVMCLMnw9QUU=">AAACbXichVHLSsNAFD2N7/qqiiAoIhYfq3IjgiIuCm5cVmtVfFCSOGpomsRkWqilP+BacCEKCiLiZ7jxB1z0E8SFCwU3LrxNA6Ki3mFmzpy5586ZGd21TF8SVSNKQ2NTc0trW7S9o7OrO9bTu+o7Bc8QGcOxHG9d13xhmbbISFNaYt31hJbXLbGm5xZq+2tF4fmmY6/Ikiu289qebe6ahiaZ2tjyDzxZ3snmKtlYnBIUxMhPoIYgjjBSTuwaW9iBAwMF5CFgQzK2oMHntgkVBJe5bZSZ8xiZwb5ABVHWFjhLcIbGbI7HPV5thqzN61pNP1AbfIrF3WPlCMbogW7ohe7plh7p/dda5aBGzUuJZ72uFW62+2gg/favKs+zxP6n6k/PEruYDbya7N0NmNotjLq+eHjykp5bHiuP0yU9sf8LqtId38AuvhpXS2L5FFH+APX7c/8Eq1MJlRLq0nQ8OR9+RSsGMYpJfu8ZJLGIFDJ8ro1jnOE88qz0K0PKcD1ViYSaPnwJZeIDANiOIA==</latexit> 私 0.2 0.1 0.6 0.1 は 0.1 0.7 0.1 0.1 学⽣ 0.2 0.1 0.5 0.2 です 0.1 0.1 0.1 0.7 dk V私 は 学⽣ です ) 47
私 は 学⽣ です QK T softmax( p )V dk KT <latexit sha1_base64="SftefrAHw27vGk0XRSFd/sPtb7o=">AAACj3ichVFNSxtBGH5ca9VUm6gXoRdpiMQewrtFUDxIwIvSi9F8CCYNu+skXbJf7k6Cuuwf8OTNg6cWShHvvbbQS/9AD/kJ4tFCLz34ZrNQWtG+w8w888z7vPPMjO5ZZiCJ+iPK6JOxp+MTk6lnU9PP05mZ2Wrgdn1DVAzXcv09XQuEZTqiIk1piT3PF5qtW6KmdzYG+7We8APTdcry2BMNW2s7Zss0NMlUM/OqLsWR7Hph4LakrR1F+XrL14yw9OZtOQrrwaEvw4NmJ4qWqs1MlgoUx8J9oCYgiyS23cwn1HEAFwa6sCHgQDK2oCHgtg8VBI+5BkLmfEZmvC8QIcXaLmcJztCY7fDY5tV+wjq8HtQMYrXBp1jcfVYuIEc/6JJu6Ttd0TX9frBWGNcYeDnmWR9qhddMn87v/vqvyuZZ4t0f1aOeJVpYjb2a7N2LmcEtjKG+d3J+u7u2kwsX6QPdsP/31KdvfAOn99P4WBI7F0jxB6j/Pvd9UH1dUKmglpazxc3kKybwAi+R5/deQRGb2EaFzz3DZ3zBV2VGWVHWleIwVRlJNHP4K5StOyhgm3s=</latexit> Q私 ( softmax は 学⽣ です x p 私 は 学⽣ です <latexit sha1_base64="OrstIRGffw1Um2laVMCLMnw9QUU=">AAACbXichVHLSsNAFD2N7/qqiiAoIhYfq3IjgiIuCm5cVmtVfFCSOGpomsRkWqilP+BacCEKCiLiZ7jxB1z0E8SFCwU3LrxNA6Ki3mFmzpy5586ZGd21TF8SVSNKQ2NTc0trW7S9o7OrO9bTu+o7Bc8QGcOxHG9d13xhmbbISFNaYt31hJbXLbGm5xZq+2tF4fmmY6/Ikiu289qebe6ahiaZ2tjyDzxZ3snmKtlYnBIUxMhPoIYgjjBSTuwaW9iBAwMF5CFgQzK2oMHntgkVBJe5bZSZ8xiZwb5ABVHWFjhLcIbGbI7HPV5thqzN61pNP1AbfIrF3WPlCMbogW7ohe7plh7p/dda5aBGzUuJZ72uFW62+2gg/favKs+zxP6n6k/PEruYDbya7N0NmNotjLq+eHjykp5bHiuP0yU9sf8LqtId38AuvhpXS2L5FFH+APX7c/8Eq1MJlRLq0nQ8OR9+RSsGMYpJfu8ZJLGIFDJ8ro1jnOE88qz0K0PKcD1ViYSaPnwJZeIDANiOIA==</latexit> dk 私 0.2 0.1 0.6 0.1 Z私 は 0.1 0.7 0.1 0.1 学⽣ 0.2 0.1 0.5 0.2 です 0.1 0.1 0.1 0.7 は 学⽣ です V私 は 学⽣ です ) = 48
私 は 学⽣ です QK T softmax( p )V dk KT <latexit sha1_base64="SftefrAHw27vGk0XRSFd/sPtb7o=">AAACj3ichVFNSxtBGH5ca9VUm6gXoRdpiMQewrtFUDxIwIvSi9F8CCYNu+skXbJf7k6Cuuwf8OTNg6cWShHvvbbQS/9AD/kJ4tFCLz34ZrNQWtG+w8w888z7vPPMjO5ZZiCJ+iPK6JOxp+MTk6lnU9PP05mZ2Wrgdn1DVAzXcv09XQuEZTqiIk1piT3PF5qtW6KmdzYG+7We8APTdcry2BMNW2s7Zss0NMlUM/OqLsWR7Hph4LakrR1F+XrL14yw9OZtOQrrwaEvw4NmJ4qWqs1MlgoUx8J9oCYgiyS23cwn1HEAFwa6sCHgQDK2oCHgtg8VBI+5BkLmfEZmvC8QIcXaLmcJztCY7fDY5tV+wjq8HtQMYrXBp1jcfVYuIEc/6JJu6Ttd0TX9frBWGNcYeDnmWR9qhddMn87v/vqvyuZZ4t0f1aOeJVpYjb2a7N2LmcEtjKG+d3J+u7u2kwsX6QPdsP/31KdvfAOn99P4WBI7F0jxB6j/Pvd9UH1dUKmglpazxc3kKybwAi+R5/deQRGb2EaFzz3DZ3zBV2VGWVHWleIwVRlJNHP4K5StOyhgm3s=</latexit> Q私 ( softmax は 学⽣ です x p 私 は 学⽣ です <latexit sha1_base64="OrstIRGffw1Um2laVMCLMnw9QUU=">AAACbXichVHLSsNAFD2N7/qqiiAoIhYfq3IjgiIuCm5cVmtVfFCSOGpomsRkWqilP+BacCEKCiLiZ7jxB1z0E8SFCwU3LrxNA6Ki3mFmzpy5586ZGd21TF8SVSNKQ2NTc0trW7S9o7OrO9bTu+o7Bc8QGcOxHG9d13xhmbbISFNaYt31hJbXLbGm5xZq+2tF4fmmY6/Ikiu289qebe6ahiaZ2tjyDzxZ3snmKtlYnBIUxMhPoIYgjjBSTuwaW9iBAwMF5CFgQzK2oMHntgkVBJe5bZSZ8xiZwb5ABVHWFjhLcIbGbI7HPV5thqzN61pNP1AbfIrF3WPlCMbogW7ohe7plh7p/dda5aBGzUuJZ72uFW62+2gg/favKs+zxP6n6k/PEruYDbya7N0NmNotjLq+eHjykp5bHiuP0yU9sf8LqtId38AuvhpXS2L5FFH+APX7c/8Eq1MJlRLq0nQ8OR9+RSsGMYpJfu8ZJLGIFDJ8ro1jnOE88qz0K0PKcD1ViYSaPnwJZeIDANiOIA==</latexit> dk 私 0.2 0.1 0.6 0.1 Z私 は 0.1 0.7 0.1 0.1 学⽣ 0.2 0.1 0.5 0.2 です 0.1 0.1 0.1 0.7 は 学⽣ です V私 は 学⽣ です ) = 49
さまざまな⽂脈を考慮した 「学⽣」のベクトル Multiple Heads 0.2 0.1 Head 0 Head 1 … … 0.5 0.2 0.1 0.1 0.1 0.7 W0Q W1Q … W0K W0V W1K W1V <latexit sha1_base64="1Zlh5AoT+VEELNwSZj0NvaAtXm0=">AAACaHichVHLSsNAFD2Nr1pfVRcqbsSiuCo3IiiuCm5ctmqs4KMkcdShaRKStFCLP+DGpYorBRHxM9z4Ay78BHWp4MaFN2lAVNQ7zMyZM/fcOTNjuJb0A6KHhNLS2tbekexMdXX39Pal+wdWfafqmUIzHcvx1gzdF5a0hRbIwBJrrif0imGJolFeCPeLNeH50rFXgrorNiv6ri13pKkHTGnFkrpVKKUzlKUoxn4CNQYZxJF30lfYwDYcmKiiAgEbAWMLOnxu61BBcJnbRIM5j5GM9gUOkGJtlbMEZ+jMlnnc5dV6zNq8Dmv6kdrkUyzuHivHMEH3dE0vdEc39Ejvv9ZqRDVCL3WejaZWuKW+w+Hlt39VFZ4D7H2q/vQcYAdzkVfJ3t2ICW9hNvW1/eOX5fmlicYkXdAz+z+nB7rlG9i1V/OyIJbOkOIPUL8/90+wOp1VKasWZjK5ufgrkhjFOKb4vWeRwyLy0PhciSOc4DTxpKSVIWWkmaokYs0gvoQy/gHIPIs0</latexit> <latexit sha1_base64="U2kVNsZoVPAzWj3IKjC9oz6ykTM=">AAACaHichVHLSsNAFD2N7/po1YWKG7EorsqNCBZXghuXVk0r+ChJHHVomoQkLWjxB9y4VHGlICJ+hht/wEU/QV0quHHhTRoQFfUOM3PmzD13zswYriX9gKiRUFpa29o7OruS3T29fal0/0DBd6qeKTTTsRxvzdB9YUlbaIEMLLHmekKvGJYoGuWFcL9YE54vHXs12HfFZkXfteWONPWAKa1Yoq18KZ2hLEUx9hOoMcggjiUnfY0NbMOBiSoqELARMLagw+e2DhUEl7lN1JnzGMloX+AQSdZWOUtwhs5smcddXq3HrM3rsKYfqU0+xeLusXIME/RAN/RC93RLj/T+a616VCP0ss+z0dQKt5Q6Gl55+1dV4TnA3qfqT88BdpCLvEr27kZMeAuzqa8dnLyszC1P1Cfpkp7Z/wU16I5vYNdezau8WD5Hkj9A/f7cP0FhOqtSVs3PZOZz8Vd0YhTjmOL3nsU8FrEEjc+VOMYpzhJPSloZUkaaqUoi1gziSyjjH8Y6izM=</latexit> <latexit sha1_base64="AJE8rUsaXLacBURzeoRgWDI0rwc=">AAACaHichVFNLwNBGH66vuujxQFxkTbEqXlXJBqnJi4SF1RVUjS7azDpdnezu21SjT/g4og4kYiIn+HiDzj0J+BI4uLg7XYTQfBOZuaZZ97nnWdmdMeUnk/UiCht7R2dXd090d6+/oFYfHBo3bMrriFyhm3a7oauecKUlsj50jfFhuMKraybIq+XFpr7+apwPWlba37NEVtlbc+Su9LQfKZy+aK6vVSMJylFQUz8BGoIkghj2Y5fYxM7sGGggjIELPiMTWjwuBWgguAwt4U6cy4jGewLHCLK2gpnCc7QmC3xuMerQshavG7W9AK1waeY3F1WTmCSHuiGXuiebumR3n+tVQ9qNL3UeNZbWuEUY0ej2bd/VWWefex/qv707GMX6cCrZO9OwDRvYbT01YOTl+z86mR9ii7pmf1fUIPu+AZW9dW4WhGr54jyB6jfn/snWJ9JqZRSV2aTmXT4Fd0YRwLT/N5zyGARy8jxuRLHOMVZ5EmJKyPKWCtViYSaYXwJJfEBvDyLLg==</latexit> <latexit sha1_base64="bgxT8+AzShHd7Xfx0uD29itKIKc=">AAACaHichVG7SgNBFD1Z3/GRVQsVm2BQrMJdERQrwUaw8RUT0Bh211EH98XuJqDBH7CxVLFSEBE/w8YfsPAT1FLBxsKbzYJoUO8wM2fO3HPnzIzhWTIIiR4TSlNzS2tbe0eys6u7J6X29q0Fbtk3Rc50LdcvGHogLOmIXChDSxQ8X+i2YYm8sTdX289XhB9I11kN9z1RtPUdR25LUw+ZyuVLtLlQUjOUpSjSjUCLQQZxLLrqNTawBRcmyrAh4CBkbEFHwG0dGggec0VUmfMZyWhf4BBJ1pY5S3CGzuwejzu8Wo9Zh9e1mkGkNvkUi7vPyjRG6YFu6JXu6Zae6OPXWtWoRs3LPs9GXSu8UupocOX9X5XNc4jdL9WfnkNsYzryKtm7FzG1W5h1feXg5HVlZnm0OkaX9ML+L+iR7vgGTuXNvFoSy+dI8gdoP5+7EaxNZDXKakuTmdnp+CvaMYwRjPN7T2EW81hEjs+VOMYpzhLPiqoMKEP1VCURa/rxLZSRT7o6iy0=</latexit> 私 は 学⽣ です <latexit sha1_base64="XiPRn8pKGaDYkQX6oHLhxH2Qa6g=">AAACaHichVG7SgNBFD1Z3/EVtVCxCQkRq3BXBMVKsLH0lQfEGHbXUYdsdpfdTUCDP2BjqWKlICJ+ho0/YOEnqGUEGwtvNguiQb3DzJw5c8+dMzO6Y0rPJ3qKKB2dXd09vX3R/oHBoeHYyGjWs6uuITKGbdpuXtc8YUpLZHzpmyLvuEKr6KbI6eXl5n6uJlxP2tamf+CIYkXbs+SuNDSfqUyuRNvZUixJaQoi3g7UECQRxqodu8EWdmDDQBUVCFjwGZvQ4HErQAXBYa6IOnMuIxnsCxwhytoqZwnO0Jgt87jHq0LIWrxu1vQCtcGnmNxdVsaRoke6pQY90B0908evtepBjaaXA571llY4peHjiY33f1UVnn3sf6n+9OxjFwuBV8nenYBp3sJo6WuHp42NxfVUfZqu6JX9X9IT3fMNrNqbcb0m1i8Q5Q9Qfz53O8jOplVKq2tzyaWF8Ct6MYUEZvi957GEFawiw+dKnOAM55EXJaaMK5OtVCUSasbwLZTEJ9A6izg=</latexit> 私 は 学⽣ です <latexit sha1_base64="VwQ3W67gjLVKUn7muWPcpiK8FeM=">AAACaHichVG7SgNBFD1Z3/EVtVCxCQkRq3BXBMVKsLH0lQfEGHbXUYdsdpfdTUCDP2BjqWKlICJ+ho0/YOEnqGUEGwtvNguiQb3DzJw5c8+dMzO6Y0rPJ3qKKB2dXd09vX3R/oHBoeHYyGjWs6uuITKGbdpuXtc8YUpLZHzpmyLvuEKr6KbI6eXl5n6uJlxP2tamf+CIYkXbs+SuNDSfqUyupG5nS7EkpSmIeDtQQ5BEGKt27AZb2IENA1VUIGDBZ2xCg8etABUEh7ki6sy5jGSwL3CEKGurnCU4Q2O2zOMerwoha/G6WdML1AafYnJ3WRlHih7plhr0QHf0TB+/1qoHNZpeDnjWW1rhlIaPJzbe/1VVePax/6X607OPXSwEXiV7dwKmeQujpa8dnjY2FtdT9Wm6olf2f0lPdM83sGpvxvWaWL9AlD9A/fnc7SA7m1Ypra7NJZcWwq/oxRQSmOH3nscSVrCKDJ8rcYIznEdelJgyrky2UpVIqBnDt1ASn9I8izk=</latexit> 50
Position Embedding • LSTMと異なり位置情報が考慮されない → 位置情報をembeddingで与える Token Embeddings 私 は 学⽣ です 私 + は + 学⽣ + です + 0 1 2 3 Position Embeddings 51
student Transformerの全体像 decoder #6 FFN encoder #6 FFN encoder-decoder attention self-attention self-attention … … encoder #1 私 decoder #1 FFN FFN encoder-decoder attention self-attention self-attention は 学⽣ です EOS I am a 52
機械翻訳がなぜうまくいったのか? • 深層学習はData Hungry • 機械翻訳: 数百万〜数千万ペア • すでに存在しているデータを使える • ラベル: ⾃然⾔語 • 京⼤コーパス: 新聞記事約4万⽂ 増やせば解決、というわけにはいかない • ラベル: (⼈⼯的な)カテゴリ → ⼀貫したラベル付与が難しい 九四 年度 の 「 減収 減益 」 社 数 は .. 名詞 接尾辞 助詞 特殊 名詞 名詞 特殊接尾辞名詞 助詞 53
本⽇の内容 1. 2. 3. 4. 5. 6. 導⼊ 単語のベクトル表現: word2vec ⾔語モデル 機械翻訳: encoder-decoder, attention, Transformer BERT GPT-3 54
単⾔語解析 (2017-18年) Pre-training 各タスク 単語ベクトルの学習 (word2vec [Mikolov+ ⽂脈レベルの情報の学習は 13]) タスクの訓練データのみ = 通常数万⽂ 電池 初期値 ネガティブ Bi-LSTMで ⽂脈を考慮 が … すぐ 切れる 55
Self-Supervised Learning (⾃⼰教師あり学習) • ⾃分⾃⾝(⼊⼒データ)からラベルを⾃動⽣成 word2vec GPT-n BERT りんご 正例 昨⽇ 彼 は りんご を ⾷べた 負例 昨⽇ 彼 は りんご を ⾷べた ツバメ → ⼤規模データが使える 昨⽇ 彼 は [MASK] を ⾷べた ⾔語モデル ⽇本語Wikipedia 約2,000万⽂ ⽇本語Webテキスト 1〜100億⽂ ⽬的はこれらのタスクを解くことによって よいベクトル表現を得ること 56
転移学習 (Transfer Learning) タスク: ⾔語モデル ソース タスク: 評判分析 ターゲット (ドメイン: Wikipedia) (ドメイン: twitter) トレーニングデータ トレーニングデータ トレーニングデータ Self-supervised Learning モデル Pre-training (事前学習) モデル Fine-tuning 57
BERT [Devlin+ 2018] ポイント1 (Bidirectional Encoder Representations from Transformers) 1. Pre-training ポイント2 2. Fine-tuning (学習データ: 数千万⽂〜) “2⽂が隣接して いるかどうか” “⽳うめ問題” 放電 正例 (学習データ: 数万⽂) を タスク: 評判分析 negative BERT BERT [CLS] 電池 が [MASK] ⽂A で … [SEP] 機能 [MASK] 損なう ⽂B [CLS] この 電池 は すぐ 58 切れる
テキスト変換: encoder-decoderモデル[Sutskever+ 14] encoder decoder ⼀単語ずつ⽣成 (先を⾒ることができない) ⼊⼒⽂をすべて⾒ることができる 私 は 学⽣ です I am a student EOS EOS I am a 59 student
BERT [Devlin+ 2018] ポイント1 (Bidirectional Encoder Representations from Transformers) ポイント4 1. Pre-training (学習データ: 数千万⽂〜) “2⽂が隣接して いるかどうか” ポイント3: Self-supervised Learning “⽳うめ問題” 放電 正例 ポイント2 を 2. Fine-tuning (学習データ: 数万⽂) タスク: 評判分析 negative BERT BERT [CLS] 電池 が [MASK] ⽂A で … [SEP] 機能 [MASK] 損なう ⽂B [CLS] この 電池 は すぐ 60 切れる
1. Pre-training GPT-1 の 消耗 が 2. Fine-tuning negative 激しい (Generative Pre-Training) タスク: ⾔語モデル (decoderと同じ) タスク例: 評判分析 … … GPT-1 GPT-1 … … 電池 の 消耗 が この … 電池 は すぐ … 前しか参照できない negative 消耗 BERT … タスク: ⽳埋め問題 … BERT BERT … [CLS] 電池 の [MASK] 前も後ろも参照できる! が … … [CLS] この 電池 は すぐ … 61
BERT [Devlin+ 2018] ポイント1 (Bidirectional Encoder Representations from Transformers) ポイント4 1. Pre-training (学習データ: 数千万⽂〜) “2⽂が隣接して いるかどうか” 2. Fine-tuning ポイント3: ⾃⼰教師あり学習 “⽳うめ問題” 放電 正例 ポイント2 を (学習データ: 数万⽂) タスク: 評判分析 negative BERT BERT [CLS] 電池 が [MASK] ⽂A で … [SEP] 機能 [MASK] 損なう ⽂B [CLS] この 電池 ポイント5: 同じモデルを使い回す は すぐ 62 切れる
モデル パラメータ数: 1億 パラメータ数: 3億 BERTBASE BERTLARGE … L=24 BERT … L=12 BERT H=768 A=12 (ヘッドの数) H=1024 A=16 63
Pre-Training (英語) 256 sequences • コーパス … • BookCorpus (800M words) • English Wikipedia (2,500M words) • バッチサイズ • 256 sequences * 512 tokens • トレーニング時間 • BERTBASE: 4 TPUS Pod (16 TPU chips) → 4⽇ • BERTLARGE: 16 TPUS Pod (64 TPU chips) → 4⽇ 512 tokens • 40 ‒ 70 days with 8 GPUs 誰かが⼀度⾏えばよいだけ 64
Fine-Tuning (1/2) • 解きたいタスクに応じた最終層を追加 • 最終層のパラメータとTransformerのパラメータを更新 3, 4エポック, 数⼗分から数時間 含意 含 意 ⽭ 盾 中 ⽴ ⽂ペア分類問題 (例: 含意関係認識) [CLS] 彼 は バナナ ⽂A を ⾷べた [SEP] 彼 は 果物 ⽂B を ⾷べた [SEP] 65
Fine-Tuning (2/2) ⽂ペア分類問題 (例: 含意関係認識) 1⽂分類問題 (例: 極性判定) positive 含意 … … … … … … … … … … … … … … … … … … [CLS] 彼 … ⾷べた [SEP] 彼 … ⾷べた [SEP] [CLS] この PC は 丈夫 ##で 軽い 。 [SEP] スパン抽出 (例: 質問応答) 系列ラベリング (例: 固有表現解析) Start/End Span B-ORG I-ORG O B-LOC O O O … … … … … … … … … … … … … … … … … … [CLS] … どこ ? [SEP] … 京⼤ … [SEP] [CLS] 京都 ⼤学 は 京都 に ある 66 。 [SEP]
本⽇の内容 1. 2. 3. 4. 5. 6. 導⼊ 単語のベクトル表現: word2vec ⾔語モデル 機械翻訳: encoder-decoder, attention, Transformer BERT GPT-3 67
テキスト変換: encoder-decoderモデル[Sutskever+ 14] encoder decoder ⼀単語ずつ⽣成 (先を⾒ることができない) ⼊⼒⽂をすべて⾒ることができる 私 は 学⽣ です I am a student EOS EOS I am a 68 student
パラメータ数: 15億 パラメータ数: 1,750億 GPT-2 [Radford+ 19], GPT-3 [Brown+ 20] zero-shot (正解を与えない) few-shot (少量の正解を与える) ⾔語モデルを適⽤するのみ 1. Pre-training (Fine-tuningがないのに“Pre-”は少しおかしいが) の 消耗 が 激しい 電池 の 消耗 が This battery … … … … … この パラメータを更新しない 電池 … 英語 で This GPT-2: ⼿がかりとなる語を与える GPT-3: 例を数⼗個与える ⽇本語を英語に翻訳してください: 机 → desk りんご → apple 電池 → [タスク説明] [例] … [プロンプト] 69
GPT-2, 3がなぜ可能なのか? 以下のようなテキストがWebには → ここから Language Models are Unsupervised Multitask Learners たくさんある ⾔語モデルを学習 例: 英語 ⇒ フランス語 many different tasks on examples with ”I’m not the cleverest man in the world, but like they say in French: Je ne suis pas un imbecile [I’m not a fool]. In a now-deleted post from Aug. 16, Soheil Eid, Tory candidate is also able to, in principle, learn the in the riding of Joliette, wrote in French: ”Mentez mentez, l. (2018) without the need for explicit il en restera toujours quelque chose,” which translates as, h symbols are the outputs to be pre”Lie lie and something will always remain.” rvised objective is the the same as the “I hate the word ‘perfume,”’ Burr says. ‘It’s somewhat better e but only evaluated on a subset of the in French: ‘parfum.’ minimum of the unsupervised objective If listened carefully at 29:55, a conversation can be heard imum of the supervised objective. In between two guys in French: “-Comment on fait pour aller g, the concerns with density estimation de l’autre coté? -Quel autre coté?”, which means “- How ng objective discussed in (Sutskever do you get to the other side? - What side?”. tepped. The problem instead becomes If this sounds like a bit of a stretch, consider this questo, in practice, optimize the unsuper※ GPT-2の論⽂から引⽤ tion in French: As-tu aller au cinéma?, or Did you go to nvergence. Preliminary experiments https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf the movies?, which literally translates as Have-you to go to ently large language models are able to 70 movies/theater?
GPT-3デモ (API申請ベース) (※学習データに⽇本語はほとんど⼊ってないはずだが..) 固有表現抽出 極性判定 [タスク説明] [タスク説明] [例] [例] [プロンプト] [プロンプト] 例を与えないと ムチャクチャ 71
encoder decoder ⼀単語ずつ⽣成 (先を⾒ることができない) ⼊⼒⽂をすべて⾒ることができる タスクとモデルのまとめ encoder-decoder タスク テキスト変換 (翻訳, 要約, 対話, ..) ⽣成と呼ぶことも多い encoder こっちと区別する decoder こちらも扱える 分類タスク - ⽂・⽂章レベル (⽂書分類, 評判分析) - トークンレベル (固有表現解析, 機械読解) テキスト⽣成 私 は 学⽣ です I am a student EOS EOS I am a student モデル (従来の)encoderdecoder T5, BART, .. GPT-1, BERT ⽅式が違う GPT-2, GPT-3 ?BERTのおかげでGoogle翻訳がよくなった ?GPT-Nはパラメータ数が異なるだけ 72
⾔語処理において深層学習が変えたこと • 単語や⽂の表現を記号(離散値)からベクトル(連続値)へ • 様々な表現のずれを吸収 • 系列の扱いがかなりよくなった • テキスト変換・⽣成において⽣成されるテキストがかなり⾃然 • End-to-end 学習 • 冒頭で説明した基礎解析を解かない • ⼤規模テキストでpre-trainingしてから各タスクでfine-tuningする枠組 みの確⽴ • Pre-trainedモデルやライブラリの整備が進んだ • ⽇本語BERTモデル (東北⼤学, 京⼤, NICT, ..)の公開 • ユーザが書くコードがかなり少なくなった • BERTで基本的なタスクを解く場合、コマンドを動かすだけで実⾏できる 73
まとめ • 深層学習による⾃然⾔語処理⼊⾨ • word2vec, BERT, GPT-3 • (このセミナーに参加されている皆様は)学習・評価データを作る ところから始めないといけない場合が多い • ⼈⼿で構築, クラウドソーシング, ⾃動⽣成(クリックログなど) • 問題の設計、データの構築がやはり重要 • 「⼈間が解けない問題はBERTも解けない」 • どの⼿法を使うかは適材適所 • ルールベース, 古典的機械学習 (SVMなど), 古典的NN (LSTM), BERT • ご⾃⾝のタスク・データで、最新の⾃然⾔語処理(BERT)を試して いただけると幸い 74
⾃然⾔語処理の今後 をGPT-3に聞きました (学習データに⽇本語はほとんど⼊ってないにもかかわらず)局所的には⾃然な⽂章が⽣成されている 75
おまけ 76
古典的機械学習 vs 深層学習 古典的機械学習 ⼊⼒ 特徴 抽出 特徴 モデル 学習 出⼒ 深層学習 ⼊⼒ 表現学習 + モデル 学習 出⼒ 77
古典的機械学習 vs 深層学習 (画像) 古典的機械学習 ⼊⼒ 特徴 抽出 特徴 SIFT … モデル 学習 出⼒ SVM … 深層学習 ⼊⼒ 表現学習 モデル + low → mid → high 学習 出⼒ 78
古典的機械学習 vs 深層学習 (⾔語) 古典的機械学習 特徴 抽出 ⼊⼒ モデル 学習 特徴 ( 0, …, 0, 1, 0, …, 0, …, 1, …, 0, …, …, 1, …, …, …, …, 1, …, …) トヨタ 発売 出⼒ SVM, CRF … 深層学習 ⼊⼒ 表現学習 low → high モデル + 学習 出⼒ ( -1.2, 0.8, …, 0.3, -0.4) → (0.8, 0.3, …, -0.1) 79
Gate • どれくらい情報を通すかを制御する • 各次元は0から1までの値をとり、各次元ごとにかけ算 0.7 0.1 ・・・ × 0.9 1.0 ・・・ -0.4 0.8 0.1 ・・・ 0.6 -0.8 80
LSTMの中⾝ メモリセルをどれ くらい忘れるか ⼊⼒をどれくらい とりこむか メモリセル メモリセルからどれ くらい出⼒するか http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 81
Bi-directional LSTM (bi-LSTM) • 前と後ろの⽂脈を考慮した単語の表現を得たい • 前向きと後向きの双⽅向にLSTMを適⽤ • ⽂脈を考慮した単語の表現: 前向きと後向きの隠れ層をくっつ けたもの h1 h2 h3 h4 h1 h2 h3 h4 x1 私 x2 は x3 学⽣ x4 です 82
双⽅向LSTM (Bi-LSTM)を⽤いた ⽂のベクトル表現 好評 不評 中⽴ ベクトルを平均 ⽂脈を考慮した 「つながり」の ベクトル 逆⽅向 順⽅向 無線 が つながり にくい 83
古典的機械翻訳の概要 対訳テキスト 私 は 医者 です 。 I am a doctor . 学⽣ は 勉強 する 。 A student studies . 翻訳 (デコード) 私 は 学⽣ です 。 翻訳モデルと ⾔語モデルを利⽤ I am a student . アライメント(対応付け)を とり翻訳モデルを得る 84
⼊⼒表現 ⼊⼒: 1⽂ ⽂全体のベクトル⽤ [CLS] 電池 が 放電 で 消耗 する [SEP] ⼊⼒: ⽂ペア ⽂ペア全体のベクトル⽤ [CLS] 電池 が 放電 subword で 消耗 する [SEP] 機能 を 損 ##なう 85 [SEP]
⼊⼒表現 電池 が 放電 で 消耗 する 機能 を 損 ##なう E[CLS] E電池 Eが E放電 Eで E消耗 Eする E[SEP] E機能 Eを E損 E##なう E[SEP] [CLS] Token Embeddings Segment Embeddings Position Embeddings [SEP] [SEP] + + + + + + + + + + + + + EA EA EA EA EA EA EA EA EB EB EB EB EB + + + + + + + + + + + + + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 86
768 ⼊⼒表現 [CLS] 電池 [CLS] が [SEP] 放電 で が の 消耗 する [SEP] 機能 を 損 ##なう Eを E損 E##なう E[SEP] + + + + [SEP] 32,000 … Token Embeddings Segment Embeddings Position Embeddings E[CLS] E電池 Eが E放電 Eで E消耗 Eする E[SEP] E機能 電池 … + + + + + + + + + EA EA EA EA EA EA EA EA EB EB EB EB EB + + + + + + + + + + + + + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 87
学習した結果 ⼊⼒⽂ 予測結果 上位5単語 (⾚字は正解) ↓ ↓ 異なる位置の「京都」に対して ⽂脈に応じた予測ができている ここの予測は誤っているが、 ⽂脈的には間違ってはない (そのうちちゃんと予測できそう な気もする) だいたい 合っている 「撤去」は「設置」と反対の意味だが、 ⽂脈的には「撤去」でも通じる 88
GPT-3の精度 (例: 質問応答) モデルパラメータ数の増⼤によって ようやくFine-tuningの⼿法を超える ※ GPT-3の論⽂から引⽤ https://arxiv.org/abs/2005.14165 Figure 3.3: On TriviaQA GPT3’s performance grows smoothly with model size, suggesting that language models 89
BERTで学習されたベクトルの可視化 • ⽇本語Wikipediaで 「マウス」を含む⽂300⽂ • ⽂脈に依存した「マウス」 のベクトルを得る 90
マウスという呼称は、形状がネズミに似 BERTで学習されたベクトルの可視化 ていたことから名づけられた。 • • また、最近は第4ボタン、第5ボタンを ⽇本語Wikipediaで 装備したマウスや、第3ボタンがウィン ドウに直接機能するホイール機能を兼ね 「マウス」を含む⽂300⽂ ているものがあり、... ⽂脈に依存した「マウス」 ... エンゲルバートによれば、「マウス」と 名づけられたのはしっぽに相当するコー ドが後ろ(というか利⽤者から⾒て⼿ 前)にあったためだという。 ... のベクトルを得る パーソナルコンピュータの主な周辺機器 には、外付けのキーボード、マウス、プ ⾦管楽器の、マウスピースに接続され リンター、外付け補助記憶装置... る、円錐状のマウスパイプ・ベルを結 最初に汎⽤USB端⼦を採⽤したのはP ぶ管の形状には、円筒(ストレート) layStation2だが、キーボー 管・円錐(テーパ)管があり、... ド、マウス、ボイスチャット⽤ヘッド またナチュラル・ホルンのコール・ド セットなど... ルケストルと同様に、円形のボーゲン ... と呼ばれる独特のマウスパイプが装着 されている。 ... 彼⼥らは、雄のマウスに過度な ストレスを与えることで、その マウスのマイクロRNAの発現 量を乱した このことから、⽗親マウスが獲 得した形質が、マイクロRNA を介して⼦に伝わったといえる。 ... 91