BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
書誌事項
Jacob Devlin et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. Cornel University Library. https://arxiv.org/pdf/1810.04805.pdf, 2018.
PDFのURL
https://arxiv.org/pdf/1810.04805.pdf
序論の3戦略
戦略1:研究領域の確立
事前学習を行った言語モデルを用いることで, 自然言語処理の様々なタスクで精度の改善に効果があることが示されている.
そのような研究には feature-basedなものとfine-tuningなものがある
戦略2:先行研究の隙間
次の単語を予測するような言語モデルで事前学習を行う際, 現在の予測のプロセスにおいて予測するべき未来の単語情報を用いてはいけない.
このような問題に対して強力な双方向の言語モデルが必要であるが, fine-tuningのモデルとして2018年に提案されたOpenAI GPTでは, 未来の単語位置のネットワークにマスクをかけねばならず、単方向になってしまう. また, feature-basedなモデルとして2018年に提案されたELMoは双方向なモデルであるが, 順方向LSTMと逆方向LSTMを同時に学習することができない.
そこで, 事前学習の方法を工夫することで強力な双方向モデルであるBERTが提案された.
戦略3:研究の目的
- 強力な双方向言語モデルであるBERTの提案
- 11の自然言語処理のタスクに対してBERTを転移学習させることの有用性の検証
主な結果と考察
データセット
GLUE:自然言語処理のためのデータセットの集合(8つのタスク)
- MNLI : 含意関係に関するデータセット
- QQP : 二つの質問が同じ意味かのデータセット
- QNLI : 質問応答データセット
- SST-2 : 映画の感想の感情分析のデータセット
- CoLA : 使われている英語が言語的に正しいかのデータセット
- STS-B : ニュースの見出しと感想のペアが意味的に正しいかのデータセット
- MRPC : オンラインニュースから抽出された分のペアが意味的に同じかのデータセット
- RTE : 文のペアに含意関係があるかのデータセット(MNLIより小規模)
SQuAD : スタンフォード大学が提供している約10万ペアのクラウドソーシングの質疑応答ペアデータセット
NER : 20万のアノテーションされた固有表現のデータセット
SWAG : 約11万の完結したペアの文例集. 文の続きを推論するためのデータセット
BERT
BERT は様々な自然言語処理に対して汎用的に使える分散表現を計算する機構
BERTでは, ラベルなどが付与されていないテキストデータから言語知識を獲得し, これを埋め込んだ単語分散表現(単語のベクトル)を計算する.
この分散表現には事前に学習した知識が詰め込まれているため、タスクを解く際の手がかりが豊富となりタスクの精度向上に繋がる
BERTの特にすごいところは以下の2点
- BERTは既存のモデルそのものを改良しなくとも、ただ前に接続するだけで精度が向上する
- Googleの持つ大規模な計算機により獲得された分散表現なので, 入力をより優れた情報を持つ分散表現に変換できる
BERTの概要は以下の図のようになる
BERTの入力は単語分散表現の列で, 出力も単語分散表現の列となる
Token Embeddings : 「my」や「dog」という各単語に対応したベクトル(分散表現)
Segment Embeddings : 二つの文を入力するときに、その単語がどちらの文に含まれているかを判別するための分散表現
Position Embeddings : 単語が入力の中で何番目に現れているかを示す分散表現
また, [CLS] は文の分類問題に用いるための特殊なトークンで, [SEP] は文末を示す特殊なトークン
例えば「my」という単語であれば、その単語が文の中でどのような働きをしているか、といった情報が付与された分散表現が出力される
片方向しか情報が伝播しないネットワークよりも、両方向に情報が伝播したほうが強力に学習できそうだが, なぜ今までこのような双方向のfine-tuningモデルが提案されてこなかったのか
-> n-1番目までの情報からn番目の単語を予測するタスクにおいて, 現在の予測プロセスの際に、予測するべき未来の単語情報を用いないようにする制約が必要
しかし, BERTでは事前学習の際に2つの工夫を行うことでこの問題を解決
1. マスク単語の予測
入力文のうちいくつかの単語を隠し、文脈からその単語を当てるタスクを学習させる
具体的には, 全体の15%を[MASK]トークンに置き換えて予測
そのうち、80%がマスク、10%がランダムな単語、10%を置き換えない方針で変換する
2. 隣接文の予測
二つの文章を与え、隣り合っているかをYes/Noで判定する
文章AとBが与えられた時に、50%の確率で別の関係ない文章Bに置き換える
このタスクを解くことで、BERTは単語だけでなく文全体の表現についても学習することができる
結果
GLUE
GLUEの計8タスクに対してBERTと既存の手法を比較したところ以下の図のようになった
どのタスクにおいてもBERTのスコアが一番高くなっている
BERTには, BASEとLARGEがあり, LARGEはBASEよりもパラメータ数が多いモデル
SQuAD
質問と答えの存在する文章をインプットとして与え, その質問の答えを正しく出力できるかというタスク
SQuADのみを用いて学習した場合, SQuADに加えTriviaQAというデータセットを用いてデータ拡張した場合もいずれにおいても, 既存の他のモデルより, スコアが高かった
Named Entity Recognition
入力された単語を以下の5つのラベルに分類するタスク
BERT_LARGEは既存のどの手法よりもスコアが高くなった
SWAG
以下のように与えられた文章の後に続く文を推測するタスク
BERT_LARGEは既存のどの手法よりも大幅にスコアが高くなり, 人間のスコアに近い値を出すことができた
Ablation Studies
事前学習タスクの影響
- 事前学習の隣接文の予測を行わず, マスク単語の予測だけを行った場合
- 事前学習を行わず, 双方向ではなくLTR(Left To Right)で学習させた場合
- 2に対してBiLSTMを転移学習させた場合
この3種類を, MNLI-m, QNLI, MRPC, SST-2, SQuADで試したところ以下の結果が得られた
事前学習を行わないとスコアが下がることが示され, 特にLTRの場合大幅にスコアが下がり, 双方向モデルの有用性が示された
モデルのサイズの影響
レイヤーの数や隠れ層のサイズ, Attention headの数, マスク単語予測の精度?を変化させたときにスコアはどう変化するのかを試したところ以下のようになった
データセットの数が小さくてもモデルのサイズが大きい方が精度が高くなる
学習回数の影響
本論文では学習を1Mステップ行っているが, 500kの時よりも精度が1%上がっているので, 学習回数を大きくすることは重要
また, BERTは片方向だけであるLTRよりも学習させるのに時間がかかるがそれ以上に精度が改善される
Feature-basedアプローチによるBERT
BERTはFine-tuningのアプローチを取っているが, NLPのタスクの中にはそのアプローチでは解けない問題がある
また, Feature-basedアプローチは計算のコストがかからないということから, BERTでFeature-basedアプローチを取った場合をNERのタスクで試してみたところ以下の結果が得られた
Feature-basedのアプローチを取ったモデルでもFine-tuningのアプローチを取ったものとあまり変わらない結果を得ることができたので, BERTはどっちのアプローチでもいい結果を出すことが示された
結論
BERTを用いることで様々なNLPのタスクでいい結果が得られ, タスクによっては人間のスコアを超えているものもあった
言語的な問題をBERTでどう扱っていくかが今後の課題
キーワードと定義
Ablation Studies : 下記のように各構成要素を1つだけ抜いて手法を比較することで、提案手法からどの構成要素を抜いたとしても大きく精度が低下することを示し、結果的にどの構成要素も重要であると主張する比較手法(https://qiita.com/yu4u/items/606e6e5225ad9b603269)
精度 | |
---|---|
既存手法 | 80% |
提案手法(Aなし) | 86% |
提案手法(Bなし) | 87% |
提案手法(Cなし) | 87% |
提案手法 | 90% |
perplexity : 最もよく使われる言語モデルの評価尺度で, 実際のデータに対してどれだけモデルが流暢であるというかによって評価する(https://qiita.com/jyori112/items/296d816dfaf77c0d422c)