1 背景と歴史
1.1 発表の経緯(2018年)
BERT(Bidirectional Encoder Representations from Transformers)は、2018年10月、Google AI LanguageチームのJacob Devlinらによって発表された。当時、自然言語処理(NLP)分野では、大規模なテキストコーパスを用いた事前学習モデルが急速に発展しており、BERTはその流れの中でTransformerアーキテクチャをエンコーダとして利用し、従来のモデルを大きく上回る性能を示した。論文「BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding」は、発表直後から広く注目を集め、NLP研究の転換点となった。
1.2 従来モデルとの比較(ELMo、GPT)
BERT以前の代表的な事前学習モデルとして、ELMo(Embeddings from Language Models)とGPT(Generative Pre-trained Transformer)があった。ELMoは双方向のLSTMを用いて文脈表現を学習したが、各層の独立した結合であり、完全な双方向性ではなかった。GPTはTransformerデコーダを用いた単方向(左から右)の言語モデルであり、文脈の片側しか利用できなかった。BERTはマスク言語モデル(MLM)を導入することで、双方向の文脈を同時に考慮することを可能にし、意味理解の精度を大幅に向上させた。
1.3 ブレークスルーとしての意義
BERTは11のNLPベンチマークタスク(GLUE, SQuAD, SWAGなど)で当時の最新性能を達成し、事前学習+ファインチューニングのパラダイムを確立した。これにより、個別タスクごとに大規模な教師データを用意する必要が減り、微調整(ファインチューニング)のみで高い精度が得られることが示された。BERTの成功は、その後のRoBERTa、ALBERT、DistilBERTなど多数の派生モデルを生む原動力となった。
2 アーキテクチャ
2.1 Transformerエンコーダの基本構造
BERTはTransformerのエンコーダ部分のみを積み重ねたモデルである。各エンコーダ層は、マルチヘッド自己注意機構(Multi-Head Self-Attention)と位置ごとの全結合フィードフォワードネットワーク(Position-wise Feed-Forward Network)で構成され、それぞれに残差接続と層正規化(Layer Normalization)が適用される。入力は単語埋め込みと位置埋め込み、セグメント埋め込みの和からなる。
2.2 双方向性の実現方式
BERTの双方向性は、マスク言語モデル(MLM)の学習タスクにより実現される。入力トークンの一部をランダムにマスクし、その前後の文脈(両側)からマスクされた単語を予測させることで、モデルは双方向の情報を統合する能力を獲得する。これは単方向の言語モデル(GPT)とは異なり、各位置が未来のトークンを見ることが許される代わりに、マスクされたトークンは見えないように注意が制御される。
2.2.1 位置エンコーディング
Transformerは系列の順序情報を自然に持たないため、BERTでは各トークンの位置を正弦波関数(sinusoidal)または学習可能な位置埋め込みとして加算する。BERT-baseでは学習可能な位置埋め込みを用いており、最大512トークンまでの系列長を扱う。
2.2.2 セグメント埋め込み
BERTは2文を入力とするタスク(次文予測や質問応答)に対応するため、文Aと文Bを区別するセグメント埋め込みを導入している。各トークンに対し、それが文Aに属するか文Bに属するかを示す埋め込みベクトルが加算される。これによりモデルは文対の関係を学習できる。
2.3 モデルサイズのバリエーション(BERT-base、BERT-large)
BERT-baseは12層(L=12)、隠れ次元768(H=768)、12個の注意ヘッド(A=12)、総パラメータ数約1.1億である。BERT-largeは24層(L=24)、隠れ次元1024(H=1024)、16個の注意ヘッド(A=16)、総パラメータ数約3.4億である。BERT-largeはより高い性能を示すが、計算リソースも多く必要とする。
3 事前学習
3.1 マスク言語モデル(MLM)
MLMはBERTの中心的な事前学習タスクである。入力系列中のトークンを一定確率でマスクトークン[MASK]に置き換え、モデルにその元のトークンを予測させる。これにより、モデルは両側の文脈を考慮した双方向表現を学習する。
3.1.1 マスキング戦略
オリジナルのBERTでは、各系列中の全トークンの15%をマスク対象として選ぶ。そのうち80%は[MASK]に置き換え、10%はランダムな他のトークンに置き換え、残り10%は元のトークンのままとする。これにより、ファインチューニング時([MASK]が出現しない)と事前学習時の入力分布のずれ(ミスマッチ)を軽減する。
3.1.2 クロスエントロピー損失
MLMの損失は、マスクされた各位置における正しい元トークンの予測確率に対するクロスエントロピー損失である。BERTは全トークンのうちマスクされた部分のみで損失を計算するため、計算効率が良い。
3.2 次文予測(NSP)
NSPは、2文が連続した文であるかどうかを二値分類するタスクである。訓練データでは、50%の確率で実際に連続する文対(IsNext)、50%の確率で別の文書からランダムに選んだ文対(NotNext)を入力する。これにより、モデルは文間の関係性を理解する能力を獲得し、質問応答や自然言語推論などのタスクで有効に働く。ただし後続の研究(RoBERTaなど)では、NSPの効果は限定的であると指摘された。
3.3 学習データとハイパーパラメータ
BERTの事前学習にはBooksCorpus(8億語)とWikipedia(25億語)のテキストデータが使用された。ハイパーパラメータとして、バッチサイズ256系列、系列長512、学習率1e-4、Adam最適化器、100万ステップの学習が設定された。BERT-baseは4台のTPUで約4日間、BERT-largeは16台のTPUで約4日間の学習を要した。
4 ファインチューニングと応用
4.1 一般的なファインチューニング手法
ファインチューニングでは、事前学習済みのBERTモデルのパラメータを初期値として、下流タスクのラベル付きデータセットで全体を微調整する。通常、BERTの出力([CLS]トークンの隠れ状態、または全トークンの系列表現)にタスク固有の分類層(線形層+ソフトマックスなど)を追加し、そのタスクの損失関数で学習する。学習率は事前学習より低く(例:2e-5~5e-5)、エポック数は2~4程度が一般的である。
4.2 代表的な下流タスク
4.2.1 文章分類(感情分析、質問応答)
感情分析では、入力文章の[CLS]表現に線形分類器を接続し、ポジティブ/ネガティブなどのクラスを予測する。質問応答(SQuADなど)では、質問とコンテキスト文をBERTに入力し、各トークンが答えの開始位置・終了位置である確率を予測する線形層を追加する。
4.2.2 固有表現認識(NER)
NERタスクでは、各トークンにラベル(PER、ORG、LOCなど)を付与する系列ラベリングを行う。BERTの各トークン出力に対して線形分類器を適用し、条件付き確率場(CRF)レイヤーを追加することもある。
4.2.3 自然言語推論(NLI)
NLIは前提文と仮説文の関係(含意、矛盾、中立)を判定するタスクである。[CLS]トークン表現を用いて3クラス分類を行う。BERTの双方向性により、前提と仮説間の複雑な関係を捉えやすい。
4.3 タスク固有の調整(分類ヘッドの追加など)
分類ヘッドの設計はタスクにより異なる。感情分析やNLIでは単一の[CLS]表現を用いるが、質問応答では開始位置と終了位置を予測する2つの線形層、NERでは各トークン位置ごとに線形層を用意する。また、タスクに応じてBERTの最終層の出力をプーリング(平均プールなど)したり、複数層の特徴を結合する工夫も行われる。
5 派生モデルと改良
5.1 RoBERTa(学習手法の最適化)
RoBERTa(2019, Facebook)はBERTの学習手法を詳細に検討し、NSPタスクを除去、より大規模なデータ(160GB)、より長い学習ステップ、動的マスキング(系列ごとに異なるマスクパターン)などの改良を加えた。その結果、BERTを大きく上回る性能を達成した。
5.2 ALBERT(パラメータ共有)
ALBERT(2019, Google)はパラメータ数を削減するために、全層で重みを共有する(層間パラメータ共有)手法を導入した。また、語彙埋め込みの次元を隠れ層の次元より小さくする分解(factorized embedding)や、NSPに代わる文順序予測(SOP)タスクを提案した。パラメータ数を大幅に減らしながらもBERTと同等以上の性能を示した。
5.3 DistilBERT(知識蒸留)
DistilBERT(2019, Hugging Face)は知識蒸留(Knowledge Distillation)を用いてBERTを小型化したモデルである。教師モデル(BERT-base)の出力確率分布を生徒モデルに学習させることで、層数を半分(6層)に減らしながらも、BERT-baseの97%の性能を保持し、推論速度は約2倍に向上した。
5.4 多言語版と領域特化版
Googleは多言語版BERT(BERT multilingual)を公開しており、104言語を同時に事前学習している。また、医療分野(BioBERT、PubMedBERT)、法律分野(LegalBERT)、コード分野(CodeBERT)など、特定のドメインに特化したモデルも多数派生した。これらのモデルは、該当分野のコーパスで追加事前学習またはファインチューニングを行うことで、汎用モデルより高い精度を達成する。
6 影響と限界
6.1 NLP分野へのインパクト
BERTは事前学習モデルのデファクトスタンダードとなり、その後のNLP研究はBERTを基盤とした改良や応用が主流となった。GLUEベンチマークのスコアはBERT発表後に急上昇し、多くのタスクで人間の性能に迫るか超える結果が報告された。さらに、BERTの双方向性とMLMのアイデアは画像、音声などのマルチモーダル分野にも拡張された。
6.2 計算リソースと環境負荷
BERT-largeの事前学習には大量のTPU時間(約4日間×16 TPU)が必要であり、二酸化炭素排出量は数百キログラム単位と推定される。この計算コストの高さは、小規模な研究機関や発展途上国での再現や応用を困難にする一因となった。この問題を解決するために、知識蒸留やパラメータ共有などの効率化手法が多数提案されている。
6.3 将来の方向性(より効率的なモデルへ)
BERTの限界を克服するための研究として、より少ないパラメータで同等性能を発揮する軽量モデル(MobileBERT、TinyBERT)や、自己回帰モデルとマスクモデルの利点を統合したモデル(XLNet、ELECTRA)、さらには大規模言語モデル(GPT-3、T5)への発展がある。また、長い系列を扱うための拡張(Longformer、BigBird)や、マルチモーダルへの拡張(VisualBERT、VideoBERT)も進行中である。将来は、計算効率と性能のバランスをとりながら、より幅広いアプリケーションに適用可能なモデルが求められる。