BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding まとめ

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

【論文】
https://arxiv.org/abs/1810.04805

 

論文概要

従来の自然言語のタスクでは、それぞれのタスクにおいてそれぞれのモデルを作成し対応していました。
しかしBERTでは双方向Transformerを事前学習することで、様々なタスクに応用できる汎用的なモデルを作ることに成功しています。

 

Bert

双方向のTransformerモデルをベースにしています。

提案されたモデル概要
Image from Gyazo
論文より引用

細かい説明は下記記事とかわかりやすかったです。
汎用言語表現モデルBERTを日本語で動かす(PyTorch)

 

BERTの事前学習

masked LM(マスクした単語の予測)

双方向の深いモデルだと強力に学習できるということで、下記の処理を行っています。

まず、全体のうち、15%をランダムにピックアップします。
そのうち下記の3つの処理を行います。例文は論文から引用しています。
①ランダムにピックアップしたものから、80%は、マスクを行う
my dog is hairy → my dog is [MASK]

②ランダムにピックアップしたものから、10%はランダムな単語に置き換える、
my dog is hairy → my dog is apple

③ランダムにピックアップしたものから、10%は何も置き換えない
my dog is hairy → my dog is hairy

Next Sentence Prediction(次の文の予測)

QAなどのタスクにおいて、2つのtextの関係性を理解することは必須だと言えます。
それを実現するために、最初に1つ入力文を与えて、次に別の入力文を与えます。
そして最初に与えた文と関連があるかを分類させます。
例は、下記のようなイメージです。

Image from Gyazo
論文より引用

 

実験・結果

データセット

GLUEや、MNLI、QQPなどの様々なデータセットを使っています。
GLUE

学習

Beseの場合、TPUを4つ使って、4日間学習に費やしたみたいです。
学習に時間がかかりすぎるのは、Bertの弱点ですね。

結果

下記は、BLUEのデータセットを使った結果です。
BERTのlargeでは、全体的に4.7%精度が向上しています。
Image from Gyazo
論文より引用

 

Ablation Studies

切除研究と訳すのかな?
実験で使用した部分の「特徴」を除去し、それがどのように性能に影響するかを確認するための研究になります。

Effect of Pre-training Tasks(事前学習の効果)

ここでは事前学習の効果を検証しています。
Bertの良さを確認するために下記のようなモデルを準備しています。

【No NSP】
next sentence predictionは行わず、masked LMのみ行う

【LTR & No NSP】
Left-to-Rightで、かつnext sentence predictionは行わない

下記が結果になります。
next sentence predictionを抜くと少し精度が落ちているようです。
ですがここで一番注目すべきことは、Left-to-Rightで学習を行ったときに精度が大幅に落ちています。
やはり双方向で学習させることが肝になっているのですね。
Image from Gyazo
論文より引用

Effect of Model Size

全体の層の数、隠れ層、attention headsの数を増やして検証を行っています。
GLUEを使用しており、すべての要素を最大限に大きくしたものが最高の精度を出しています。
Image from Gyazo
論文より引用

 

参考になる記事

汎用言語表現モデルBERTを日本語で動かす(PyTorch)
研究における評価実験で重要な7つのこと