Advertisement
Advertisement

More Related Content

Advertisement

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

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