# Improving Language Understanding by Generative Pre-Training > [!abstract] 概要 > 自然言語理解は、テキスト含意・質問応答・意味的類似度評価・文書分類など多様なタスクを包含する。大規模なラベルなしテキストコーパスは豊富に存在するものの、これらの個別タスクを学習するためのラベル付きデータは乏しく、識別的に訓練されたモデルが十分な性能を発揮することは困難である。本研究は、多様なラベルなしテキストコーパスでの言語モデルの生成的事前学習と、続く各タスクへの識別的微調整により、これらのタスクで大幅な性能向上が実現できることを示す。従来の手法とは異なり、微調整時にタスクを意識した入力変換を用いることで、モデルアーキテクチャへの変更を最小限に抑えつつ効果的な転移を実現する。自然言語理解の幅広いベンチマークで本手法の有効性を実証し、汎用的なタスク非依存モデルが、各タスク専用に設計されたアーキテクチャを持つ識別的モデルを上回り、評価対象 12 タスク中 9 で当時の最高精度を大幅に更新した。具体的には、常識推論(Stories Cloze Test)で 8.9%、質問応答(RACE)で 5.7%、テキスト含意(MultiNLI)で 1.5% の絶対改善を達成した。 ## 論文情報 | 項目 | 内容 | |---|---| | タイトル | Improving Language Understanding by Generative Pre-Training | | 著者 | [[Alec Radford]]、[[Karthik Narasimhan]]、[[Tim Salimans]]、[[Ilya Sutskever]](全員 [[OpenAI]]) | | 発表 | OpenAI テクニカルレポート、2018年(未査読プレプリント) | | 通称 | GPT / GPT-1 | | 事前学習コーパス | BooksCorpus(7,000 冊以上の未出版書籍) | ## 概要 ラベルなし大規模テキストコーパスで Transformer デコーダを用いた言語モデリングにより汎用的な表現を事前学習し、その後タスク固有のラベル付きデータで微調整する二段階の転移学習フレームワークを提案した論文である。自然言語推論・質問応答・意味的類似度・テキスト分類の 4 カテゴリ 12 タスクで評価し、9 タスクで当時の最高精度を達成した。この「教師なし事前学習 → 教師あり微調整」のパラダイムは、後続の GPT-2・GPT-3・BERT 等に継承され、大規模言語モデル時代の基礎を築いた。 ## 問題設定 自然言語処理の多くのタスクでは大量のラベル付きデータが必要だが、そのようなデータは希少で取得コストが高い。一方、ラベルなしテキストコーパスは豊富に存在する。ラベルなしデータから有用な表現を学習しタスクに転移するアプローチには、2 つの課題が存在した。 1. **最適化目的関数の選択**: 言語モデリング・機械翻訳・談話の整合性など、転移に有効な表現を学ぶための目的関数に合意がなかった 2. **学習済み表現の転移方法**: タスク固有のアーキテクチャ変更、複雑な学習スキーム、補助的目的関数の追加など、既存手法は統一的でなかった 先行研究では単語レベルの事前学習済みエンベディング(Word2Vec、GloVe 等)がタスク性能を向上させることが示されていたが、文レベル・段落レベルの意味を捉えることは未解決であった。Dai ら(2015)や Howard・Ruder(2018)は言語モデリングによる事前学習と微調整の組み合わせを探求したが、LSTM を用いており長距離依存の捕捉に限界があった。 ## 提案手法 ### 教師なし事前学習 トークン列 $U = \{u_1, \ldots, u_n\}$ に対し、標準的な言語モデリング目的関数 $L_1(U) = \sum_i \log P(u_i | u_{i-k}, \ldots, u_{i-1}; \Theta)$ を最大化する。$k$ はコンテキストウィンドウのサイズ、$\Theta$ はニューラルネットワークのパラメータである。 モデルアーキテクチャには多層 Transformer デコーダを採用した。入力コンテキストトークンに対しマルチヘッド自己アテンション操作を適用し、続くポジションワイズフィードフォワードレイヤーで出力分布を生成する。 $h_0 = U W_e + W_p$ $h_l = \text{transformer\_block}(h_{l-1}) \quad \forall l \in [1, n]$ $P(u) = \text{softmax}(h_n W_e^T)$ $W_e$ はトークンエンベディング行列、$W_p$ は位置エンベディング行列である。リカレントネットワークと比較して、Transformer のアテンション機構はテキスト中の長距離依存をより構造的に扱える。 ### 教師あり微調整 事前学習済みモデルの最終 Transformer ブロックの活性化 $h_l^m$ に線形出力レイヤー(パラメータ $W_y$)を追加し、ラベル $y$ を予測する。 $P(y | x_1, \ldots, x_m) = \text{softmax}(h_l^m W_y)$ 微調整時に言語モデリングを補助目的関数として加えることが汎化と収束を改善することを発見した。最終的な目的関数は以下の通りである。 $L_3(C) = L_2(C) + \lambda \cdot L_1(C)$ $\lambda$ は補助目的関数の重みであり、本研究では 0.5 に設定した。微調整で追加するパラメータは $W_y$ と区切りトークンのエンベディングのみであり、アーキテクチャ変更は最小限である。 ### タスク固有の入力変換 構造化された入力を持つタスクに対し、事前学習済みモデルが処理可能な単一のトークン列に変換する 4 つのパターンを定義した。 - **テキスト含意**: 前提 $p$ と仮説 $h$ を区切りトークン `
で連結する - **類似度**: 2 文の順序に固有の意味がないため、両方の順序で独立に処理し、得られた表現を要素ごとに加算してから線形出力レイヤーに入力する - **質問応答・常識推論**: 文脈文書 $z$ と質問 $q$ を各選択肢 $a_k$ と連結し $[z; q; \$; a_k]$ として独立に処理、softmax で正規化する - **分類**: 追加の変換なしで直接微調整する 全変換にはランダム初期化された開始トークンと終了トークンを含む。 ## 新規性 1. **Transformer デコーダの採用**: 先行研究(Dai ら、Howard・Ruder)が LSTM を使用していたのに対し、Transformer デコーダを採用することで長距離依存の捕捉能力を向上させた。アブレーション実験では LSTM 対比で平均スコアが 5.6 ポイント高い 2. **統一的な転移フレームワーク**: 事前学習済みモデルに最小限の変更(線形出力レイヤーと区切りトークンのみ)を加えるだけで、4 カテゴリの多様なタスクに適用できる汎用的な手法を確立した 3. **タスク固有の入力変換**: 構造化入力を走査型アプローチで単一トークン列に変換することで、タスクごとのアーキテクチャ設計を不要にした 4. **ゼロショット能力の観察**: 事前学習中にモデルが下流タスクに有用な言語知識を獲得し、微調整なしでもある程度のタスク遂行能力を示すことを確認した ## 実験設定 ### 事前学習データ BooksCorpus を使用。7,000 冊以上の未出版書籍(冒険・ファンタジー・ロマンスなど多様なジャンル)を含み、長く連続したテキストが言語モデルの長距離条件付けの学習に有効である。1B Word Benchmark(ELMo が使用)は同程度の規模だが文単位でシャッフルされており長距離構造が破壊されている。トークンレベルのパープレキシティは 18.4 を達成した。 ### モデル仕様 - 12 層のデコーダ専用 Transformer - 768 次元の隠れ状態、12 アテンションヘッド - ポジションワイズフィードフォワードネットワークの内部次元: 3072 - Adam オプティマイザ、最大学習率 2.5e-4 - 最初の 2000 更新でゼロから線形に増加、コサインスケジュールで減衰 - 100 エポック、ミニバッチサイズ 64、系列長 512 トークン - BPE 語彙(40,000 マージ) - 残差・エンベディング・アテンション dropout(率 0.1) - 活性化関数: GELU - 学習済み位置エンベディング(正弦波版ではない) ### 微調整設定 - 分類器 dropout: 0.1 - 学習率: 6.25e-5、バッチサイズ: 32 - 3 エポックでほとんどのタスクに十分 - 線形学習率減衰、ウォームアップは訓練の 0.2% - 補助目的関数の重み $\lambda = 0.5$ ### 評価タスク(12 データセット) | カテゴリ | データセット | |---|---| | 自然言語推論 | SNLI、MultiNLI、Question NLI、RTE、SciTail | | 質問応答 | RACE、Story Cloze | | 意味的類似度 | MRPC、QQP、STS-B | | 分類 | SST-2、CoLA | ## 実験結果 ### 自然言語推論 5 データセット中 4 で当時の最高精度を達成した。 - MNLI-m: 82.1%(先行最良 80.6% から 1.5 ポイント改善) - SNLI: 89.9%(先行最良 89.3% から 0.6 ポイント改善) - SciTail: 88.3%(先行最良 83.3% から 5.0 ポイント改善) - QNLI: 88.1%(先行最良 82.3% から 5.8 ポイント改善) - RTE: 56.0%(先行最良 61.7% を下回る。サンプル数 2,490 と小規模なデータセットであり、マルチタスク学習の恩恵を受ける余地がある) ### 質問応答・常識推論 - Story Cloze: 86.5%(先行最良 77.6% から 8.9 ポイント改善) - RACE 全体: 59.0%(先行最良 53.3% から 5.7 ポイント改善) - RACE-m: 62.9%、RACE-h: 57.4% ### 意味的類似度 3 データセット中 2 で当時の最高精度を達成した。 - STS-B: 82.0(先行最良 81.0 から 1.0 ポイント改善) - QQP: 70.3(先行最良 66.1 から 4.2 ポイント改善) - MRPC: 82.3(先行最良 86.0 を下回る) ### 分類 - CoLA: 45.4(先行最良 35.0 から 10.4 ポイント改善。モデルが学習した言語的バイアスの有効性を示す) - SST-2: 91.3%(先行最良 93.2% を下回るが競争力がある) ### GLUE ベンチマーク総合 72.8(先行最良 68.9 から 3.9 ポイント改善)。 ### アブレーション実験 | 条件 | 平均スコア | 備考 | |---|---|---| | Transformer + 補助言語モデリング(完全モデル) | 74.7 | - | | Transformer − 補助言語モデリング | 75.0 | 小規模データセットでは補助目的関数が不要な場合がある | | LSTM + 補助言語モデリング | 69.1 | Transformer 対比で 5.6 ポイント低下 | | Transformer − 事前学習 | 59.9 | 事前学習なしで 14.8% の性能低下 | ### 転移レイヤー数の影響 事前学習モデルから転移するレイヤー数を変化させた実験では、エンベディングの転移だけでも性能が改善し、各 Transformer レイヤーの追加がさらなる改善をもたらした。MultiNLI では全レイヤー転移で最大 9% の改善を示した。各レイヤーが下流タスクの解決に有用な機能を含むことを示唆する。 ### ゼロショット挙動 事前学習の進行に伴い、4 つのタスク(CoLA・SST-2・RACE・DPRD)でのゼロショット性能がヒューリスティックな手法により安定的に向上した。Transformer は LSTM と比較してゼロショット性能の分散が小さく、Transformer アーキテクチャの帰納バイアスが転移を助けることを示唆する。 ## 考察 本研究の結果は、教師なし事前学習が自然言語理解タスクにおける有効な転移学習戦略であることを実証した。Transformer アーキテクチャの採用が LSTM に対して明確な優位性を持つことが示され、長距離依存を扱う構造化されたアテンションメモリが転移学習において重要な役割を果たす。 補助的言語モデリング目的関数の効果はデータセットの規模に依存し、大規模データセット(SNLI・MNLI・QQP 等)では汎化を改善するが、小規模データセット(CoLA・SST-2・MRPC 等)では必ずしも有効ではない。 ゼロショット実験の結果は、言語モデリングの事前学習中にモデルが下流タスクに有用な言語知識を獲得することを示唆しており、この観察は後続研究(GPT-2 のゼロショット評価、GPT-3 のフューショット学習)への道を開いた。 ## 強み - **汎用性**: 単一のタスク非依存モデルで 4 カテゴリ 12 タスクに対応し、タスク固有のアーキテクチャ設計を不要にした - **最小限のアーキテクチャ変更**: 微調整で追加するパラメータは線形出力レイヤーと区切りトークンのエンベディングのみである - **体系的なアブレーション**: Transformer 対 LSTM、事前学習の有無、補助目的関数の有無を組み合わせた分析により、各要素の寄与を明確にした - **ゼロショット能力の分析**: 事前学習モデルが微調整なしでもタスク遂行能力を示すことの初期的な観察を提供した ## 弱点・課題 - **小規模データセットでの限界**: RTE(2,490 サンプル)で先行最良を下回っており、ラベル付きデータが極端に少ない場合の転移学習の限界が見られる - **単一コーパスへの依存**: 事前学習に BooksCorpus のみを使用しており、コーパスの多様性がモデル性能に与える影響は未検証である - **自己回帰の制約**: 左から右への単方向言語モデリングのみを採用しており、双方向の文脈を活用していない(この制約は後に BERT が双方向マスク言語モデリングで解決を試みた) - **計算コストの報告不足**: 事前学習の計算コスト(GPU 時間等)が論文中に明記されていない - **タスク間の相互作用**: マルチタスク学習の可能性は示唆されているが実験されていない