WhatDoPositionEmbeddingsLearn
WhatDoPositionEmbeddingsLearn
Pre-trainedモデルのpositional embeddingsが実際に何を学習しているかとか、様々なNLPタスクへのパフォーマンスの影響を実証的に調べる。
実験対象
- BERTのEncoder
- RoBERTaのEncoder
- GPT-2のDecoder
- sinusodial (Transformerの、学習ではない算術式)
4章、embeddingsをフィーチャーとみた逆象の評価
Pre-trainedなembeddingsに実際にどういう値が入っているかを、逆象を機械学習で学習させてみて調べてみる章。
4.1.1 絶対位置の逆写像の線形回帰
それぞれのembeddingの値から絶対位置への逆写像を線形回帰で作ってみる、という実験。 GPT-2は1024トークンを512に揃えるべく再学習したとか。
結果はテーブル1(以下に転載)。
| PE | MAE |
|---|---|
| BERT | 34.14 |
| RoBERTa | 6.06 |
| GPT-2 | 1.03 |
| sinusoid | 0.0 |
BERTのembeddingsはあんまり絶対位置の情報はもってない雰囲気ではある。
実験のインプットが良く分からない
普通に考えると単にembeddingから逆象を学習するだけなら単なるルックアップテーブルで完全に正解してしまうだろうから、 入力は通常のトークンと足したものになっている実際の設定の方が良さそうだが、そうした記述はない。
512個のデータポイントしかない、と言っているから、単にembeddingの400個くらいでトレーニングして残りの100個くらいをテストセットとする、みたいな話なのかなぁ。
5-fold cross validationがうんたら、とか言っているのでそうっぽいか?
ただそうだとするとこの実験はちょっと知りたい事を調べられているか疑問な部分もあるな。 別に512個の中に、何らかの未知の対応を予想出来る関数形がある必要は無くて、単にlookupでもちゃんと逆象が作れればそれでいいはずだ。 493番目のembeddingsから494番目のembeddingsが予想出来る必要はないように思う。
4.1.2 相対位置の大小のロジスティック回帰
相対位置、つまり距離の逆写像が分かるか、という問題は、試したら全然わからないというのが答えらしい(詳細は載ってない)。
そこでもっと簡単な、どちらのトークンが先にでているか、というのを判定するロジスティック回帰を試してみた、というのが実験4.1.2で、結果は以下のテーブル2。
| PE | Error Rate |
|---|---|
| BERT | 19.72% |
| RoBERTa | 7.23% |
| GPT-2 | 1.56% |
| sinusoid | 5.08% |
4.3.1 Pre-TrainのObjectiveの違い
BERTとRoBERTaはmasked language modelなので周辺の単語が使える。一方Decoderはlanguage modelの対数尤度の和がロスとなるので、1単語ずつ見ていくため、 より1方向の位置に依存しているように思える。
5章、実証実験
実際にNLPタスクに対してそれぞれのembeddingsを使って、 適当なTransformer(タスクごとに別もの)をつなげていろいろな問題を解かせる。
5.1 テキスト分類
テキストを与えて分類する。これはhidden stateにとって前の全入力を見れるので、より絶対位置が大切になる、と論文では述べられている。
使うTransformerは単純な1レイヤーのTransformer(マルチヘッド+FF)。
テーブル3を見ると、sinusoidが優秀ではあるが、全体的に差は結構小さい。しかも長さが短い時はむしろBERTのスコアの方が良かったりする。 長くなるほど4章の分析と整合的になる、というのはまぁそうかもしれないが、ちょっと単に結果にあうものを引っ張ってしまっているリスクがあるよなぁ。
5.2 言語モデル
Wikitext-2とWikitext-103というデータセットで言語モデル的なタスクのperplexityを調べている。両者のデータセットは2millionトークン、103millionトークンという違いらしい。
ただ良く分からないのが、それぞれに対してMasked Language ModelとAutoregressive LM (前のトークンのinference結果を使って次を予想する通常の奴)の別の実験を行っている。 これでは両者の比較にならないのでは?
さらに良く分からないskip position attackとかいって位置の所に変な値を掛けて結果がどう落ちるかとか調べている。かなり謎。
普通に同じモデルでautoregressive LMを調べれば良いのでは?という気がするが…
うさんくさいので軽く表を見て飛ばす。
5.3 翻訳タスク
Encoder-Decoderモデルで双方6レイヤーでBPE使っているモデルでNMTをしてみる、という実験。
EncoderとDecoderにそれぞれいろんなposition embeddingsを試すのはいいのだが、何故かsinusoidがない。なんでやねん。
スコア的にはBERTが一番良い、けれど長いテキストに関してはGPT-2が良いよ、みたいな結果だが、 これも微妙だなぁ。
全体的には微妙な論文だが4章は参考になる
実証的な結果はなんだかな〜という内容だが、4章の話は参考にはなるな、という感じ。 興味深いトピックをいまいちなやり方で研究した論文という感じ。