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

深層学習による自然言語処理 輪読会#2 資料

Yoichi Tokita
March 10, 2022

深層学習による自然言語処理 輪読会#2 資料

機械学習プロフェッショナルシリーズの「深層学習による自然言語処理」の輪読会の第2回資料。

https://learn-stats-ml.connpass.com/event/240743/#feed

Natural Language Processing by Deep Learning
section03

Yoichi Tokita

March 10, 2022
Tweet

More Decks by Yoichi Tokita

Other Decks in Science

Transcript

  1. ⾃⼰紹介 • tokita(@yoichi_t) • 所属:株式会社Glia Computing (https://www.glia-computing.com/) • 2018年8⽉に設⽴(Co-Founder) •

    機械学習/データ分析のPoC、導⼊⽀援、コンサル • 過去 • 広告会社で推薦システムの開発をやっていたり、警備会社で⼈物⾏動 の研究をしてました
  2. 3章 ⾔語処理における深層学習の基礎 深層学習ベースのNLPにおける「⾔語モデル」について解説 • 3.1 準備 • 記号のベクトル表現(one-hot-vector) • 3.2

    ⾔語モデル • 「⽂」の⽣成される確率のモデル(系列データの確率モデル) • 3.3 分散表現 • 「記号」のベクトル表現(実数ベクトル) • 3.4 系列変換モデル • ⽂(系列)から⽂への変換(ニューラル⾔語モデルの拡張)
  3. 3.1 準備 • NLPで扱うデータ(=テキスト)は可変⻑の「記号」列(sec.1) • ニューラルネットワークは⾏列積(sec.2)であるので、数値(ベクト ル表現)に変換する必要がある 天気 は 良い

    です 今⽇ 𝑥! 𝑥" 𝑥# 𝑥$ 𝑥% 𝑿 = NN 𝑦! 𝑦" 𝑦# 𝑦$ 𝑦% 𝒀 = 天気 は 良い です 今⽇ 𝑒$ 𝑜$ 記号 数値 one-hot ベクトル 埋め込みベクトル (3.3節) 𝑓 ⋅ ソフトマックス関数 ニューラル⾔語モデル(3.2, 3.4節)
  4. 3.2 ⾔語モデル • 確率的⾔語モデル𝑃 𝑌 :⽂が⽣成される確率のモデル化 • 単語の種類だけでなく、順番が重要(BOS(⽂頭)からEOS(⽂末)) • 単語の⽣成が独⽴ではなく、系列データとして意味があるということ

    (各単語の確率の単純な総積ではない) 𝑌 = 𝑦!, 𝑦#, ⋯ , 𝑦$ , 𝑦% はone-hotベクトル • Nグラム⾔語モデル(古典的な⼿法):N個の単語の組み合わせの頻度 • 組み合わせの数をカウントするだけ • ニューラル⾔語モデル:ニューラルネットで確率を推定 • ニューラルネットのパラメータ推定が必要(学習コスト⾼い) • Nグラムモデルよりも⾔語モデルとしての性能が優れている ⽂脈(context):単語の出現確率の計算に⽤いる周囲の単語 RNNのケースでは最初の単語から全て考慮(𝑌(:*+! ) Nグラム(順伝播型)のケースでは𝑌*+,:*+!
  5. 再帰ニューラル⾔語モデル • 再帰ニューラルネット(Recurrent NN; RNN)を⽤いたモデル • 可変⻑⼊⼒を⾃然に扱える • 過去の全ての単語列をcontextに利⽤ モデルとしてはcontextが異なるだけ

    式(3.13) ℎ*+! 𝑌*+! 𝑝* = softmax 𝒐* 5 𝑦* ℎ* 𝑜* 𝑊. 𝑊/ 𝐾× 𝐷 + 𝐾 ⾏列 K次元ベクトル 𝐷次元ベクトル V次元ベクトル
  6. ⾔語モデルの評価 • 𝒟 個の評価データに対して⾔語モデル𝑃./012 を評価したい • パープレキシティ(perplexity; PPL) • 負の対数尤度と関係する。

    • コストとみなせるので、⼩さいほど良いモデル。 𝑃𝑃𝐿 = 𝑏< データnに対する対数尤度 正解単語の予測確率が⾼いほどPPLは ⼩さくなる(=良いモデル) 確率に対数をかけているので −∞, 0
  7. ⾔語モデルからの⽂⽣成 • ⾔語モデルは⽂脈を条件とした条件付き確率なので、⽂の⽣成 ができる • ⾔語モデルは⽂(単語系列)が⾃然か否かを評価することが本来の⽬ • ⽣成の場合、⽣成した系列が「⽂脈」として⼊⼒されることになる。⾔語モデル では⽂脈は既知としているので、この点からも⽣成の難しさが直感的に理解でき そう

    • ⽣成の議論は3.4節 • 状態空間モデルを想像すると、観測データが⼊⼒されないため予測分 布の更新が⾏われず、フィルタ分布が計算できない。→難しそう • スケーリング係数付きsoftmaxで予測値を1つに確定するのではなく、 予測分布を扱うべきでは?→ビームサーチ(3.4.4)
  8. ⽂字単位の⾔語モデル • ⽇本語など、分かち書き(単語分割)が必要な⾔語では、分かち 書きがそもそも難しい • →⽂字単位での⾔語モデル • 語彙の数は⼤幅に減るが計算量が増えるし、精度もあまりよくないこ とが知られている •

    ただ、最近の研究では分かち書きフリーなモデルが提案されてきてい るらしい • 「NLP における分かち書き最適化・分かち書きフリー⼿法の総まとめ」, ステー ト・オブ・AIガイド(2022/01/19, 有料記事), link • Linting+, 2021, ByT5: Towards a token-free future with pre-trained byte-to- byte models, link • Jonatham+, 2021, CANINE: Pre-training an Efficient Tokenization-Free Encoder for Language Representation, link
  9. 3.3 分散表現 • 離散オブジェクトをD次元のベクトルで表現したもの • 離散オブジェクト:記号。物理的な量を持たない表現。カテゴリ。 • 何がうれしいか • 離散オブジェクトに対して加算や乗算といった

    演算を定義できる • オブジェクトの類似度算出、意味の加算/減算など • 単語の持つ「意味」(のようなもの)を扱える • 分布仮説:ある単語の周囲の⽂脈によって「意味」が決まる • 近い⽂脈で現れる単語は似た意味を持っているはず→ベクトルの類似度が近い テキストp.59, 図3.1 テキストp61, 図3.3
  10. 分散表現の獲得 • 3つの⼿法が紹介されている • (1)ニューラル⾔語モデルを利⽤する • 普通のニューラルネットを利⽤して普通にニューラルネットを学習 • (2)対数双線形モデルを利⽤する •

    (1)の派⽣系 • word2vecとして知られている⼿法で使われる • (3)負例サンプリングにより獲得 • (2)の課題に対するアプローチ(計算量の削減)
  11. 分散表現の獲得1 • ⽅法1: ニューラル⾔語モデルの1層⽬として普通に学習 • 式(3.11, 3.13)のE(埋め込み⾏列)を固定値ではなく、学習するパラメー タとする 𝑌*+-:*+! 𝑝*

    = softmax 𝒐* 5 𝑦* ℎ* 𝑜* 𝑊. 𝑊/ 式(3.11) これを学習で獲得 このアプローチは、NLPだけでなく、カテ ゴリ型の変数を扱う分類等のモデルでよく 採られる気がする (機械の異常検知、広告レコメンドなど)
  12. 分散表現の獲得2 • ⽅法2: 対数双線形モデルを⽤いる • ニューラル⾔語モデルの派⽣系として、分散表現を獲得するのに特化 • 数百万規模の語彙を扱えるように計算量の課題に対処(word2vec) • word2vec:skip-gramとCBoWというモデルの総称

    テキストp67, 図3.5 • CBoW(Countinuous Bag-of-Words) • 周辺の単語からマスク単語の予 測を⾏う課題を通して、埋め込 み⾏列Eを獲得 • skip-gram • 1つの単語を⼊⼒して、次に現 れる単語(周辺語)を予測する 課題
  13. 分散表現の獲得3 • ⽅法3: 負例サンプリングによる獲得 • 語彙数が多くなった場合の計算⾼速化へのアプローチ • モデルを変更する CBoW(skip-gram) •

    ⼊⼒語彙からマスク単語の予測 • 多クラス分類 負例サンプリング • 実データの確率分布から得られ たデータか否かの分類タスク • 2クラス分類 語彙ℋとマスク単語𝑦& のペアの特徴量φが実データの確率分布から得られているのか否かをモデル化する 2クラス分類ということから、シグモイド関数を利⽤した交差エントロピーを損失関数として定式化 (確率モデル的に考えると、ベルヌーイ分布を利⽤した対数尤度となる)
  14. 3.4 系列変換モデル • 系列から別の系列を⽣成するモデル(seq2seq) • 翻訳、質問応答、⽂書要約など ⼊⼒ 出⼒ 𝑥! 𝑥"

    𝑥# 𝑥$ 𝑥0 𝑿 = 𝑦! 𝑦" 𝑦# 𝑦$ 𝑦1 𝒀 = 𝑧 = Λ 𝑿 再帰ニューラルネット 再帰ニューラルネット 系列の最後の隠れ状態は⼊⼒系列 全ての情報を持っている ⼊⼒系列の隠れ状態を初期状態と して再帰NNにより系列を⽣成
  15. 系列変換モデルの構造 • seq2seqのモデル構造(テキストp.77, 図3.8) RNN構造(式2.37) LSTM、双⽅向RNNなど RNNの初期隠れ状態が⼊⼒系列の隠れ状態になっている ⽣成系列を⼊⼒ 符号化器で⽤いるRNNを複雑なモデルにすること が多い

    • 複合化の初期値に⼊⼒系列の情報が集約してお り、符号化をなるべく精緻にしておきたい • 複合化器は⽣成した値を逐次⼊⼒する形であり、 設計の⾃由度が少ない
  16. 系列変換モデルによる系列の⽣成 • ⾔語モデルを利⽤した系列⽣成(3.2.6参照) • 課題 • 各タイミングでの最適な単語を選択しても⽣成系列全体として最適とは限ら ない • 系列全体としての尤度は各単語の尤度の積ではない(系列データなので、⽂脈に依存

    する) • 複合化器の⼊⼒は⽣成系列 • ⼀度推定が失敗すると、以降その失敗をひきづることになる • アプローチ • 貪欲法:各タイミングでの最適値を推定値と信じる • ビーム探索:各タイミングで上位K個の候補を保持して処理を進める
  17. 系列変換モデルの応⽤ • テキストデータからテキストデータ • 翻訳、対話システム • 翻訳については、従来の⼿法よりも良い精度が得られると⽰されている • Encoder-Decoderモデルとして •

    ⼊⼒データとしては「系列データ」に限定する必要はない • 複合化器の隠れ状態の初期状態を作れれば良い • show-and-tell • 画像データをencodeして、そこから説明⽂を⽣成
  18. まとめ • 深層学習ベースのNLPにおける基礎的なトピックを眺めてきた • 記号世界と実数世界の橋渡し • 記号をベクトルとして扱うためにone-hotベクトルを利⽤ • softmax関数を利⽤して、実数ベクトルから記号(one-hotベクトル)へ変換 •

    ニューラル⾔語モデル • ⽂全体が⽣成される確率をモデル化したものが「確率的⾔語モデル」。コンテキス ト(周辺単語)を条件とした条件付き確率で定義。 • 分散表現 • 単語を密なベクトルで表現したもの。単語同⼠の演算ができる • 系列変換モデル • 系列を⼊⼒として別の系列を⽣成するモデル。モデルとしては再帰ニューラル⾔語 モデルと同様の定式化。