Upgrade to Pro — share decks privately, control downloads, hide ads and more …

東京大学深層学習(Deep Learning基礎講座2022)深層学習と自然言語処理

東京大学深層学習(Deep Learning基礎講座2022)深層学習と自然言語処理

東京大学深層学習(Deep Learning基礎講座2022)https://deeplearning.jp/lectures/dlb2022/
「深層学習と自然言語処理」の講義資料です。

Hitomi Yanaka

June 02, 2022
Tweet

More Decks by Hitomi Yanaka

Other Decks in Education

Transcript

  1. 深層学習/Deep Learning 基礎講座

    第7回(20220602) 深層学習と自然言語処理

    谷中 瞳

    東京大学大学院 情報理工学系研究科 コンピュータ科学専攻

    http://hitomiyanaka.strikingly.com/
    [email protected] Twitter: @verypluming
    1


    View Slide

  2. 自己紹介

    ● 東京大学大学院 情報理工学系研究科

    コンピュータ科学専攻 谷中研究室 

    講師(卓越研究員)

    ● 研究分野:自然言語処理、計算言語学

    ● 研究キーワード:

    自然言語処理と理論言語学の融合、

    深層学習と記号論理の融合による推論技術

    修士・博士課程進学・共同研究者募集

    ● 経歴:

     

     

     

     


    2018-2021
 理化学研究所革新知能統合研究センター 特別研究員

    2015-2018
 東京大学大学院工学系研究科システム創成学専攻 博士(工学)

    2013-2015
 野村総合研究所にて特許検索システムの開発に従事

    2011-2013
 東京大学工学系研究科化学システム工学専攻 修士課程修了

    2


    View Slide

  3. 今回の講義の目標

    ● 自然言語処理(Natural Language Processing, NLP)

    の概観を理解する


    ● 深層学習によるNLPの基本を理解する

    ○ Word embedding

    ○ Encoder-Decoder

    ○ Attention


    ● 深層学習によるNLPの課題と、最近の研究動向を理解する

    3


    View Slide

  4. 自然言語処理をもっと学びたい人に:参考資料

    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


    View Slide

  5. 自然言語処理をもっと学びたい人に:参考図書

    1. 深層学習による自然言語処理 

    (機械学習プロフェッショナルシリーズ)

    著・坪井祐太/海野裕也/鈴木潤

    通称:出た本

    本講義もかなり参考にしています


    2. 自然言語処理 (放送大学教材)

    著・黒橋禎夫

    自然言語処理の基礎から網羅的に学べます

    5


    View Slide

  6. 自然言語処理の概要

    6


    View Slide

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





    7


    View Slide

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


    身近な自然言語処理の例











    ・AIアシスタント
    ・機械翻訳
    ・情報検索
    8


    View Slide

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

    自然言語をコンピュータで処理するための技術:

    自然言語処理 (Natural Language Processing, NLP)












    ・AIアシスタント
    ・機械翻訳
    ・情報検索
    9


    View Slide

  10. もう少し具体的に自然言語処理という処理を考える

    次のような特性をもつ可変長の記号列=自然言語を、

    目的のタスクという単位で処理すること

    言語の特性やタスクに応じた前処理が結構大事(沼が深い)

    ● 新しい言語表現がいくらでも生まれる(生産性)

     例:ずっしょ、親ガチャ


    ● 一定の文法規則に基づいて構成される(構成性)

     例:英語の文型はSVO、日本語の文型はSOV


    ● 前後の言語表現によって意味が定まる(文脈)

     例:「締め切りがやばい」「俳優の演技力がやばい」

    
 10


    View Slide

  11. さまざまな言語処理のタスク

    11

    基礎 応用
    機械翻訳
    質問応答
    情報検索
    意味解析
    構文解析
    形態素解析
    談話解析
    対話
    照応解析
    文書分類
    固有表現抽出
    情報抽出
    浅い
    (表層的)
    深い
    (意味的)
    11


    View Slide

  12. ● 以前の言語処理では、部分問題ごとにモデルを学習し解析

    深層学習以前の言語処理と深層学習による言語処理

    12

    質問応答
    意味解析
    例.述語項構造解析
    構文解析
    例.係り受け解析
    入力:質問文
    出力:回答文の候補
    品詞タグ付け
    質問応答
    訓練データ
    意味解析
    訓練データ
    構文解析
    訓練データ
    品詞タグ
    付け
    訓練データ
    学習
    学習
    学習
    学習
    以前

    View Slide

  13. ● 以前の言語処理では、部分問題ごとにモデルを学習し解析

    ● 深層学習では、部分問題を隠れ層での学習に置き換えることで、応
    用タスク用の学習データからend-to-endで学習可能に

    ● タスクによっては従来の手法と同程度または上回る性能

    ● 反面、出力の解釈が難しいなどの問題がある(最後に説明)

    深層学習以前の言語処理と深層学習による言語処理

    13

    質問応答
    意味解析
    例.述語項構造解析
    構文解析
    例.係り受け解析
    入力:質問文
    出力:回答文の候補
    品詞タグ付け
    質問応答
    訓練データ
    隠れ層
    隠れ層
    隠れ層
    隠れ層
    入力:質問文
    出力:回答文の候補
    意味解析
    訓練データ
    構文解析
    訓練データ
    品詞タグ
    付け
    訓練データ
    学習
    学習
    学習
    学習 学習
    以前 深層学習

    View Slide

  14. この1年の自然言語処理の研究動向を大雑把に見る

    ACL2021(NLPのトップ国際会議の一つ)の論文に出てくる

    頻出キーワードのワードクラウド

    representations, language-models, pre-trained, generation, …

    14

    https://github.com/roomylee/nlp-papers-with-arxiv/tree/master/acl-2021

    View Slide

  15. ● 応用タスクの多く(機械翻訳、質問応答、対話など)は、

    文を入力として文を出力(予測)する問題

    深層学習による言語処理

    15

    応用タスク
    訓練データ
    隠れ層
    隠れ層
    隠れ層
    隠れ層
    入力:文
    出力:文
    学習
    どうやって自然言語文を

    ベクトルで表すか?


    View Slide

  16. どうやって文をベクトルで表すか

    ある単位で区切り、単位ごとにベクトルで表し、合成する

    文字:未知語に有効。語彙サイズは減るが、系列長が長くなる

    今 日 の 本 郷 三 丁 目 は 晴 れ て い る


    サブワード:部分文字列で、文字よりも計算機的にバランス良い

    今日 の 本郷 三 丁目 は 晴れ て い る


    単語(形態素):意味を考慮した情報が得られる

    今日 の 本郷三丁目 は 晴れ て いる


    16


    View Slide

  17. どうやって文をベクトルで表すか

    ある単位で区切り、単位ごとにベクトルで表し、合成する

    文字:未知語に有効。語彙サイズは減るが、系列長が長くなる

    今 日 の 本 郷 三 丁 目 は 晴 れ て い る


    サブワード:部分文字列で、文字よりも計算機的にバランス良い

    今日 の 本郷 三 丁目 は 晴れ て い る


    単語(形態素):意味を考慮した情報が得られる

    今日 の 本郷三丁目 は 晴れ て いる


    17

    どうやって単語をベクトルで表すか?


    View Slide

  18. 深層学習による自然言語処理

    (1)埋め込みによる単語の意味表現

    18


    View Slide

  19. 分布仮説(distributional hypothesis)[Harris+, 1954]

    単語の意味はその周囲の単語から形成されるという仮説









    天気という単語は今日という単語と同時に出現しやすい(共起)

    →単語の意味を周囲の単語との共起頻度で表現できそう


    19

    今日の天気は晴れである。

    今日の1時間ごとの天気、気温、降水量を掲載します。

    あなたが知りたい天気予報をお伝えします。

    今日は天気が良いので布団を干した。

    View Slide

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

    View Slide

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

    View Slide

  22. 単語の局所表現の問題点

    一単語にone-hotベクトルを割りあてると、ベクトルの次元が巨大かつス
    パース(ほとんどゼロ) になり、無駄な計算が多くなる


    ニューラルネットワークとコーパス(大規模言語データ)を用い単語埋め
    込みベクトル(分散表現:distributed representation)を学習することで、
    one-hotベクトル化によるベクトル表現(数万〜数十万次元)よりも低次
    元で密なベクトル(数十〜数百次元)を獲得できる


    22


    View Slide

  23. 単語の分散表現 (単語埋め込み: word embedding)

    密なベクトル はone-hotベクトル に⾏列 をかけて得られる




    - の次元は語彙数

    の次元は埋め込みたい数(ハイパーパラメータ)

    -  は重みを表す埋め込み行列(embedding matrix)

    - 行列 において単語ID番目の列を抽出すると単語埋め込みベクト
    ルが得られる。つまり、 は単語IDをルックアップして単語埋め込
    みベクトルに変換する⾏列ともいえる


    23


    View Slide

  24. 分布仮説再掲

    周囲の単語から、(  )には「天気」が入りそうと推測できる









    分布仮説を、周囲の単語が与えられたときにどんな単語が出現するか
    を推測する問題に帰着させた言語モデル:Word2Vec


    
 24

    今日の(  )は晴れである。

    1時間ごとの(  )、気温、降水量を掲載します。

    あなたが知りたい(  )予報をお伝えします。

    (  )が悪いと外に出かける気にならない。

    今日は(  )が良いので布団を干した。

    View Slide

  25. ● 分布仮説に基づき、埋め込み行列 を学習する言語モデル

    ● 周辺の単語から中心の単語を予測する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


    View Slide

  26. Skip-Gram



    単語 からその周辺の語(文脈語)   が予測される確率        
    について、次の目的関数を最大化する

      :コーパスに出現する全語彙集合 



    次の損失関数が最小となるように誤差逆伝播法で学習し、

    確率       をモデル化

          

    今日 は 晴れ て いる
    softmax関数

    で正規化
    26


    View Slide

  27. Skip-Gram



    単語 からその周辺の語(文脈語)   が予測される確率        
    について、次の目的関数を最大化する

      :コーパスに出現する全語彙集合 



    negative sampling:全語彙について計算すると分母の計算量が大きくな
    るため、文脈語では確率が高くなるように、文脈語以外からランダムに
    選ばれた語彙(擬似負例)では確率が低くなるように学習する


    今日 は 晴れ て いる
    27


    View Slide

  28. Word2Vecの問題点

    分布仮説に起因する問題

    ・反義語は共起する単語が似てしまい、似たベクトルになる

     合否の判定結果は(  )だ

     最終試験は(  )だった  合格⇔不合格どちらも入り得る

     志望校は(  )圏内にある


    ・多義語は文脈に応じて語義曖昧性の解消を行う必要がある

     青い車

     あの新入社員はまだ青い

     顔色が青い  

                 同じ「青い」意味ベクトルではない


    28


    View Slide

  29. 文脈を考慮した単語ベクトル:ELMo [Peters+2018]

    大規模コーパス1B Word Benchmarkを用い、

    文字レベルの双方向(left-to-right, right-to-left)2層LSTMで

    前後の文脈を考慮した単語ベクトルの学習を実現

    29

    図は[Devlin+2019]から引用

    View Slide

  30. 単語埋め込みベクトルの性質:加法構成性

    単語埋め込みベクトルは、低次元で計算効率が上がるだけでなく

    ベクトルの足し算・引き算で語の意味の足し算・引き算が

    できるという加法構成性の性質があることが知られている


    有名な例:

     vec(king) - vec(man) + vec(woman) = vec(queen)


    単語埋め込みベクトルをうまく合成して文の意味を表現できる?

    →Encoder-Decoderモデル


    30


    View Slide

  31. 深層学習による自然言語処理

    (2)系列変換による文の意味表現

    31


    View Slide

  32. 系列変換タスク(生成タスク)

    応用タスクの多くは、系列変換・生成タスクと捉えられる

    対話:発話文に対して応答文を生成する

    要約:入力文に対して要約文を生成する

    機械翻訳:ある言語の文に対して別の言語の文を生成する



    32

    今日
 は
 晴れ
 。

    It
 is
 sunny
 today
 .

    日本語

    英語


    View Slide

  33. 系列から別の系列に変換する確率をモデル化したもの

    系列変換(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>は文末を表す


    View Slide

  34. 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

    View Slide

  35. Encoderモデル

    1. 符号化器埋め込み層(encoder embedding layer)

    入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx
    i

    変換(前述の単語埋め込みと同じ処理)




    35

    今日
 は
 晴れ

    X
    i = 1 2 3
    encoder embedding layer

    View Slide

  36. 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

    View Slide

  37. 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何でも良い

    ・単方向・双方向や層数などのモデル構成も変更できる

    View Slide

  38. 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

    h

    h

    3

    View Slide

  39. 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

    View Slide

  40. 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

    h

    h

    3

    View Slide

  41. 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

    h

    h

    3
    h
    0
    h
    0
    はEncoderの符号化器再帰層の最後の位置の隠れ状態ベクトルZ

    View Slide

  42. 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

    h

    h

    3

    View Slide

  43. 系列から別の系列に変換する確率をモデル化したもの

    系列変換(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>は文末を表す


    View Slide

  44. RNNs, CNNによる文の意味表現

    RNNs (Recurrent Neural Networks)

    Pros:

    ・系列の位置情報を捉えられる

    Cons:

    ・並列化が難しい


    CNN (Convolutional Neural Network)

    Pros:

    ・局所的な位置情報を捉えられる

    ・並列化しやすく高速

    Cons:

    ・大局的な位置情報が失われる

    44


    View Slide

  45. RNNs, CNNによる文の意味表現

    RNNs (Recurrent Neural Networks)

    Pros:

    ・系列の位置情報を捉えられる

    Cons:

    ・並列化が難しい


    CNN (Convolutional Neural Network)

    Pros:

    ・局所的な位置情報を捉えられる

    ・並列化しやすく高速

    Cons:

    ・大局的な位置情報が失われる

    45

    RNNs, CNNの両方の良い点を採用できないか?→Attention


    View Slide

  46. 系列中の重要な情報(文中のある単語の意味を理解するために、文中
    の単語のどれに注目すれば良いか)を直接的に用いる仕組み


    ・RNNsの系列の位置情報を捉える利点

    ・CNNの並列化しやすいという利点 

                      を兼ね備えている



    Attention mechanism(注意機構)

    46


    View Slide

  47. 各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の
    ベクトル間の類似度を計算


    AttentionつきEncoder-Decoderモデル

    Decoder
    今日
 は
 晴れ

    
 It
 is
 today

    It is sunny today
    47

    sunny
    softmax

    関数で正規化
    Encoder

    View Slide

  48. 各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の
    ベクトル間の類似度を計算

    この類似度からEncoderの隠れ層のベクトルの加重平均を求める

    位置jでの変換に必要な文脈情報を抽出している: Soft attention

    AttentionつきEncoder-Decoderモデル

    Decoder
    今日
 は
 晴れ

    
 It
 is
 today

    It is sunny today
    48

    sunny
    Encoder

    View Slide

  49. 各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の
    ベクトル間の類似度を計算

    この類似度からEncoderの隠れ層のベクトルの加重平均を求め、

    最終的な位置jのDecoderの隠れ層のベクトルを計算

    AttentionつきEncoder-Decoderモデル

    Decoder
    今日
 は
 晴れ

    
 It
 is
 today

    It is sunny today
    49

    sunny
    Encoder

    View Slide

  50. 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

    View Slide

  51. Query, Key, Valueを用いたAttentionの説明

    AttentionはDecoderの隠れ層であるQueryによって、Encoderの隠れ層
    であるmemory(KeyとValueのペア)から重要な情報を取り出す機構とみ
    なすことができ、次のように表せる


    QueryとKeyの関連度をsoftmaxで正規化してAttention weightを計算し、
    Keyの位置に対応したValueを加重和として取り出す





    51

    Key Value
    ( )
    Attention Weight
    Query
    σ

    View Slide

  52. Transformerで使われているAttention

    Source-Target-Attention

    Decode時にEncoderの隠れ層の情報を参照






    Self-Attention (Encoder/Decoderどちらにも使える)

    自身(Self)の下の隠れ層の全ての位置を参照 


    52

    Key Value
    ( )
    Query
    σ
    Key Value
    ( )
    Query
    σ
    Decoder Encoder
    Self
    Self
    並列処理できる

    単語間距離によらず

    依存関係を学習できる

    View Slide

  53. Multi-head Attention

    各単語に対し1組のQuery, Key, Valueを割り当てるのではなく、複数の
    headという単位に分けてQuery, Key, Valueの組を用意

    各headで潜在表現を計算し、最終的にheadの潜在表現を並列に

    結合することで、様々な側面からみた各単語の潜在表現を得る

    53

    図は[Vaswani+2017]から引用

    View Slide

  54. Position embedding

    Self-Attention 自身(Self)の下の隠れ層の全ての位置を参照

    ・並列処理できる

    ・単語間の距離によらず依存関係を学習できる
    ただし、Self-Attentionでは位置情報が考慮されない

    →Position embeddingを追加して位置情報を考慮する

    54

    図は[Devlin+2019]から引用

    View Slide

  55. 深層学習による自然言語処理

    (3)汎用言語モデル

    55


    View Slide

  56. GPT (Generative Pre-trained Transformer) [Radford+2018]

    元祖・Transformerによる事前学習に基づく汎用言語モデル

    12層片方向(left-to-right)Transformerの自己回帰言語モデル

    :逆方向の情報を利用できていないのが難点

    56

    図は[Devlin+2019]から引用

    View Slide

  57. BERT (Bidirectional Encoder Representations from
    Transformers)[Devlin+ 2019]

    24層の双方向Transformerをベースとした、

    1. 大規模コーパスによる事前学習

    2. タスクに応じたファインチューニング

    によって様々なタスク・言語に応用できる汎用言語モデル

    57


    View Slide

  58. [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 天気

    View Slide

  59. 1年以内に…BERTの改良モデルが続々と登場

    59

    https://github.com/thunlp/PLMpapers より引用

    View Slide

  60. 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


    View Slide

  61. 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


    View Slide

  62. GPT-3の応用:論文検索システムElicit

    クエリと関連度の高い論文を高精度で検索

    62

    https://elicit.org/search

    View Slide

  63. 汎用言語モデルの評価ベンチマーク

    General Language Understanding Evaluation Benchmark

    (GLUE)[Wang+2019] https://gluebenchmark.com/

    ・文単位の理解(文法性評価、感情分析)

    ・文間の理解(質問応答、類似度、言い換え、推論、照応)

    を問う9種類のデータセットを組み合わせている


    SuperGLUE[Wang+2020] https://super.gluebenchmark.com/

    ・GLUEの後続。共参照などGLUEよりもハードなタスクを追加



    63


    View Slide

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


    View Slide

  65. 汎用言語モデルを実装してみよう

    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

    View Slide

  66. 汎用言語モデルは言語を理解しているか?

    ブラックボックスの問題

    入力から予測結果に至った判断がブラックボックス化されていて本当
    に言語を理解しているのか説明が難しい


    自然言語推論 (Natural Language Inference, NLI) 

    前提文が仮説文の意味を含むか否かを判定する言語理解タスク

    含意関係認識(Recognizing Textual Entailment, RTE)


    前提文 子供が走っている猫を見ている
    仮説文 猫が走っている
              含意
    前提文 子供が走っている猫を見ている
    仮説文 子供が走っている
    非含意

    View Slide

  67. 汎用言語モデルのprobing(プロービング)

    汎用言語モデルが言語を真に理解しているかを分析するための様々な
    データセットや手法が研究されている

    probing:テストセットや可視化技術を用いてモデルのふるまいを詳細に
    調査・分析すること


    subject-verb agreement [Linzen+2016][Gulordava+2018]

    主語と動詞の数の一致の予測タスクで汎用言語モデルの文法性を分析




    are
    The keys

    The keys to the cabinet is
    67


    View Slide

  68. HANS (Heuristic Analysis for NLI Systems)

    [McCoy+ 2019]

    モデルが人のように単語の意味と文構造に従って文の意味を構成的に
    理解しているか評価する目的で構築された、英語NLIデータセット

    ● モデルが陥りやすい3つのヒューリスティクスを定義

    ○ ヒューリスティクスに従うと非含意のケースを含意と誤判定

    68


    View Slide

  69. 言語モデル・データセットの多言語化

    これまでの言語処理技術は英語中心だったが、英語だけでなく多言語
    でも頑健に動く言語モデルやデータセットの研究が活発に


    日本語敵対的推論データセットJaNLI[Yanaka&Mineshima,2021]
    HANSを参考に、モデルがだまされやすいヒューリスティクスごとに日本語の言
    語現象に基づく推論データセットを構築

    69

    subsequence
 男の子 が 眠っている 女の子 を 見ている

    男の子 が 眠っている         非含意

    constituent
 ひょっとしたら 子供 が 眠っている

    子供 が 眠っている          非含意

    full-overlap
 ライダー が サーファー を 助け出した

    ライダー を サーファー が 助け出した 非含意

    https://github.com/verypluming/JaNLI

    View Slide

  70. 70

    JaNLIでBERTを評価した結果

    ● SICK,SNLIの日本語版(JSICK,JSNLI)でファインチューニングしたBERTを
    評価

    ● 人はほぼ完璧にできている非含意関係の推論を、日本語・多言語BERT
    は正しく推論できていない

    ● JaNLIを一部学習に追加したとき:

    ○ 日本語BERTより多言語BERTの方が正答率が向上しにくい傾向


    View Slide

  71. 深層学習と自然言語処理のその他の最近の課題

    汎用言語モデルの登場により、自然言語処理の研究がさらに加速

    1. 入力から出力までの過程を解釈できる、説明できるモデル

     解釈性(interpretability)

     説明性(explainability)

     公正性(fairness)

    2. 言語の様々な意味を表現し、推論できるモデル

     記号推論(symbolic reasoning)

     常識推論(commonsense reasoning)

     多言語(multilingual)

    3. マルチモーダル(画像・音声)情報との統合

     human-robot-interaction

    4. 少数データや計算時間など、処理効率を考慮したモデル

     SustaiNLP、few-shot/zero-shot learning、モデル圧縮、知識蒸留

    71


    View Slide

  72. 記号推論が可能なDNNに向けて(1)データセット

    DROP[Dua+,2019]:数値演算・ソート・比較などの記号推論を

    問う文書読解データセット












    72


    View Slide

  73. 記号推論が可能なDNNに向けて(2)モデル

    Neural Symbolic Reader[Chen+,2020]

    Neural Module Networks[Gupta+,2020][Andreas+,2016]

    質問文から回答を算出するためのプログラムに変換するモデルを構築
    し、数値演算を実現



    73


    View Slide

  74. 記号推論が可能なDNNに向けて(2)モデル

    AdaLoGN: Adaptive Logic Graph Network[Li+, ACL2022]

    neural reasoningとsymbolic reasoningを行き来してテキスト中の論理関
    係を表したグラフを構築し、ReClor[Yu+,2020]やLogiQA[Liu+,2020]といっ
    た論理的な文書読解タスクを解く



    74

    LogiQAの例

    View Slide

  75. 判断根拠を生成可能なDNNに向けて(1)データセット 

    ● e-SNLI[Camburu+,2018]

    自然言語推論の判断根拠をアノテーションしたデータセット

    ● e-SNLI-VE[Xie+2019][Do+2020]

    e-SNLIのマルチモーダル版。画像ーテキスト間の含意関係と判断
    根拠がアノテーションされている

    75


    View Slide

  76. 判断根拠を生成可能なDNNに向けて(2)モデル 

    WT5[Narang+,2020]

    Text-to-Textの汎用言語モデルT5を応用したモデル

    タスクの種類と問題のテキストを入力として、

    問題の答えと根拠を予測

    76


    View Slide

  77. An Interpretable Neuro-Symbolic Reasoning Framework for
    Task-Oriented Dialogue Generation[Yang+,ACL2022]

    知識ベースと照合して複数の仮説を生成し検証した上で応答文を返す
    ことでタスク指向対話システムの解釈可能性を向上

    77

    判断根拠を生成可能なDNNに向けて(2)モデル 


    View Slide

  78. 78

    まとめ:深層学習と自然言語処理の最近の課題

    (再掲)

    汎用言語モデルの登場によって自然言語処理の研究がさらに加速

    まだまだ課題は山積、ぜひ一緒に研究を進めましょう!

    1. 入力から出力までの過程を解釈できる、説明できるモデル

    2. 言語の様々な意味を表現し、推論できるモデル

    3. マルチモーダル(画像・音声・動画)情報との統合

    4. 少数データや計算時間など、処理効率を考慮したモデル


    宣伝:秋学期に情報理工・大学院講義「自然言語処理応用」を

    開講します。ぜひ受講してください!

    自然言語処理の理論を俯瞰し、自然言語処理を用いた技術開発および
    実社会応用を学びます。論文紹介・プロダクト開発のグループワークを
    通して、実社会で自ら自然言語処理を用いて課題を解決することができ
    る知識と技術の習得を目指します。


    View Slide