Slide 1

Slide 1 text

横井 祥 (東北⼤ / 理研), 2024-11-20, @ NLPコロキウム w/ 包 含さん (京⼤), 栗⽥ 宙⼈さん (東北⼤), 下平 英寿さん (京⼤) Zipf ⽩⾊化 タイプとトークンの区別がもたらす良質な埋め込み空間と損失関数 NeurIPS 2024, https://arxiv.org/abs/2411.00680

Slide 2

Slide 2 text

⾃⼰紹介 2 横井 祥 (よこい しょう) − ⾃然⾔語処理の研究をしています − http://www.cl.ecei.tohoku.ac.jp/~yokoi/index_ja.html 🕒 略歴 − B … 京⼤ 計算機(指導教員︓⿅島久嗣先⽣) − M/D … 東北⼤ 情報(指導教員︓乾健太郎先⽣) − 現職 … 東北⼤ 情報,理研 AIP 🎓 専⾨ … “⾔葉の意味の形” − ⼈の⾔葉の持つ各種の “意味” が, 埋め込み空間の幾何的な性質としてなぜ現れるのか, とくにそれがコーパスのいかなる統計情報に駆動されているのか, について研究しています. − できるだけシンプルな計算⽅法を⾒つけ出し,別トピックや別分野を 専⾨にするかたにも使いやすい形に持ち込むのが趣味です.

Slide 3

Slide 3 text

単語埋め込み空間の歪みを 経験頻度を使いながら補正する 3

Slide 4

Slide 4 text

背景︓単語埋め込み空間の歪みと補正 4 ⽩⾊化 中⼼化 学習済みモデルの単語埋め込み層の歪み 静的、MLM、causal、…… 各種タスクでの 性能が上がる

Slide 5

Slide 5 text

背景︓単語埋め込み空間の歪みと補正 5 ⽩⾊化 中⼼化 学習済みモデルの単語埋め込み層の歪み 静的、MLM、causal、…… 各種タスクでの 性能が上がる 🤔

Slide 6

Slide 6 text

背景︓単語埋め込み空間の歪みと補正 6 例︓中⼼化でおこなわれる平均ベクトル ★ の計算 単語埋め込み層の表現 ● を全部⾜して、個数で割る

Slide 7

Slide 7 text

すごく簡単な “提案” 期待値をとる際は単語頻度を考慮したい 7 例︓平均ベクトルの計算 𝔼 𝒘 = $ ! 𝑝 𝑤 𝒘 あえて「平均」の定義まで戻れば……

Slide 8

Slide 8 text

すごく簡単な “提案” 期待値をとる際は単語頻度を考慮したい 8 ⼀般的な「全部⾜して個数で割る」 ( 𝔼 𝒘 = $ !∈𝒱 1 𝒱 𝒘 例︓平均ベクトルの計算 𝔼 𝒘 = $ ! 𝑝 𝑤 𝒘 単語頻度 を ⼀様 だと思っている ⁉ あえて「平均」の定義まで戻れば……

Slide 9

Slide 9 text

すごく簡単な “提案” 期待値をとる際は単語頻度を考慮したい 9 ⼀般的な「全部⾜して個数で割る」 ( 𝔼 𝒘 = $ !∈𝒱 1 𝒱 𝒘 “提案”︓ 経験頻度 の考慮 ( 𝔼 𝒘 = $ !∈𝒱 ̂ 𝑝 𝑤 𝒘 例︓平均ベクトルの計算 𝔼 𝒘 = $ ! 𝑝 𝑤 𝒘 これらは全然違う 単語頻度 分布は 実際には極めて ⾮⼀様 a.k.a. Zipf 則 あえて「平均」の定義まで戻れば…… 単語頻度 を ⼀様 だと思っている ⁉

Slide 10

Slide 10 text

予備実験︓効果絶⼤ 10 学習済み埋め込み 46.17 ⼀様 w/ 経験頻度 + 中⼼化 45.17 52.25 + ⽩⾊化 52.21 66.92 ≪ ≪ 分散共分散⾏列の計算の際に 和(期待値)をとっている → 経験頻度で重み付け • モデル︓GloVe • タスク︓STS-B • 評価 ︓和 → cos → ⼈⼿評価との順位相関 😀 広い設定で同様の結果 • モデル︓GloVe, word2vec, fastText; BERT, RoBERTa, DeBERTa • タスク︓STSʼ12–16, SICK-R, JSTS

Slide 11

Slide 11 text

予備実験︓効果絶⼤ 11 学習済み埋め込み 46.17 ⼀様 w/ 経験頻度 + 中⼼化 45.17 52.25 + ⽩⾊化 52.21 66.92 ≪ ≪ 分散共分散⾏列の計算の際に 和(期待値)をとっている → 経験頻度で重み付け • モデル︓GloVe • タスク︓STS-B • 評価 ︓和 → cos → ⼈⼿評価との順位相関 😀 広い設定で同様の結果 • モデル︓GloVe, word2vec, fastText; BERT, RoBERTa, DeBERTa • タスク︓STSʼ12–16, SICK-R, JSTS Q. なぜ左の世界での 処理が 標準的だったのか︖

Slide 12

Slide 12 text

タイプとトークンの区別 12

Slide 13

Slide 13 text

タイプとトークンの区別 13 • type-token distinction − タイプ ︓種類としての単語 − トークン︓具体的な1回1回の単語の使⽤ • 例 − タイプ としての単語は 6 種 – 語彙項⽬としての “natural” の意味は︖と問いたいときはこちら − トークン としての単語は 7 つ – コーパスの具体的な箇所を指差しながら 「この “natural” の⽤法は︖」と問いたいときはこちら “perform natural language processing in natural way” ⾃然なやり⽅で⾃然⾔語処理に取り組む

Slide 14

Slide 14 text

タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 14 中⼼化でおこなわれる平均ベクトル ★ の計算︓ 単語埋め込み層の表現 ● を全部⾜して、個数で割る

Slide 15

Slide 15 text

タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 15 中⼼化でおこなわれる平均ベクトル ★ の計算︓ 単語埋め込み層の表現 ● を全部⾜して、個数で割る タイプとして単語を⾒ている 𝒗(the) 𝒗(agglutinative) 𝒗(isotropy) … 𝒗(colloquium) 𝒱

Slide 16

Slide 16 text

タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 16 中⼼化でおこなわれる平均ベクトル ★ の計算︓ 単語埋め込み層の表現 ● を全部⾜して、個数で割る タイプとして単語を⾒ている 𝒗(the) 𝒗(agglutinative) 𝒗(isotropy) … 𝒗(colloquium) 𝒱 単語埋め込み層を データ⾏列だと思うなら、 各⾏ベクトルを均等に 扱うという処理も⾃然 “the” も超低頻度語も 同様の扱い 🤔

Slide 17

Slide 17 text

タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 17 中⼼化でおこなわれる平均ベクトル ★ の計算︓ 単語埋め込み層の表現 ● を全部⾜して、個数で割る タイプとして単語を⾒ている 𝒗(the) 𝒗(agglutinative) 𝒗(isotropy) … 𝒗(colloquium) 𝒱 トークンとして単語を⾒る 𝒗(the) 𝒗(girl) 𝒗(has) 𝒗(the) 𝒟 … 単語埋め込み層を データ⾏列だと思うなら、 各⾏ベクトルを均等に 扱うという処理も⾃然 “the” も超低頻度語も 同様の扱い 🤔 コーパス全体 (=実際の⾔語使⽤) を捉えた 「単語埋め込み⾏列」 ⾮⼀様な頻度の 情報が ⼊っている

Slide 18

Slide 18 text

タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 18 中⼼化でおこなわれる平均ベクトル ★ の計算︓ 単語埋め込み層の表現 ● を全部⾜して、個数で割る タイプとして単語を⾒ている 𝒗(the) 𝒗(agglutinative) 𝒗(isotropy) … 𝒗(colloquium) 𝒱 トークンとして単語を⾒る 𝒗(the) 𝒗(girl) 𝒗(has) 𝒗(the) 𝒟 … 𝑝(the) 𝑝(agglutinatve) 𝑝(isotropy) 𝑝(colloquium) 単語埋め込み⾏列はデータ⾏列ではない 単語埋め込み層からは頻度の情報が隠されている トークンとして単語を⾒るなら頻度の情報を復元する必要がある

Slide 19

Slide 19 text

タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 19 タイプとして単語を⾒る トークンとして単語を⾒る 期待値の気持ちに戻って実際にサンプリングしてみる 𝔼!∼%(!) 𝒘 = $ ! 𝑝 𝑤 𝒘 𝑤 ~ ⼀様分布 𝑤 ~ 経験頻度 ‘scintillation’, ‘fanon’, ‘rubato’, ‘upstanding’, ‘collard’, ‘creeks’, ‘skookum’, ‘unbelievers’, ‘monocyte’, ‘nishikawa’, ‘crusher’, ‘gerwen’, ‘abrah’, ‘silverchair’, ‘hangman’, ‘unitary’, ‘klausen’, ‘arousal’, ‘heat’, ‘bridgnorth’, ‘mildred’, …… ‘nine’, ‘ranked’, ‘zero’, ‘the’, ‘garcia’, ‘rank’, ‘station’, ‘the’, ‘for’, ‘four’, ‘williams’, ‘drunken’, ‘a’, ‘one’, ‘eight’, ‘of’, ‘were’, ‘zero’, ‘debate’, ‘orchestra’, …… ⾔語それ⾃体を ⾃然に表していそう なのはこちら

Slide 20

Slide 20 text

予備実験︓効果絶⼤ 20 学習済み埋め込み 46.17 ⼀様 w/ 経験頻度 + 中⼼化 45.17 52.25 + ⽩⾊化 52.21 66.92 ≪ ≪ 分散共分散⾏列の計算の際に 和(期待値)をとっている → 経験頻度で重み付け • モデル︓GloVe • タスク︓STS-B • 評価 ︓和 → cos → ⼈⼿評価との順位相関 😀 広い設定で同様の結果 • モデル︓GloVe, word2vec, fastText; BERT, RoBERTa, DeBERTa • タスク︓STSʼ12–16, SICK-R, JSTS Q. なぜこんなにも 差が⽣まれるのか

Slide 21

Slide 21 text

トークンの世界では 逆説的に低頻度語が強調される 21 細かい導出は論⽂に任せて 直感的な説明を中⼼に話します

Slide 22

Slide 22 text

ふたつのアプローチは 背後の⽣成モデルで特徴づけることができる 22 ⽣成モデル︓𝑐 ↦ 𝑤,予測に使う表現︓𝒄, 𝒘 𝑐︓⽂脈(周辺語、⽳あき⽂、前⽂脈、……) ⾔語の表現学習はだいたいこの形式

Slide 23

Slide 23 text

ふたつのアプローチは 背後の⽣成モデルで特徴づけることができる 23 ⽣成モデル︓𝑐 ↦ 𝑤,予測に使う表現︓𝒄, 𝒘 ⼀様頻度に対応する⽣成モデル 経験頻度に対応する⽣成モデル 𝑢︓uniform 𝑧︓Zipfian 𝑐︓⽂脈(周辺語、⽳あき⽂、前⽂脈、……) ⾔語の表現学習はだいたいこの形式

Slide 24

Slide 24 text

ふたつのアプローチは 背後の⽣成モデルで特徴づけることができる 24 ⽣成モデル︓𝑐 ↦ 𝑤, 予測に使う表現︓𝒄, 𝒘 ⼀様頻度に対応する⽣成モデル 経験頻度に対応する⽣成モデル 学習済みモデルの単語埋め込み層 通常の⽩⾊化 経験頻度重み付き⽩⾊化 ⇝ ⇝

Slide 25

Slide 25 text

経験頻度に基づくモデルは 低頻度語を重み付けしてくれる 25 ⼀様頻度に対応する⽣成モデル 経験頻度に対応する⽣成モデル 学習済みモデルの単語埋め込み層 通常の⽩⾊化 経験頻度重み付き⽩⾊化 ⇝ ⇝ ⾼頻度語の強調 低頻度語の強調 😀 ⇝ ⇝ ⇝ ⇝ TF-IDF のように. ⾔語処理に適した 重み付けが起きる

Slide 26

Slide 26 text

経験頻度に基づくモデルは 低頻度語を重み付けしてくれる 26 ⼀様頻度に対応する⽣成モデル 経験頻度に対応する⽣成モデル 学習済みモデルの単語埋め込み層 通常の⽩⾊化 経験頻度重み付き⽩⾊化 ⇝ ⇝ ⾼頻度語の強調 低頻度語の強調 😀 ⇝ ⇝ ⇝ ⇝ 低頻度語を強調︖ ⾼頻度語を強調︖

Slide 27

Slide 27 text

経験頻度に基づくモデルは 低頻度語を重み付けしてくれる 27 中⼼化 1. 平均ベクトルの計算 - 𝔼 𝒘 ← $ ! ̂ 𝑝 𝑤 𝒘 2. 各単語ベクトルをシフト & 𝒘 ← 𝒘 − * 𝔼 𝒘 ⾼頻度語を重み付け ⾼頻度語からなる成分を引く =低頻度語が強調される

Slide 28

Slide 28 text

経験頻度モデルの低頻度語への重み付け 1. ノルム [cf. Oyama,Y,Shimodaira EMNLPʼ23] 28 情報幾何の気持ちでベクトルの⻑さを⾒ると…… 経験頻度モデルでは情報を持った低頻度語が強調される − log 𝑝(𝑤) 低頻度 𝒘 ⻑い − log 𝑝(𝑤) 𝒘 😄 😔 “Isotropy of word embedding space and word frequencies”

Slide 29

Slide 29 text

経験頻度モデルの低頻度語への重み付け 2. 損失 29 対応する誤差や損失を⾒ると…… 情報量を持った単語の表現に積極的に損失の情報を流してくれる 単語 𝑤 の情報量 誤分類率を最⼩化しようとしている =⾼頻度語だけ当てまくれば良い 😄 😔 「⾼頻度語も低頻度語も ちゃんと予測してほしい」 “Isotropy of word embedding space and word frequencies”

Slide 30

Slide 30 text

これまでも実はおこなわれていた 経験頻度重み付け 30 細かい導出は論⽂に任せて 直感的な説明を中⼼に話します

Slide 31

Slide 31 text

実はこれまでも⾏われていた頻度重み付け 1. word2vec 31 Skip-gram negative sampling 負例のサンプリング分布が 経験頻度に基づく この損失も 経験頻度に基づく⽣成モデル に対応

Slide 32

Slide 32 text

実はこれまでも⾏われていた頻度重み付け 2. 加法構成 → ⽩⾊化/対照学習 の⽂ベクトル 32 よくある⽂ベクトルの構成 (WhiteningBERT, SimCSE, ……) 1. BERT 等からトークン埋め込みを取り出して⾜し合せ 2. ⽩⾊化 or 対照学習

Slide 33

Slide 33 text

実はこれまでも⾏われていた頻度重み付け 2. 加法構成 → ⽩⾊化/対照学習 の⽂ベクトル 33 よくある⽂ベクトルの構成 (WhiteningBERT, SimCSE, ……) 1. BERT 等からトークン埋め込みを取り出して⾜し合せ 2. ⽩⾊化 or 対照学習 トークンの世界 に⾃動的に⼊る 𝒗(the) 𝒗(girl) 𝒗(has) 𝒗(the)

Slide 34

Slide 34 text

実はこれまでも⾏われていた頻度重み付け 2. 加法構成 → ⽩⾊化/対照学習 の⽂ベクトル 34 よくある⽂ベクトルの構成 (WhiteningBERT, SimCSE, ……) 1. BERT 等からトークン埋め込みを取り出して⾜し合せ 2. ⽩⾊化 or 対照学習 トークンの世界 に⾃動的に⼊る 𝒗(the) 𝒗(girl) 𝒗(has) 𝒗(the) 経験頻度に対応する⽣成モデル 学習済みモデルの単語埋め込み層 経験頻度重み付き⽩⾊化 ⇝ 負例のサンプリング分布が 経験頻度に基づく

Slide 35

Slide 35 text

実はこれまでも⾏われていた頻度重み付け 2. 加法構成 → ⽩⾊化/対照学習 の⽂ベクトル 35 よくある⽂ベクトルの構成 (WhiteningBERT, SimCSE, ……) 1. BERT 等からトークン埋め込みを取り出して⾜し合せ 2. ⽩⾊化 or 対照学習 Kurita, Kobayashi, Yokoi, Inui, Findings of EMNLP’23 低頻度語の強調

Slide 36

Slide 36 text

実はこれまでも⾏われていた頻度重み付け 3. Headless ⾔語モデル [Godey+ ICLRʼ24] 36 ⼀様頻度に対応する⽣成モデル 経験頻度に対応する⽣成モデル ≈

Slide 37

Slide 37 text

まとめ 37

Slide 38

Slide 38 text

Zipf ⽩⾊化 ̶ まとめ 38 “提案”︓期待値を計算する際は単語頻度を考慮しましょう → 暗黙的に仮定している⽣成モデルが変わる → 低頻度語が強調される “Isotropy of word embedding space and word frequencies”