$30 off During Our Annual Pro Sale. View Details »

論文紹介: 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

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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. 13
    Backpack モデルとは?

    View Slide

  14. 14
    • Backpack は⽂脈を考慮した単語埋め込み表現の獲得⽅法
    Backpack: 全体像
    𝑥! 𝑥" 𝑥# 𝑥$

    Backpack
    𝒐! 𝒐"
    𝒐#
    𝒐$



    𝒐#
    = Backpack 𝑥$
    : 𝑥%
    (1 ≤ 𝑖 ≤ 𝑛, 𝑥#
    ∈ 𝒱, 𝒐#
    ∈ 𝑅&)
    𝒱 は
    Vocabulary

    View Slide

  15. 15
    • Backpack は⽂脈を考慮した単語埋め込み表現の獲得⽅法
    Backpack: 全体像
    𝑥! 𝑥" 𝑥# 𝑥$

    Backpack
    1. Sense ベクトル⽣成
    2. 重み計算
    3. Sense ベクトルの重み付き和
    𝒐! 𝒐"
    𝒐#
    𝒐$



    𝒐#
    = Backpack 𝑥$
    : 𝑥%
    (1 ≤ 𝑖 ≤ 𝑛, 𝑥#
    ∈ 𝒱, 𝒐#
    ∈ 𝑅&)
    𝒱 は
    Vocabulary

    View Slide

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


    View Slide

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


    各単語を埋め込み,
    𝒗#
    = 𝐸𝑥#
    𝒗#
    ∈ 𝑅&
    d次元
    … …

    単語埋め込み(𝐸)
    𝒗𝒊

    View Slide

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


    各単語を埋め込み,
    𝒗#
    = 𝐸𝑥#
    それを Feed-Forward で変換
    𝑪#
    = FF(𝒗#
    )
    𝑪 = {𝑪$
    , … , 𝑪#
    , … , 𝑪%
    }
    𝒗# ∈ 𝑅$
    𝑪# ∈ 𝑅%×$
    𝑪 ∈ 𝑅'×%×$

    FF
    k
    d次元
    d次元

    FF

    FF

    FF
    … …
    … …


    単語埋め込み(𝐸)
    𝒗𝒊
    𝑪𝒊

    View Slide

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


    各単語を埋め込み,
    𝒗#
    = 𝐸𝑥#
    それを Feed-Forward で変換
    𝑪#
    = FF(𝒗#
    )
    𝑪 = {𝑪$
    , … , 𝑪#
    , … , 𝑪%
    }
    𝒗# ∈ 𝑅$
    𝑪# ∈ 𝑅%×$
    𝑪 ∈ 𝑅'×%×$

    FF
    k
    d次元
    d次元

    FF

    FF

    FF
    … …
    … …


    単語埋め込み(𝐸)
    𝒗𝒊
    𝑪𝒊
    O 単語 x L 個のSense ベクトル x E 次元

    View Slide

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


    単語埋め込み(𝐸)
    𝒉! 𝒉" 𝒉# 𝒉$


    View Slide

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


    単語埋め込み(𝐸)
    𝒉! 𝒉" 𝒉# 𝒉$


    … …
    … …
    … …
    … …
    … …
    𝛼ℓ

    View Slide

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


    単語埋め込み(𝐸)
    𝒉! 𝒉" 𝒉# 𝒉$


    … …
    … …
    … …
    … …
    … …
    𝛼ℓ
    L 個の Head x O 単語 x O 単語

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. 32
    Backpack LM の良い点

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. 37
    Backpack LM の注意点

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  41. 41
    まとめ

    View Slide

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

    View Slide

  43. 43
    Q & A

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide