Editing Factual Knowledgein Language ModelsEMNLP 2021Nicola De Cao, Wilker Aziz, Ivan Titov第14回最先端NLP勉強会 2022/09/27読み⼿: 松⽥耕史 (理研/東北⼤)図表は元論⽂からの引⽤です。1
View Slide
どんな論⽂︖• Language Model に内在しているFactual Knowledge を編集する• どうやって︖– パラメータ θ‘ を予測する hyper network g(KnowledgeEditor)を学習する2
貢献• Knowledge Editing というタスクを定義、評価指標も提案• KnowledgeEditor という⼿法を提案– パラメータを予測する NN モデル• KnowledgeEditor の有効性を2つのタスクで確認– Fact Checking– Question Answering• KnowledgeEditor の書き換え具合を分析3
モチベーション• LM as KB– Factual Knowledge が パラメータとして暗にうめこまれている• しかし、間違っていたり obsolete になっていたりすることもあるので修正したいこともある• でも、、、コストのかかる再学習はしたくない4
実現したい3要件• Generality:– いろんなモデルに使える• 本論⽂では BERT, BART に適⽤• Reliability:– 余計な副作⽤をうまない、編集したい Fact 以外に影響を与えない• Consistency:– 同じ Fact を問う質問に対して、⼀貫した答えを返す– ⾔い換えにたいする強さ5
6
タスク設定• モデル f(x, θ) があって、 ∈ D という書き換えデータがある– y: model の prediction– a: alternative prediction• モデル f のアーキテクチャをたもったまま、y ではなく a を予測するような f(x, θ‘)を⾒つけたい– かつ、ほかの x に対する予測は変えない• x の⾔い換えに対しては a を予測するようにしたい7
3要件を踏まえた評価指標• success rate: ↑– g がどれくらい y から a に書き換えることができたか• retain accuracy: ↑– その他の(書き換え対象外の)知識をどれくらい残せたか• equivalence accuracy: ↑– ⾔い換えに対してロバストに書き換えができたか• performance deterioration: ↓– 書き換え後のモデルのパフォーマンス低下8
Method: ハイパーネットワーク• 元のパラメータ θ を 新しいパラメータθ‘ に書き換えるような NN g を考える– パラメータ φ9x ͔Β a Λ༧ଌ͢Δ Loss Λ࠷খԽ͢Δ φθ ͔ΒͰ͖Δ͚ͩΕͳ͍ θ’ Λ༧ଌ͍ͨ͠ɺͱ͍͏੍Ϛʔδϯ
制約 C について• 素朴には: Lpノルム:• 提案⼿法: KLダイバージェンス:10ύϥϝʔλͷ͕͚ۙΕۙ͘ͳΔΑ͏੍Ϟσϧͷग़ྗ͕ۙ͘ͳΔΑ͏੍
中⾝• θ‘を直接求めるのではなく、θ‘ = θ + Λθとおいて Λθを求める• を連結して bi-LSTMに⼊れて得た h を 5層のFFNN に⼊⼒、その勾配を⽤いてパラメータ差分を計算– 勾配のゲーティングされた和を⽤いる11
実験• Fact Checking– FEVER データセット [Throne et al. 2018]– BERTを⽤いたの2値分類• Closed-book QA– zsRE データセット [Levy et al. 2017]• ⼈⼿で作った Question Paraphrase が付いているのが採⽤ポイント– BARTを⽤いた seq2seq12
Alternative prediction の⽣成• Fact Checking:– ラベルを反転させるだけ• Question Answering:– ビームサーチの Top-1 以外の候補を使って作る• ⾔い換えの⽣成– 折返し翻訳を⽤いる13ݱ࣮ੈքͰਖ਼͍͔ࣝ͠Ͳ͏͔ؾʹͤͣ࡞͍ͬͯΔ͜ͱʹҙʂ
実験結果 - Fact Checking14
実験結果 – Question Answering15
結局どのモデルが総合的に良いのか︖• 各指標にランダムな重みを付けて線形和にして1000回繰り返し総合点を求める– 重み: Dirichlet 分布からのサンプル• Simplex中の1点16
Logitの動き17
モデルのどの部分を書き換えたか18εύʔεͳ Update ͕ߦΘΕ͍ͯΔ
まとめ• LMの内部に暗黙的に保存されているfactual knowledge を編集するタスクを提案• いくつかの評価指標を定義• KnowledgeEditorというハイパーネットワークを提案19