Thu Mar 14 2019

単語分散表現どうしの関係について

arxiv:1902.09859 の感想.

これはそれなりに強い3つの仮定を置いてるけど, ともかくそれらを認めると, 単語 \(i\) にはある \(d\) 次元実ベクトル \(w_i \in \mathbb R^d\) が対応していて, そして (単語に依らない) ある一つの \(d \times d\) 行列 \(Q\) があって,

単語 \(j\) の周辺 (適当に決めたウィンドウサイズの中) に, 単語 \(i\) が出現する確率は, 単語 \(i\) が出現する確率 \(p(i)\) を以て, \[p(i|j) = p(i) \cdot \exp \left[ w_i^T Q^T w_j \right]\] と表される.

ところで機能的によく似た語, 例えば walk と run の周辺にはそれなりに近い語が出てくるハズ... ここでこの2単語にほぼほぼ関係なくて独立な語 \(i\) を考える. 単語 \(j\) の周辺, 単語 \(k\) の周辺に単語 \(i\) が出現する確率を考えると, \(p(i|j)\)\(p(i|k)\)\(p(i)\) であってほしい. \[p(i|j) = p(i|k) = p(i)\] 値はどうでもよくて左2つの条件付き確率が等しい状況であれば何でも良い. このことから,

が成り立つ. これの差を取ることで

が言える. \(c_i = Q w_i\) と置くと (この \(c\) は context vector のこと), \((w_j - w_k)\)\(c_i\) に直交する方向のベクトルと言える. 一般に \(d\) 次元ベクトル \(c_i\) に直交するベクトルの自由度は \(d-1\). \(w_j\)\(w_k\) の間の関係は自由度 \(d-1\) だけある (あるいはそれ以下).

\(c_\bot \in M_\bot ~ (M_\bot \simeq \mathbb R^{d-1}, M_\bot \subset \mathbb R^d)\) によって, \[w_k = w_j + c_\bot\] みたいな.

このような単語 \(i\) がいくつも取れるのなら, その分だけ自由度を減らせる可能性はある.

ところで,

という関係を置いたとき (そういうような行列 \(A_{i\cdot}\) はとりあえず何かはある), \(A_{ij}\)\(A_{ik}\) との間に何か関係が言える気がする... 特に \(j\)\(k\) がとても似ていて今述べたような関係で縛られている時, \(A_{ij}=A_{ik}\) になるみたいな. 完全に妄想だけど.

(いやさすがに \(=\) にはならんやろ、アホか.)

\(w_j^TA_{ij}^TQ^Tw_j\) という値を転置しても等しいので, \[w_j^T ( A_{ij}^TQ^T - Q A_{ij}) w_j=0\] これは \(i,j\) の関係によらない.

さっきみたいに, \[w_i^TQ^Tw_j = w_i^TQ^Tw_k\] という仮定を置くと, \[w_k^T (A_{ik}^TQ^T - QA_{ij}) w_j = 0\]

うーんって感じ.