AttentionメカニズムとGoogle機械翻訳
【 大規模言語モデルの母胎は「翻訳モデル」】
このセッションでは、大規模言語モデルの成立期の話をしようと思います。
まず、大まかな流れを見ておきましょう。
この時期の到達点を示すのは、2016年の「Google ニューラル機械翻訳」の登場なのですが、それに至る経過で重要な画期がいくつかあります。
一つが2014年の Ilya Sutskever らによる、ニューラルネットワークによる翻訳モデルの提案です。もう一つが、2016年の Bengioのグループによる Ilya翻訳モデルの批判と「Attention メカニズム」の提案です。
【 Ilyaの翻訳モデルと 文の意味のベクトル表現の発見 】
2014年に、Ilya Sutskever らは、シーケンスをシーケンスに変換するRNN(LSTM)の能力が、機械翻訳に応用できるという論文 を発表します。
「我々の方法では、入力のシーケンスを固定次元のベクトルにマップするのに、多層のLong Short-Term Memory(LSTM)を利用する。その後、別の深いLSTMが、このベクトルから目的のシーケンスをデコードする。」
「Sequence to Sequence」は、当時、非常に注目されたコンセプトだったのですが、それは、単なる文字列から文字列への変換・生成とも解釈できます。その本当の意味は、皆に明らかだった訳ではなかったようにも思えます。
それでは、翻訳モデルで二つのSequence を結びつけているのはなんでしょう。それは二つのSequenceが「同じ意味」を持つということです。
前段の入力のSequenceから作られ、後段の出力のSequenceを構成するのに利用される「固定次元のベクトル」とは、二つの文が「同じ意味」を持つことを表現している文の意味のベクトル表現に他なりません。
発見されたこの文の意味ベクトルは、次のセッションでに見る Transformer / BERT が作り上げる大規模言語モデルの世界で、本質的に重要な役割を果たすことになります。
【 Bahdanau たちの批判とAttentionメカニズムの登場 】
Ilya Sutskever らの翻訳システムでは、翻訳さるべき文は、Encoderで、一旦、ある決まった大きさの次元(例えば8000次元)を持つベクトルに変換されます。このベクトルからDecoderが翻訳文を生成します。
入力された文が、長いものであっても短いものであっても、中間で生成され以降の翻訳プロセスすべての出発点となるこのベクトルの大きさは同じままです。このシステムでは、長くても短くても入力された文全体が、一つの固定長のベクトルに変換されるます。
2016年の論文で、Bahdanauらは、Ilyaの翻訳モデルを「固定長ベクトルの使用が、この基本的なEncoder/Decoderアーキテクチャの性能を改善する上でのボトルネックになっている」と批判し、「モデルに自動的に、ターゲット・ワードを予測するのに重要なソース・文の一部分について、 (ソフト)検索を可能とすることによって、これを拡張すること」を提案します。これが、Attention メカニズムです。
【 先行したVision Attention 】
実は、2016年のBahdanauらの論文より前に、Attentionの重要性を指摘した論文があるのです。それは、2015年のKelvin Xu らの論文です。
https://drive.google.com/file/d/1aJZN7_Mxw4NtNUIP2bWnj5Q46STwfxpk/view?usp=sharing
コメント
コメントを投稿