ELECTRA:NLPの事前トレーニングを効率的に改良(1/2)

ELECTRA:NLPの事前トレーニングを効率的に改良(1/2)

1.ELECTRA:NLPの事前トレーニングを効率的に改良(1/2)まとめ

・既存のNLP用の事前トレーニング手法には言語モデルとマスク言語モデルの2種類がある
・マスク言語モデルは双方向なので言語モデルより優位だが入力文の全てを学習に利用できない欠点がある
・ELECTRAはRTDと呼ばれる新しい手法で両者の良いところを取り入れ少ないデータで効率的な学習が可能

2.ELECTRAとは?

以下、ai.googleblog.comより「More Efficient Model Pre-training with ELECTRA」の意訳です。元記事の投稿は2020年3月10日、Kevin ClarkさんとThang Luongさんによる投稿です。

ELECTRAはおそらくはギリシャ神話に登場する女性を意識した命名です。同名の女性が4人いるそうですが、一番有名な女性はトロイの木馬で有名なトロイア戦争のギリシア側総大将アガメムノンの娘のエレクトラです。アガメムノンは勝利後に故郷に凱旋したのですが妻と妻の愛人に殺されてしまい、娘のエレクトラと息子のオレステースが父の敵、つまり実母を討ったと言われています。この神話から後世の作品でエレクトラという名前の女性が出て来る場合は父親への偏った愛を暗示している事が多いようですって事で、アイキャッチ画像のクレジットはWikipediaよりエレクトラとオレステース

事前トレーニングの最近の進歩により、自然言語処理(NLP:Natural Language Processing)の分野で、BERT、RoBERTa、XLNet、ALBERTT5などの最先端のモデルをはじめ、多くの成果が得られました。これらの方法は、デザインは異なりますが、感情分析や質問回答などの特定のNLPタスクを微調整する前に、大量のラベルなしテキストを活用して言語理解の一般モデルを構築するという同じアイディアを共有しています。

既存の事前トレーニング手法には、代表的な2つのやり方があります。

(1)言語モデル(LMs:Language Models)
GPTなどのモデルが使っている手法です。入力文を前から後ろに順番に処理し、前の文章の文脈を元に次に現れる単語を予測します。

(2)マスク言語モデル(MLMs:Masked Language Models)
、RoBERTa、ALBERTなどのモデルが使っている手法です。入力文の一部をマスクし、マスクされた部分の単語を予測します。

MLMsには、予測する部分の前後の文章を「見る」という点で双方向(bidirectional)であり、LMsのように前の文章だけを見る単方向(unidirectional)より優位です。

ただし、MLMの目的(およびXLNetなどの関連するモデルの目的)にも欠点があります。これらのモデルは、入力文の全ての部分を予測するのではなく、小さなサブセット(マスクされた15%)のみを予測するので、各文章から学習できる量が減ってしまいます。


既存の事前トレーニング方法とその欠点
矢印は、特定の特徴表現(長方形)を生成するために使用されるトークンを示します。
左:従来の言語モデル(GPTなど)は、現在の単語の左側の文脈のみを使用します。
右:マスク言語モデル(BERTなど)は、左と右の両方の文脈を使用しますが、入力文のサブセット、つまり一部の単語のみを予測に使います。

論文「ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators」では、BERTの利点を提供する一方で、はるかに効率的に学習できる言語事前トレーニングとして別のアプローチを採用しています。

ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately:トークンの置き換えを正確に分類してエンコーダーを効率的に学習)は、同じ計算量で既存の手法を上回る新しい事前トレーニング方法です。

例えば、ELECTRAは、従来の1/4未満の計算量で、GLUE自然言語理解ベンチマークでRoBERTaおよびXLNetのパフォーマンスに匹敵し、SQuAD質問回答ベンチマークで最先端の結果を達成します。

ELECTRAの優れた効率性は、小規模でも十分に機能することを意味します。30倍以上の計算量を必要とするモデルであるGPTよりも高い精度です。単一のGPUで数日でトレーニングできます。

ELECTRAは、TensorFlowの上にオープンソースモデルとしてリリースされており、すぐに使用できる事前トレーニング済みの言語表現モデルが多数含まれています。

事前トレーニングの高速化
ELECTRAは、置換トークン検出(RTD:Replaced Token Detection)と呼ばれる新しい事前トレーニングタスクを使用します。

これは、(LMのように)全ての入力位置を使って学習しながら、(MLMのような)双方向モデルをトレーニングします。

敵対的生成ネットワーク(GAN)のアイディアに触発されたELECTRAは、モデルに「実際の」入力データと「偽の」入力データを区別する事を学習させます。

BERTのように入力文の一部をマスクする事で入力文を破損する代わりに、このアプローチでは、入力の一部を誤っているけれども、もっともらしい偽物に置き換えることで入力を破損します。

例えば、次の図では、「coocked(調理した)」という単語を「ate(食べた)」に置き換えることができます。

「a chef ate the meal(シェフは食事を食べた)」は少し理にかなっているように見えますが、全体の文脈から考えるとおかしいです。

事前トレーニングタスクでは、元の入力のどの部分が置き換えられたか、または同じ状態に保たれているかを判断するために、識別モデル(つまり、ディスクリミネーター)が必要です。

重要な事は、このバイナリ分類タスクは、一部分をマスクする(BERTスタイルモデルの場合は15%)の代わりに、全ての入力文に適用されるため、RTDをMLMよりも効率的にします。

ELECTRAは、例文ごとにモードトレーニング信号を受信するため、同じパフォーマンスをより少ない例文で達成する事ができます。同時に、モデルはタスクを解決するためにデータ分布の正確な特徴表現を学習する必要があるため、RTDはより強力な特徴表現学習をもたらします。


置換トークン検出は、全ての入力位置から学習しながら双方向モデルをトレーニングします。

3.ELECTRA:NLPの事前トレーニングを効率的に改良(1/2)関連リンク

1)ai.googleblog.com
More Efficient NLP Model Pre-training with ELECTRA

2)openreview.net
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators

3)github.com
google-research / electra