🐒

Stanford NLP with Deep Learning Lecture7のまとめ(概要編)

2023/06/05に公開

1.はじめに

今回も引き続きStanford大学の公開講義Lecture7のまとめを作成していきます。
Lecture6と同様今回も濃い内容となっており、一つの記事にまとめると長くなるので機械翻訳における「概要編」と「モデル編」に分けて記事を作成していきたいと思います。
今回の「概要編」においてはモデルの話はほぼなくまた、テキストベースの記事となっているため少し見にくい内容となってしました。そこについてはすみません、、、。
今回の講義からいよいよ、Attentionが登場してきます。

2.Neural Machine Translationに至るまで

Machine Translation(機械翻訳)
:ある言語(source language)の文章Xを他の言語(target language)に置き換えるタスク

<歴史>

  • 1950s \cdots ルールベースを用いてロシア語を英語に変換することに成功(背景には冷戦、、)
  • 1990s-2010s \cdots 統計的機械翻訳の登場(SMT)
    :条件付き確率を用いて文章の生成を行う。
  • 2014~ \cdots Neural Machine Translation(NMT)の登場
    :end-to-endのNNを用いた機械翻訳(Seq2Seqの論文発表)

2-1:Statistical Machine Translation(統計的機械翻訳)

統計的機械翻訳
:データから確率モデルを学習することで翻訳が可能なはずという考え方のもと発展した分野です。
 この分野はNMTが登場するまでは研究が盛んに行われ、たくさんのモデルや内部構造が生まれました。
ex)ある言語で構成された文章Xを別の言語の文章Yに翻訳したい時を考える
この時、考える確率モデルはXが得られた時のYの条件付き確率が最大となるYを求めることなので以下式で表されます。

argmaxP(Y\ |\ X) \tag{1}

(1)式をベイズの定理を用いて分解すると以下のようになります。

argmaxP(Y\ |\ X) = \ argmaxP(X\ |\ Y)P(Y) \tag{2}

(2)式においてP(X\ |\ Y)P(Y)は翻訳モデルとして学習データを元に学習していく確率モデルとなっており、P(Y)は言語モデルとして翻訳後の文章Yが文章として適切かを評価する確率モデルとなっています。
これらが最大となる文章を見つけることがSMTによる機械翻訳となっています。

<翻訳モデルの学習方法>

(2)式におけるP(X\ |\ Y)は以下の手順で学習が行われます。

  1. 膨大な量のXYの組み合わせデータ(parallel data)を用意する
  2. 単語単位もしくは熟語単位でXYを紐づけるaという値を学習データ内に加えた後条件付き確率P(X,a\ |\ Y)を考える
  3. aや共起数といった様々な要因を用いて学習を行なっていく
  • aについては潜在変数であり、観測データには明示されてないものなので期待値最大法などの特殊なアルゴリズムを用いて学習を行っていく
  1. argmaxの計算を行う
<argmaxの計算(Decoding)>

argmaxの計算は本来であれば取りうるすべての値を計算した後、算出することが考えられるが実際はデータ数に応じて計算量が膨大になっていってしまいます。
そのためSMTではモデル内で独立性を仮定し、Viterviアルゴリズム等を用いて大域最適解を求めることでこの問題に対処しています。
この方法をDecodingと呼びます。

2-2:Neural Machine Translation(NMT)

SMTには以下の問題点がありました。

  • たくさんの特徴量エンジニアリングが必要
  • 大量のデータリソースと人力による作業が必要

これに対して2014に登場したSeq2SeqモデルをはじめとしたNMTによって解決されました。
モデルの詳細については後編の「モデル編」で話しますが簡単にいうと、
:内部に別々の役割をもつRNNsを含んでおり、入力から出力が一貫しているend-to-endのニューラルネットワークを用いた機械翻訳のことをNMTと呼びます。

<SMTと比較したNMTのメリット、デメリット >

[メリット]
  1. 高い精度を誇る
    • 流暢な文章の生成がNMTには可能
    • 元の文章を理解する部分の発達により、翻訳の際に質の良い文章を使えるようになった
    • モデルが複雑になったことで表現力が向上し、より人間に近い意味の捉え方が可能になった
  2. 入力から出力まで一貫するよう最適化された単一のニューラルネットである
    • 他の構成要素がないため、最適化を個々の構成要素に対して別々に行う必要がない
  3. 人力によるエンジニアリングが不要である
    * SMTでは言語ごとの癖を考慮する必要があったが、NMTはそこも捉えることができるのですべての言語で同じ手法を利用できるため
[デメリット]
  1. 解釈性が乏しい
    • モデルの内部がわかりにくいため、デバックが難しい
  2. 制御が困難
    • モデルの複雑さゆえに、翻訳の時におけるルールやガイドラインが不明瞭なため安全性などの考慮が必要

3.NMTの躍進劇

Seq2Seqから始まったNMTですがここ近年で急速に成長しており、私たちの生活にも大きな影響を及ぼしています。

  • 2014: Seq2Seqに関する論文が発表される(NMTの始まり)
  • 2016: Googleがそれまでは翻訳にSMTを用いていたのをNMTに転換する
  • 2018: 他社も追随してSMTからNMTへ転換する
NMTのここがすごい!!
  • SMT
    何百人というエンジニアが数年かけてようやく翻訳を可能にしていた
  • NMT
    少数のグループのエンジニアによる少ないコードと短時間の学習により実現

これにより、精度はもちろんコストも削減できるため多くの会社でNMTが導入されました。

<NMTの課題>

NMTもまだ完璧とは言えず講義では以下の課題があるとされていました。

  • 語彙にない単語への対応
  • 学習データとテストデータ間のドメインのズレへの対処
  • 長文における文脈の保持
  • 情報資源があまりない言語への対応
  • 特有の代名詞や代名詞が省略される言語への対応
  • 形態素解析時に発生するエラーへの対処

ただ2023年現在においては、個人的な意見にはなってしまいますがLLMの発展によってこの課題の多くは解決されているのではないかと感じております。

4.機械翻訳の評価方法

これまではそうやって翻訳してきたかにフォーカスを合わせていましたが最後に、翻訳して生成した文章およびそのモデルをどうやって評価するかについて述べていきます。

翻訳した文の評価でもっとも手っ取り早い方法としては、人力による評価があげられます。
しかし、この方法は以下のような問題点があります。

  • コストが高い
  • 評価する人によって意見が分かれる

よって評価の際に機械的に評価できる指標を用いたい!という考えのもと生まれたのがBLUEというスコアを用いた評価方法です。

  • BLUE(Bilingual Evaluation Understudy)
    :機械翻訳の文と人力による文を比較して以下の手順で類似度を算出する方法
    • n-gramごとのprecision(適合率)でスコアを算出
    • 短い範囲のscoreに対してペナルティを課すためにn-gramの値における幾何平均をとる

この手法は現在でも用いられているぐらい便利な手法ですが、完璧に評価できるとは限りません。

  • 訳す人によって正解文がことなるためそこにばらつきがあるとscoreが安定しない
  • 良い翻訳だとしても人力の翻訳文と単語のずれが多いとscoreが低くなる
    これらの要因でscoreが低くなるため気をつける必要があります。

5. まとめ

今回はLecture7の機械翻訳の概要についてまとめていきました。
これを見るとここ20年の動きが凄まじいなというのを改めて実感してると共に、その時代にこの分野に携われてるのは本当にラッキーだなと思いながら荒波に飲み込まれないよう学習あるのみだなと感じております。
後編の「モデル編」ではMulti LayerRNNs, Seq2Seq, Seq2SeqとAttentionについて主に述べていきたい思います。

6.参考資料

[1]Stanford CS224N NLP with Deep Learning | Winter 2021 | Lecture 7 - Translation, Seq2Seq, Attention

Discussion