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. 自己紹介
 • 東京大学大学院 情報理工学系研究科
 コンピュータ科学専攻 谷中研究室 
 講師(卓越研究員)
 • 研究分野:自然言語処理、計算言語学
 • 研究キーワード:
 自然言語処理と理論言語学の融合、


    深層学習と記号論理の融合による推論技術
 修士・博士課程進学・共同研究者募集
 • 経歴:
  
  
  
  
 
 2018-2021
 理化学研究所革新知能統合研究センター 特別研究員
 2015-2018
 東京大学大学院工学系研究科システム創成学専攻 博士(工学)
 2013-2015
 野村総合研究所にて特許検索システムの開発に従事
 2011-2013
 東京大学工学系研究科化学システム工学専攻 修士課程修了
 2

  2. 今回の講義の目標
 • 自然言語処理(Natural Language Processing, NLP)
 の概観を理解する
 
 • 深層学習によるNLPの基本を理解する


    ◦ Word embedding
 ◦ Encoder-Decoder
 ◦ Attention
 
 • 深層学習によるNLPの課題と、最近の研究動向を理解する
 3

  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

  4. さまざまな言語処理のタスク
 11
 基礎 応用 機械翻訳 質問応答 情報検索 意味解析 構文解析 形態素解析

    談話解析 対話 照応解析 文書分類 固有表現抽出 情報抽出 浅い (表層的) 深い (意味的) 11

  5. • 以前の言語処理では、部分問題ごとにモデルを学習し解析
 深層学習以前の言語処理と深層学習による言語処理
 12
 質問応答 意味解析 例.述語項構造解析 構文解析 例.係り受け解析 入力:質問文

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


    13
 質問応答 意味解析 例.述語項構造解析 構文解析 例.係り受け解析 入力:質問文 出力:回答文の候補 品詞タグ付け 質問応答 訓練データ 隠れ層 隠れ層 隠れ層 隠れ層 入力:質問文 出力:回答文の候補 意味解析 訓練データ 構文解析 訓練データ 品詞タグ 付け 訓練データ 学習 学習 学習 学習 学習 以前 深層学習
  7. 分布仮説(distributional hypothesis)[Harris+, 1954]
 単語の意味はその周囲の単語から形成されるという仮説
 
 
 
 
 
 


    
 
 天気という単語は今日という単語と同時に出現しやすい(共起)
 →単語の意味を周囲の単語との共起頻度で表現できそう
 
 19
 今日の天気は晴れである。
 今日の1時間ごとの天気、気温、降水量を掲載します。
 あなたが知りたい天気予報をお伝えします。
 今日は天気が良いので布団を干した。
  8. どうやって単語の意味を表すか(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)
  9. どうやって単語の意味を表すか(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
  10. 単語の分散表現 (単語埋め込み: word embedding)
 密なベクトル はone-hotベクトル に⾏列 をかけて得られる
 
 


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

  11. 分布仮説再掲
 周囲の単語から、(  )には「天気」が入りそうと推測できる
 
 
 
 
 
 
 
 


    分布仮説を、周囲の単語が与えられたときにどんな単語が出現するか を推測する問題に帰着させた言語モデル:Word2Vec
 
 
 24
 今日の(  )は晴れである。
 1時間ごとの(  )、気温、降水量を掲載します。
 あなたが知りたい(  )予報をお伝えします。
 (  )が悪いと外に出かける気にならない。
 今日は(  )が良いので布団を干した。
  12. Skip-Gram
 
 
 単語 からその周辺の語(文脈語)   が予測される確率         について、次の目的関数を最大化する
   :コーパスに出現する全語彙集合 
 
 


    次の損失関数が最小となるように誤差逆伝播法で学習し、
 確率       をモデル化
       
 今日 は 晴れ て いる softmax関数
 で正規化 26

  13. Skip-Gram
 
 
 単語 からその周辺の語(文脈語)   が予測される確率         について、次の目的関数を最大化する
   :コーパスに出現する全語彙集合 
 
 


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

  14. 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
  15. 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
  16. 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何でも良い
 ・単方向・双方向や層数などのモデル構成も変更できる
  17. 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
 <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 h 1 h 2 h 3 h 4 3
  18. Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 位置jの処理に位置j-1の処理結果(自身の一つ前の出力単語)を考

    慮して変換する構造になっていることに注意
 
 
 
 
 39
 <BOS>
 It
 is
 today
 is sunny today <EOS> sunny Y decoder embedding layer j = 1 2 3 4 5 It
  19. Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 2.

    復号化器再帰層(decoder recurrent layer)
 埋め込みベクトルy j を隠れ状態ベクトルh j に変換
 
 ニューラルネットの種類は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 h 1 h 2 h 3 h 4 3
  20. Decoderモデル
 1. 復号化器埋め込み層 (decoder embedding layer)
 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換
 2.

    復号化器再帰層(decoder recurrent layer)
 埋め込みベクトルy j を隠れ状態ベクトルh j に変換
 
 
 
 
 
 
 41
 <BOS>
 It
 is
 today
 It is sunny today <EOS> 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
  21. 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
 <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 h 1 h 2 h 3 h 4 3
  22. RNNs, CNNによる文の意味表現
 RNNs (Recurrent Neural Networks)
 Pros:
 ・系列の位置情報を捉えられる
 Cons:
 ・並列化が難しい


    
 CNN (Convolutional Neural Network)
 Pros:
 ・局所的な位置情報を捉えられる
 ・並列化しやすく高速
 Cons:
 ・大局的な位置情報が失われる
 44

  23. RNNs, CNNによる文の意味表現
 RNNs (Recurrent Neural Networks)
 Pros:
 ・系列の位置情報を捉えられる
 Cons:
 ・並列化が難しい


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

  24. 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
  25. BERT (Bidirectional Encoder Representations from Transformers)[Devlin+ 2019]
 24層の双方向Transformerをベースとした、
 1. 大規模コーパスによる事前学習


    2. タスクに応じたファインチューニング
 によって様々なタスク・言語に応用できる汎用言語モデル
 57

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

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

  28. 汎用言語モデルの評価ベンチマーク
 General Language Understanding Evaluation Benchmark
 (GLUE)[Wang+2019] https://gluebenchmark.com/
 ・文単位の理解(文法性評価、感情分析)
 ・文間の理解(質問応答、類似度、言い換え、推論、照応)


    を問う9種類のデータセットを組み合わせている
 
 SuperGLUE[Wang+2020] https://super.gluebenchmark.com/
 ・GLUEの後続。共参照などGLUEよりもハードなタスクを追加
 
 
 63

  29. 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
 〜
  30. 汎用言語モデルは言語を理解しているか?
 ブラックボックスの問題
 入力から予測結果に至った判断がブラックボックス化されていて本当 に言語を理解しているのか説明が難しい
 
 自然言語推論 (Natural Language Inference, NLI)

    
 前提文が仮説文の意味を含むか否かを判定する言語理解タスク
 含意関係認識(Recognizing Textual Entailment, RTE)
 
 前提文 子供が走っている猫を見ている 仮説文 猫が走っている           含意 前提文 子供が走っている猫を見ている 仮説文 子供が走っている 非含意
  31. HANS (Heuristic Analysis for NLI Systems)
 [McCoy+ 2019]
 モデルが人のように単語の意味と文構造に従って文の意味を構成的に 理解しているか評価する目的で構築された、英語NLIデータセット


    • モデルが陥りやすい3つのヒューリスティクスを定義
 ◦ ヒューリスティクスに従うと非含意のケースを含意と誤判定
 68

  32. 言語モデル・データセットの多言語化
 これまでの言語処理技術は英語中心だったが、英語だけでなく多言語 でも頑健に動く言語モデルやデータセットの研究が活発に
 
 日本語敵対的推論データセットJaNLI[Yanaka&Mineshima,2021] HANSを参考に、モデルがだまされやすいヒューリスティクスごとに日本語の言 語現象に基づく推論データセットを構築
 69
 subsequence
 男の子

    が 眠っている 女の子 を 見ている
 男の子 が 眠っている         非含意
 constituent
 ひょっとしたら 子供 が 眠っている
 子供 が 眠っている          非含意
 full-overlap
 ライダー が サーファー を 助け出した
 ライダー を サーファー が 助け出した 非含意
 https://github.com/verypluming/JaNLI
  33. 深層学習と自然言語処理のその他の最近の課題
 汎用言語モデルの登場により、自然言語処理の研究がさらに加速
 1. 入力から出力までの過程を解釈できる、説明できるモデル
  解釈性(interpretability)
  説明性(explainability)
  公正性(fairness)
 2. 言語の様々な意味を表現し、推論できるモデル
  記号推論(symbolic

    reasoning)
  常識推論(commonsense reasoning)
  多言語(multilingual)
 3. マルチモーダル(画像・音声)情報との統合
  human-robot-interaction
 4. 少数データや計算時間など、処理効率を考慮したモデル
  SustaiNLP、few-shot/zero-shot learning、モデル圧縮、知識蒸留
 71

  34. 記号推論が可能なDNNに向けて(2)モデル
 AdaLoGN: Adaptive Logic Graph Network[Li+, ACL2022]
 neural reasoningとsymbolic reasoningを行き来してテキスト中の論理関

    係を表したグラフを構築し、ReClor[Yu+,2020]やLogiQA[Liu+,2020]といっ た論理的な文書読解タスクを解く
 
 
 74
 LogiQAの例
  35. An Interpretable Neuro-Symbolic Reasoning Framework for Task-Oriented Dialogue Generation[Yang+,ACL2022]
 知識ベースと照合して複数の仮説を生成し検証した上で応答文を返す

    ことでタスク指向対話システムの解釈可能性を向上
 77
 判断根拠を生成可能なDNNに向けて(2)モデル 

  36. 78
 まとめ:深層学習と自然言語処理の最近の課題
 (再掲)
 汎用言語モデルの登場によって自然言語処理の研究がさらに加速
 まだまだ課題は山積、ぜひ一緒に研究を進めましょう!
 1. 入力から出力までの過程を解釈できる、説明できるモデル
 2. 言語の様々な意味を表現し、推論できるモデル
 3.

    マルチモーダル(画像・音声・動画)情報との統合
 4. 少数データや計算時間など、処理効率を考慮したモデル
 
 宣伝:秋学期に情報理工・大学院講義「自然言語処理応用」を
 開講します。ぜひ受講してください!
 自然言語処理の理論を俯瞰し、自然言語処理を用いた技術開発および 実社会応用を学びます。論文紹介・プロダクト開発のグループワークを 通して、実社会で自ら自然言語処理を用いて課題を解決することができ る知識と技術の習得を目指します。