Upgrade to Pro — share decks privately, control downloads, hide ads and more …

論文紹介: Backpack Language Models

inaba
August 30, 2023

論文紹介: Backpack Language Models

ACL2023 Outstanding Paper の解説です

John Hewitt, John Thickstun, Christopher Manning, and Percy Liang. 2023. Backpack Language Models. In Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 9103–9125, Toronto, Canada. Association for Computational Linguistics.

inaba

August 30, 2023
Tweet

More Decks by inaba

Other Decks in Research

Transcript

  1. Backpack Language Models 1 John Hewitt, John Thickstun, Christopher D.

    Manning, Percy Liang ACL2023 Outstanding Paper 発表者:稲葉 達郎 M1, Audio and Speech Processing Lab, Kyoto University 2023/8/27 第15回最先端 NLP 勉強会 Paper: Backpack Language Models (Hewitt+, ACL2023)
  2. 2 ໨త • Transformer と同じようなことをもっと操作性・解 釈性を向上させたモデルで⾏いたい ख๏ • 各単語をそれぞれ⽂脈に依存しない複数の Sense

    ベ クトルに変換 • Transformer により⽂脈に依存した重みを計算 • Sense ベクトルの重み付き和をとる ಛ௃ • Transformer と同等の性能 • ⽂脈に依存しない Sense ベクトルを組み込むことで 操作性・解釈性が向上 概要 Figure: Backpack Language Models (Hewitt+, ACL2023)
  3. 3 概要 Figure: Backpack Language Models (Hewitt+, ACL2023) ໨త •

    Transformer と同じようなことをもっと操作性・解 釈性を向上させたモデルで⾏いたい ख๏ • 各単語をそれぞれ⽂脈に依存しない複数の Sense ベ クトルに変換 • Transformer により⽂脈に依存した重みを計算 • Sense ベクトルの重み付き和をとる ಛ௃ • Transformer と同等の性能 • ⽂脈に依存しない Sense ベクトルを組み込むことで 操作性・解釈性が向上
  4. 4 概要 Figure: Backpack Language Models (Hewitt+, ACL2023) ໨త •

    Transformer と同じようなことをもっと操作性・解 釈性を向上させたモデルで⾏いたい ख๏ • 各単語をそれぞれ⽂脈に依存しない複数の Sense ベ クトルに変換 • Transformer により⽂脈に依存した重みを計算 • Sense ベクトルの重み付き和をとる ಛ௃ • Transformer と同等の性能 • ⽂脈に依存しない Sense ベクトルを組み込むことで 操作性・解釈性が向上
  5. 5 概要 Figure: Backpack Language Models (Hewitt+, ACL2023) ໨త •

    Transformer と同じようなことをもっと操作性・解 釈性を向上させたモデルで⾏いたい ख๏ • 各単語をそれぞれ⽂脈に依存しない複数の Sense ベ クトルに変換 • Transformer により⽂脈に依存した重みを計算 • Sense ベクトルの重み付き和をとる ಛ௃ • Transformer と同等の性能 • ⽂脈に依存しない Sense ベクトルを組み込むことで 操作性・解釈性が向上
  6. 6 概要 Figure: Backpack Language Models (Hewitt+, ACL2023) ໨త •

    Transformer と同じようなことをもっと操作性・解 釈性を向上させたモデルで⾏いたい ख๏ • 各単語をそれぞれ⽂脈に依存しない複数の Sense ベ クトルに変換 • Transformer により⽂脈に依存した重みを計算 • Sense ベクトルの重み付き和をとる ಛ௃ • Transformer と同等の性能 • ⽂脈に依存しない Sense ベクトルを組み込むことで 操作性・解釈性が向上
  7. 8 ྑ͍఺😄 • Attention 層 と MLP 層を繰り返すことで複雑な⽂脈を考慮し た表現を獲得できる •

    ⾔語モデルはこの表現をもとに,⼊⼒⽂に続く単語を予測 背景: Transformer の操作性・解釈性の低さ Figure: Backpack Language Models (Hewitt+, ACL2023)
  8. 9 ྑ͍఺😄 • Attention 層 と MLP 層を繰り返すことで複雑な⽂脈を考慮し た表現を獲得できる •

    ⾔語モデルはこの表現をもとに,⼊⼒⽂に続く単語を予測 ѱ͍఺😇 • ⼊⼒から出⼒まで⼀通の処理なので,モデル内部へ介⼊を⾏ うと基本的に⾮線形な影響が発⽣ • 操作・解釈が難しい 背景: Transformer の操作性・解釈性の低さ Figure: Backpack Language Models (Hewitt+, ACL2023)
  9. 10 ྑ͍఺😄 • Attention 層 と MLP 層を繰り返すことで複雑な⽂脈を考慮し た表現を獲得できる •

    ⾔語モデルはこの表現をもとに,⼊⼒⽂に続く単語を予測 ѱ͍఺😇 • ⼊⼒から出⼒まで⼀通の処理なので,モデル内部へ介⼊を⾏ うと基本的に⾮線形な影響が発⽣ • 操作・解釈が難しい 背景: Transformer の操作性・解釈性の低さ Figure: Backpack Language Models (Hewitt+, ACL2023) 介⼊
  10. 11 ྑ͍఺😄 • Attention 層 と MLP 層を繰り返すことで複雑な⽂脈を考慮し た表現を獲得できる •

    ⾔語モデルはこの表現をもとに,⼊⼒⽂に続く単語を予測 ѱ͍఺😇 • ⼊⼒から出⼒まで⼀通の処理なので,モデル内部へ介⼊を⾏ うと基本的に⾮線形な影響が発⽣ • 操作・解釈が難しい 背景: Transformer の操作性・解釈性の低さ Figure: Backpack Language Models (Hewitt+, ACL2023) ⾮線形な 影響
  11. 12 ྑ͍఺😄 • Attention 層 と MLP 層を繰り返すことで複雑な⽂脈を考慮し た表現を獲得できる •

    ⾔語モデルはこの表現をもとに,⼊⼒⽂に続く単語を予測 ѱ͍఺😇 • ⼊⼒から出⼒まで⼀通の処理なので,モデル内部へ介⼊を⾏ うと基本的に⾮線形な影響が発⽣ • 操作・解釈が難しい • これを頑張って分析する研究も存在 [Meng+, ICLR2023; Serrano+, ACL2019] 背景: Transformer の操作性・解釈性の低さ Figure: Backpack Language Models (Hewitt+, ACL2023) ⾮線形な 影響 MLP Attention
  12. 14 • Backpack は⽂脈を考慮した単語埋め込み表現の獲得⽅法 Backpack: 全体像 𝑥! 𝑥" 𝑥# 𝑥$

    … Backpack 𝒐! 𝒐" 𝒐# 𝒐$ … … … 𝒐# = Backpack 𝑥$ : 𝑥% (1 ≤ 𝑖 ≤ 𝑛, 𝑥# ∈ 𝒱, 𝒐# ∈ 𝑅&) 𝒱 は Vocabulary
  13. 15 • Backpack は⽂脈を考慮した単語埋め込み表現の獲得⽅法 Backpack: 全体像 𝑥! 𝑥" 𝑥# 𝑥$

    … Backpack 1. Sense ベクトル⽣成 2. 重み計算 3. Sense ベクトルの重み付き和 𝒐! 𝒐" 𝒐# 𝒐$ … … … 𝒐# = Backpack 𝑥$ : 𝑥% (1 ≤ 𝑖 ≤ 𝑛, 𝑥# ∈ 𝒱, 𝒐# ∈ 𝑅&) 𝒱 は Vocabulary
  14. 17 1. 各単語をそれぞれ⽂脈に依存しない k(≧1) 個の Sense ベクトルに変換 Backpack: 単語から Sense

    ベクトルへ 𝑥! 𝑥" 𝑥# 𝑥$ … … 各単語を埋め込み, 𝒗# = 𝐸𝑥# 𝒗# ∈ 𝑅& d次元 … … … 単語埋め込み(𝐸) 𝒗𝒊
  15. 18 1. 各単語をそれぞれ⽂脈に依存しない k(≧1) 個の Sense ベクトルに変換 Backpack: 単語から Sense

    ベクトルへ 𝑥! 𝑥" 𝑥# 𝑥$ … … 各単語を埋め込み, 𝒗# = 𝐸𝑥# それを Feed-Forward で変換 𝑪# = FF(𝒗# ) 𝑪 = {𝑪$ , … , 𝑪# , … , 𝑪% } 𝒗# ∈ 𝑅$ 𝑪# ∈ 𝑅%×$ 𝑪 ∈ 𝑅'×%×$ … FF k d次元 d次元 … FF … FF … FF … … … … … … 単語埋め込み(𝐸) 𝒗𝒊 𝑪𝒊
  16. 19 1. 各単語をそれぞれ⽂脈に依存しない k(≧1) 個の Sense ベクトルに変換 Backpack: 単語から Sense

    ベクトルへ 𝑥! 𝑥" 𝑥# 𝑥$ … … 各単語を埋め込み, 𝒗# = 𝐸𝑥# それを Feed-Forward で変換 𝑪# = FF(𝒗# ) 𝑪 = {𝑪$ , … , 𝑪# , … , 𝑪% } 𝒗# ∈ 𝑅$ 𝑪# ∈ 𝑅%×$ 𝑪 ∈ 𝑅'×%×$ … FF k d次元 d次元 … FF … FF … FF … … … … … … 単語埋め込み(𝐸) 𝒗𝒊 𝑪𝒊 O 単語 x L 個のSense ベクトル x E 次元
  17. 20 2. Transformer により⽂脈に依存した重みを計算 Backpack: 単語から重みへ Transformer に⽂を⼊⼒ 𝒉!:# =

    transformer 𝐸𝑥!:# 𝒉!:# ∈ 𝑅#×% Transformer 𝑥! 𝑥" 𝑥# 𝑥$ … … 単語埋め込み(𝐸) 𝒉! 𝒉" 𝒉# 𝒉$ … …
  18. 21 2. Transformer により⽂脈に依存した重みを計算 Backpack: 単語から重みへ Transformer に⽂を⼊⼒ 𝒉!:# =

    transformer 𝐸𝑥!:# Head 数 k の Attention map を計算 𝛼ℓ = softmax 𝒉!:# 𝑊 % ℓ &𝑊 ' ℓ 𝒉!:# & 𝛼 = {𝛼! , … , 𝛼ℓ , … , 𝛼% } 𝒉!:# ∈ 𝑅#×% 1 ≤ ℓ ≤ 𝑘 𝑊 ℓ , 𝑄 ℓ ∈ 𝑅%× % ' 𝛼ℓ ∈ 𝑅#×# 𝛼 ∈ 𝑅'×#×# Transformer 𝑥! 𝑥" 𝑥# 𝑥$ … … 単語埋め込み(𝐸) 𝒉! 𝒉" 𝒉# 𝒉$ … … … … … … … … … … … … 𝛼ℓ
  19. 22 2. Transformer により⽂脈に依存した重みを計算 Backpack: 単語から重みへ Transformer に⽂を⼊⼒ 𝒉!:# =

    transformer 𝐸𝑥!:# Head 数 k の Attention map を計算 𝛼ℓ = softmax 𝒉!:# 𝑊 % ℓ &𝑊 ' ℓ 𝒉!:# & 𝛼 = {𝛼! , … , 𝛼ℓ , … , 𝛼% } 𝒉!:# ∈ 𝑅#×% 1 ≤ ℓ ≤ 𝑘 𝑊 ℓ , 𝑄 ℓ ∈ 𝑅%× % ' 𝛼ℓ ∈ 𝑅#×# 𝛼 ∈ 𝑅'×#×# Transformer 𝑥! 𝑥" 𝑥# 𝑥$ … … 単語埋め込み(𝐸) 𝒉! 𝒉" 𝒉# 𝒉$ … … … … … … … … … … … … 𝛼ℓ L 個の Head x O 単語 x O 単語
  20. 23 3. Sense ベクトルの重み付き和をとる • 1 から⽂脈⾮依存の Sense ベクトル 𝑪

    ∈ 𝑅#×%×) • 2 から⽂脈依存の重み 𝛼 ∈ 𝑅%×#×# これらから,Sense ベクトルの重み付き和を計算 𝒐* = 9 +,! # 9 ℓ,! % 𝛼ℓ*+ 𝑪+,ℓ Backpack: 重み付き和を計算
  21. 24 3. Sense ベクトルの重み付き和をとる • 1 から⽂脈⾮依存の Sense ベクトル 𝑪

    ∈ 𝑅#×%×) • 2 から⽂脈依存の重み 𝛼 ∈ 𝑅%×#×# これらから,Sense ベクトルの重み付き和を計算 𝒐* = 9 +,! # 9 ℓ,! % 𝛼ℓ*+ 𝑪+,ℓ Backpack: 重み付き和を計算 ⽂脈⾮依存の Sense ベクトルの線形和で ⽂脈を考慮した単語埋め込み表現を獲得
  22. 25 Backpack Language Models ͱ͸ • Backpack を利⽤した⾔語モデル • 重みを

    Decoder 型の Transformer で計算 Backpack Language Models Figure: Backpack Models (Hewitt+, ACL2023)
  23. 26 Backpack Language Models ͱ͸ • Backpack を利⽤した⾔語モデル • 重みを

    Decoder 型の Transformer で計算 Backpack Language Models Figure: Backpack Models (Hewitt+, ACL2023)
  24. 27 Backpack Language Models ͱ͸ • Backpack を利⽤した⾔語モデル • 重みを

    Decoder 型の Transformer で計算 Backpack Language Models Figure: Backpack Models (Hewitt+, ACL2023)
  25. 28 Backpack Language Models ͱ͸ • Backpack を利⽤した⾔語モデル • 重みを

    Decoder 型の Transformer で計算 Backpack Language Models Figure: Backpack Models (Hewitt+, ACL2023)
  26. 29 Backpack Language Models ͱ͸ • Backpack を利⽤した⾔語モデル • 重みを

    Decoder 型の Transformer で計算 Backpack Language Models Figure: Backpack Models (Hewitt+, ACL2023)
  27. 30 • モデル • Backpack-Micro(40M)/Mini(100M)/Small(170M) • Transformer-Micro(30M)/Mini(70M)/Small(124M) • 学習データ •

    OpenWebtext コーパス [Gokaslan+, 2019] • 評価 • Perplexity 等の基本的な評価指標を使⽤ 実験: Backpack Language Models
  28. 31 実験: Backpack Language Models ݁Ռ • どの評価を重視するかにもよるが,Transformer と同等程度の性能を発揮 •

    そもそもパラメータ数が同じじゃないのはフェアじゃない感 Table: Backpack Language Models (Hewitt+, ACL2023)
  29. 33 ղऍੑͷྫ • ”science” という単語を k = 16 で Sense

    ベクトル (𝑪'(#)$() ∈ 𝑅!*×,) に変換し,そ れを 𝐸-𝑪'(#)$() と投影することで単語の意味(確率分布)を⼊⼿可能 • Sense 7/8 には科学的⼿法(replicationやexperiments など) • Sense 3 は science の後ろに続きやすい単語 (science denial で科学不信) 良い点: 操作性・解釈性が向上 Table: Backpack Language Models (Hewitt+, ACL2023)
  30. 34 ૢ࡞ੑͷྫ • “When the nurse came into the room,”

    に Backpack LM を適⽤ • “nurse” という単語の影響で “She” が来る可能性が⾼い 良い点: 操作性・解釈性が向上 Screenshot: Backpack Demo [at Huggingface]
  31. 35 ૢ࡞ੑͷྫ • “nurse” の Sense ベクトルの意味を⾒てみると, Sense 10 に

    “She” という意味があった • この重みを⼈為的に 0 にしてもう⼀度次の単語を 予測すると... 良い点: 操作性・解釈性が向上 Screenshot: Backpack Demo [at Huggingface]
  32. 38 • 全ての Sense ベクトルが綺麗に⾔語化できるわけではない • Sense ベクトルが綺麗に⾔語化されるような学習は⾏なっていない • “nurse”

    の Sense ベクトル0~7の意味をみるとあまり⼀般的でない意味も多い 注意点1: 完全に解釈可能になったわけではない Screenshot: Backpack Demo [at Huggingface]
  33. 40 ͦ΋ͦ΋ • ⽂脈に依存しない Sense ベクトルの線形和を使⽤し,重みはかならず正となる • Attention map に対して

    Softmax を適⽤している ͳͷͰ • 否定的な表現が苦⼿な可能性 • 「Sense ベクトルの中にネガティブな意味も含まれていて,その重みが⼤きくなるはず」と論⽂では述 べているが,ポジティブな Sense ベクトルの⽅が多いはずであり,それらの重みが0になることはない • 複数の単語が組み合わさって初めて⽣まれる意味に弱い可能性 • これも Sense ベクトルの中にそういう意味を持つものがあり,その重みが⼤きくなるのかもしれないが, 出現頻度が低い組み合わせだと,k を⼤きくしないと対応できない感 注意点3: 表現⼒が下がる可能性
  34. 42 ख๏ • 各単語をそれぞれ⽂脈に依存しない複数の Sense ベクトルに変換 • Transformer により⽂脈に依存した重みを計算 •

    Sense ベクトルの重み付き和をとる ಛ௃ • Transformer と同等の性能 • ⽂脈に依存しない Sense ベクトルを組み込む ことで操作性・解釈性が向上 まとめ Figure: Backpack Language Models (Hewitt+, ACL2023)
  35. 44 senseベクトルのk番⽬の埋め込みと、transfomerのk番⽬のへッドはどうやって対応づけしているのだろう • 対応づけるために特別なことはしておらず,両⽅にロスが流れることで学習が進んでいきます.なので 「学習が進むにつれて対応が進む」という回答になります. パラメータ数が同じじゃないのは全然フェアじゃなさそうなんですが、なにかしらフェアじゃなくていい 理由付けがありますか…? • Backpack LM

    の重み計算に使われている Transformer がそれぞれ⽐較対象の Transformer と同じサイ ズなためこのような⽐較がされていたのだと思います.論⽂中でも注意書きとしてサイズが異なること は明⽰されていました. 最初のFF層は必要でしょうか?最初から埋め込みをk個持つのと違うのでしょうか? • FF層無しだと vocab x d x k でパラメータ数がつらいので,FF層はパラメータ数の節約が⽬的だと思い ます. Q&A
  36. 45 全部のパラメータを同時に学習するんですか?その場合、パラメータ数が増えてるのもそうなんですが、結構遅 くなりそう(=計算コストが許容できないくらいに上がりそう)ですが • そうです.実際計算コストも上昇しているはずです.論⽂中にはロスの収束により時間がかかったという記述 があります. 各単語がk個にFFでmappingされますが、各単語のi番⽬のsenseに共通点などはありますか? • あります.今回論⽂の全てを紹介できなかったのですが,各単語のi番⽬の sense

    ベクトルに共通点が⾒受け られることが述べられていました(元論⽂Table3参照).ただし,定量的な評価に⽋けているためどこまで信 じれるかは分かりません. トピックモデルとかもそうですけど、各senseが解釈可能な形でうまくまとまる保証はないと思うのですが、そ れはうまく出るまで頑張ってやり直すんですかね。 • P38に書きましたが,綺麗に解釈可能な形になるような学習を⾏っているわけではないので解釈可能な保証は ないです.Demo を触ってみたところ,ある Sense ベクトルの意味 Top-5 に共通点を⾒出せないようなこと も多々ありました. Q&A
  37. 46 Senseベクトルと単語の対応づけがわからない(33ページ) •この表は全て “science” という単語に関する話です.”science” の sense3,”science” の sense7… とい

    うことです. ⼊⼒はサブワードではなく、単語? •サブワードです.50,257-subword GPT-2 tokenizer を使⽤しています. outstanding感はどこなんでしょう/Sense と⾔ってるけどパラメータが増えただけに⾒えてしまう •性能⾯・コスト⾯で旨みはないですが,シンプルな⼿法でモデルの解釈・操作が⾏えるというのは⼤きな 貢献だと思います. Q&A