らんだむな記憶

blogというものを体験してみようか!的なー

word2vec (CBOW)

詳説word2vecみたいな何とも言えない構造。
コーパスの単語数の長さ($L$)の数ベクトルをコンテキストのウィンドウサイズの2倍分($N$)だけ入力してコーパスの個数に等しい出力を出し、softmaxで確率に変換する。

MINISTの時を思い出すと、入力層は784次元の数ベクトルだった。今回は $N$ 次元のベクトルのベクトルである。ここで記号として $\mathcal{V} = \R^L$ を設定する。すると、MNISTの時の入力は $\R^{784}$ であったのに対して word2vec (CBOW) では $\mathcal{V}^N$ である。見た目が少し近くなってきた。

MNISTの場合、ここから隠れ層に向けて行列を作用させる。つまり、例えば $\mathcal{L}(\R^{784},\R^{128})$ の線型変換が施される。
word2vec (CBOW) の場合、隠れ層の次元を 10 とでもする時 $\mathcal{V}$ の単語に対して、 $W \in \mathcal{L}(\mathcal{V},\R^{10})$ が作用する。隠れ層への変換は、入力を $\mathbb{x} = (x_1, \cdots, x_N) \in \mathcal{V}^N$ とすると、
\begin{align}
\frac{1}{N}(W\ W\ \cdots\ W) \left( \begin{array}{cccc} x_1\\ x_2 \\ \vdots \\ x_N \end{array} \right)
\end{align}

となっているように書ける。この行列の行ベクトルが誘導している線型変換は $\mathcal{L}(\mathcal{V}^N,\R^{10})$ の元であると考えられる。このような形で見慣れた形に持ってくることができる。

$\R$ の元からなる $N$ 次元空間の代わりに $\mathcal{V}$ というベクトル空間の元からなる $N$ 次元空間を、そして数ベクトルに作用する行列の代わりに抽象ベクトルに作用する行列を考え、枠組みを抽象化することで大きな目線では同じ構造を得ることができた。
こう考えると、word2vec (CBOW) は実質2層のむしろシンプルなネットワークであろう。