本記事の概要
この記事では「IT Text 自然言語処理の基礎」(オーム社)の 第3章「単語ベクトル表現」 に付いている演習問題を詳しく解説します。
書籍にも略解はありますが、解説が省略されていたりします。
略解でわからなくなったときは、この記事を参考にしてもらえればと思います!
問1
PMIの定義式
$$\text{PMI}=\log\frac{P(x_i,c_j)}{P(x_i)P(c_j)}$$
および式$(3.7)\sim(3.9)$を用いて,式$(3.6)$の最右辺を導け.\begin{align*} \text{PMI} &= \log\frac{P(x_i,c_j)}{P(x_i)P(c_j)} = \log\frac{Z\cdot\#(x_i,c_j)}{\#(x_i)\#(c_j)}\tag{3.6}\\ \#(x_i) &= \sum_{c_j\in\mathbb{V}_c} \#(x_i,c_j)\tag{3.7}\\ \#(c_j) &= \sum_{x_i\in\mathbb{V}} \#(x_i,c_j)\tag{3.8}\\ Z &= \sum_{x_i\in\mathbb{V}} \sum_{c_j\in\mathbb{V}_c} \#(x_i,c_j)\tag{3.9} \end{align*}
$x_i$は単語、$c_j$は文脈単語で、$P(x_i,c_j)$は単語$x_i$と文脈単語$c_j$が共起する確率、$P(x_i)$は単語$x_i$が出現する確率、$P(c_j)$は文脈単語$c_j$が出現する確率を表します。
また、$\#(x_i,c_j)$は単語$x_i$と文脈単語$c_j$の共起回数、$\#(x_i),\#(c_j)$はそれぞれ単語$x_i$の出現回数、文脈単語$c_j$の出現回数を表します。
では、$Z$は何を意味するでしょうか。式$(3.9)$を変形してみましょう。
\begin{align*}
Z &= \sum_{x_i\in\mathbb{V}} \sum_{c_j\in\mathbb{V}_c} \#(x_i,c_j)\\
&= \sum_{x_i\in\mathbb{V}} \#(x_i)\quad(\because (3.7))\\
\end{align*}
単語$x_i$の出現回数を全語彙$\mathbb{V}$にわたって和を取っているので、$Z$は全単語数を表すことがます。
よって、$P(x_i,c_j),P(x_i),P(c_j)$は次のように表せます。
P(x_i,c_j)=\frac{\#(x_i,c_j)}{Z},\quad P(x_i)=\frac{\#(x_i)}{Z},\quad P(c_j)=\frac{\#(c_j)}{Z}
こいつらをPMIの式にぶち込むと…
\begin{align*}
\text{PMI} &= \log\frac{P(x_i,c_j)}{P(x_i)P(c_j)}\\
&= \log\frac{\frac{\#(x_i,c_j)}{Z}}{\frac{\#(x_i)}{Z}\cdot\frac{\#(c_j)}{Z}}\\
&= \log\frac{Z\cdot\#(x_i,c_j)}{\#(x_i)\#(c_j)}
\end{align*}
となり、示せました。
問2
$\boldsymbol{w}_1=(0.1,0.4,0.2)^\top$と$\boldsymbol{w}_2=(0.8,0.3,0.6)^\top$のコサイン類似度を求めよ.
コサイン類似度の定義は
\text{cos_sim}(\boldsymbol{w}_{x_i}, \boldsymbol{w}_{x_j}) = \frac{\boldsymbol{w}_{x_i}\cdot\boldsymbol{w}_{x_j}}{||\boldsymbol{w}_{x_i}||\ ||\boldsymbol{w}_{x_j}||}\tag{3.34}
です。いま、
\begin{align*}
\boldsymbol{w}_1 \cdot \boldsymbol{w}_2 = 0.1\cdot0.8+0.4\cdot0.3+0.2\cdot0.6=0.32\\
||\boldsymbol{w}_1|| = \sqrt{0.1^2+0.4^2+0.2^2}=\sqrt{0.21}\\
||\boldsymbol{w}_2|| = \sqrt{0.8^2+0.3^2+0.6^2}=\sqrt{1.09}\\
\end{align*}
なので、求めるコサイン類似度は
\text{cos_sim}(\boldsymbol{w}_1, \boldsymbol{w}_2) = \frac{\boldsymbol{w}_1\cdot\boldsymbol{w}_2}{||\boldsymbol{w}_1||\ ||\boldsymbol{w}_2||} = \frac{0.32}{\sqrt{0.21}\sqrt{1.09}} = 0.66884\cdots
です。
問3
引数となるベクトルが正規化されているとき,ユークリッド距離とコサイン距離の間に式$(3.37)$が成立することを示せ.
\text{euc_dist}(\boldsymbol{w}_{x_i},\boldsymbol{w}_{x_j})^2 = 2\text{cos_dist}(\boldsymbol{w}_{x_i},\boldsymbol{w}_{x_j})
左辺を変形して、右辺を導きます。
「引数となるベクトルが正規化されているとき」とあるので、
$$||\boldsymbol{w}_{x_i}|| = ||\boldsymbol{w}_{x_j}|| = 1$$
に注意して変形します。
\begin{align*}
\text{euc_dist}(\boldsymbol{w}_{x_i},\boldsymbol{w}_{x_j})^2
&= ||\boldsymbol{w}_{x_i} - \boldsymbol{w}_{x_j}||^2\\
&= ||\boldsymbol{w}_{x_i}||^2 - 2\boldsymbol{w}_{x_i}\cdot\boldsymbol{w}_{x_j} + ||\boldsymbol{w}_{x_j}||^2\\
&= 1 - 2\boldsymbol{w}_{x_i}\cdot\boldsymbol{w}_{x_j} + 1 \quad(\because ||\boldsymbol{w}_{x_i}||=||\boldsymbol{w}_{x_j}||=1)\\
&= 2\cdot(1 - \boldsymbol{w}_{x_i}\cdot\boldsymbol{w}_{x_j})\\
&= 2\left(1 - \frac{\boldsymbol{w}_{x_i}\cdot\boldsymbol{w}_{x_j}}{||\boldsymbol{w}_{x_i}||\cdot||\boldsymbol{w}_{x_j}||}\right)\quad(\because ||\boldsymbol{w}_{x_i}||=||\boldsymbol{w}_{x_j}||=1)\\
&= 2\text{cos_dist}(\boldsymbol{w}_{x_i},\boldsymbol{w}_{x_j})
\end{align*}