Slide 1

Slide 1 text

深層学習/Deep Learning 基礎講座
 第7回(20220602) 深層学習と自然言語処理
 谷中 瞳
 東京大学大学院 情報理工学系研究科 コンピュータ科学専攻
 http://hitomiyanaka.strikingly.com/ [email protected] Twitter: @verypluming 1


Slide 2

Slide 2 text

自己紹介
 ● 東京大学大学院 情報理工学系研究科
 コンピュータ科学専攻 谷中研究室 
 講師(卓越研究員)
 ● 研究分野:自然言語処理、計算言語学
 ● 研究キーワード:
 自然言語処理と理論言語学の融合、
 深層学習と記号論理の融合による推論技術
 修士・博士課程進学・共同研究者募集
 ● 経歴:
  
  
  
  
 
 2018-2021
 理化学研究所革新知能統合研究センター 特別研究員
 2015-2018
 東京大学大学院工学系研究科システム創成学専攻 博士(工学)
 2013-2015
 野村総合研究所にて特許検索システムの開発に従事
 2011-2013
 東京大学工学系研究科化学システム工学専攻 修士課程修了
 2


Slide 3

Slide 3 text

今回の講義の目標
 ● 自然言語処理(Natural Language Processing, NLP)
 の概観を理解する
 
 ● 深層学習によるNLPの基本を理解する
 ○ Word embedding
 ○ Encoder-Decoder
 ○ Attention
 
 ● 深層学習によるNLPの課題と、最近の研究動向を理解する
 3


Slide 4

Slide 4 text

自然言語処理をもっと学びたい人に:参考資料
 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


Slide 5

Slide 5 text

自然言語処理をもっと学びたい人に:参考図書
 1. 深層学習による自然言語処理 
 (機械学習プロフェッショナルシリーズ)
 著・坪井祐太/海野裕也/鈴木潤
 通称:出た本
 本講義もかなり参考にしています
 
 2. 自然言語処理 (放送大学教材)
 著・黒橋禎夫
 自然言語処理の基礎から網羅的に学べます
 5


Slide 6

Slide 6 text

自然言語処理の概要
 6


Slide 7

Slide 7 text

質問:自然言語処理というと、何を連想しますか?
 
 
 
 
 7


Slide 8

Slide 8 text

質問:自然言語処理というと、何を連想しますか?
 
 身近な自然言語処理の例
 
 
 
 
 
 
 
 
 
 
 ・AIアシスタント ・機械翻訳 ・情報検索 8


Slide 9

Slide 9 text

質問:自然言語処理というと、何を連想しますか?
 自然言語をコンピュータで処理するための技術:
 自然言語処理 (Natural Language Processing, NLP)
 
 
 
 
 
 
 
 
 
 
 
 ・AIアシスタント ・機械翻訳 ・情報検索 9


Slide 10

Slide 10 text

もう少し具体的に自然言語処理という処理を考える
 次のような特性をもつ可変長の記号列=自然言語を、
 目的のタスクという単位で処理すること
 言語の特性やタスクに応じた前処理が結構大事(沼が深い)
 ● 新しい言語表現がいくらでも生まれる(生産性)
  例:ずっしょ、親ガチャ
 
 ● 一定の文法規則に基づいて構成される(構成性)
  例:英語の文型はSVO、日本語の文型はSOV
 
 ● 前後の言語表現によって意味が定まる(文脈)
  例:「締め切りがやばい」「俳優の演技力がやばい」
 
 10


Slide 11

Slide 11 text

さまざまな言語処理のタスク
 11
 基礎 応用 機械翻訳 質問応答 情報検索 意味解析 構文解析 形態素解析 談話解析 対話 照応解析 文書分類 固有表現抽出 情報抽出 浅い (表層的) 深い (意味的) 11


Slide 12

Slide 12 text

● 以前の言語処理では、部分問題ごとにモデルを学習し解析
 深層学習以前の言語処理と深層学習による言語処理
 12
 質問応答 意味解析 例.述語項構造解析 構文解析 例.係り受け解析 入力:質問文 出力:回答文の候補 品詞タグ付け 質問応答 訓練データ 意味解析 訓練データ 構文解析 訓練データ 品詞タグ 付け 訓練データ 学習 学習 学習 学習 以前

Slide 13

Slide 13 text

● 以前の言語処理では、部分問題ごとにモデルを学習し解析
 ● 深層学習では、部分問題を隠れ層での学習に置き換えることで、応 用タスク用の学習データからend-to-endで学習可能に
 ● タスクによっては従来の手法と同程度または上回る性能
 ● 反面、出力の解釈が難しいなどの問題がある(最後に説明)
 深層学習以前の言語処理と深層学習による言語処理
 13
 質問応答 意味解析 例.述語項構造解析 構文解析 例.係り受け解析 入力:質問文 出力:回答文の候補 品詞タグ付け 質問応答 訓練データ 隠れ層 隠れ層 隠れ層 隠れ層 入力:質問文 出力:回答文の候補 意味解析 訓練データ 構文解析 訓練データ 品詞タグ 付け 訓練データ 学習 学習 学習 学習 学習 以前 深層学習

Slide 14

Slide 14 text

この1年の自然言語処理の研究動向を大雑把に見る
 ACL2021(NLPのトップ国際会議の一つ)の論文に出てくる
 頻出キーワードのワードクラウド
 representations, language-models, pre-trained, generation, …
 14
 https://github.com/roomylee/nlp-papers-with-arxiv/tree/master/acl-2021

Slide 15

Slide 15 text

● 応用タスクの多く(機械翻訳、質問応答、対話など)は、
 文を入力として文を出力(予測)する問題
 深層学習による言語処理
 15
 応用タスク 訓練データ 隠れ層 隠れ層 隠れ層 隠れ層 入力:文 出力:文 学習 どうやって自然言語文を
 ベクトルで表すか?


Slide 16

Slide 16 text

どうやって文をベクトルで表すか
 ある単位で区切り、単位ごとにベクトルで表し、合成する
 文字:未知語に有効。語彙サイズは減るが、系列長が長くなる
 今 日 の 本 郷 三 丁 目 は 晴 れ て い る
 
 サブワード:部分文字列で、文字よりも計算機的にバランス良い
 今日 の 本郷 三 丁目 は 晴れ て い る
 
 単語(形態素):意味を考慮した情報が得られる
 今日 の 本郷三丁目 は 晴れ て いる
 
 16


Slide 17

Slide 17 text

どうやって文をベクトルで表すか
 ある単位で区切り、単位ごとにベクトルで表し、合成する
 文字:未知語に有効。語彙サイズは減るが、系列長が長くなる
 今 日 の 本 郷 三 丁 目 は 晴 れ て い る
 
 サブワード:部分文字列で、文字よりも計算機的にバランス良い
 今日 の 本郷 三 丁目 は 晴れ て い る
 
 単語(形態素):意味を考慮した情報が得られる
 今日 の 本郷三丁目 は 晴れ て いる
 
 17
 どうやって単語をベクトルで表すか?


Slide 18

Slide 18 text

深層学習による自然言語処理
 (1)埋め込みによる単語の意味表現
 18


Slide 19

Slide 19 text

分布仮説(distributional hypothesis)[Harris+, 1954]
 単語の意味はその周囲の単語から形成されるという仮説
 
 
 
 
 
 
 
 
 天気という単語は今日という単語と同時に出現しやすい(共起)
 →単語の意味を周囲の単語との共起頻度で表現できそう
 
 19
 今日の天気は晴れである。
 今日の1時間ごとの天気、気温、降水量を掲載します。
 あなたが知りたい天気予報をお伝えします。
 今日は天気が良いので布団を干した。

Slide 20

Slide 20 text

どうやって単語の意味を表すか(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)

Slide 21

Slide 21 text

どうやって単語の意味を表すか(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

Slide 22

Slide 22 text

単語の局所表現の問題点
 一単語にone-hotベクトルを割りあてると、ベクトルの次元が巨大かつス パース(ほとんどゼロ) になり、無駄な計算が多くなる
 
 ニューラルネットワークとコーパス(大規模言語データ)を用い単語埋め 込みベクトル(分散表現:distributed representation)を学習することで、 one-hotベクトル化によるベクトル表現(数万〜数十万次元)よりも低次 元で密なベクトル(数十〜数百次元)を獲得できる
 
 22


Slide 23

Slide 23 text

単語の分散表現 (単語埋め込み: word embedding)
 密なベクトル はone-hotベクトル に⾏列 をかけて得られる
 
 
 
 - の次元は語彙数
 の次元は埋め込みたい数(ハイパーパラメータ)
 -  は重みを表す埋め込み行列(embedding matrix)
 - 行列 において単語ID番目の列を抽出すると単語埋め込みベクト ルが得られる。つまり、 は単語IDをルックアップして単語埋め込 みベクトルに変換する⾏列ともいえる
 
 23


Slide 24

Slide 24 text

分布仮説再掲
 周囲の単語から、(  )には「天気」が入りそうと推測できる
 
 
 
 
 
 
 
 
 分布仮説を、周囲の単語が与えられたときにどんな単語が出現するか を推測する問題に帰着させた言語モデル:Word2Vec
 
 
 24
 今日の(  )は晴れである。
 1時間ごとの(  )、気温、降水量を掲載します。
 あなたが知りたい(  )予報をお伝えします。
 (  )が悪いと外に出かける気にならない。
 今日は(  )が良いので布団を干した。

Slide 25

Slide 25 text

● 分布仮説に基づき、埋め込み行列 を学習する言語モデル
 ● 周辺の単語から中心の単語を予測するCBOW (Continuous Bag of Wo モデル(左)と、
 ある単語が与えられた時にその周辺の単語を予測する
 Skip-Gramモデル(右)から構成される
 
 
 
 Word2Vec [Micolov+,2013]
 入力
 V次元 隠れ層
 N次元 出力
 V次元 入力
 V次元 隠れ層
 N次元 出力
 V次元 V×N
 次元 N×V
 次元 N×V
 次元 V×N
 次元 25


Slide 26

Slide 26 text

Skip-Gram
 
 
 単語 からその周辺の語(文脈語)   が予測される確率         について、次の目的関数を最大化する
   :コーパスに出現する全語彙集合 
 
 
 次の損失関数が最小となるように誤差逆伝播法で学習し、
 確率       をモデル化
       
 今日 は 晴れ て いる softmax関数
 で正規化 26


Slide 27

Slide 27 text

Skip-Gram
 
 
 単語 からその周辺の語(文脈語)   が予測される確率         について、次の目的関数を最大化する
   :コーパスに出現する全語彙集合 
 
 
 negative sampling:全語彙について計算すると分母の計算量が大きくな るため、文脈語では確率が高くなるように、文脈語以外からランダムに 選ばれた語彙(擬似負例)では確率が低くなるように学習する
 
 今日 は 晴れ て いる 27


Slide 28

Slide 28 text

Word2Vecの問題点
 分布仮説に起因する問題
 ・反義語は共起する単語が似てしまい、似たベクトルになる
  合否の判定結果は(  )だ
  最終試験は(  )だった  合格⇔不合格どちらも入り得る
  志望校は(  )圏内にある
 
 ・多義語は文脈に応じて語義曖昧性の解消を行う必要がある
  青い車
  あの新入社員はまだ青い
  顔色が青い  
              同じ「青い」意味ベクトルではない
 
 28


Slide 29

Slide 29 text

文脈を考慮した単語ベクトル:ELMo [Peters+2018]
 大規模コーパス1B Word Benchmarkを用い、
 文字レベルの双方向(left-to-right, right-to-left)2層LSTMで
 前後の文脈を考慮した単語ベクトルの学習を実現
 29
 図は[Devlin+2019]から引用

Slide 30

Slide 30 text

単語埋め込みベクトルの性質:加法構成性
 単語埋め込みベクトルは、低次元で計算効率が上がるだけでなく
 ベクトルの足し算・引き算で語の意味の足し算・引き算が
 できるという加法構成性の性質があることが知られている
 
 有名な例:
  vec(king) - vec(man) + vec(woman) = vec(queen)
 
 単語埋め込みベクトルをうまく合成して文の意味を表現できる?
 →Encoder-Decoderモデル
 
 30


Slide 31

Slide 31 text

深層学習による自然言語処理
 (2)系列変換による文の意味表現
 31


Slide 32

Slide 32 text

系列変換タスク(生成タスク)
 応用タスクの多くは、系列変換・生成タスクと捉えられる
 対話:発話文に対して応答文を生成する
 要約:入力文に対して要約文を生成する
 機械翻訳:ある言語の文に対して別の言語の文を生成する
 
 
 32
 今日
 は
 晴れ
 。
 It
 is
 sunny
 today
 .
 日本語
 英語


Slide 33

Slide 33 text

系列から別の系列に変換する確率をモデル化したもの
 系列変換(sequence-to-sequence)モデルとも呼ばれる
 EncoderとDecoderから構成される
 Encoder: 系列(単語列)Xを固定長ベクトルZに変換するモデル
 Decoder: 固定長ベクトルZから系列Yを出力するモデル
 
 
 Encoder-Decoderモデル
 Encoder Decoder 今日
 は
 晴れ
 
 It
 is
 today
 It is sunny today 33
 X sunny Z Y は文頭、<EOS>は文末を表す


Slide 34

Slide 34 text

h 2 Encoderモデル
 1. 符号化器埋め込み層(encoder embedding layer)
 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に 変換(前述の単語埋め込みと同じ処理)
 2. 符号化器再帰層(encoder recurrent layer)
 i番目の埋め込みベクトルx i を隠れ状態ベクトルh i に変換
 
 
 
 
 
 34
 今日
 は
 晴れ
 i = 1 2
 X 3 encoder embedding layer encoder recurrent layer h 1 h 3

Slide 35

Slide 35 text

Encoderモデル
 1. 符号化器埋め込み層(encoder embedding layer)
 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に 変換(前述の単語埋め込みと同じ処理)
 
 
 
 35
 今日
 は
 晴れ
 X i = 1 2 3 encoder embedding layer

Slide 36

Slide 36 text

h 2 Encoderモデル
 1. 符号化器埋め込み層(encoder embedding layer)
 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に 変換(前述の単語埋め込みと同じ処理)
 2. 符号化器再帰層(encoder recurrent layer)
 i番目の埋め込みベクトルx i を隠れ状態ベクトルh i に変換
 
 
 
 
 
 36
 今日
 は
 晴れ
 i = 1 2
 X 3 encoder embedding layer encoder recurrent layer h 1 h 3

Slide 37

Slide 37 text

h 2 Encoderモデル
 1. 符号化器埋め込み層(encoder embedding layer)
 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に 変換(前述の単語埋め込みと同じ処理)
 2. 符号化器再帰層(encoder recurrent layer)
 i番目の埋め込みベクトルx i を隠れ状態ベクトルh i に変換
 
 
 
 
 
 37
 今日
 は
 晴れ
 i = 1 2
 X 3 encoder embedding layer encoder recurrent layer h 1 h 3 ・関数の種類はLSTM, GRU, CNN何でも良い
 ・単方向・双方向や層数などのモデル構成も変更できる

Slide 38

Slide 38 text

Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 2. 復号化器再帰層(decoder recurrent layer)
 埋め込みベクトルy j を隠れ状態ベクトルh j に変換
 3. 復号化器出力層(decoder output layer)
 隠れ状態ベクトルh j からj番目の単語の生成確率を計算
 
 
 
 
 38
 
 It
 is
 today
 It is sunny today sunny Y decoder embedding layer decoder recurrent layer decoder output layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3

Slide 39

Slide 39 text

Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 位置jの処理に位置j-1の処理結果(自身の一つ前の出力単語)を考 慮して変換する構造になっていることに注意
 
 
 
 
 39
 
 It
 is
 today
 is sunny today sunny Y decoder embedding layer j = 1 2 3 4 5 It

Slide 40

Slide 40 text

Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 2. 復号化器再帰層(decoder recurrent layer)
 埋め込みベクトルy j を隠れ状態ベクトルh j に変換
 
 ニューラルネットの種類はLSTM, GRU, CNN何でも良い
 
 
 
 
 40
 
 It
 is
 today
 It is sunny today sunny Y decoder embedding layer decoder recurrent layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3

Slide 41

Slide 41 text

Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 2. 復号化器再帰層(decoder recurrent layer)
 埋め込みベクトルy j を隠れ状態ベクトルh j に変換
 
 
 
 
 
 
 41
 
 It
 is
 today
 It is sunny today sunny Y decoder embedding layer decoder recurrent layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3 h 0 h 0 はEncoderの符号化器再帰層の最後の位置の隠れ状態ベクトルZ

Slide 42

Slide 42 text

Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 2. 復号化器再帰層(decoder recurrent layer)
 埋め込みベクトルy j を隠れ状態ベクトルh j に変換
 3. 復号化器出力層(decoder output layer)
 隠れ状態ベクトルh j からj番目の単語の生成確率を計算
 
 
 
 
 42
 
 It
 is
 today
 It is sunny today sunny Y decoder embedding layer decoder recurrent layer decoder output layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3

Slide 43

Slide 43 text

系列から別の系列に変換する確率をモデル化したもの
 系列変換(sequence-to-sequence)モデルとも呼ばれる
 EncoderとDecoderから構成される
 Encoder: 入力(単語列)をベクトルに変換するモデル
 Decoder: 1単語ずつ生成するモデル(先を見ることはできない)
 
 
 Encoder-Decoderモデルまとめ
 Encoder Decoder 今日
 は
 晴れ
 
 It
 is
 today
 It is sunny today 43
 X sunny Z Y は文頭、<EOS>は文末を表す


Slide 44

Slide 44 text

RNNs, CNNによる文の意味表現
 RNNs (Recurrent Neural Networks)
 Pros:
 ・系列の位置情報を捉えられる
 Cons:
 ・並列化が難しい
 
 CNN (Convolutional Neural Network)
 Pros:
 ・局所的な位置情報を捉えられる
 ・並列化しやすく高速
 Cons:
 ・大局的な位置情報が失われる
 44


Slide 45

Slide 45 text

RNNs, CNNによる文の意味表現
 RNNs (Recurrent Neural Networks)
 Pros:
 ・系列の位置情報を捉えられる
 Cons:
 ・並列化が難しい
 
 CNN (Convolutional Neural Network)
 Pros:
 ・局所的な位置情報を捉えられる
 ・並列化しやすく高速
 Cons:
 ・大局的な位置情報が失われる
 45
 RNNs, CNNの両方の良い点を採用できないか?→Attention


Slide 46

Slide 46 text

系列中の重要な情報(文中のある単語の意味を理解するために、文中 の単語のどれに注目すれば良いか)を直接的に用いる仕組み
 
 ・RNNsの系列の位置情報を捉える利点
 ・CNNの並列化しやすいという利点 
                   を兼ね備えている
 
 
 Attention mechanism(注意機構)
 46


Slide 47

Slide 47 text

各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の ベクトル間の類似度を計算
 
 AttentionつきEncoder-Decoderモデル
 Decoder 今日
 は
 晴れ
 
 It
 is
 today
 It is sunny today 47
 sunny softmax
 関数で正規化 Encoder

Slide 48

Slide 48 text

各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の ベクトル間の類似度を計算
 この類似度からEncoderの隠れ層のベクトルの加重平均を求める
 位置jでの変換に必要な文脈情報を抽出している: Soft attention
 AttentionつきEncoder-Decoderモデル
 Decoder 今日
 は
 晴れ
 
 It
 is
 today
 It is sunny today 48
 sunny Encoder

Slide 49

Slide 49 text

各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の ベクトル間の類似度を計算
 この類似度からEncoderの隠れ層のベクトルの加重平均を求め、
 最終的な位置jのDecoderの隠れ層のベクトルを計算
 AttentionつきEncoder-Decoderモデル
 Decoder 今日
 は
 晴れ
 
 It
 is
 today
 It is sunny today 49
 sunny Encoder

Slide 50

Slide 50 text

Attentionを用いた代表的なモデル:Transformer [Vaswani+ 2017]
 50
 Encoder
 ● RNNやCNNを用いず、
 Attentionのみを使用したEncoder-Decoder モデル
 
 ● Attentionは3箇所、
 キモはSelf-Attention
 ○ Encoder-Decoder Attention
 ○ Encoder Self-Attention
 ○ Decoder Masked Self-Attention
 
 ● N=6層のEncoderとDecoder
 
 
 Decoder

Slide 51

Slide 51 text

Query, Key, Valueを用いたAttentionの説明
 AttentionはDecoderの隠れ層であるQueryによって、Encoderの隠れ層 であるmemory(KeyとValueのペア)から重要な情報を取り出す機構とみ なすことができ、次のように表せる
 
 QueryとKeyの関連度をsoftmaxで正規化してAttention weightを計算し、 Keyの位置に対応したValueを加重和として取り出す
 
 
 
 
 51
 Key Value ( ) Attention Weight Query σ

Slide 52

Slide 52 text

Transformerで使われているAttention
 Source-Target-Attention
 Decode時にEncoderの隠れ層の情報を参照
 
 
 
 
 
 Self-Attention (Encoder/Decoderどちらにも使える)
 自身(Self)の下の隠れ層の全ての位置を参照 
 
 52
 Key Value ( ) Query σ Key Value ( ) Query σ Decoder Encoder Self Self 並列処理できる
 単語間距離によらず
 依存関係を学習できる

Slide 53

Slide 53 text

Multi-head Attention
 各単語に対し1組のQuery, Key, Valueを割り当てるのではなく、複数の headという単位に分けてQuery, Key, Valueの組を用意
 各headで潜在表現を計算し、最終的にheadの潜在表現を並列に
 結合することで、様々な側面からみた各単語の潜在表現を得る
 53
 図は[Vaswani+2017]から引用

Slide 54

Slide 54 text

Position embedding
 Self-Attention 自身(Self)の下の隠れ層の全ての位置を参照
 ・並列処理できる
 ・単語間の距離によらず依存関係を学習できる ただし、Self-Attentionでは位置情報が考慮されない
 →Position embeddingを追加して位置情報を考慮する
 54
 図は[Devlin+2019]から引用

Slide 55

Slide 55 text

深層学習による自然言語処理
 (3)汎用言語モデル
 55


Slide 56

Slide 56 text

GPT (Generative Pre-trained Transformer) [Radford+2018]
 元祖・Transformerによる事前学習に基づく汎用言語モデル
 12層片方向(left-to-right)Transformerの自己回帰言語モデル
 :逆方向の情報を利用できていないのが難点
 56
 図は[Devlin+2019]から引用

Slide 57

Slide 57 text

BERT (Bidirectional Encoder Representations from Transformers)[Devlin+ 2019]
 24層の双方向Transformerをベースとした、
 1. 大規模コーパスによる事前学習
 2. タスクに応じたファインチューニング
 によって様々なタスク・言語に応用できる汎用言語モデル
 57


Slide 58

Slide 58 text

[CLS] 今日 の [MASK] は 雨 だ [SEP] 傘 を 持っ て [SEP] BERTの事前学習
 2つの事前学習タスクによって双方向Transformerの学習を実現
 1. Masked Language Model
 入力データの一部を[MASK]でマスキングし、前後の単語ではなくマスキ ングされた単語を予測するタスクで双方向の情報を考慮
 2. Next Sentence Prediction
 文のペア(A, B)が入力として与えられた時、文Bが文Aの次に続くか否か を予測する
 
 
 
 
 
 
 58
 … 文B 文A is_next 天気

Slide 59

Slide 59 text

1年以内に…BERTの改良モデルが続々と登場
 59
 https://github.com/thunlp/PLMpapers より引用

Slide 60

Slide 60 text

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の略。
 分類・翻訳・質問応答などの全タスクで入力と出力をテキストフォー マットに統一し転移学習することで、高精度を実現
 60


Slide 61

Slide 61 text

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:タスク説明のみ与え、全くデータ実例を与えない
 61


Slide 62

Slide 62 text

GPT-3の応用:論文検索システムElicit
 クエリと関連度の高い論文を高精度で検索
 62
 https://elicit.org/search

Slide 63

Slide 63 text

汎用言語モデルの評価ベンチマーク
 General Language Understanding Evaluation Benchmark
 (GLUE)[Wang+2019] https://gluebenchmark.com/
 ・文単位の理解(文法性評価、感情分析)
 ・文間の理解(質問応答、類似度、言い換え、推論、照応)
 を問う9種類のデータセットを組み合わせている
 
 SuperGLUE[Wang+2020] https://super.gluebenchmark.com/
 ・GLUEの後続。共参照などGLUEよりもハードなタスクを追加
 
 
 63


Slide 64

Slide 64 text

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
 64
 〜

Slide 65

Slide 65 text

汎用言語モデルを実装してみよう
 huggingfaceのtransformers: デモやドキュメントも充実 https://github.com/huggingface/transformers
 日本語だけでも168のモデルがある! https://huggingface.co/models?search=japanese
 
 Allen Institute for AIのAllenNLP: 柔軟にカスタマイズできる
 https://github.com/allenai/allennlp
 
 65
 https://huggingface.co/bert-base-uncased

Slide 66

Slide 66 text

汎用言語モデルは言語を理解しているか?
 ブラックボックスの問題
 入力から予測結果に至った判断がブラックボックス化されていて本当 に言語を理解しているのか説明が難しい
 
 自然言語推論 (Natural Language Inference, NLI) 
 前提文が仮説文の意味を含むか否かを判定する言語理解タスク
 含意関係認識(Recognizing Textual Entailment, RTE)
 
 前提文 子供が走っている猫を見ている 仮説文 猫が走っている           含意 前提文 子供が走っている猫を見ている 仮説文 子供が走っている 非含意

Slide 67

Slide 67 text

汎用言語モデルのprobing(プロービング)
 汎用言語モデルが言語を真に理解しているかを分析するための様々な データセットや手法が研究されている
 probing:テストセットや可視化技術を用いてモデルのふるまいを詳細に 調査・分析すること
 
 subject-verb agreement [Linzen+2016][Gulordava+2018]
 主語と動詞の数の一致の予測タスクで汎用言語モデルの文法性を分析
 
 
 
 are The keys
 The keys to the cabinet is 67


Slide 68

Slide 68 text

HANS (Heuristic Analysis for NLI Systems)
 [McCoy+ 2019]
 モデルが人のように単語の意味と文構造に従って文の意味を構成的に 理解しているか評価する目的で構築された、英語NLIデータセット
 ● モデルが陥りやすい3つのヒューリスティクスを定義
 ○ ヒューリスティクスに従うと非含意のケースを含意と誤判定
 68


Slide 69

Slide 69 text

言語モデル・データセットの多言語化
 これまでの言語処理技術は英語中心だったが、英語だけでなく多言語 でも頑健に動く言語モデルやデータセットの研究が活発に
 
 日本語敵対的推論データセットJaNLI[Yanaka&Mineshima,2021] HANSを参考に、モデルがだまされやすいヒューリスティクスごとに日本語の言 語現象に基づく推論データセットを構築
 69
 subsequence
 男の子 が 眠っている 女の子 を 見ている
 男の子 が 眠っている         非含意
 constituent
 ひょっとしたら 子供 が 眠っている
 子供 が 眠っている          非含意
 full-overlap
 ライダー が サーファー を 助け出した
 ライダー を サーファー が 助け出した 非含意
 https://github.com/verypluming/JaNLI

Slide 70

Slide 70 text

70
 JaNLIでBERTを評価した結果
 ● SICK,SNLIの日本語版(JSICK,JSNLI)でファインチューニングしたBERTを 評価
 ● 人はほぼ完璧にできている非含意関係の推論を、日本語・多言語BERT は正しく推論できていない
 ● JaNLIを一部学習に追加したとき:
 ○ 日本語BERTより多言語BERTの方が正答率が向上しにくい傾向


Slide 71

Slide 71 text

深層学習と自然言語処理のその他の最近の課題
 汎用言語モデルの登場により、自然言語処理の研究がさらに加速
 1. 入力から出力までの過程を解釈できる、説明できるモデル
  解釈性(interpretability)
  説明性(explainability)
  公正性(fairness)
 2. 言語の様々な意味を表現し、推論できるモデル
  記号推論(symbolic reasoning)
  常識推論(commonsense reasoning)
  多言語(multilingual)
 3. マルチモーダル(画像・音声)情報との統合
  human-robot-interaction
 4. 少数データや計算時間など、処理効率を考慮したモデル
  SustaiNLP、few-shot/zero-shot learning、モデル圧縮、知識蒸留
 71


Slide 72

Slide 72 text

記号推論が可能なDNNに向けて(1)データセット
 DROP[Dua+,2019]:数値演算・ソート・比較などの記号推論を
 問う文書読解データセット
 
 
 
 
 
 
 
 
 
 
 
 72


Slide 73

Slide 73 text

記号推論が可能なDNNに向けて(2)モデル
 Neural Symbolic Reader[Chen+,2020]
 Neural Module Networks[Gupta+,2020][Andreas+,2016]
 質問文から回答を算出するためのプログラムに変換するモデルを構築 し、数値演算を実現
 
 
 73


Slide 74

Slide 74 text

記号推論が可能なDNNに向けて(2)モデル
 AdaLoGN: Adaptive Logic Graph Network[Li+, ACL2022]
 neural reasoningとsymbolic reasoningを行き来してテキスト中の論理関 係を表したグラフを構築し、ReClor[Yu+,2020]やLogiQA[Liu+,2020]といっ た論理的な文書読解タスクを解く
 
 
 74
 LogiQAの例

Slide 75

Slide 75 text

判断根拠を生成可能なDNNに向けて(1)データセット 
 ● e-SNLI[Camburu+,2018]
 自然言語推論の判断根拠をアノテーションしたデータセット
 ● e-SNLI-VE[Xie+2019][Do+2020]
 e-SNLIのマルチモーダル版。画像ーテキスト間の含意関係と判断 根拠がアノテーションされている
 75


Slide 76

Slide 76 text

判断根拠を生成可能なDNNに向けて(2)モデル 
 WT5[Narang+,2020]
 Text-to-Textの汎用言語モデルT5を応用したモデル
 タスクの種類と問題のテキストを入力として、
 問題の答えと根拠を予測
 76


Slide 77

Slide 77 text

An Interpretable Neuro-Symbolic Reasoning Framework for Task-Oriented Dialogue Generation[Yang+,ACL2022]
 知識ベースと照合して複数の仮説を生成し検証した上で応答文を返す ことでタスク指向対話システムの解釈可能性を向上
 77
 判断根拠を生成可能なDNNに向けて(2)モデル 


Slide 78

Slide 78 text

78
 まとめ:深層学習と自然言語処理の最近の課題
 (再掲)
 汎用言語モデルの登場によって自然言語処理の研究がさらに加速
 まだまだ課題は山積、ぜひ一緒に研究を進めましょう!
 1. 入力から出力までの過程を解釈できる、説明できるモデル
 2. 言語の様々な意味を表現し、推論できるモデル
 3. マルチモーダル(画像・音声・動画)情報との統合
 4. 少数データや計算時間など、処理効率を考慮したモデル
 
 宣伝:秋学期に情報理工・大学院講義「自然言語処理応用」を
 開講します。ぜひ受講してください!
 自然言語処理の理論を俯瞰し、自然言語処理を用いた技術開発および 実社会応用を学びます。論文紹介・プロダクト開発のグループワークを 通して、実社会で自ら自然言語処理を用いて課題を解決することができ る知識と技術の習得を目指します。