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

Zipf 白色化:タイプとトークンの区別がもたらす良質な埋め込み空間と損失関数

Sho Yokoi
November 19, 2024

Zipf 白色化:タイプとトークンの区別がもたらす良質な埋め込み空間と損失関数

2024-11-20, @ NLP コロキウム

📄 Yokoi, Bao, Kurita, Shimodaira, “Zipfian Whitening,” NeurIPS 2024. [arXiv]

Sho Yokoi

November 19, 2024
Tweet

More Decks by Sho Yokoi

Other Decks in Research

Transcript

  1. 横井 祥 (東北⼤ / 理研), 2024-11-20, @ NLPコロキウム w/ 包

    含さん (京⼤), 栗⽥ 宙⼈さん (東北⼤), 下平 英寿さん (京⼤) Zipf ⽩⾊化 タイプとトークンの区別がもたらす良質な埋め込み空間と損失関数 NeurIPS 2024, https://arxiv.org/abs/2411.00680
  2. ⾃⼰紹介 2 横井 祥 (よこい しょう) − ⾃然⾔語処理の研究をしています − http://www.cl.ecei.tohoku.ac.jp/~yokoi/index_ja.html

    🕒 略歴 − B … 京⼤ 計算機(指導教員︓⿅島久嗣先⽣) − M/D … 東北⼤ 情報(指導教員︓乾健太郎先⽣) − 現職 … 東北⼤ 情報,理研 AIP 🎓 専⾨ … “⾔葉の意味の形” − ⼈の⾔葉の持つ各種の “意味” が, 埋め込み空間の幾何的な性質としてなぜ現れるのか, とくにそれがコーパスのいかなる統計情報に駆動されているのか, について研究しています. − できるだけシンプルな計算⽅法を⾒つけ出し,別トピックや別分野を 専⾨にするかたにも使いやすい形に持ち込むのが趣味です.
  3. すごく簡単な “提案” 期待値をとる際は単語頻度を考慮したい 8 ⼀般的な「全部⾜して個数で割る」 ( 𝔼 𝒘 = $

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

    !∈𝒱 1 𝒱 𝒘 “提案”︓ 経験頻度 の考慮 ( 𝔼 𝒘 = $ !∈𝒱 ̂ 𝑝 𝑤 𝒘 例︓平均ベクトルの計算 𝔼 𝒘 = $ ! 𝑝 𝑤 𝒘 これらは全然違う 単語頻度 分布は 実際には極めて ⾮⼀様 a.k.a. Zipf 則 あえて「平均」の定義まで戻れば…… 単語頻度 を ⼀様 だと思っている ⁉
  5. 予備実験︓効果絶⼤ 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
  6. 予備実験︓効果絶⼤ 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. なぜ左の世界での 処理が 標準的だったのか︖
  7. タイプとトークンの区別 13 • type-token distinction − タイプ ︓種類としての単語 − トークン︓具体的な1回1回の単語の使⽤

    • 例 − タイプ としての単語は 6 種 – 語彙項⽬としての “natural” の意味は︖と問いたいときはこちら − トークン としての単語は 7 つ – コーパスの具体的な箇所を指差しながら 「この “natural” の⽤法は︖」と問いたいときはこちら “perform natural language processing in natural way” ⾃然なやり⽅で⾃然⾔語処理に取り組む
  8. タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 16 中⼼化でおこなわれる平均ベクトル ★ の計算︓ 単語埋め込み層の表現 • を全部⾜して、個数で割る タイプとして単語を⾒ている

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

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

    𝒗(the) 𝒗(agglutinative) 𝒗(isotropy) … 𝒗(colloquium) 𝒱 トークンとして単語を⾒る 𝒗(the) 𝒗(girl) 𝒗(has) 𝒗(the) 𝒟 … 𝑝(the) 𝑝(agglutinatve) 𝑝(isotropy) 𝑝(colloquium) 単語埋め込み⾏列はデータ⾏列ではない 単語埋め込み層からは頻度の情報が隠されている トークンとして単語を⾒るなら頻度の情報を復元する必要がある
  11. タイプとトークンの区別を踏まえて…… 埋め込み空間の補正 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’, …… ⾔語それ⾃体を ⾃然に表していそう なのはこちら
  12. 予備実験︓効果絶⼤ 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. なぜこんなにも 差が⽣まれるのか
  13. 経験頻度に基づくモデルは 低頻度語を重み付けしてくれる 27 中⼼化 1. 平均ベクトルの計算 - 𝔼 𝒘 ←

    $ ! ̂ 𝑝 𝑤 𝒘 2. 各単語ベクトルをシフト & 𝒘 ← 𝒘 − * 𝔼 𝒘 ⾼頻度語を重み付け ⾼頻度語からなる成分を引く =低頻度語が強調される
  14. 経験頻度モデルの低頻度語への重み付け 2. 損失 29 対応する誤差や損失を⾒ると…… 情報量を持った単語の表現に積極的に損失の情報を流してくれる 単語 𝑤 の情報量 誤分類率を最⼩化しようとしている

    =⾼頻度語だけ当てまくれば良い 😄 😔 「⾼頻度語も低頻度語も ちゃんと予測してほしい」 “Isotropy of word embedding space and word frequencies”
  15. 実はこれまでも⾏われていた頻度重み付け 2. 加法構成 → ⽩⾊化/対照学習 の⽂ベクトル 33 よくある⽂ベクトルの構成 (WhiteningBERT, SimCSE,

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

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

    ……) 1. BERT 等からトークン埋め込みを取り出して⾜し合せ 2. ⽩⾊化 or 対照学習 Kurita, Kobayashi, Yokoi, Inui, Findings of EMNLP’23 低頻度語の強調