LaserTagger:制御可能で効率的な文章生成アプローチ(1/2)

入門/解説

1.LaserTagger:制御可能で効率的な文章生成アプローチ(1/2)まとめ

・Transformerをベースとしたseq2seqモデルは高い性能を持つが文章生成に使うと3つの弱点がある
・幻覚、大量のトレーニングデータ、推論速度、の3つの弱点を改善しようとするアプローチがLaserTagger
・LaserTaggerは多くの文章生成タスクは入力文と出力文の間に多くの重複が存在する点に着目した

2.LaserTaggerとは?

以下、ai.googleblog.comより「Encode, Tag and Realize: A Controllable and Efficient Approach for Text Generation」の意訳です。元記事の投稿は2020年1月31日、Eric MalmiさんとSebastian Krauseさんによる投稿です。

アイキャッチ画像のクレジットはPhoto by David Švihovec on Unsplash

シーケンスツーシーケンス(seq2seq)モデルは、機械翻訳の分野に革命をもたらし、要約、文章の結合、文法的な誤りの訂正などの様々な文章生成タスクに最適なツールになりました。モデルアーキテクチャ(Transformerなど)の改善、教師なし事前学習で注釈のない大きな言語資料を活用できる事、などにより、近年のニューラルネットワークアプローチの大幅な品質向上が可能になりました。

ただし、文章生成にseq2seqモデルを使用すると、入力文章にない文を出力(hallucination、幻覚と呼ばれます)を生成する事があります。また、良いパフォーマンスに到達するためには大量のトレーニングデータを必要とする場合があるなど、ユースケースに応じて多くの重大な欠点が生じる可能性があります。更に、seq2seqモデルは通常、単語ごとに出力を生成するため、推論は本質的に低速です。

論文、「Encode, Tag, Realize: High-Precision Text Editing」では、上記3つの欠点に特に対処するために設計された、文章生成のための新しい方法をオープンソースとして紹介します。この方法は、速度と精度が高いため、LaserTaggerと呼ばれます。

LaserTaggerは、文章を0から生成するのではなく、編集操作を予測して単語にタグを付けて出力を生成し、その後、別の実現化ステップで入力単語に編集操作を適用します。これは、エラーを起こしにくい文章生成手法であり、トレーニングが容易で、モデルアーキテクチャの実行も高速になります。

LaserTaggerの設計と機能
多くの文章生成タスクは、入力文と出力文の間に多くの重複が存在するという明確な特徴を持ちます。例えば、文法上の誤りを検出して修正するとき、または文を融合するとき、入力文章のほとんどは変更されないままであり、変更する必要があるのは単語のほんの一部です。

このため、LaserTaggerは実際の単語の代わりに一連の編集操作を生成します。 使用する4種類の編集操作は、Keep(出力文に単語をコピー)、Delete(単語を削除)、Keep-AddX/Delete-AddX(タグ付き単語の前にフレーズXを追加。または、追加後にタグ付き単語を削除)です。

このプロセスを次の図に示します。これは、LaserTaggerを文章の結合操作に適用した例を示しています。


LaserTaggerを文章の結合に利用した例
予測された編集操作は、「. Turing」の削除とその前に「and he」を追加する事です。
入力文章と出力文章の重なりが大きいことに注意してください。

追加されるフレーズは、語彙が制限されています。
これは、2つの目標を持って最適化した結果です。
(1)語彙サイズを最小化
(2)トレーニング事例の数を最大化(出力文に追加する単語が制限された語彙のみであるため)

フレーズの語彙を制限すると、出力を決定する語彙探索スペースが小さくなり、その結果、モデルが任意の単語を追加できなくなり、幻覚の問題が軽減されます。

また、入力文と出力文の重複性が高いため、必要な変更は局所的で互いに独立している傾向があります。これは編集操作を並列に予測できることを意味し、前の予測に基づいて予測を順番に実行する自己回帰型のseq2seqモデルと比較して大幅な高速化を実現します。

3.LaserTagger:制御可能で効率的な文章生成アプローチ(1/2)関連リンク

1)ai.googleblog.com
Encode, Tag and Realize: A Controllable and Efficient Approach for Text Generation

2)research.google
Encode, Tag, Realize: High-Precision Text Editing

3)github.com
google-research / lasertagger

タイトルとURLをコピーしました