深層学習/Deep Learning 基礎講座
第8回(20210601) 深層学習と⾃然⾔語処理
⾕中 瞳
東京⼤学⼤学院 情報理⼯学系研究科 コンピュータ科学専攻
http://hitomiyanaka.strikingly.com/
hyanaka@is.s.u-tokyo.ac.jp Twitter: @verypluming
1
⾃⼰紹介
● 東京⼤学⼤学院 情報理⼯学系研究科
コンピュータ科学専攻 ⾕中研究室 
講師(卓越研究員)
● 研究分野:⾃然⾔語処理、計算⾔語学
● 研究キーワード:
⾃然⾔語処理と理論⾔語学の融合、
深層学習と記号論理の融合による推論技術
博⼠課程進学・共同研究者募集
● 経歴:
 
 
 
 
2018-2021 理化学研究所⾰新知能統合研究センター 特別研究員
2015-2018 東京⼤学⼤学院⼯学系研究科システム創成学専攻 博⼠(⼯学)
2013-2015 野村総合研究所にて特許検索システムの開発に従事
2011-2013 東京⼤学⼯学系研究科化学システム⼯学専攻 修⼠課程修了
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
質問:⾃然⾔語処理というと、何を連想しますか?
⾃然⾔語をコンピュータで処理するための技術:
⾃然⾔語処理 (Natural Language Processing, NLP)
・AIアシスタント
・機械翻訳
・情報検索
9
もう少し具体的に⾃然⾔語処理という処理を考える
次のような特性をもつ可変⻑の記号列=⾃然⾔語を、
⽬的のタスクという単位で処理すること
⾔語の特性やタスクに応じた前処理が結構⼤事(沼が深い)
●  新しい⾔語表現がいくらでも⽣まれる(⽣産性)
 例:ぴえんこえてぱおん、サ活
●  ⼀定の⽂法規則に基づいて構成される(構成性)
 例:英語の⽂型はSVO、⽇本語の⽂型はSOV
●  前後の⾔語表現によって意味が定まる(⽂脈)
 例:「やわらかいパン」「あの⼈は頭がやわらかい」
10
さまざまな⾔語処理のタスク
1
1
基礎 応用
機械翻訳
質問応答
情報検索
意味解析
構文解析
形態素解析
談話解析
対話
照応解析
文書分類
固有表現抽出
情報抽出
浅い
(表層的)
深い
(意味的)
11
●  以前の⾔語処理では、部分問題ごとにモデルを学習し解析
深層学習以前の⾔語処理と深層学習による⾔語処理
12
質問応答
意味解析
例.述語項構造解析
構文解析
例.係り受け解析
入力:質問文
出力:回答文の候補
品詞タグ付け
質問応答
訓練データ
意味解析
訓練データ
構文解析
訓練データ
品詞タグ
付け
訓練データ
学習
学習
学習
学習
以前
●  以前の⾔語処理では、部分問題ごとにモデルを学習し解析
●  深層学習では、部分問題を隠れ層での学習に置き換えること
で、応⽤タスク⽤の学習データからend-to-endで学習可能に
●  タスクによっては従来の⼿法と同程度または上回る性能
●  反⾯、出⼒の解釈が難しいなどの問題がある(最後に説明)
深層学習以前の⾔語処理と深層学習による⾔語処理
13
質問応答
意味解析
例.述語項構造解析
構文解析
例.係り受け解析
入力:質問文
出力:回答文の候補
品詞タグ付け
質問応答
訓練データ
隠れ層
隠れ層
隠れ層
隠れ層
入力:質問文
出力:回答文の候補
意味解析
訓練データ
構文解析
訓練データ
品詞タグ
付け
訓練データ
学習
学習
学習
学習 学習
以前 深層学習
この1年の⾃然⾔語処理の研究動向を⼤雑把に⾒る
EMNLP2020(NLPのトップ国際会議の⼀つ)の論⽂に出てくる
頻出キーワード上位5件:
transformer, inference, language model, train, recurrent
14
https://www.zeta-alpha.com/post/what-s-hot-in-ai-and-nlp-at-the-emnlp-2020-conference-tips-to-
navigate-the-schedule
●  応⽤タスクの多く(機械翻訳、質問応答、対話など)は、
⽂を⼊⼒として⽂を出⼒(予測)する問題
深層学習による⾔語処理
15
応用タスク
訓練データ
隠れ層
隠れ層
隠れ層
隠れ層
入力:文
出力:文
学習
どうやって⾃然⾔語⽂を
ベクトルで表すか?
どうやって⽂をベクトルで表すか
ある単位で区切り、単位ごとにベクトルで表し、合成する
⽂字:未知語に有効。語彙サイズは減るが、系列⻑が⻑くなる
今 ⽇ の 本 郷 三 丁 ⽬ は 晴 れ て い る
サブワード:部分⽂字列で、⽂字よりも計算機的にバランス良い
今⽇ の 本郷 三 丁⽬ は 晴れ て い る
単語(形態素):意味を考慮した情報が得られる
今⽇ の 本郷三丁⽬ は 晴れ て いる
16
どうやって⽂をベクトルで表すか
ある単位で区切り、単位ごとにベクトルで表し、合成する
⽂字:未知語に有効。語彙サイズは減るが、系列⻑が⻑くなる
今 ⽇ の 本 郷 三 丁 ⽬ は 晴 れ て い る
サブワード:部分⽂字列で、⽂字よりも計算機的にバランス良い
今⽇ の 本郷 三 丁⽬ は 晴れ て い る
単語(形態素):意味を考慮した情報が得られる
今⽇ の 本郷三丁⽬ は 晴れ て いる
17
どうやって単語をベクトルで表すか?
深層学習による⾃然⾔語処理
(1)埋め込みによる単語の意味表現
18
分布仮説(distributional hypothesis)[Harris+, 1954]
単語の意味はその周囲の単語から形成されるという仮説
天気という単語は今⽇という単語と同時に出現しやすい(共起)
→単語の意味を周囲の単語との共起頻度で表現できそう
19
今⽇の天気は晴れである。
今⽇の1時間ごとの天気、気温、降⽔量を掲載します。
あなたが知りたい天気予報をお伝えします。
今⽇は天気が良いので布団を⼲した。
どうやって単語の意味を表すか(1)共起⾏列
単語の前後の語(⽂脈:context)との共起頻度を表した⾏列
前後1語の共起⾏列の例:
20
今⽇ は 晴れ て いる
今⽇ 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
21
単語
ID
単語の局所表現の問題点
⼀単語にone-hotベクトルを割りあてると、ベクトルの次元が巨⼤
かつスパース(ほとんどゼロ) になり、無駄な計算が多くなる
ニューラルネットワークとコーパス(⼤規模⾔語データ)を⽤い
単語埋め込みベクトル(分散表現:distributed representation)
を学習することで、one-hotベクトル化によるベクトル表現(数万
〜数⼗万次元)よりも低次元で密なベクトル(数⼗〜数百次元)
を獲得できる
22
単語の分散表現 (単語埋め込み: word embedding)
密なベクトル はone-hotベクトル に⾏列 をかけて得られる
-  の次元は語彙数
の次元は埋め込みたい数(ハイパーパラメータ)
-   は重みを表す埋め込み⾏列(embedding matrix)
-  ⾏列 において単語ID番⽬の列を抽出すると単語埋め込みベ
クトルが得られる。つまり、 は単語IDをルックアップして
単語埋め込みベクトルに変換する⾏列ともいえる
23
分布仮説再掲
周囲の単語から、(  )には「天気」が⼊りそうと推測できる
分布仮説を、周囲の単語が与えられたときにどんな単語が出現す
るかを推測する問題に帰着させた⾔語モデル:Word2Vec
24
今⽇の(  )は晴れである。
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
次元
25
Skip-Gram
単語 からその周辺の語(⽂脈語)   が予測される確率       
について、次の⽬的関数を最⼤化する
  :コーパスに出現する全語彙集合
次の損失関数が最⼩となるように誤差逆伝播法で学習し、
確率       をモデル化
      
今日 は 晴れ て いる
softmax関数
26
Skip-Gram
単語 からその周辺の語(⽂脈語)   が予測される確率       
について、次の⽬的関数を最⼤化する
  :コーパスに出現する全語彙集合
negative sampling:全語彙について計算すると分⺟の計算量が
⼤きくなるため、⽂脈語では確率が⾼くなるように、⽂脈語以外
からランダムに選ばれた語彙(擬似負例)では確率が低くなるよ
うに学習する
今日 は 晴れ て いる
27
Word2Vecの問題点
分布仮説に起因する問題
・反義語は共起する単語が似てしまい、似たベクトルになる
 合否の判定結果は(  )だ
 最終試験は(  )だった  合格⇔不合格どちらも⼊り得る
 志望校は(  )圏内にある
・多義語は⽂脈に応じて語義曖昧性の解消を⾏う必要がある
 ⻘い⾞
 あの新⼊社員はまだ⻘い
 顔⾊が⻘い  
             同じ「⻘い」意味ベクトルではない
28
⽂脈を考慮した単語ベクトル:ELMo [Peters+2018]
⼤規模コーパス1B Word Benchmarkを⽤い、
⽂字レベルの双⽅向(left-to-right, right-to-left)2層LSTMで
前後の⽂脈を考慮した単語ベクトルの学習を実現
29
図は[Devlin+2019]から引⽤
単語埋め込みベクトルの性質:加法構成性
単語埋め込みベクトルは、低次元で計算効率が上がるだけでなく
ベクトルの⾜し算・引き算で語の意味の⾜し算・引き算が
できるという加法構成性の性質があることが知られている
有名な例:
 vec(king) - vec(man) + vec(woman) = vec(queen)
単語埋め込みベクトルをうまく合成して⽂の意味を表現できる?
→Encoder-Decoderモデル
30
深層学習による⾃然⾔語処理
(2)系列変換による⽂の意味表現
31
機械翻訳
ある⾔語の⽂を、別の⾔語の⽂に変換する系列変換タスク
32
今⽇ は 晴れ 。
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>
33
X
sunny
Z
Y
<BOS>は⽂頭、<EOS>は⽂末を表す
h2
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
1.  符号化器再帰層(encoder recurrent layer)
i番⽬の埋め込みベクトルxiを隠れ状態ベクトルhiに変換
34
今⽇ は 晴れ
i = 1 2
X
3
encoder embedding layer
encoder recurrent layer
h1 h3
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
35
今⽇ は 晴れ
X
i = 1 2 3
encoder embedding layer
h2
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
1.  符号化器再帰層(encoder recurrent layer)
i番⽬の埋め込みベクトルxiを隠れ状態ベクトルhiに変換
36
今⽇ は 晴れ
i = 1 2
X
3
encoder embedding layer
encoder recurrent layer
h1 h3
h2
Encoderモデル
1.  符号化器埋め込み層(encoder embedding layer)
⼊⼒⽂中のi番⽬の単語のone-hotベクトルを埋め込みベクトル
xiに変換(前述の単語埋め込みと同じ処理)
1.  符号化器再帰層(encoder recurrent layer)
i番⽬の埋め込みベクトルxiを隠れ状態ベクトルhiに変換
37
今⽇ は 晴れ
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番⽬の単語の⽣成確率を計算
38
<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の処理結果(⾃⾝の⼀つ前の出⼒単語)
を考慮して変換する構造になっていることに注意
39
<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何でも良い
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
Decoderモデル
1.  復号化器埋め込み層 (decoder embedding layer)
復号化器出⼒層のj-1番⽬の出⼒を埋め込みベクトルyjに変換
2.  復号化器再帰層(decoder recurrent layer)
埋め込みベクトルyjを隠れ状態ベクトルhjに変換
41
<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番⽬の単語の⽣成確率を計算
42
<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:
・⼤局的な位置情報が失われる
43
RNNs, CNNによる⽂の意味表現
RNNs (Recurrent Neural Networks)
Pros:
・系列の情報を捉えられる
Cons:
・並列化が難しい
CNN (Convolutional Neural Network)
Pros:
・局所的な位置情報を捉えられる
・並列化しやすく⾼速
Cons:
・⼤局的な位置情報が失われる
44
RNNs, CNNの両⽅の良い点を採⽤できないか?→Attention
系列中の重要な情報(⽂中のある単語の意味を理解するために、
⽂中の単語のどれに注⽬すれば良いか)を直接的に⽤いる仕組み
・RNNsの系列の情報を捉える利点
・CNNの並列化しやすいという利点 
                  を兼ね備えている
Attention mechanism(注意機構)
45
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ
層のベクトル間の類似度を計算
AttentionつきEncoder-Decoderモデル
Decoder
今⽇ は 晴れ
<BOS> It is today
It is sunny today <EOS>
46
sunny
softmax
関数の形
Encoder
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ
層のベクトル間の類似度を計算
この類似度からEncoderの隠れ層のベクトルの加重平均を求める
(位置jでの変換に必要な⽂脈情報を抽出:Soft attention)
AttentionつきEncoder-Decoderモデル
Decoder
今⽇ は 晴れ
<BOS> It is today
It is sunny today <EOS>
47
sunny
Encoder
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ
層のベクトル間の類似度を計算
この類似度からEncoderの隠れ層のベクトルの加重平均を求め、
最終的な位置jのDecoderの隠れ層のベクトルを計算
AttentionつきEncoder-Decoderモデル
Decoder
今⽇ は 晴れ
<BOS> It is today
It is sunny today <EOS>
48
sunny
Encoder
Attentionを⽤いた代表的なモデル:Transformer
[Vaswani+ 2017]
49
Encoder
●  RNNやCNNを⽤いず、
Attentionのみを使⽤したEncoder-
Decoderモデル
●  N=6層のEncoderとDecoder
それぞれpositional encoding
で位置情報を付与
●  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を加重和として取り出す
50
Key Value
( )
Attention Weight
Query
σ
Transformerで使われているAttention
Source-Target-Attention
Decode時にEncoderの隠れ層の情報を参照
Self-Attention (Encoder/Decoderどちらにも使える)
⾃分⾃⾝(Self)の下の隠れ層の全ての位置を参照 
51
Key Value
( )
Query
σ
Key Value
( )
Query
σ
Decoder Encoder
Self
Self
単語間の距離によらず
依存関係を学習
位置情報はpositional
encodingで考慮
Multi-head Attention
各単語に対し1組のQuery, Key, Valueを割り当てるのではなく、
複数のheadという単位に分けてQuery, Key, Valueの組を⽤意
各headで潜在表現を計算し、最終的にheadの潜在表現を並列に
結合することで、様々な側⾯からみた各単語の潜在表現を得る
52
深層学習による⾃然⾔語処理
(3)汎⽤⾔語モデル
53
GPT (Generative Pre-trained Transformer)
[Radford+2018]
元祖・Transformerによる事前学習に基づく汎⽤⾔語モデル
12層⽚⽅向(left-to-right)Transformerの⾃⼰回帰⾔語モデル
:逆⽅向の情報を利⽤できていないのが難点
54
図は[Devlin+2019]から引⽤
BERT (Bidirectional Encoder Representations
from Transformers)[Devlin+ 2019]
24層の双⽅向Transformerをベースとした、
1. ⼤規模コーパスによる事前学習
2. タスクに応じたファインチューニング
によって様々なタスク・⾔語に応⽤できる汎⽤⾔語モデル
55
[CLS] 今⽇ の [MASK] は ⾬ だ [SEP] 傘 を 持っ て [SEP]
BERTの事前学習
2つの事前学習タスクによって双⽅向Transformerの学習を実現
1. Masked Language Model
⼊⼒データの⼀部を[MASK]でマスキングし、前後の単語ではなく
マスキングされた単語を予測するタスクで双⽅向の情報を考慮
2. Next Sentence Prediction
⽂のペア(A, B)が⼊⼒として与えられた時、⽂Bが⽂Aの次に続く
か否かを予測する
56
…
⽂B
⽂A
is_next 天気
1年以内に…BERTの改良モデルが続々と登場
57
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の略。
分類・翻訳・質問応答などの全タスクで⼊⼒と出⼒をテキスト
フォーマットに統⼀し転移学習することで、⾼精度を実現
58
GPT-3:Few-shot/One-shot/Zero-shot learning
[Brown+, 2020]
前⾝のGPT-1、GPT-2と同様、⾃⼰回帰⾔語モデル
タスクの説明もテキストと同じ⼊⼒とみなしマルチタスクを実現
ファインチューニングの問題:
・タスクによっては教師ありデータを⼗分⽤意するのは⼤変
・ファインチューニング⽤の学習データに特化してしまい、汎化
性能に影響を与える可能性
→GPT-3:少数のデモンストレーションに基づく転移学習
Few-shot:学習後はパラメータを更新せず、推論時にタスク説明と少数
(10から100)のデモンストレーションを与える
One-shot:タスク説明と1つのデモンストレーションを与える
Zero-shot:タスク説明のみ与え全くデモンストレーションを与えない
59
汎⽤⾔語モデルの評価ベンチマーク
General Language Understanding Evaluation Benchmark
(GLUE)[Wang+2019] https://gluebenchmark.com/
・⽂単位の理解(⽂法性評価、感情分析)
・⽂間の理解(質問応答、類似度、⾔い換え、推論、照応)
を問う9種類のデータセットを組み合わせている
SuperGLUE[Wang+2020] https://super.gluebenchmark.com/
・GLUEの後続。共参照などGLUEよりもハードなタスクを追加
60
GLUE/SuperGLUE Leaderboard Top5
(2021/05/17時点)
GLUE
ERNIE:90.9
ALBERT+:90.6
〜
⼈間:87.1
〜
BERT:82.0
SuperGLUE
T5:90.4
⼈間:89.8
〜
BERT:69.5 61
〜
汎⽤⾔語モデルの実装:transformersの利⽤
huggingfaceが提供するpytorchフレームワークtransformers
https://github.com/huggingface/transformers
で、簡単にBERTなどの汎⽤⾔語モデルを動かせる
例えば、BERTを⽤いた⽇本語単語分割も、数⾏で書けてしまう!
62
from transformers import BertJapaneseTokenizer
tokenizer = BertJapaneseTokenizer.from_pretrained('bert-
base-japanese-whole-word-masking')
tokenizer.tokenize('今日は晴れている')
#['今日', 'は', '晴れ', 'て', 'いる']
汎⽤⾔語モデルは⾔語を理解しているか?
ブラックボックスの問題
⼊⼒から予測結果に⾄った判断がブラックボックス化されていて
説明が困難
⾃然⾔語推論 (Natural Language Inference, NLI)
前提⽂が仮説⽂の意味を含むか否かを判定する⾔語理解タスク、
別名:含意関係認識(Recognizing Textual Entailment, RTE)
仮説:
ジェリーがトムを追った	
前提:
トムがジェリーを追った	
含意
汎⽤⾔語モデルは⾔語を理解しているか?
バイアス・ヒューリスティクスの問題
教師データ中の思わぬバイアスを学習している可能性
仮説:	
ジェリーがトムを追った	
前提:	
トムがジェリーを追った	
含意
実はこういうパターンを多く含む	
トムはジェリーと公園に行った	
トムはジェリーと外出した 含意	
学習データ	
どちらの文にもトムとジェリー
が含まれているから含意だ
汎⽤⾔語モデルのprobing(プロービング)
汎⽤⾔語モデルが⾔語を真に理解しているかを分析するための
様々なデータセットや⼿法が研究されている
probing:テストセットや可視化技術を⽤いてモデルのふるまいを
詳細に調査・分析すること
subject-verb agreement [Linzen+2016][Gulordava+2018]
主語と動詞の数の⼀致の予測タスクで汎⽤⾔語モデルの⽂法性を分析
are
The keys
The keys to the cabinet is
65
NLIを⽤いた汎⽤⾔語モデルのprobing
66
⼤規模データMultiNLI[Williams+2018]でfinetuningしたBERTの正答率
・MultiNLIテストデータ
・様々な推論現象に特化したテストデータ
 - MED[Yanaka+2019]
 - Logic Fragments[Richardson+2020]
MEDに含まれる難しい推論の例
(downward monotone)
前提⽂: No dog ran
仮説⽂: No white dog ran 含意
深層ニューラルネットワーク(DNN)の課題:
否定・数量などの離散的な意味を扱った推論(記号推論)
⼊⼒から出⼒に⾄るまでの判断根拠の説明
特定の推論パターンで性能が低下
記号推論が可能なDNNに向けて(1)データ
DROP[Dua+,2019]:数値演算・ソート・⽐較などの記号推論を
問う⽂書読解データセット
67
記号推論が可能なDNNに向けて(2)モデル
Neural Symbolic Reader[Chen+,2020]
Neural Module Networks[Gupta+,2020][Andreas+,2016]
質問⽂から回答を算出するためのプログラムに変換することで、
数値演算を実現
68
判断の根拠を⽣成可能なDNNに向けて(1)データ
●  e-SNLI[Camburu+,2018]
⾃然⾔語推論の判断根拠をアノテーションしたデータセット
●  e-SNLI-VE[Xie+2019][Do+2020]
e-SNLIのマルチモーダル版。画像ーテキスト間の含意関係と
判断根拠がアノテーションされている
69
判断の根拠を⽣成可能なDNNに向けて(2)モデル
WT5[Narang+,2020]
Text-to-Textの汎⽤⾔語モデルT5を応⽤したモデル
タスクの種類と問題のテキストを⼊⼒として、
問題の答えと根拠を予測
70
おわりに:
⾃然⾔語処理に限らず?深層学習の今後の課題
汎⽤⾔語モデルの登場により、⾃然⾔語処理の研究がさらに加速
1. ⼊⼒から出⼒までの過程を解釈できる、説明できるモデル
 解釈性(interpretability)
 説明性(explainability)
 公正性(fairness)
2. ⾔語の様々な意味を表現し、推論できるモデル
 記号推論(symbolic reasoning)
 常識推論(commonsense reasoning)
3. マルチモーダル(画像・⾳声)情報との統合
 human-robot-interaction
4. 少数データや計算時間など、処理効率を考慮したモデル
 SustaiNLP、few-shot/zero-shot learning、モデル圧縮、知識蒸留
71

東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」