XYZNOT

論文 · arXiv 1810.04805

BERT: 言語理解のための深層双方向Transformerの事前学習

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

公開日 cs.CL arXivPDF

XYZNOT で読む(全文翻訳と AI 解説)

3行まとめ

  1. 🎯 従来の言語モデル事前学習は単方向(左から右)のコンテキストに制約されており、文レベルのタスクには最適化されず、質問応答のようなトークンレベルのタスクには悪影響を及ぼしていました。
  2. 🔧 マスク言語モデル(Cloze)の目的関数と次文予測を用いて多層双方向Transformerエンコーダを事前学習するBERTを提案しました。
  3. 📈 GLUEスコア80.5(絶対値で+7.7ポイント)、MultiNLI正解率86.7%(絶対値で+4.6%)をはじめ、11のNLPタスクでSOTAを達成しました。

概要

本論文では、Transformerによる双方向エンコーダ表現を意味するBERT(Bidirectional Encoder Representations from Transformers)と呼ばれる新しい言語表現モデルを提案します。最近の言語表現モデルとは異なり、BERTはラベルなしテキストからすべての層で左右双方のコンテキストを結合して条件付けることで、深層双方向表現を事前学習するように設計されています。その結果、事前学習済みBERTモデルは、大幅なタスク固有のアーキテクチャ変更を行うことなく、出力層を1層追加するだけでファインチューニングでき、質問応答や含意関係認識など幅広いタスクで最高水準のモデルを構築可能です。BERTは概念的にシンプルでありながら実験的にも強力です。GLUEスコアを80.5%(7.7ポイントの絶対的改善)、MultiNLIの正解率を86.7%(4.6ポイントの改善)、SQuAD v1.1質問応答のテストF1を93.2(1.5ポイントの改善)、SQuAD v2.0テストF1を83.1(5.1ポイントの改善)に押し上げるなど、11の自然言語処理タスクで新たな最先端(SOTA)の結果を達成しました。

英語の原文概要

We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT model can be fine-tuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without substantial task-specific architecture modifications. BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural language processing tasks, including pushing the GLUE score to 80.5% (7.7% point absolute improvement), MultiNLI accuracy to 86.7% (4.6% absolute improvement), SQuAD v1.1 question answering Test F1 to 93.2 (1.5 point absolute improvement) and SQuAD v2.0 Test F1 to 83.1 (5.1 point absolute improvement).

論文解説

問題設定と動機

従来の言語表現モデルは、特徴量ベースのアプローチ(ELMoなど)またはファインチューニングアプローチ(OpenAI GPTなど)のいずれかに依存していました。いずれも有効ではあったものの、単方向の言語モデリング目的に制限されていました。標準的な自己回帰モデルはテキストを厳密に左から右(または右から左)に処理します。単方向モデルでは、複数層のコンテキストにわたって単語が自らを自明に「参照してしまう」のを防ぐため、自己注意(self-attention)層で先行するトークンにしか注意を向けられません。ELMoは個別に学習された左右両方向のLSTMを浅く連結することで双方向性を実現しようと試みましたが、すべての層で双方向コンテキストを深く結合して条件付けることはできませんでした。この単方向性は文レベルの表現を制限し、左右のコンテキストを同時に理解することが不可欠な質問応答などのトークンレベルの下流タスクでは特に悪影響を及ぼします。

主要なアイデア

  • 深層双方向Transformerアーキテクチャ: BERTは多層双方向Transformerエンコーダを採用しており、自己注意層がすべての層にわたって左右両方のコンテキストを結合して条件付けることを可能にしています。
  • Masked Language Model (MLM): Clozeテストに着想を得て、BERTは入力トークンの15%をランダムにマスクし、そのコンテキストを用いてマスクされたトークンを予測するようにモデルを学習することで、自らを参照してしまう問題を解決しています。
  • 事前学習とファインチューニングの不一致の緩和: ファインチューニング中には[MASK]トークンが出現しないため、選ばれた15%のトークンのうち80%を[MASK]に置き換え、10%をランダムなトークンに置き換え、残りの10%をそのまま保持します。
  • Next Sentence Prediction (NSP): 自然言語推論(NLI)や質問応答(QA)に重要な文ペアの関係性を捉えるため、文が文の自然な続きであるか()、コーパスからランダムに選ばれた文であるか()を予測する2値分類タスクで事前学習を行います。
  • 下流タスク向けの統合アーキテクチャ: 下流タスクには、最小限の追加パラメータ(単純な線形分類ヘッドやスパンの開始/終了ポインタなど)のみを加え、事前学習済みのアーキテクチャをそのまま再利用します。

手法

モデル設定

BERTは主に2つのサイズで評価されています:

  • : 層数 、隠れ層サイズ 、アテンションヘッド数 、総パラメータ数 = 。
  • : 層数 、隠れ層サイズ 、アテンションヘッド数 、総パラメータ数 = 。 フィードフォワードネットワークのフィルタサイズはです。

入出力表現

入力は単一のテキストシーケンス、または2つの文を1つにパックしたペアを表現できます。埋め込みは以下の3つを合算して構築されます:

  1. WordPieceトークン埋め込み(30,000トークンの語彙)。
  2. セグメント埋め込み(トークンが文由来か文由来かを識別する学習済み埋め込み)。
  3. 学習済み位置埋め込み。

すべてのシーケンスの先頭には[CLS]が付与されます。その最終隠れ層ベクトルはシーケンス全体の集約表現となります。文ペアは[SEP]で区切られます。各トークンの最終隠れ表現はと表記されます。

事前学習の目的関数

  1. Masked LM: マスクされたトークンについて、表現を語彙全体のソフトマックス関数と交差エントロピー損失に入力します:
  2. Next Sentence Prediction: 集約ベクトルを2値分類に入力します: 全体の事前学習損失は、平均マスクLM対数尤度と平均次文予測対数尤度の合計となります。

ファインチューニングの適用方法

  • 分類(GLUE): 射影行列を追加し、損失はとして計算されます。
  • スパン抽出(SQuAD v1.1): 開始ベクトルと終了ベクトルを学習します。トークンが回答スパンの開始である確率は次の通りです: スパンのスコアはとなり、の範囲で最大化されます。
  • 回答不能な質問(SQuAD v2.0): [CLS]トークンを無回答スパンとして機能させ、スコアを算出し、のときにのみ有効な回答を予測するように拡張します。

結果

BERTは11のNLPタスクで評価されました:

  • GLUE リーダーボード: は平均GLUEスコア80.5%(従来のSOTAに対して絶対値で7.7%の改善)およびMNLIで86.7%の正解率(4.6%の改善)を達成しました。
  • SQuAD v1.1: は単一モデルとしてDevセットで84.1 EMおよび90.9 F1を記録し、TriviaQAの事前学習を組み合わせたアンサンブルモデルはTestセットで87.4 EMおよび93.2 F1に達し、人間のベースライン(82.3 EM / 91.2 F1)を上回りました。
  • SQuAD v2.0: はTestセットで80.0 EMおよび83.1 F1を記録し、従来の最高水準システムを+5.1 F1上回りました。
  • SWAG: はTestセットで86.3%の正解率を記録し、OpenAI GPT(78.0%)および人間の専門家ベースライン(85.0%)を上回りました。
  • アブレーション研究の結果: NSPを削除するとMNLI(-0.5%)、QNLI(-3.5%)、SQuAD F1(-0.6%)の性能が低下しました。MLMを標準的な左から右への言語モデル(LTR LM)に置き換えると、SQuAD(-10.7 F1)およびMRPC(正解率-9.2%)で大幅な性能低下が見られました。

限界と未解決の課題

  • 事前学習とファインチューニングの不一致: 人工的な[MASK]トークンはファインチューニング時には出現しないため、不一致を軽減するためにヒューリスティックな置換規則(80/10/10)が必要となります。
  • 事前学習の効率性: 標準的な自己回帰モデルが100%のトークンを予測するのに対し、BERTはバッチごとに15%のトークンしか予測しないため、収束までにより多くの事前学習ステップ(128,000トークン/バッチで1,000,000ステップ)が必要になります。
  • アテンションの計算量ボトルネック: 標準的なTransformerのアテンションは系列長に対して二次関数的()に計算量が増加するため、長系列の処理コストが高く、2段階の事前学習戦略(系列長128で90%のステップ、系列長512で残り10%のステップ)が必要でした。
  • テキスト生成への非適用性: 双方向エンコーダであるBERTは表現獲得や判別的な下流タスク向けに設計されており、アーキテクチャの変更なしに自己回帰的な左から右へのテキスト生成を直接行うことはできません。

重要用語

Masked Language Model (MLM)
入力トークンの一部をランダムにマスクし、深層双方向コンテキストから元のトークンを復元するようにモデルを学習させる、Clozeテストに着想を得た事前学習の目的関数。
Next Sentence Prediction (NSP)
与えられた第2の文セグメントが第1のセグメントの論理的な続きであるか、コーパスからランダムに抽出されたものであるかをモデルが予測する2値分類の事前学習タスク。
[CLS]
すべてのシーケンスの先頭に配置される特別な分類トークン。その最終隠れ状態は、分類タスクにおいてシーケンス全体の集約表現として使用される。
[SEP]
1つの入力シーケンス内にパックされた連続しない、または異なる文セグメントを区切るために使用される特殊トークン。
WordPiece
未知語(OOV)に対応し、単語をサブワード単位に分割するためにBERTで採用された、語彙数30,000のサブワードトークン化アルゴリズム。
Segment Embeddings
パックされたペアにおいて、トークンが文スパンAと文スパンBのどちらに属しているかを区別するために入力トークン埋め込みに加算される学習済み埋め込み。
Fine-tuning
ラベル付きデータを用い、最小限のタスク固有出力層とともに、事前学習済みBERTのすべてのパラメータをエンドツーエンドで更新する下流タスクの学習戦略。
Feature-based approach
BERTのパラメータを更新せず、その層から固定のコンテキスト表現を抽出し、タスク固有の別個のアーキテクチャに入力する代替アプローチ。

よくある質問

なぜBERTは常に[MASK]を使うのではなく、ランダムなトークンに置き換えたり、元のまま維持したりするのですか?

ファインチューニング時には[MASK]トークンが一切出現しないため、対象トークンをすべて[MASK]に置き換えると事前学習とファインチューニングの間で不一致が生じてしまいます。BERTはこの問題を軽減するため、選択されたトークンのうち80%を[MASK]に置き換え、10%をランダムなトークンに置き換え、残りの10%を変更せず保持することで、モデルにあらゆるトークンの分散表現を維持させます。

BERTとOpenAI GPTの違いは何ですか?

どちらもTransformerをベースとしたファインチューニングモデルですが、OpenAI GPTは各トークンが先行するトークンにしか注意を向けられないよう制約された左から右へのTransformerデコーダを使用します。一方、BERTはマスク言語モデルの事前学習目的関数によって、すべての層で左右両方のコンテキストに同時に注意を向けることができる双方向Transformerエンコーダを使用しています。

BERTをエンドツーエンドでファインチューニングする代わりに、特徴量抽出器として使用することはできますか?

はい、可能です。CoNLL-2003の固有表現認識(NER)タスクにおいて、BERTの上位4層の隠れ層からトークン活性化を抽出・連結し、2層のBiLSTMに入力したところ、モデル全体を完全にファインチューニングした場合(96.4 F1)とわずか0.3ポイント差の96.1 Dev F1を達成しました。

なぜBERTは2段階の事前学習シーケンス長スケジュールを採用したのですか?

自己注意機構の計算量はシーケンス長に対して二次関数的に増加します。計算時間を短縮するため、BERTは最初の900,000ステップ(学習の90%)をシーケンス長128で事前学習し、残りの100,000ステップを位置埋め込みの学習のためにシーケンス長512で学習しました。

このページの解説は AI が論文から作成したもので、誤りを含む場合があります。詳細は原文をご確認ください。

XYZNOT で読む(全文翻訳と AI 解説)