深層学習/Deep Learning 基礎講座
第9回(20200625) 深層学習と⾃然⾔語処理
⾕中 瞳
理化学研究所
http://hitomiyanaka.strikingly.com/
Twitter: @verypluming
1
⾃⼰紹介
● 理化学研究所 ⾰新知能統合研究センター
⾃然⾔語理解チーム(乾健太郎チームリーダー) 
特別研究員
● 研究キーワード:
⾃然⾔語処理、⾃然⾔語推論、⽂類似度計算
とくに⾃然⾔語処理と⾔語学の融合、
深層学習と記号推論の融合に興味
● 経歴:
 
 
 
 
2018年9⽉ 東京⼤学⼤学院⼯学系研究科システム創成学専攻 博⼠(⼯学)
2013年4⽉-
2015年12⽉
野村総合研究所にて特許検索システムの開発に従事
2013年3⽉ 東京⼤学⼯学系研究科化学システム⼯学専攻 修⼠課程修了
2011年3⽉ 早稲⽥⼤学先進理⼯学部応⽤化学科 卒業
2
今回の講義の⽬標
●  ⾃然⾔語処理(Natural Language Processing, NLP)
の概観を理解する
●  深層学習によるNLPの基本を理解する
○  Word embedding
○  Encoder-Decoder
○  Attention
●  深層学習によるNLPの課題と最近の研究動向を理解する
3
⾃然⾔語処理をもっと学びたい⼈に:参考資料
Stanford⼤学の講義資料
Natural Language Processing with Deep Learning
動画・演習のソースコードも充実
http://web.stanford.edu/class/cs224n/
Speech and Language Processing
Dan Jurafsky and James H. Martin
https://web.stanford.edu/~jurafsky/slp3/
東⼯⼤岡崎先⽣の講義資料
https://chokkan.github.io/deeplearning/
最新の研究は、Twitterも情報源
(NLPerの多くはTwitterにいる:ハッシュタグは#NLProc)
4
⾃然⾔語処理をもっと学びたい⼈に:参考図書
1.  深層学習による⾃然⾔語処理
(機械学習プロフェッショナルシリーズ)
著・坪井祐太/海野裕也/鈴⽊潤
通称:出た本
本講義もかなり参考にしています
2.  ⾃然⾔語処理 (放送⼤学教材)
著・⿊橋禎夫
⾃然⾔語処理の基礎から網羅的に学べます
5
⾃然⾔語処理の概要
6
質問:⾃然⾔語処理というと、何を連想しますか?
7
質問:⾃然⾔語処理というと、何を連想しますか?
⾃然⾔語をコンピュータで処理するための技術:⾃然⾔語処理
⾝近な⾃然⾔語処理の例 ・AIアシスタント
・機械翻訳
・情報検索
8
⾃然⾔語の特性と⾃然⾔語処理のタスク
●  ⾃然⾔語:様々な特性をもった可変⻑の記号列
○  新しい語が膨⼤に⽣まれる(未知語)
 例:がこおわー、オーバーシュート
○  ⼀定の規則がある(⽂法)
 例:英語の⽂型はSVO、⽇本語の⽂型はSOV
○  前後の単語・⽂によって意味が定まる(⽂脈)
 例:「⻘い⾞」「あの新⼊社員はまだ⻘い」
9
⾃然⾔語の特性と⾃然⾔語処理のタスク
●  ⾃然⾔語:様々な特性をもった可変⻑の記号列
○  新しい語が膨⼤に⽣まれる(未知語)
 例:がこおわー、オーバーシュート
○  ⼀定の規則がある(⽂法)
 例:英語の⽂型はSVO、⽇本語の⽂型はSOV
○  前後の単語・⽂によって意味が定まる(⽂脈)
 例:「⻘い⾞」「あの新⼊社員はまだ⻘い」
●  タスクという単位で⾃然⾔語を処理
○  基礎タスク:⾔語を応⽤タスクで処理しやすい形式に変換する
固有表現抽出、単語分割、品詞タグ付け、構⽂解析、意味解析
○  応⽤タスク:アプリケーションに関わる
機械翻訳、⽂書分類、質問応答、対話
10
⾃然⾔語の特性と⾃然⾔語処理のタスク
●  ⾃然⾔語:様々な特性をもった可変⻑の記号列
○  新しい語が膨⼤に⽣まれる(未知語)
 例:がこおわー、オーバーシュート
○  ⼀定の規則がある(⽂法)
 例:英語の⽂型はSVO、⽇本語の⽂型はSOV
○  前後の単語・⽂によって意味が定まる(⽂脈)
 例:「⻘い⾞」「あの新⼊社員はまだ⻘い」
●  タスクという単位で⾃然⾔語を処理
○  基礎タスク:⾔語を応⽤タスクで処理しやすい形式に変換する
固有表現抽出、単語分割、品詞タグ付け、構⽂解析、意味解析
○  応⽤タスク:アプリケーションに関わる
機械翻訳、⽂書分類、質問応答、対話
●  特性・タスクに応じた前処理が結構⼤事(沼が深い)
11
●  以前の⾔語処理では、部分問題ごとにモデルを学習し解析
深層学習以前の⾔語処理と深層学習による⾔語処理
12
質問応答
意味解析
例.述語項構造解析
構文解析
例.係り受け解析
入力:質問文
出力:回答文の候補
品詞タグ付け
質問応答
訓練データ
意味解析
訓練データ
構文解析
訓練データ
品詞タグ
付け
訓練データ
学習
学習
学習
学習
以前
●  以前の⾔語処理では、部分問題ごとにモデルを学習し解析
●  深層学習では、部分問題を隠れ層での学習に置き換えること
で、応⽤タスク⽤の学習データからend-to-endで学習可能に
●  タスクによっては従来の⼿法と同程度または上回る性能
●  反⾯、出⼒の解釈が難しいなどの問題がある(最後に説明)
深層学習以前の⾔語処理と深層学習による⾔語処理
13
質問応答
意味解析
例.述語項構造解析
構文解析
例.係り受け解析
入力:質問文
出力:回答文の候補
品詞タグ付け
質問応答
訓練データ
隠れ層
隠れ層
隠れ層
隠れ層
入力:質問文
出力:回答文の候補
意味解析
訓練データ
構文解析
訓練データ
品詞タグ
付け
訓練データ
学習
学習
学習
学習 学習
以前 深層学習
●  応⽤タスクの多く(機械翻訳、質問応答、対話など)は、
⽂を⼊⼒として⽂を出⼒(予測)する問題
深層学習による⾔語処理
14
応用タスク
訓練データ
隠れ層
隠れ層
隠れ層
隠れ層
入力:文
出力:文
学習
どうやって⾃然⾔語⽂を
ベクトルで表すか?
どうやって⽂をベクトルで表すか
ある単位で区切り、単位ごとにベクトルで表し、合成する
⽂字:未知語に有効。語彙サイズは減るが、系列⻑が⻑くなる
今 ⽇ の 本 郷 三 丁 ⽬ は 晴 れ て い る
サブワード:部分⽂字列で、⽂字よりもバランスが良い
今⽇ の 本郷 三 丁⽬ は 晴れ て い る
単語:意味を考慮した情報が得られる
今⽇ の 本郷三丁⽬ は 晴れ て いる
15
どうやって⽂をベクトルで表すか
ある単位で区切り、単位ごとにベクトルで表し、合成する
⽂字:未知語に有効。語彙サイズは減るが、系列⻑が⻑くなる
今 ⽇ の 本 郷 三 丁 ⽬ は 晴 れ て い る
サブワード:部分⽂字列で、⽂字よりもバランスが良い
今⽇ の 本郷 三 丁⽬ は 晴れ て い る
単語:意味を考慮した情報が得られる
今⽇ の 本郷三丁⽬ は 晴れ て いる
16
どうやって単語をベクトルで表すか?
深層学習による⾃然⾔語処理
(1)埋め込みによる単語の意味表現
17
分布仮説(distributional hypothesis)[Harris+, 1954]
単語の意味はその周囲の単語から形成されるという仮説
天気という単語は今⽇という単語と同時に出現しやすい(共起)
→単語の意味を周囲の単語との共起頻度で表現できそう
18
今⽇の天気は晴れである。
今⽇の1時間ごとの天気、気温、降⽔量を掲載します。
あなたが知りたい天気予報をお伝えします。
今⽇は天気が良いので布団を⼲した。
どうやって単語の意味を表すか(1)共起⾏列
単語の前後の語(⽂脈:context)との共起頻度を表した⾏列
前後1語の共起⾏列の例:
19
今⽇ は 晴れ て いる
今⽇ 0 1 0 0 0
は 1 0 1 0 0
晴れ 0 1 0 1 0
て 0 0 1 0 1
いる 0 0 0 1 0
単語
⽂脈(前後1語に出現する単語)
⽂脈として扱う
前後の語の数を
ウインドウサイズ
という
「今⽇」を表す
単語ベクトルは
(0,1,0,0,0)
どうやって単語の意味を表すか(2)one-hotベクトル
⽂を単語分割し、各単語にID(次元)を振り、1-of-K表現でone-
hot(局所表現)ベクトルにする
今⽇ (1,0,0,0,0,0,0)   今⽇ (1,0,0,0,0,0,0)
は (0,1,0,0,0,0,0)   は (0,1,0,0,0,0,0)
晴れ (0,0,1,0,0,0,0)   休み (0,0,0,0,0,1,0)
て (0,0,0,1,0,0,0)   だ (0,0,0,0,0,0,1)
いる (0,0,0,0,1,0,0)
今⽇ は 晴れ て いる
1 2 3 4 5
今⽇ は 休み だ
1 2 6 7
20
単語
ID
単語の局所表現の問題点
⼀単語にone-hotベクトルを割りあてると、ベクトルの次元が巨⼤
かつスパース(ほとんどゼロ) になり、無駄な計算が多くなる
ニューラルネットワークとコーパス(⼤規模⾔語データ)を⽤い
単語埋め込みベクトル(分散表現:distributed representation)
を学習することで、one-hotベクトル化によるベクトル表現(数万
〜数⼗万次元)よりも低次元で密なベクトル(数⼗〜数百次元)
を獲得できる
21
単語の分散表現 (単語埋め込み: word embedding)
密なベクトル はone-hotベクトル に⾏列 をかけて得られる
-  の次元は語彙数
の次元は埋め込みたい数(ハイパーパラメータ)
-   は重みを表す埋め込み⾏列(embedding matrix)
-  ⾏列 において単語ID番⽬の列を抽出すると単語埋め込みベ
クトルが得られる。つまり、 は単語IDをルックアップして
単語埋め込みベクトルに変換する⾏列ともいえる
22
分布仮説再掲
周囲の単語から、(  )には「天気」が⼊りそうと推測できる
分布仮説を、周囲の単語が与えられたときにどんな単語が出現す
るかを推測する問題に帰着させた⾔語モデル:Word2Vec
23
今⽇の(  )は晴れである。
1時間ごとの(  )、気温、降⽔量を掲載します。
あなたが知りたい(  )予報をお伝えします。
(  )が悪いと外に出かける気にならない。
今⽇は(  )が良いので布団を⼲した。
●  分布仮説に基づき、埋め込み⾏列 を学習する⾔語モデル
●  周辺の単語から中⼼の単語を予測するCBOW (Continuous 
Bag of Words)モデル(左)と、
ある単語が与えられた時にその周辺の単語を予測する
Skip-Gramモデル(右)から構成される
Word2Vec [Micolov+,2013]
⼊⼒
V次元
隠れ層
N次元
出⼒
V次元
⼊⼒
V次元
隠れ層
N次元
出⼒
V次元
V×N
次元
N×V
次元
N×V
次元
V×N
次元
24
Skip-Gram
単語 からその周辺の語(⽂脈語)   が予測される確率    
       について、次の⽬的関数を最⼤化する
  :コーパスに出現する全語彙集合
次の損失関数が最⼩となるように誤差逆伝播法で学習し、
確率       をモデル化
      
今日 は 晴れ て いる
softmax関数
25
Skip-Gram
単語 からその周辺の語(⽂脈語)   が予測される確率    
       について、次の⽬的関数を最⼤化する
  :コーパスに出現する全語彙集合
negative sampling:全語彙について計算すると分⺟の計算量が
⼤きくなるため、⽂脈語では確率が⾼くなるように、⽂脈語以外
からランダムに選ばれた語彙(擬似負例)では確率が低くなるよ
うに学習する
今日 は 晴れ て いる
26
Word2Vecの問題点
分布仮説に起因する問題
・反義語は共起する単語が似てしまい、似たベクトルになる
 合否の判定結果は(  )だ
 最終試験は(  )だった  合格⇔不合格どちらも⼊り得る
 志望校は(  )圏内にある
・多義語は⽂脈に応じて語義曖昧性の解消を⾏う必要がある
 ⻘い⾞
 あの新⼊社員はまだ⻘い
 顔⾊が⻘い  
             同じ「⻘い」意味ベクトルではない
27
⽂脈を考慮した単語ベクトル:ELMo [Peters+2018]
⼤規模コーパス1B Word Benchmarkを⽤い、
⽂字レベルの双⽅向(left-to-right, right-to-left)2層LSTMで
前後の⽂脈を考慮した単語ベクトルの学習を実現
28
図は[Devlin+2019]から引⽤
単語埋め込みベクトルの性質:加法構成性
単語埋め込みベクトルは、低次元で計算効率が上がるだけでなく
ベクトルの⾜し算・引き算で語の意味の⾜し算・引き算が
できるという加法構成性の性質があることが知られている
有名な例:
 vec(king) - vec(man) + vec(woman) = vec(queen)
単語埋め込みベクトルをうまく合成して⽂の意味を表現できる?
→Encoder-Decoderモデル
29
深層学習による⾃然⾔語処理
(2)系列変換による⽂の意味表現
30
機械翻訳
ある⾔語の⽂を、別の⾔語の⽂に変換する系列変換タスク
31
今⽇ は 晴れ 。
It is sunny today .
⽇本語
英語
系列から別の系列に変換する確率をモデル化したもの
系列変換(sequence-to-sequence)モデルとも呼ばれる
EncoderとDecoderから構成される
Encoder: 系列(単語列)Xを固定⻑ベクトルZに変換するモデル
Decoder: 固定⻑ベクトルZから系列Yを出⼒するモデル
Encoder-Decoderモデル
Encoder
Decoder
今⽇ は 晴れ <BOS> It is today
It is sunny today <EOS>
32
X
sunny
Z
Y
<BOS>は⽂頭、<EOS>は⽂末を表す
h2
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
2. 符号化器再帰層(encoder recurrent layer)
i番⽬の埋め込みベクトルxiを隠れ状態ベクトルhiに変換
33
今⽇ は 晴れ
i = 1 2
X
3
encoder embedding layer
encoder recurrent layer
h1 h3
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
34
今⽇ は 晴れ
X
i = 1 2 3
encoder embedding layer
h2
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
2. 符号化器再帰層(encoder recurrent layer)
i番⽬の埋め込みベクトルxiを隠れ状態ベクトルhiに変換
35
今⽇ は 晴れ
i = 1 2
X
3
encoder embedding layer
encoder recurrent layer
h1 h3
h2
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
2. 符号化器再帰層(encoder recurrent layer)
i番⽬の埋め込みベクトルxiを隠れ状態ベクトルhiに変換
36
今⽇ は 晴れ
i = 1 2
X
3
encoder embedding layer
encoder recurrent layer
h1 h3
・関数の種類はLSTM, GRU, CNN何でも良い
・単⽅向・双⽅向や層数などのモデル構成も変更できる
Decoderモデル
1.  復号化器埋め込み層 (decoder embedding layer)
復号化器出⼒層のj-1番⽬の出⼒を埋め込みベクトルyjに変換
2.  復号化器再帰層(decoder recurrent layer)
埋め込みベクトルyjを隠れ状態ベクトルhjに変換
3.  復号化器出⼒層(decoder output layer)
隠れ状態ベクトルhjからj番⽬の単語の⽣成確率を計算
37
<BOS> It is today
It is sunny today <EOS>
sunny
Y
decoder embedding layer
decoder recurrent layer
decoder output layer
j = 1 2 4 5
h1 h2 h3 h4
3
Decoderモデル
1.  復号化器埋め込み層 (decoder embedding layer)
復号化器出⼒層のj-1番⽬の出⼒を埋め込みベクトルyjに変換
位置jの処理に位置j-1の処理結果(⾃⾝の⼀つ前の出⼒単語)
を考慮して変換する構造になっていることに注意
38
<BOS> It is today
is sunny today <EOS>
sunny
Y
decoder embedding layer
j = 1 2 3 4 5
It
Decoderモデル
1.  復号化器埋め込み層 (decoder embedding layer)
復号化器出⼒層のj-1番⽬の出⼒を埋め込みベクトルyjに変換
2.  復号化器再帰層(decoder recurrent layer)
埋め込みベクトルyjを隠れ状態ベクトルhjに変換
ニューラルネットの種類はLSTM, GRU, CNN何でも良い
39
<BOS> It is today
It is sunny today <EOS>
sunny
Y
decoder embedding layer
decoder recurrent layer
j = 1 2 4 5
h1 h2 h3 h4
3
Decoderモデル
1.  復号化器埋め込み層 (decoder embedding layer)
復号化器出⼒層のj-1番⽬の出⼒を埋め込みベクトルyjに変換
2.  復号化器再帰層(decoder recurrent layer)
埋め込みベクトルyjを隠れ状態ベクトルhjに変換
40
<BOS> It is today
It is sunny today <EOS>
sunny
Y
decoder embedding layer
decoder recurrent layer
j = 1 2 4 5
h1 h2 h3 h4
3
h0
h0はEncoderの符号化器再帰層の最後の位置の隠れ状態ベクトルZ
Decoderモデル
1.  復号化器埋め込み層 (decoder embedding layer)
復号化器出⼒層のj-1番⽬の出⼒を埋め込みベクトルyjに変換
2.  復号化器再帰層(decoder recurrent layer)
埋め込みベクトルyjを隠れ状態ベクトルhjに変換
3.  復号化器出⼒層(decoder output layer)
隠れ状態ベクトルhjからj番⽬の単語の⽣成確率を計算
41
<BOS> It is today
It is sunny today <EOS>
sunny
Y
decoder embedding layer
decoder recurrent layer
decoder output layer
j = 1 2 4 5
h1 h2 h3 h4
3
RNNs, CNNによる⽂の意味表現
RNNs (Recurrent Neural Networks)
Pros:
・系列の情報を捉えられる
Cons:
・並列化が難しい
CNN (Convolutional Neural Network)
Pros:
・局所的な位置情報を捉えられる
・並列化しやすく⾼速
Cons:
・⼤局的な位置情報が失われる
42
RNNs, CNNによる⽂の意味表現
RNNs (Recurrent Neural Networks)
Pros:
・系列の情報を捉えられる
Cons:
・並列化が難しい
CNN (Convolutional Neural Network)
Pros:
・局所的な位置情報を捉えられる
・並列化しやすく⾼速
Cons:
・⼤局的な位置情報が失われる
43RNNs, CNNの両⽅の良い点を採⽤できないか?→Attention
系列中の重要な情報(⽂中のある単語の意味を理解するために、
⽂中の単語のどれに注⽬すれば良いか)を直接的に⽤いる仕組み
・RNNsの系列の情報を捉える利点
・CNNの並列化しやすいという利点 
                  を兼ね備えている
Attention mechanism(注意機構)
44
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ
層のベクトル間の類似度を計算
AttentionつきEncoder-Decoderモデル
Decoder今⽇ は 晴れ
<BOS> It is today
It is sunny today <EOS>
45
sunny
softmax
関数の形
Encoder
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ
層のベクトル間の類似度を計算
この類似度からEncoderの隠れ層のベクトルの加重平均を求める
(位置jでの変換に必要な⽂脈情報を抽出:Soft attention)
AttentionつきEncoder-Decoderモデル
Decoder今⽇ は 晴れ
<BOS> It is today
It is sunny today <EOS>
46
sunny
Encoder
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ
層のベクトル間の類似度を計算
この類似度からEncoderの隠れ層のベクトルの加重平均を求め、
最終的な位置jのDecoderの隠れ層のベクトルを計算
AttentionつきEncoder-Decoderモデル
Decoder今⽇ は 晴れ
<BOS> It is today
It is sunny today <EOS>
47
sunny
Encoder
Attentionを⽤いた代表的なモデル:Transformer
[Vaswani+ 2017]
48
Encoder
●  RNNやCNNを⽤いず、
Attentionのみを使⽤したEncoder-
Decoderモデル
●  N=6層のEncoderとDecoder
●  Attentionは3箇所
○ Encoder-Decoder Attention
○ Encoder Self-Attention
○ Decoder Masked Self-Attention
Decoder
Query, Key, Valueを⽤いたAttentionの説明
AttentionはDecoderの隠れ層であるQueryによって、Encoderの
隠れ層であるmemory(KeyとValueのペア)から重要な情報を取
り出す機構とみなすことができ、次のように表せる
QueryとKeyの関連度をsoftmaxで正規化してAttention weightを
計算し、Keyの位置に対応したValueを加重和として取り出す
49
Key Value
( )
Attention Weight
Query
σ
Transformerで使われているAttention
Source-Target-Attention
Decode時にEncoderの隠れ層の情報を参照
Self-Attention (Encoder/Decoderどちらにも使える)
⾃分⾃⾝(Self)の下の隠れ層の全ての位置を参照 
50
Key Value
( )
Query
σ
Key Value
( )
Query
σ
Decoder Encoder
SelfSelf
単語間の距離によらず
依存関係を学習
Multi-head Attention
各単語に対し1組のQuery, Key, Valueを割り当てるのではなく、
複数のheadという単位に分けてQuery, Key, Valueの組を⽤意
各headで潜在表現を計算し、最終的にheadの潜在表現を並列に
結合することで、様々な側⾯からみた各単語の潜在表現を得る
51
深層学習による⾃然⾔語処理
(3)汎⽤⾔語モデル
52
GPT (Generative Pre-trained Transformer)
[Radford+2018]
元祖・Transformerによる事前学習に基づく汎⽤⾔語モデル
12層⽚⽅向(left-to-right)Transformerの⾃⼰回帰⾔語モデル
:逆⽅向の情報を利⽤できていないのが難点
53図は[Devlin+2019]から引⽤
BERT (Bidirectional Encoder Representations
from Transformers)[Devlin+ 2019]
24層の双⽅向Transformerをベースとした、
1. ⼤規模コーパスによる事前学習
2. タスクに応じたファインチューニング
によって様々なタスク・⾔語に応⽤できる汎⽤⾔語モデル
54
[CLS] 今⽇ の [MASK] は ⾬ だ [SEP] 傘 を 持っ て [SEP]
BERTの事前学習
2つの事前学習タスクによって双⽅向Transformerの学習を実現
1. Masked Language Model
⼊⼒データの⼀部を[MASK]でマスキングし、前後の単語ではなく
マスキングされた単語を予測するタスクで双⽅向の情報を考慮
2. Next Sentence Prediction
⽂のペア(A, B)が⼊⼒として与えられた時、⽂Bが⽂Aの次に続く
か否かを予測する
55
…
⽂B⽂A
is_next 天気
1年以内に…BERTの改良モデルが続々と登場
56
https://github.com/thunlp/PLMpapers より引用
1年以内に…BERTの改良モデルが続々と登場
●  XLNet[Zhilin+2019]
マスキングに⽤いられる特殊記号[MASK]はfine-tuning時には
出現しないためバイアスとなる問題に対して、
単語の並び替え(Permutation Language Model)を採⽤
●  RoBERTa[Yinhan+2019]
マスキングの位置を動的に変えることで効率的な学習を実現
●  ALBERT[Lan+2019]
BERTで使われているパラメータ数を減らし軽量化
●  T5[Raffel+2019]
Text-to-Text Transfer Transformerの略。
分類・翻訳・質問応答などの全タスクで⼊⼒と出⼒をテキスト
フォーマットに統⼀し転移学習することで、⾼精度を実現
57
汎⽤⾔語モデルの評価ベンチマーク
General Language Understanding Evaluation Benchmark
(GLUE)[Wang+2019] https://gluebenchmark.com/
・⽂単位の理解(⽂法性評価、感情分析)
・⽂間の理解(質問応答、類似度、⾔い換え、推論、照応)
を問う9種類のデータセットを組み合わせている
SuperGLUE[Wang+2020] https://super.gluebenchmark.com/
・GLUEの後続。共参照などGLUEよりもハードなタスクを追加
58
GLUE Leaderboardの現状(2020/05/27時点)
⼈間超え…?
ALBERT+α: 90.6
T5: 90.3
RoBERTa: 88.1
⼈間:87.1
BERTは80.5
59
汎⽤⾔語モデルの実装:transformersの利⽤
huggingfaceが提供するpytorchフレームワークtransformers
https://github.com/huggingface/transformers
で、簡単にBERTなどの汎⽤⾔語モデルを動かせる
例えば、BERTを⽤いた⽇本語単語分割も、数⾏で書けてしまう!
60
from transformers import BertJapaneseTokenizer
tokenizer = BertJapaneseTokenizer.from_pretrained('bert-
base-japanese-whole-word-masking')
tokenizer.tokenize('今日は晴れている')
#['今日', 'は', '晴れ', 'て', 'いる']
汎⽤⾔語モデルの課題:
⾔語の意味を真に理解しているか?
⾃然⾔語推論 (Natural Language Inference) a.k.a.
含意関係認識(Recognizing Textual Entailment)[Dagan,2013]
前提⽂が仮説⽂の意味を含むか否かを⾃動判定するタスク
61
前提文: 今年はある日本人がノーベル文学賞を受賞した
仮説文: 今年はある日本人がノーベル賞を受賞した   含意
前提文: 今年はある日本人がノーベル文学賞を受賞した
仮説文: 日本人は誰もノーベル賞を受賞しなかった   矛盾
前提文: 今年はある日本人がノーベル文学賞を受賞した
仮説文: 去年はある日本人がノーベル文学賞を受賞した 非含意 (中立)
汎⽤⾔語モデルの課題:
⾔語の意味を真に理解しているか?
62
⼤規模データMultiNLI[Williams+2018]でfinetuningしたBERTの正答率
・MultiNLIテストデータ
・様々な推論現象に特化したテストデータ
 - MED[Yanaka+2019]
 - Logic Fragments[Richardson+2020]
特定の推論は全く解けていない
MEDに含まれる、BERTが解けない推論の例(downward monotone)
前提⽂: 今年は⽇本⼈は誰もノーベル賞を受賞しなかった
仮説⽂: 今年は⽇本⼈は誰もノーベル⽂学賞を受賞しなかった 含意
汎⽤⾔語モデルの課題:
⾔語の意味を真に理解しているか?
63
⼤規模データMultiNLI[Williams+2018]でfinetuningしたBERTの正答率
・MultiNLIテストデータ
・様々な推論現象に特化したテストデータ
 - MED[Yanaka+2019]
 - Logic Fragments[Richardson+2020]
特定の推論は全く解けていない
⼤規模データセットの問題:
・簡単な問題が多い
・クラウドワーカーの作業バイアス
ニューラル⾔語モデルの問題:
・否定・数量などの離散的な意味を埋め込むことが難しい
・⼊⼒から出⼒までの過程がブラックボックス化されており、
 なぜ解ける/解けないのかがわからない
汎⽤⾔語モデルの分析:プロービング(probing)
汎⽤⾔語モデルが⾔語を真に理解しているかを分析するための
様々なデータセットや⼿法が研究されている
subject-verb agreement[Linzen+2016][Gulordava+2018]
主語と動詞の数の⼀致を正しく予測できるかで⾔語モデルが⽂法
性を獲得しているか評価
●  The keys are/*is ...
●  The keys to the cabinet are/*is ...
64
⽂法構造を捉えていないと、
直前のcabinetに対応する動詞
を予測してしまう
判断の根拠を⽣成可能なDNNに向けて(1)データ
●  e-SNLI[Camburu+,2018]
⾃然⾔語推論の判断根拠をアノテーションしたデータセット
●  e-SNLI-VE[Xie+2019][Do+2020]
e-SNLIのマルチモーダル版。画像ーテキスト間の含意関係と
判断根拠がアノテーションされている
65
判断の根拠を⽣成可能なDNNに向けて(2)モデル
WT5[Narang+,2020]
Text-to-Textの汎⽤⾔語モデルT5を応⽤したモデル
タスクの種類と問題のテキストを⼊⼒として、
問題の答えと根拠を予測
66
記号推論が可能なDNNに向けて(1)データ
DROP[Dua+,2019]:数値演算・ソート・⽐較などの記号推論を
問う⽂書読解データセット
67
記号推論が可能なDNNに向けて(2)モデル
Neural Symbolic Reader[Chen+,2020]
Neural Module Networks[Gupta+,2020][Andreas+,2016]
質問⽂から回答を算出するためのプログラムに変換することで、
数値演算を実現
68
おわりに:
⾃然⾔語処理に限らず?深層学習の今後の課題
・汎⽤⾔語モデルの登場により⾃然⾔語処理の研究がさらに加速
・⼀⽅で、次のような様々な未解決課題が⼭積
1. ⼊⼒から出⼒までの過程を解釈できる、説明できるモデル
 解釈性(interpretability)
 説明性(explainability)
 信頼できるAI(trastworthy AI)
2. 否定や数量といった離散的な意味を表現し、推論できるモデル
 記号推論(symbolic reasoning)
3. マルチモーダル(画像・⾳声)情報を統合したモデル
69

東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」(一部文字が欠けてます)