Share
Embed
【論文紹介】Unified Interpretation of Softmax Cross-Entropy and Negative Sampling: With Case Study for Knowledge Graph Embedding
研究室の日本語輪読会で発表したスライドです。
内容に問題や不備がある場合は、お手数ですが hellorusk1998 [at] gmail.com までご連絡お願いいたします。
Kaito Sugimoto
May 30, 2022
Transcript
23 slides
-
Unified Interpretation of Softmax Cross-Entropy and Unified Interpretation of Softmax
Cross-Entropy and Negative Sampling: With Case Study for Knowledge Negative Sampling: With Case Study for Knowledge Graph Embedding Graph Embedding Kamigaito and Hayashi, ACL 2021 Kaito Sugimoto Kaito Sugimoto Aizawa Lab. M2 2022/05/30 1 -
知識グラフ埋め込み(Knowledge Graph Embedding; KGE )で用いら れる2 種類の損失関数である Softmax Cross-entropy (SCE
SCE) Loss と Negative Sampling (NS NS) Loss について、その関係を理論的に考察 NS において「負例を賢く選ぶ手法」が与える効果は、SCE にラベル平 滑化 (smoothing) のような正則化を導入する効果と理論的に等価であ るなど、異なる手法間の関係を証明 さらに、SCE は NS に比べてモデルを訓練データに fit させる力が強い ことを明らかにした 実データでの実験により、これらの理論的洞察を裏付ける 概要 3 -
全部で 個の単語ベクトルを学習したいとき、 が 100 万程度の オーダーだと Softmax Cross-entropy (SCE) では計算しきれなくなっ
てしまう 例えば、ネットワークが予測すべき単語が "dog" の場合、SCE では、 出力層の logits から、"dog" の予測確率を と いうように softmax 関数で計算 が損失関数となる 分母の の計算が非常に大変 背景 : SCE と NS ∣V ∣ ∣V ∣ s , s , ..., s 1 2 ∣V ∣ exp(s ) ∑ i=1 ∣V ∣ i exp(s ) dog − log exp(s ) ∑ i=1 ∣V ∣ i exp(s ) dog 1 exp(s ) ∑ i=1 ∣V ∣ i 1: クロスエントロピーは の形 − ( 期待される確率) log( 計算された確率) ∑ 5 -
Negative Sampling (NS) は SCE の近似 近似 先ほどの例の場合... 正解の "dog"
ではない負例をサンプルする(例えば "cat", "you" ) 出力層の logits から、"dog" の予測確率を と いうように(本来であれば二値分類で使われる)sigmoid 関数で計算 が 損失関数となる 背景 : SCE と NS s , s , ..., s 1 2 ∣V ∣ 1+exp(−s ) dog 1 − log − 1+exp(−s ) dog 1 log(1 − ) − 1+exp(−s ) cat 1 log(1 − ) 1+exp(−s ) you 1 6 -
言語モデルに関して言えば、最近の Transformer ベースのモデルでは 語彙が数万程度(それ以上は [UNK] 扱い)しかないので、訓練の際に NS のような近似手法を使うことはあまり見ない 一方で、知識グラフを埋め込む Knowledge
Graph Embedding (KGE) の分野では、グラフのノードである Entity の数が膨大であるため NS も使われることが今も多い したがって、KGE の訓練において SCE と NS の双方の実験結果を統一 的に解釈できるような視点があると嬉しい 背景 : SCE と NS 2 2: ただ、ELECTRA は理論的には NS を使っているらしい (Clark et al., Pre-Training Transformers as Energy- Based Cloze Models (EMNLP 2020)) 7 -
KG は、2 つの entity とその間の関係 からなる の 集合として表される。 KGE の学習では、クエリである
あるいは から、 予測対象である ? の部分を解かせることによって訓練する。 このクエリを , 予測対象を と表記する。 記法 e , e i j r k (e , r , e ) i k j (e , r , ?) i k (?, r , e ) k j x y 8 -
パラメータ のモデルについて、クエリ が来た時に が正解 entity であると予測する確率 は以下のように表される。 訓練データ集合を とし、その分布 を
と表記する。 モデルが モデルが を使って訓練された時に、最終的にモデルの予測分布 を使って訓練された時に、最終的にモデルの予測分布 がどのような形の分布に落ち着くか がどのような形の分布に落ち着くかが重要になる。 記法 θ x y(∈ Y ) p (y∣x) θ D = {(x , y ), ..., (x , y )} 1 1 ∣D∣ ∣D∣ p (x, y) d D D p p ( (y y∣ ∣x x) ) θ θ 9 -
を微分可能な関数としたとき、Bregman Divergence Bregman Divergence は以下の ように定義される。 Bregman Divergence は、様々な距離・ダイバージェンスの一般形に なっている、という面白い性質がある
例えば のとき、ユークリッド距離の二乗になる 例えば のとき、KL ダイバージェンスになる 今回の研究でも、これが統一解釈の手がかりになる Bregman Divergence による SCE と NS の統一解釈 Ψ(z) Ψ(z) = ∣∣z∣∣2 Ψ(p) = p log p ∑ i i i 10 -
訓練データにおける分布 , 間の Bregman Divergence の期待値は B (f, g)
= Ψ(z) d (f, g) ⋅ x,y ∑ Ψ(z) p (x, y) d であり、さらに を固定した場合、 を最小化することは、 を最小化することになる。実はこの (3) に 実はこの (3) に , , , , をそれぞれうまく当て をそれぞれうまく当て はめると、 SCE と NS それぞれの損失関数と一致する! はめると、 SCE と NS それぞれの損失関数と一致する! Bregman Divergence による SCE と NS の統一解釈 f g f B (f, g) Ψ(z) f f g g Ψ Ψ 11 -
(計算の詳細は省くが、)以下のように対応がまとめられる。 Bregman Divergence による SCE と NS の統一解釈 表中の Objective
Distribution とは、Bregman Divergence が0 のときに、モデルの予測確率分布である がとる分布を表す。 p (y∣x) θ 12 -
「負例を一様に取った場合の NS 」と SCE は、モデルの予測分布 を同じ分布に収束させる 「負例を頻度に応じて取った場合のNS 」 と「backward correction
(BC) という正則化手法をつけた SCE 」は、モデルの予測分布 を同じ分布に収束させる Self-adversarial Negative Sampling (SANS) と「ラベル平滑化とい う正則化手法をつけた SCE 」は、モデルの予測分布 を同じ分 布に収束させる Bregman Divergence による SCE と NS の統一解釈 p (y∣x) θ 3 p (y∣x) θ 4 p (y∣x) θ 3: Word2Vec の学習の際に採用された手法 4: RotatE などの最近の KGE 手法で採用されている手法。モデルの訓練に応じて負例の選択が変わるというもの 13 -
ここまで NS と SCE の共通点について述べてきたが、相違点について も考察することができる。 NS と SCE はともに
Bregman Divergence で記述されるが、式の中の が異なる 簡単に言うと、 は、訓練データ分布とモデルの予測分布の距離を定める役 割がある それぞれの損失関数についてみた時、SCE の方が、確率値にずれがあった時に距 離が大きくなる → 課される損失が大きくなる さらに、SCE は凸関数だが NS は凸関数ではない これらのことから、SCE は NS よりも訓練データに fit しやすい(悪く 言えば過学習のおそれがある) Bregman Divergence による SCE と NS の統一解釈 Ψ(z) Ψ(z) 14 -
以下の KGE モデルを動かす TuckER, RESCAL, ComplEx, DistMult, TransE, RotatE これらを異なる損失関数で訓練し、パフォーマンスを比較する
実験データセットは FB15k-237 と WN18RR という知識グラフ 実験 15 -
TuckER や RESCAL のような KGE モデルでは、NS で訓練した結果は SCE で訓練した結果よりも悪い 結果
: NS と SCE の比較 17 -
TransE や RotatE のような KGE モデルでは、NS で訓練した結果と SCE で訓練した結果はそこまで差がない 結果
: NS と SCE の比較 18 -
KGE 手法による差は何を意味するか? そもそも KGE 手法とは、ノードの Entity と Relation の組 が来た時
に、それが向かう先の Entity が である確率を以下のように推 定するものであった。 この式において をどう計算するか、が各 KGE 手法の違いに なっている 結果 : NS と SCE の比較 x y(∈ Y ) f (x, y) θ 19 -
TuckER や RESCAL のような KGE モデルでは、 の値に特に制 約を設けていない NS が
SCE よりも劣ったのは、訓練データに対して under-fitting してしま ったことによるものだと考察(SCE の方がデータに fit しやすい) TransE や RotatE のような KGE モデルでは、 は非負値をと らないという制約がある NS と SCE のパフォーマンスがあまり変わらないのは、そのような制約によ りいずれも fitting が抑制されているからだと考察 以上より、NS が有用なのは、TransE や RotatE のようなスコア関数に 下限が設けられている手法を訓練する場合だと結論づけている 結果 : NS と SCE の比較 f (x, y) θ f (x, y) θ 20 -
Word2Vec の学習の際には、「負例を頻度に応じて取った場合のNS 」 が採用されている 例えば "dog" が予測すべき単語(正例)のとき、訓練データのコーパス中 の頻度が低い単語("spontaenous" など)よりも頻度が高い単語("you" な
ど)を負例にするということ 今回の KGE においても、「負例を頻度に応じて取った場合のNS 」や、 それと理論的に等価な「backward correction (BC) という正則化手法 をつけた SCE 」が有効かどうかを調査 考察 : KGE における NS w/ Freq や SCE w/ BC の導入 21 -
しかしながら、いずれの手法も KGE 訓練においてはスコアが下がって しまった これらの手法は訓練データ分布を大きく変えるため、訓練データにあまり fit しすぎないで欲しい場合(例: 訓練データとテストデータの分布が大きく 異なる場合)に有効だとされる しかしながら、単語埋め込みの場合と比べて
KGE では訓練データ分布とテ ストデータ分布の差があまり大きくないため、これらの手法が効果を発揮で きなかったと考察している 考察 : KGE における NS w/ Freq や SCE w/ BC の導入 22 -
異なる損失関数の間の共通点が理論的に導かれるのは面白い 特に、負例を賢く選ぶことが正則化に近い役割を果たすというのは、なるほ どという感じがあった 知識グラフの場合、今回の研究で登場していない負例の選び方として Structure-aware Negative Sampling という考え方もあると思う。こ れも理論的には何か正則化のような働きがあるのか気になる。 まとめと感想
5 5: Ahrabian et al., Structure Aware Negative Sampling in Knowledge Graphs (EMNLP 2020) ネットワークで言えば, 1-hop 先が正例のとき, 2-hop, 3-hop あたりの近い位置にあるノードを負例とすること 23