Slide 1

Slide 1 text

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)

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

7 Transformer の操作性・解釈性の低さ

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

13 Backpack モデルとは?

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 • Backpack は⽂脈を考慮した単語埋め込み表現の獲得⽅法 Backpack: 全体像 𝑥! 𝑥" 𝑥# 𝑥$ … Backpack 1. Sense ベクトル⽣成 2. 重み計算 3. Sense ベクトルの重み付き和 𝒐! 𝒐" 𝒐# 𝒐$ … … … 𝒐# = Backpack 𝑥$ : 𝑥% (1 ≤ 𝑖 ≤ 𝑛, 𝑥# ∈ 𝒱, 𝒐# ∈ 𝑅&) 𝒱 は Vocabulary

Slide 16

Slide 16 text

16 1. 各単語をそれぞれ⽂脈に依存しない k(≧1) 個の Sense ベクトルに変換 Backpack: 単語から Sense ベクトルへ 𝑥! 𝑥" 𝑥# 𝑥$ … …

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

24 3. Sense ベクトルの重み付き和をとる • 1 から⽂脈⾮依存の Sense ベクトル 𝑪 ∈ 𝑅#×%×) • 2 から⽂脈依存の重み 𝛼 ∈ 𝑅%×#×# これらから,Sense ベクトルの重み付き和を計算 𝒐* = 9 +,! # 9 ℓ,! % 𝛼ℓ*+ 𝑪+,ℓ Backpack: 重み付き和を計算 ⽂脈⾮依存の Sense ベクトルの線形和で ⽂脈を考慮した単語埋め込み表現を獲得

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

30 • モデル • Backpack-Micro(40M)/Mini(100M)/Small(170M) • Transformer-Micro(30M)/Mini(70M)/Small(124M) • 学習データ • OpenWebtext コーパス [Gokaslan+, 2019] • 評価 • Perplexity 等の基本的な評価指標を使⽤ 実験: Backpack Language Models

Slide 31

Slide 31 text

31 実験: Backpack Language Models ݁Ռ • どの評価を重視するかにもよるが,Transformer と同等程度の性能を発揮 • そもそもパラメータ数が同じじゃないのはフェアじゃない感 Table: Backpack Language Models (Hewitt+, ACL2023)

Slide 32

Slide 32 text

32 Backpack LM の良い点

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

34 ૢ࡞ੑͷྫ • “When the nurse came into the room,” に Backpack LM を適⽤ • “nurse” という単語の影響で “She” が来る可能性が⾼い 良い点: 操作性・解釈性が向上 Screenshot: Backpack Demo [at Huggingface]

Slide 35

Slide 35 text

35 ૢ࡞ੑͷྫ • “nurse” の Sense ベクトルの意味を⾒てみると, Sense 10 に “She” という意味があった • この重みを⼈為的に 0 にしてもう⼀度次の単語を 予測すると... 良い点: 操作性・解釈性が向上 Screenshot: Backpack Demo [at Huggingface]

Slide 36

Slide 36 text

36 ૢ࡞ੑͷྫ • “She” の確率が低下 (0.277→0.228)し,“He” の確率が増加 (0.127→0.167) 良い点: 操作性・解釈性が向上 Screenshot: Backpack Demo [at Huggingface]

Slide 37

Slide 37 text

37 Backpack LM の注意点

Slide 38

Slide 38 text

38 • 全ての Sense ベクトルが綺麗に⾔語化できるわけではない • Sense ベクトルが綺麗に⾔語化されるような学習は⾏なっていない • “nurse” の Sense ベクトル0~7の意味をみるとあまり⼀般的でない意味も多い 注意点1: 完全に解釈可能になったわけではない Screenshot: Backpack Demo [at Huggingface]

Slide 39

Slide 39 text

39 • Sense ベクトルを⽣成するネットワーク分のパラメータが増加している • 例:Transformer-small(124M)→Backpack-small(170M) • Trainable なパラメータが増えたことにより,ロスの収束に時間がかかる • 性能が同じだと仮定すると,解釈性と計算コストにトレードオフの関係 注意点2: パラメータ数が増加している

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

41 まとめ

Slide 42

Slide 42 text

42 ख๏ • 各単語をそれぞれ⽂脈に依存しない複数の Sense ベクトルに変換 • Transformer により⽂脈に依存した重みを計算 • Sense ベクトルの重み付き和をとる ಛ௃ • Transformer と同等の性能 • ⽂脈に依存しない Sense ベクトルを組み込む ことで操作性・解釈性が向上 まとめ Figure: Backpack Language Models (Hewitt+, ACL2023)

Slide 43

Slide 43 text

43 Q & A

Slide 44

Slide 44 text

44 senseベクトルのk番⽬の埋め込みと、transfomerのk番⽬のへッドはどうやって対応づけしているのだろう • 対応づけるために特別なことはしておらず,両⽅にロスが流れることで学習が進んでいきます.なので 「学習が進むにつれて対応が進む」という回答になります. パラメータ数が同じじゃないのは全然フェアじゃなさそうなんですが、なにかしらフェアじゃなくていい 理由付けがありますか…? • Backpack LM の重み計算に使われている Transformer がそれぞれ⽐較対象の Transformer と同じサイ ズなためこのような⽐較がされていたのだと思います.論⽂中でも注意書きとしてサイズが異なること は明⽰されていました. 最初のFF層は必要でしょうか?最初から埋め込みをk個持つのと違うのでしょうか? • FF層無しだと vocab x d x k でパラメータ数がつらいので,FF層はパラメータ数の節約が⽬的だと思い ます. Q&A

Slide 45

Slide 45 text

45 全部のパラメータを同時に学習するんですか?その場合、パラメータ数が増えてるのもそうなんですが、結構遅 くなりそう(=計算コストが許容できないくらいに上がりそう)ですが • そうです.実際計算コストも上昇しているはずです.論⽂中にはロスの収束により時間がかかったという記述 があります. 各単語がk個にFFでmappingされますが、各単語のi番⽬のsenseに共通点などはありますか? • あります.今回論⽂の全てを紹介できなかったのですが,各単語のi番⽬の sense ベクトルに共通点が⾒受け られることが述べられていました(元論⽂Table3参照).ただし,定量的な評価に⽋けているためどこまで信 じれるかは分かりません. トピックモデルとかもそうですけど、各senseが解釈可能な形でうまくまとまる保証はないと思うのですが、そ れはうまく出るまで頑張ってやり直すんですかね。 • P38に書きましたが,綺麗に解釈可能な形になるような学習を⾏っているわけではないので解釈可能な保証は ないです.Demo を触ってみたところ,ある Sense ベクトルの意味 Top-5 に共通点を⾒出せないようなこと も多々ありました. Q&A

Slide 46

Slide 46 text

46 Senseベクトルと単語の対応づけがわからない(33ページ) •この表は全て “science” という単語に関する話です.”science” の sense3,”science” の sense7… とい うことです. ⼊⼒はサブワードではなく、単語? •サブワードです.50,257-subword GPT-2 tokenizer を使⽤しています. outstanding感はどこなんでしょう/Sense と⾔ってるけどパラメータが増えただけに⾒えてしまう •性能⾯・コスト⾯で旨みはないですが,シンプルな⼿法でモデルの解釈・操作が⾏えるというのは⼤きな 貢献だと思います. Q&A