DeBERTaとは?単語の内容と位置を分けてAttentionを計算し、文章理解を改善する技術

DeBERTaは、単語の内容と相対位置を別々に扱うAttentionと、絶対位置を補う穴埋め予測で文章理解を学ぶモデルです。3つのスコアの仕組み、実験条件、文章分類・文書QAへの応用と計算コストを解説します。

参考文献

DeBERTa: Decoding-enhanced BERT with Disentangled Attention

Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen

論文を見る

今回の論文

今回取り上げるのは、Pengcheng He、Xiaodong Liu、Jianfeng Gao、Weizhu Chenによる「DeBERTa: Decoding-enhanced BERT with Disentangled Attention」です。2020年6月5日にarXivで初版が公開され、ICLR 2021で発表されました。公開元はarXiv、研究分野は自然言語処理、Transformerのモデル構造、言語モデルの事前学習です。論文の公開ページから本文を確認できます。

本記事は2021年10月6日のarXiv v6本文を参照し、主にBase・Largeモデルの構造と文章理解の実験を扱います。後続のDeBERTa V3を解説する記事ではありません。

選んだ理由は、同じ単語でも、どこにあるかによって参照の仕方を変えるという考え方が明快だからです。文章分類や文書QAでモデルを選ぶ際にも、モデル規模だけでなく、語順や距離をどう学んでいるかを見る手がかりになります。

どんな技術か

DeBERTaは、単語の内容と位置を分けて扱い、その組み合わせからAttentionの参照スコアを計算するモデルです。この仕組みをDisentangled Attentionと呼びます。

BERTでは、入力時に単語埋め込みと絶対位置の埋め込みを足し合わせます。DeBERTaでは、エンコーダーの内部で内容の表現と相対位置の表現を分け、内容同士の関係に加えて、「この内容はどの距離の語を参照するか」「この位置関係で相手の内容をどう見るか」を計算します。

たとえば「担当者が顧客に連絡した」と「顧客が担当者に連絡した」は、似た単語を使っていますが役割が違います。これは説明用の例です。単語があるかどうかだけでなく、並びや周辺語との関係も扱う必要があります。DeBERTaは、そうした関係を学ぶためのAttentionの構造を見直します。

さらに事前学習では、隠した単語を予測する段階で絶対位置の情報を補います。文章を読む部分では相対関係を学び、穴埋めの出力側では位置情報を追加する、という役割分担がもう一つの特徴です。原論文第3節

課題

TransformerのAttentionは、位置情報がなければ単語の順番を十分に区別できません。一方、内容と位置を最初から足した一つの表現へ押し込むと、どの情報が参照関係に効いているのかを分けて学びにくくなります。DeBERTaは、内容と位置の相互作用を明示的に計算することで、この設計を改善しようとします。

相対位置を使う既存手法にも工夫の余地があります。論文が比較する方式では、内容同士と、Queryの内容から相対位置への項を使います。DeBERTaは、Keyの内容と逆向きの相対位置を組み合わせる項も導入し、片側だけでは表しにくい関係を扱います。

また、相対位置だけで文脈を学ぶことと、隠された特定の場所に適切な語を出すことは、完全には同じ課題ではありません。著者らは、穴埋め予測には絶対位置も補助情報として有用だと考え、入力層ではなく出力側へ加えています。相対位置では文法を一切学べない、という主張ではありません。

実際のシステムでは、問い合わせの意図分類、条件の含意判定、マニュアルからの回答抽出などで、同じ単語を含む文章の違いを読み分ける必要があります。ただし、以下の業務用途での改善を原論文が直接検証したわけではありません。

用語解説

双方向エンコーダー
入力内の前後の文脈を参照し、各トークンの特徴を作るモデルです。DeBERTaの文章理解では、この特徴に分類や回答位置予測の出力を付けます。通常のチャット生成とは使い方が異なります。
Query・Key・Value
Attentionで使う表現です。QueryとKeyから参照の強さを計算し、その重みでValueを集約します。DeBERTaは内容用と位置用のQuery・Keyを使い分け、集約するValueには内容側の表現を使います。
絶対位置と相対位置
絶対位置は系列の何番目か、相対位置は別のトークンから見た方向と距離です。DeBERTaは各Attention層では相対位置を使い、事前学習の穴埋め出力側で絶対位置を補います。
Masked Language Modeling(MLM)
入力の一部を隠すなどして、元のトークンを予測する事前学習です。本論文のDeBERTaはこの課題を使い、前後の文脈から単語の関係を学びます。
アブレーション
提案した部品を外して性能の変化を調べる実験です。DeBERTaでは、位置に関する各スコアと穴埋め出力側の工夫が、それぞれ役立っているかを確認します。

技術の仕組み

内容と位置から、3つの参照スコアを作る

入力トークンの隠れ状態から、内容用のQuery・Key・Valueを作ります。別に、符号付きの相対距離に対応する学習可能な埋め込み表を用意し、位置用のQuery・Keyへ変換します。位置表のパラメータは層間で共有しますが、学習中に更新されない固定表という意味ではありません。

位置iから位置jを参照するスコアを、1ヘッドについて簡略化すると次の形です。

score(i,j) = dot(Qc[i], Kc[j])
           + dot(Qc[i], Kr[δ(i,j)])
           + dot(Kc[j], Qr[δ(j,i)])
weight(i,:) = softmax(score(i,:) / sqrt(3d))
output[i] = Σj weight(i,j) * Vc[j]

添字cは内容、rは相対位置、dはヘッドの次元です。δは、方向と距離を埋め込み表の番号へ変換する関数です。

第1項は内容から内容への照合です。第2項は内容から位置への照合で、Queryの内容に応じて位置関係のスコアが変わります。第3項は位置から内容への照合で、参照先のKeyの内容と、逆方向の位置関係を組み合わせます。第2項と第3項ではδの引数の順番が逆になる点が重要です。

3項を足してからsqrt(3d)でスケーリングし、Softmaxで重みにします。位置同士だけの第4項も理論上は考えられますが、論文では追加情報が少ないとして実装から外しています。3つの独立したTransformerを並べるのではなく、一つのAttentionスコアを構成する項です。原論文第3.1節・式4

距離だけで補正を決める方式と比べると、DeBERTaでは内容に応じて位置の寄与が変わります。ALiBiの固定の距離ペナルティと見比べると、この違いが分かります。ただしALiBiの中心課題は因果的言語モデルの長さ外挿であり、両論文の点数をそのまま優劣の比較には使えません。

同じ距離の計算を使い回す

すべてのトークン対に専用の位置ベクトルを複製すると、大量のメモリを使います。DeBERTaは、まず各Queryと距離表全体のスコアを計算し、その後で各トークン対に必要な距離のスコアを取り出します。位置から内容への項も同様に計算を再利用します。

原論文では事前学習の最大相対距離kを512とし、表は2k個の位置表現を持ちます。範囲外の距離は端の番号へ丸めます。遠い距離ごとに新しい学習ベクトルが増える構成ではありません。

これにより、位置用の表現を保持する部分はO(kd)にできます。ただしAttentionのN×Nのスコア自体は残ります。モデル全体の計算量やメモリが入力長Nに対して線形になる、という意味ではありません。

絶対位置は、穴埋め予測の段階で補う

事前学習ではMLMを行い、選択した位置で元のトークンを予測する損失を最小化します。本文の基本設定は15%の位置を対象とし、付録では最大3トークンの連続区間を隠す方法も使っています。

エンコーダーの出力の後に置く**Enhanced Mask Decoder(EMD)**へ、絶対位置の埋め込みを追加情報として渡します。実験では重みを共有する2層のEMDを使い、最後の出力から語彙の確率を計算します。相対位置を使う本体と、絶対位置を補う穴埋めの出力を分けた構成です。原論文第3.2節と付録A.8

このDecoderは、チャットの返答を1トークンずつ生成する自己回帰デコーダーを意味しません。文章分類や抽出型QAでは、事前学習したエンコーダーにタスク用の出力を付けて微調整します。推論のたびにMLMの穴埋め処理を実行する必要はありません。

事前学習の構造を変える本論文に対し、ELECTRAの置換トークン検出は、入力の各位置へ与える学習課題を変える方法です。後続のDeBERTa V3がELECTRA型学習を取り入れたことと、本記事のMLMによる原論文の結果は区別してください。

実験と結果

Largeモデルは、少ない事前学習データで文章理解を改善した

原論文はGLUEの文章理解、SQuADの抽出型QA、RACEの選択式読解などを評価しています。以下は、24層・隠れ次元1,024のLargeモデルを使う、表1・2の開発集合の結果です。

評価指標RoBERTa-LargeDeBERTa-Large
GLUE8タスクの平均スコア88.8290.00
MNLI-m含意判定の正解率90.291.1
SQuAD v2.0F1 / 完全一致率(EM)89.4 / 86.590.7 / 88.0
RACE読解問題の正解率83.286.8

GLUEの平均は異なるタスク指標を集約したもので、単一の正解率ではありません。SQuADのF1は回答中のトークンの重なり、EMは正解との完全一致を評価します。差はMNLI-mで0.9ポイント、SQuAD v2.0のF1で1.3ポイント、RACEで3.6ポイントです。SQuADの比較値は、要旨の記載ではなく本文表2に合わせています。原論文第5.1節・表1〜2

DeBERTa側は、重複除去後で約78GBの英語データを使い、バッチ2,048で100万ステップ学習しています。比較先のRoBERTaは約160GBで、論文が数える延べ学習サンプル数もDeBERTaの約2倍です。少ないデータでも強い結果ですが、データ構成やモデルのパラメータ数、1ステップの計算まで同一にした比較ではありません。

部品を外す実験でも、各工夫が寄与した

表4ではWikipediaとBookCorpusだけを使い、Baseモデルをバッチ256・100万ステップで学習します。先ほどの78GBを使う主実験とは条件が異なります。

構成SQuAD v2.0 F1RACE正解率
RoBERTaの著者再実装79.566.8
DeBERTa82.571.7
EMDを除去81.370.3
内容から位置への項を除去81.369.3
位置から内容への項を除去80.869.6

この条件では、EMDも位置に関する両方の項も性能へ寄与しました。特に読解のRACEでは、各要素を外したときに低下が見られます。ただし、表の差だけで日本語や任意の業務タスクでも同程度に改善すると推定することはできません。原論文第5.2節・表4

論文は1.5Bモデルも扱いますが、こちらは160GBのデータ、射影行列の共有、追加の畳み込みなどを使う別条件です。微調整時のSiFTという仮想敵対的学習も、実験では1.5BモデルのSuperGLUEだけに適用しています。Base・Largeの改善をすべてSiFTの効果と読むのは誤りです。

何に使える?

以下は、構造と実験結果を踏まえた応用上の考察です。原論文が日本語の業務アプリで実証した結果ではありません。

問い合わせや申請文を分類する

部署の振り分けや申請種別の判定では、同じ単語があるだけでは意図を区別できません。DeBERTaのようなエンコーダーを業務ラベルで微調整し、文脈や位置関係を踏まえた専用分類器を作る選択肢があります。

例えば「変更を承認してほしい」と「承認済みの変更を取り消したい」は、対応する処理が異なります。こうした境界例を評価集合に含めると、モデルが単語の一致に頼りすぎていないかを測れます。位置表現だけでこの区別が必ず解けるわけではなく、適切な教師データも必要です。

マニュアルから回答箇所を抽出する

検索で候補文書を取り、その中から質問の回答に当たる開始・終了位置を予測する構成に使えます。SQuADの実験は、この抽出型QAに近い設定です。文章を自由生成する必要がない、日付や適用条件の抜き出しなどが候補になります。

候補に答えがない場合の棄却や、長文をどう分割するかも設計します。抽出した範囲が正しくても、古い版の規程を読んでいれば業務上は誤答になるため、検索と版管理の評価も必要です。

検索候補を文ペアとして再判定する

質問と候補文を一緒に入力し、「この候補が質問に答えるか」を教師ありで学習する再ランキングも考えられます。双方向Attentionで両方の語を照合できるため、単純な語句一致より細かい関係を扱う設計です。

ただし、この原論文はRAG再ランキングの品質や遅延を直接示していません。全候補へ適用するのではなく、一次検索の上位だけを再判定し、検索品質と処理時間の両方を測る必要があります。

開発や事業へのヒント

小規模な開発では、適応と失敗分析から始める

原論文の事前学習を再現する前に、対象言語に合う公開済みモデルを使い、業務タスクへ適応させるほうが試しやすいでしょう。比較時はDeBERTa、V2、V3などの系統と、学習言語・トークナイザーを記録します。本記事の数値が別系統のモデルの性能を保証するわけではありません。

評価では、語順が違う例、否定、条件の例外、主語と目的語が入れ替わった例を分けて集計できます。入力を短い区間へ分割すると必要な関係が切れる可能性もあるため、モデルだけでなく分割幅も比較対象にします。

学習時の補助情報を、どこへ渡すかを考える

EMDから得られるヒントは、有用な情報をすべて入力層で混ぜる必要はないという点です。まず本体に関係を学ばせ、出力を予測する段階で補助情報を加える設計も検討できます。

業務モデルなら、例えば文章の意味を読む部分と、文書内の位置を使って項目を抽出する部分を分ける発想につながります。これは論文からの設計上の示唆であり、メタデータを後段へ加えれば必ず改善するという実験結果ではありません。入力側へ加える構成と比較して判断します。

モデル構造の価値を、追加コスト込みで測る

内容と位置を分けると表現力が増える一方、計算も増えます。業務分類なら誤振り分け率、QAなら回答不能の誤判定率を、処理時間やメモリと並べて確認します。事前学習データが少ないことと、運用の推論が安いことは同義ではありません。

新しい構造へ変更する価値は、代表的な業務データで改善するかどうかで判断できます。平均点の小さな改善でも重要な境界例が直るなら価値がありますし、遅延だけ増えて失敗の種類が変わらないなら採用を見送る判断もできます。

限界

計算コストは増えます。 付録A.7では、射影を共有しない構成の追加パラメータをBaseで約14M、Largeで約49Mとし、Attentionの追加演算によってBERT・RoBERTa比で計算コストが約30%増えると見積もっています。EMDの追加コストも別にあります。これは任意のGPUでの推論時間が一律30%増えるという実測保証ではありません。原論文付録A.7

学習規模も小さくありません。Largeの主実験は96基のV100で約20日と報告されています。公開モデルの微調整と、同じ基盤モデルをゼロから学ぶ費用は大きく異なります。

長文の問題が自動的に解決するわけではありません。 相対距離表の再利用後も密なAttentionは残り、遠い距離は丸められます。入力上限、長い文書での精度、分割による情報欠落は別途検証が必要です。ALiBiの長さ外挿の結果をDeBERTaへそのまま当てはめることもできません。

データと言語への依存があります。 主実験は英語です。日本語の助詞、専門用語、表形式の崩れなどに対する効果は、この結果だけでは判断できません。事前学習の穴埋めが得意でも、業務分類や検索にそのまま使える保証はなく、目的に合う追加学習と評価が必要です。

実装では距離の向きに注意します。 内容から位置、位置から内容では距離の符号が逆です。表のクリッピング、paddingのマスク、スケーリングも含めて確認しなければ、論文と異なる計算になります。著者の公開実装を参照する場合も、対象モデルの版と設定をそろえる必要があります。

再現性の面では、微調整の乱数やハイパーパラメータ探索が点数へ影響します。論文の開発集合の値だけで性能差を断定せず、業務の独立した評価集合と複数回の学習で安定性も確かめます。

よくある質問

Q. DeBERTaは文章を生成するチャット用LLMですか?

A. 本記事で扱う中心は、双方向エンコーダーを使う文章理解です。分類や回答位置を予測するヘッドを付けて使います。論文には生成課題の実験もありますが、名前のDecoderだけを見て、通常のチャット用自己回帰モデルと同じだと考えないでください。

Q. BERTとの最も大きな違いは何ですか?

A. 内容と位置を入力で単に足す代わりに、内容同士・内容から相対位置・相対位置から内容の3項でAttentionスコアを計算します。さらにMLMの出力側に絶対位置を補うEMDを使います。

Q. DeBERTa V3の実験結果も同じ記事で説明されていますか?

A. いいえ。本記事はMLMで事前学習する原論文を扱います。V3はELECTRA型の置換トークン検出などを取り入れた後続研究です。利用する重みがどの系統かを確認し、原論文の表と混ぜずに評価してください。

Q. RAGの検索モデルとして、そのまま使えますか?

A. 事前学習済みDeBERTaを平均して文ベクトルにしても、検索向けの距離が整う保証はありません。質問と候補を共同入力する再判定なら、その関係の教師データで微調整する設計が考えられます。大量候補の一次検索とは処理を分けます。

Q. 位置情報の処理を変えれば、日本語分類も必ず改善しますか?

A. 保証はありません。日本語の学習データとトークナイザーに合うモデルを選び、実際の分類ラベルで適応させます。語順、否定、条件の例外などの境界例を含め、精度と処理時間を既存モデルと比較してください。

今日の学び

この論文は、単語の内容と位置関係をどう組み合わせれば、文章理解を改善できるかを扱いました。3つの項からAttentionを計算するDisentangled Attentionと、出力側で絶対位置を補うEMDで取り組んでいます。

得られるヒントは、情報をすべて最初に混ぜるのではなく、役割に応じて計算する場所を設計することです。実務へ持ち込む際は、語順や条件の読み分けが改善するかを、追加の計算コストと一緒に評価する必要があります。