【IT Text自然言語処理の基礎】第3章演習問題を解いてみた

# 本記事の概要
この記事では「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)$の最右辺を導け．
>```math
>\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)$を変形してみましょう。

```math
\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)$は次のように表せます。

```math
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の式にぶち込むと…

```math
\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$のコサイン類似度を求めよ．

コサイン類似度の定義は

```math
\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}
```

です。いま、

```math
\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*}
```

なので、求めるコサイン類似度は

```math
\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)$が成立することを示せ．
> ```math
> \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$$
に注意して変形します。

```math
\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*}
```