Seq2seq

Seq2seqは、自然言語処理のための機械学習手法の一系統である[1]言語翻訳画像キャプション(英語版)会話モデル(英語版)テキスト要約などの用途がある[2]

歴史

2014年、Googleによって、機械翻訳に使用するためにこのアルゴリズムが開発された[2][信頼性要検証]

初期の同様の研究としては、Tomáš Mikolovの2012年の博士論文もあった[3][要非一次資料]。2019年、Facebookは、記号積分(英語版)微分方程式解法(英語版)への利用を発表した。

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

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

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

手法

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

最適化には次のような手法がある[2]

  • アテンション
デコーダへの入力は、コンテキスト全体を格納する単一ベクトルである。アテンションにより、デコーダが入力配列を選択的に調べることを可能にする。
出力として単一の単語を選択するのではなく、いくつかの確率が高い選択肢を保持したツリーとして構造化する(アテンションスコアの集合に対してSoftmaxを使用)[8]。エンコーダーの状態は、アテンション分布により重み付けされ、平均化される[8]
  • バケット化
入力と出力のそれぞれに0を付け足して、配列を可変長にすることができる。ただし、配列長が100で入力がわずか3項目の場合、高価なスペースが無駄になる。バケットはさまざまな長さを取り、入力と出力の両方の長さを指定することができる。

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

関連ソフトウェア

同様の手法を採用するソフトウェアとして、OpenNMT(Torch(英語版))、Neural Monkey(TensorFlow)、NEMATUS(Theano(英語版))などがある[9]

関連項目

脚注

  1. ^ Sutskever, Ilya; Vinyals, Oriol; Le, Quoc Viet (2014). "Sequence to sequence learning with neural networks". arXiv:1409.3215 [cs.CL]。
  2. ^ a b c d Wadhwa, Mani (2018年12月5日). “seq2seq model in Machine Learning” (英語). GeeksforGeeks. 2019年12月17日閲覧。
  3. ^ 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
  4. ^ “Facebook has a neural network that can do advanced math” (英語). MIT Technology Review (2019年12月17日). 2019年12月17日閲覧。
  5. ^ Mehta, Ivan (2020年1月29日). “Google claims its new chatbot Meena is the best in the world” (英語). The Next Web. 2020年2月3日閲覧。
  6. ^ Gage, Justin. “What's GPT-3?”. 2020年8月1日閲覧。
  7. ^ Rodriguez, Jesus. “🤘Edge#224: AlexaTM 20B is Amazon's New Language Super Model Also Capable of Few-Shot Learning” (英語). thesequence.substack.com. 2022年9月8日閲覧。
  8. ^ a b c “Sequence 2 sequence Models”. スタンフォード大学 (2018年). 2023年5月20日閲覧。
  9. ^ “Overview - seq2seq”. google.github.io. 2019年12月17日閲覧。

外部リンク

  • “A ten-minute introduction to sequence-to-sequence learning in Keras”. blog.keras.io. 2019年12月19日閲覧。
  • Dugar, Pranay (2019年11月24日). “Attention — Seq2Seq Models” (英語). Medium. 2019年12月19日閲覧。
  • Nag, Dev (2019年4月24日). “seq2seq: the clown car of deep learning” (英語). Medium. 2019年12月19日閲覧。
  • Adiwardana, Daniel; Luong, Minh-Thang; So, David R.; Hall, Jamie; Fiedel, Noah; Thoppilan, Romal; Yang, Zi; Kulshreshtha, Apoorv; Nemade, Gaurav; Lu, Yifeng; Le, Quoc V. (31 January 2020). "Towards a Human-like Open-Domain Chatbot". arXiv:2001.09977 [cs.CL]。
基礎用語
テキスト分析
  • コロケーション抽出(英語版)
  • コンセプト・マイニング(英語版)
  • 共参照解析(英語版)
  • 深い言語処理(英語版)
  • 遠読(英語版)
  • 情報抽出
  • 固有表現抽出
  • オントロジー学習(英語版)
  • 構文解析
  • 品詞タグ付け(英語版)
  • 意味役割付与(英語版)
  • 意味的類似性(英語版)
  • 感情分析
  • 用語抽出(英語版)
  • テキストマイニング
  • テキスト含意(英語版)
  • Truecasing(英語版)
  • 語義の曖昧性解消
  • 語義推定(英語版)
テキストセグメンテーション(英語版)
自動要約
  • 複数文書要約(英語版)
  • センテンス抽出(英語版)
  • テキスト平易化(英語版)
機械翻訳
分布意味論(英語版)モデル
言語資源
データセット・コーパス
種類・基準
データ
  • BabelNet(英語版)
  • Bank of English(英語版)
  • DBペディア
  • フレームネット(英語版)
  • Google Ngram Viewer(英語版)
  • ThoughtTreasure(英語版)
  • UBY(英語版)
  • WordNet
自動認識・
データ取得(英語版)
トピックモデル(英語版)
  • 文書分類
  • 潜在的ディリクレ配分法(英語版)
  • パチンコ配分モデル(英語版)
レビュー支援
ツール(英語版)
自然言語ユーザー
インターフェース(英語版)
他のソフトウェア
  • NLTK(英語版)
  • spaCy
カテゴリ カテゴリ