オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】T5 / Text-To-Text Transfer Transformer

yhayato1320.hatenablog.com

Index

T5 について

NLP における大規模な教師なし事前学習 / Pre Training からの転移学習 / Transfer Learning は強力なアプローチである.
この事前学習->転移学習の分野においての、新しい工夫やアプローチを取り出して、 比較することが困難なくらい、様々な手法が混在している.

そこで、この分野において深い理解をしたいという欲望から、
この事前学習->転移学習の分野において、アプローチを体系的にまとめ、
この事前学習->転移学習の分野の限界を突破するためのアプローチを紹介する.

この論文の基本的な考えは、すべての NLP のタスクを
「テキストからテキストへの変換」のタスクとして扱う.

この論文の目的は、新しい手法を提案するわけではなく、 この分野を俯瞰的な・包括的な観点で見渡すこと.

T5 = Text-To-Text Transfer Transformer

論文の目次メモ

  • Section2 : 基本モデルとその実装. NLP のすべてのタスクを「テキストからテキストに変換する」タスクとして扱うための定式化と検討するべきタスク.
  • Section3: 転移学習の分野について
  • Section4: 将来への展望

準備

  • Transformer のアーキテクチャ
  • 評価するタスク
  • テキストからテキストへ変換するタスクとして扱う方法
  • データセット : Colossal Clean Crawled Corpus (C4)

ネットワークアーキテクチャ

この論文の基本的なネットワークアーキテクチャとしては、Transformer を利用する.

yhayato1320.hatenablog.com

Position Embedding

元論文では、Cos / Sin などの単調な信号情報を加算するだけだったが、
Relative Position Embedding を使うことが一般的となっている.

この論文では、シンプルな Position Embedding を利用する.

Attention Layer で使用されている重みパラメータを利用する.

Layer Normalization

正規化するタイミングを変更.

ハードウェア

1024 個の TPU を使った学習.

Input と Output

この論文では、最尤法 (Teacher Forcing) で学習する.

Teacher Forcing


タスクの指定には、特定の記述規則を用いて入力する.

もし、「This is good.」とう文章を英語からドイツ語に翻訳するタスクを実行したいとする.
すると、モデルへの入力は、

“translate English to German: That is good.”
(英語からドイツ語へ翻訳: This is good.)


となる. そして、以下のように出力されることを期待する.

“Das ist gut.”


回帰問題 の場合は、1 ~ 5 を 0.2 刻みで、21分類の分類問題として解き、出力は、"2.6" のように文字列で出力する.

検証

を分けて、有用性を考える.

ベースラインは、標準的な Transformer で検証.

ネットワークアーキテクチャの比較

Attention Masking Pattern

 j 番目の系列の入力   x_j i 番目の出力  y_i としたとき、
 y_i は、 系列  i と 他の系列 との関連度  \{ w_{i,\ 1},\ \cdots,\ w_{i,\ j},\ \cdots,\ w_{i,\ J} \} を表す重みパラメータ値を使って、 以下のように重み平均和で計算される.

 y_{i}\ =\ \displaystyle \sum_{j} w_{i,\ j}\ x_{j}



全ての重みパラメータを利用する Attention Masking Pattern は、Full Visible と呼ぼう.

Transformer Encoder では、Full Visible な Attention Masking Pattern を利用する.
この形式は、BERT のような文章全体から予測を行うことに適している.

次に、 y_i の出力に使用できる入力情報  x_j を、 j\ \lt \ i という条件を追加した Attention Masking Pattern を考える.
つまり、系列  i よりも前の情報しか使わないということだ.


この Attention Masking Pattern を Causal と呼ぼう.
Transformer Decoder で、この Attention Masking Pattern が使われている.
Transformer Decoder は、自己回帰的に出力を行う.
つまり、ある時点までの情報からその次の時点の系列(単語)の予測を行うモデル.

そのため、Transformer Decoder は、言語モデル (Language Model; LM) として利用され、 Next Step Prediction のタスクとして、学習する.

Next Step Prediction


Text To Text の入力形式は、入力文章の Prefix (接頭辞) には、タスクの内容が含まれる.
この形式を Causal Attention Masking Pattern に適用してしまうと、不必要に情報を制限してしまう.
(Prefix のタスクの内容は、情報として受け取っても問題ないため)

そこで、Prefix Causal という Attention Masking Pattern を利用する.
これは、最初の Prefix の部分だけ、Full Visible Attention Masking Patternを利用し、 Prefix 以外の部分は、Causal Attention Masking Pattern を利用する.


この Prefix の部分は、BERT の [CLS] トークンの考えと酷似している.

Attention Masking Pattern Network Architecture
Full Visible Transformer-Encoder
Causal Transformer-Decoder / Language Model; LM
Causal Prefix LM

教師なしのタスク

大きく分けると 3 つの手法に分けられる.

  • Prefix Language Modeling
  • Masked Language Modeling (MLM) / BERT Style
  • Deshuffling


Masked Language Modeling (MLM) / BERT Style が最も精度が良いのが分かる.

Masked Language Modeling (MLM) / BERT Style

Masked Language Modeling (MLM) / BERT Style のマスキング方法に焦点を当てる.

最初は、シンプルに、BERT Style で行っている、ランダムに単語の変換をなくし、その箇所も[MASK] トークンにする.
つまり、変換は、[MASK] への変換だけ.
これを、MASS Style / i.i.d noise, mask tokens と呼ぼう.

次に連続した [MASK] トークンを、一つの一意的なトークンとして扱う方法を考える.
これを、i.i.d. noise, replace spans と呼ぼう.

次に、[MASK] トークンに変換していた箇所を削除する方法を考える
これを、i.i.d. noise, drop tokens と呼ぼう.

参考

  • Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
    • [2019 Google]
    • 1 Introduction
    • 2 Setup
      • 2.1 Model
      • 2.4 Input and Output Format
    • 3 Experiments
      • 3.1 Baseline
      • 3.2 Architectures
        • 3.2.1 Model Structures
      • 3.3 Unsupervised Objectives
        • 3.3.1 Disparate High-Level Approaches
        • 3.3.2 Simplifying the BERT Objective
    • arxiv.org

Web サイト