BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)
December 14, 2019BERTは、Bidirectional Encoder Representations from Transformersの略称で、Transformerのエンコーダー部で、順方向と逆方向のテキストからテキストの分散表現を生成する。 事前学習では、周辺のトークンからマスクされたトークンを推定する教師なしタスクのMaksed Language Model (MLM) と2つの文が隣接した箇所から抜きだされたかを判定するタスクのNext Sentence Prediction (NSP) でモデルを訓練する。
Transformerのエンコーダー部とほぼ同じであることから、ネットワークアーキテクチャの新規性はない。 文献では、Attention Is All You NeedやThe Annotated Transformerに細部の解説が譲られている。
様々なタスクをファインチューニングできるように、BERTの入力は高々2つの文字列という緩やかな形式になっている。
BERTに与える埋め込みベクトルの系列を生成するには、まず、トークン[CLS]
を入力の先頭、トークン[SEP]
を文字列の最後に挿入する。
そして、WordPieceのトークン、系列中のトークンの位置、文字列のペアの前後を示す3種類の埋め込みベクトルの和を計算し、各トークンの埋め込みベクトルとする。
分類タスクでは、[CLS]
の最後の隠れ状態を文字列全体の埋め込みベクトルとみなす。
実験ではNext Sentence Preidictionの有効性が示されているが、NSPの効果に懐疑的な研究もある。 たとえば、BERTの事前学習を改善したRoBERTaはMasked Language Modelだけを採用した。