深層学習の学習:BERT
BERT
BERTとは、2018年にGoogleが発表した自然言語処理用の深層学習モデルである。
- 論文タイトル
BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding
- 投稿日
2018/10/11
- 著者
Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova
- 概要
- Bidirectional Transformerをユニットにフルモデルで構成したモデル
- 事前学習タスクとして、マスク言語予測タスク、隣接文判定タスクを与える
- BERTからTransfer Lerningを行った結果、8つのタスクでSOTA
- Googleが事前学習済みモデルを公開済み
背景
様々な言語処理タスクにおいて事前学習が有効である。
事前学習には二種類のアプローチがある。
-
- Feature-Based
- Fine-tuning
Feature-Based アプローチ
事前学習したモデルでターゲットの文章を読み込ませ、隠れ層の値(特徴量)を抽出して、ターゲットのタスクモデルに渡すアプローチ。
様々なNLPタスクの素性として利用される。
最近では、ElMoが話題になった。
Fine-tuningアプローチ
言語モデルで事前学習し、それをタスクのモデルで転移学習するアプローチ。
事前学習は、パラメタの初期値として使用される。
Open AI GPT、BERTで使用されており、最近はこちらが注目されている。
BERTの概要
Fine-tuningアプローチの事前学習に工夫を加えている。
具体的には、双方向トランスフォーマーは、よい学習効果をもたらすが、言語モデルの学習においては、従来のモデルでは未来情報のリークを防ぐためのマスクが無いため、採用が難しい。
そのため、事前学習タスクにおいて工夫をする必要があった。
入力表現
3種類のEmbeddingのSumを入力とする。
- Token Embedding: WordPieceでTokenizationしたものをEmbedding
- 単語位置埋め込み:系列長1-512の表現
- 文区別埋め込み:1文目、2分目の区別
事前学習
1. 空欄語予測(Masked Language Modeling (MLM))
- 文章中の単語のうち、15%をMASK対象に選ぶ。選ばれた15%の単語の位置にはフラグを立てておく。
- 選んだ単語のうち、80%を[MASK]に置き換え、10%を他の単語に置き換え、残り10%は置き換えない。
文章を入力としてフラグが点いている位置のオリジナルの入力単語が何であるかを出力する。
- 背景
双方向モデルは、left-to-rightモデルや双方向にconcatしたものより一般に強力である。しかし、双方向だと複数層の文脈から自分を見てしまうため、学習出来ない。
そこで発想を転換し、次の単語ではなく、ランダムに抜かれた単語を予測するモデルにする
一方でこの方法を採用すると、単語全体の15%しか学習に使えないため、学習に時間がかかる。
2.隣接文予測(Next Sentence Prediction(NSP))
2つの文章の関係性理解が重要だが、言語モデルのタスクのみではとらえられないという問題点があった。
そこで、2つの連なる文章のペアに対して、隣接文を50%の確率でシャッフルし、隣接文であるかのT/Fを出力させた。