Seq2seq

Seq2seq（シーク・ツー・シーク）は、自然言語処理のための機械学習手法の一系統である。言語翻訳、、、テキスト要約などの用途がある。

 歴史 
2014年、Googleによって、機械翻訳に使用するためにこのアルゴリズムが開発された。

初期の同様の研究としては、Tomáš Mikolovの2012年の博士論文もあったp. 94 of https://www.fit.vut.cz/study/phd-thesis-file/283/283.pdf, https://www.fit.vut.cz/study/phd-thesis-file/283/283_o2.pdf。2019年、Facebookは、と微分方程式のへの利用を発表した。

同社は、Mathematica、MATLAB、Mapleといった市販ソリューションよりも高速かつ正確に複雑な方程式を解くことができると主張した。はじめに、表記上の特異性を除くために、方程式をツリー構造に解析する。次に、LSTMニューラルネットワークが、標準的なパターン認識機能を適用してツリーを処理する。

2020年、Googleは、seq2seqベースのチャットボットMeenaをリリースした。これは、341 GBのデータセットで訓練した26億パラメータを持つ。Googleは、このチャットボットがOpenAIのGPT-2よりも1.7倍大きなモデル容量を持ち、2020年5月に後継となった1,750億パラメータのGPT-3は『平文単語の45 TB（45,000 GB）のデータセットを570 GBまで絞り込んだもの』で訓練されたと主張した。

2022年、Amazonは中規模（200億パラメータ）のseq2seq言語モデルであるAlexaTM 20Bを発表した。これは、エンコーダ-デコーダを使用して、少数ショット学習を行うものである。エンコーダーは入力の表現を出力して、デコーダーはそれをもとに別の言語に翻訳するなど特定のタスクを実行する。このモデルは、言語翻訳と要約において、はるかに大規模なGPT-3よりも優れた性能を示した。訓練では、ノイズリダクション（文字列中の欠落したテキストを適切に修復する）と因果言語モデリング（入力テキストの意味のある拡張）が組み合わされた。これにより、大規模な訓練ワークフローを行わずに、さまざまな言語間にわたって特徴を付加することができる。AlexaTM 20Bは、Flores-101のすべての言語ペアにわたって、少数ショット学習タスクによる最先端の性能を達成し、いくつかのタスクではGPT-3を上回った。

 手法 
Seq2seqは、ある配列（sequence）を別の配列に変換することができる（）。この変換には、回帰型ニューラルネットワーク（RNN）や、勾配消失問題を避けるために長期・短期記憶（LSTM）やゲート付き回帰型ユニット（GRU）が使用される。各項目のコンテキストには前のステップの出力が使われる。主な構成部位は、一組のエンコーダーネットワークとデコーダーネットワークである。エンコーダーは、各項目を、その項目とコンテキストを含んだ対応する隠れベクトルに変換する。デコーダは、このプロセスを逆転させ、前の出力を入力コンテキストとして使用しながら、ベクトルを出力項目に変換する。

最適化には次のような手法がある。

 アテンション

 デコーダへの入力は、コンテキスト全体を格納する単一ベクトルである。アテンションにより、デコーダが入力配列を選択的に調べることを可能にする。

 ビームサーチ

 出力として単一の単語を選択するのではなく、いくつかの確率が高い選択肢を保持したツリーとして構造化する（アテンションスコアの集合に対してソフトマックス関数を使用）。エンコーダーの状態は、アテンション分布により重み付けされ、平均化される。

 バケット化

 入力と出力のそれぞれに0を付け足して、配列を可変長にすることができる。ただし、配列長が100で入力がわずか3項目の場合、高価なスペースが無駄になる。バケットはさまざまな長さを取り、入力と出力の両方の長さを指定することができる。

訓練では通常、交差エントロピー損失関数が使用され、ある出力は後続の出力の確率が1未満になるようペナルティが課せられる。

 関連ソフトウェア 
同様の手法を採用するソフトウェアとして、OpenNMT（）、Neural Monkey（TensorFlow）、NEMATUS（）などがある。

 関連項目 

 人工ニューラルネットワーク - 動物の脳を構成する生物学的な神経ネットワークをモデルにしたコンピューティングシステム

 脚注 

 外部リンク 






Category:人工ニューラルネットワーク
Category:自然言語処理
Category:Googleのソフトウェア