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

Posted on May 31, 2019

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%を置き換えない方針で変換する

・my dog is hairy -> my dog is [MASK]
・my dog is hairy -> my dog is apple

2. 隣接文の予測

二つの文章を与え、隣り合っているかをYes/Noで判定する
文章AとBが与えられた時に、50%の確率で別の関係ない文章Bに置き換える
このタスクを解くことで、BERTは単語だけでなく文全体の表現についても学習することができる

・[CLS] the man went to [MASK] store [SEP]
・he bought a gallon [MASK] milk [SEP]
→ isNext

・[CLS] the man [MASK] to the store [SEP]
・penguin [MASK] are flight ##less birds [SEP]
→ notNext

結果

GLUE

GLUEの計8タスクに対してBERTと既存の手法を比較したところ以下の図のようになった

どのタスクにおいてもBERTのスコアが一番高くなっている
BERTには, BASEとLARGEがあり, LARGEはBASEよりもパラメータ数が多いモデル

SQuAD

質問と答えの存在する文章をインプットとして与え, その質問の答えを正しく出力できるかというタスク

・Input Question
  Where do water droplets collide with ice crystals to form precipitation?
・Input Paragraph
  ... Precipitation forms as smaller droplets
  coalesce via collision with other rain drops
  or ice crystals within a cloud. ...
・Output Answer
  within a cloud

SQuADのみを用いて学習した場合, SQuADに加えTriviaQAというデータセットを用いてデータ拡張した場合もいずれにおいても, 既存の他のモデルより, スコアが高かった

Named Entity Recognition

入力された単語を以下の5つのラベルに分類するタスク

・Person
・Organization
・Location
・Miscellaneous
・Other(non-named entity)

BERT_LARGEは既存のどの手法よりもスコアが高くなった

SWAG

以下のように与えられた文章の後に続く文を推測するタスク

A girl is going across a set of monkey bars. She
(i) jumps up across the monkey bars.
(ii) struggles onto the bars to grab her head.
(iii) gets to the end and stands on a wooden plank.
(iv) jumps up and does a back flip.

BERT_LARGEは既存のどの手法よりも大幅にスコアが高くなり, 人間のスコアに近い値を出すことができた

Ablation Studies

事前学習タスクの影響
  1. 事前学習の隣接文の予測を行わず, マスク単語の予測だけを行った場合
  2. 事前学習を行わず, 双方向ではなくLTR(Left To Right)で学習させた場合
  3. 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)


Comment Box is loading comments...