AI

Seq2SeqとAttention|翻訳AIの転換点

AI

英語を入れると日本語が出てくる機械翻訳は、Seq2SeqとAttentionという2つの発想で実用レベルに近づきました。その転換点を整理します。

こんにちは、zawato(@zawato7)です!

本記事はディープラーニング入門ロードマップの第23回です。時系列を扱うネットワークの応用として、文章から文章を作るモデルを見ます。

この記事でわかること
  • エンコーダ・デコーダモデルとSeq2Seq
  • 教師強制という学習時の工夫
  • Attention機構が学習しているもの
  • Self-AttentionとTransformer

 

 

文章生成モデルはSeq2Seqから始まった

Seq2Seqは、文章を読む側と書く側の2つを組み合わせたエンコーダ・デコーダモデルです。英語から日本語への翻訳で考えます。エンコーダはLSTMなどで英文を順に読み込み、文全体を1本のベクトルに集約します。これを文脈ベクトルと呼び、デコーダへ渡します。

デコーダは文脈ベクトルと開始記号を受け取って最初の単語を出し、その単語を入力に戻して2語目を出す、という流れを終了記号まで繰り返します。入力も出力も系列なので、sequence to sequenceを縮めてSeq2Seqと呼びます。

 

 

やっているのは単語の分類の繰り返し

デコーダが各ステップでしているのは、次の単語を語彙から選ぶ分類にすぎません。出力層のソフトマックスが語彙全体の確率分布を出し、最も確率の高い単語を採用します。クラス数が数万と多いだけで、中身は通常のニューラルネットワークの学習と同じです。

デコーダは前の出力を次の入力に使うため、途中で誤ると以降が丸ごとずれてしまいます。そこで学習中だけは正解の単語を強制的に次の入力へ与えます。これを教師強制(teacher forcing)と呼びます。

 

 

Attentionは「どこに注目するか」自体を学習する

Attention(注意機構)は、どこに注目すべきかということ自体を学習させる仕組みです。素のSeq2Seqの弱点は、入力文を1本の固定長ベクトルに詰め込むため、文が長いほど前半の情報が薄れる点でした。

Attention機構では、エンコーダの各時刻の出力もデコーダへ渡します。デコーダは1語出すたびに、入力文のどの単語を重視するかをソフトマックスで求めます。合計1になる重みなので、注目度の確率分布と読めます。

重みをヒートマップにすると、開始記号では「This」が濃く「これ」を出す、といった対応が見えます。エンコーダとデコーダの間に張るので、エンコーダ・デコーダAttentionソースターゲットAttentionと呼びます。

 

 

Self-AttentionとTransformerへの橋渡し

同じ系列の内側で注目先を決めるのがSelf-Attention(自己注意機構)です。ソースターゲットAttentionが別々の系列をつなぐのに対し、Self-Attentionは1つの文の中の単語同士で重みを計算します。

種類結ぶ相手役割
ソースターゲット入力文と出力文翻訳などの生成
Self-Attention同じ文の単語同士文内部の関係把握

RNN系は順番に処理するため並列化できず、離れた単語の関係も捉えにくい課題がありました。Attentionは全時刻を一度に見比べるので並列処理ができ、距離に関係なく関係を拾えます。これを突き詰めAttentionだけで組んだのがTransformerで、現在のLLMの土台です。

 

 

まとめ

  • Seq2Seqはエンコーダ・デコーダモデル。入力文を文脈ベクトルに集約し、1語ずつ生成する
  • 各ステップは語彙からの分類。学習時は正解を次の入力に与える教師強制を使う
  • Attention機構は注目先の重みをソフトマックスで学習し、固定長ベクトルの弱点を補う
  • 同じ系列内で計算するのがSelf-Attention。並列処理を可能にしTransformerへつながった

 

 

よくある質問

Q. エンコーダ・デコーダモデルとSeq2Seqは同じものですか?
A. ほぼ同じです。入力を圧縮する部分と出力を作る部分に分けた構成がエンコーダ・デコーダで、系列変換に使ったものがSeq2Seqです。

Q. 教師強制を使うと何がよくなるのですか?
A. 学習が速く安定します。誤った単語を出すと以降の入力がすべてずれるためです。正解を与えれば各ステップを切り離して学習できます。

Q. Attentionの重みは人が決めるのですか?
A. いいえ、学習で自動的に決まります。注目度を確率の形にしておき、誤差が小さくなるようネットワークを更新する中で一緒に最適化されます。

Q. Self-Attentionとソースターゲットアテンションの違いは?
A. 結ぶ相手が違います。前者は同じ系列の中の単語同士、後者は入力側と出力側という別々の系列をまたいで注目先を求めます。

 

 

コメント