Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

内積

kk次元のベクトルa=(a1,a2,…,ak)⊤, b=(b1,b2,…,bk)⊤\boldsymbol{a} = (a_1, a_2, \dots, a_k)^\top, \ \boldsymbol{b} = (b_1, b_2, \dots, b_k)^\topがあるとき、

∑i=1kaibi\sum^k_{i=1} a_i b_i

という演算を内積(inner product)といい、a⊤b\boldsymbol{a}^\top \boldsymbol{b}やa⋅b\boldsymbol{a} \cdot \boldsymbol{b}や(a,b)(\boldsymbol{a}, \boldsymbol{b})や⟨a,b⟩\langle\boldsymbol{a}, \boldsymbol{b} \rangleと表す

6

ノルム

ベクトルa\boldsymbol{a}に対してa⊤b\sqrt{\boldsymbol{a}^\top \boldsymbol{b}}をベクトルa\boldsymbol{a}の 長さ または ノルム(norm) といい、∥a∥\|\boldsymbol{a}\|で表す。すなわち

∥a∥=a⊤b,∥a∥2=a⊤b\|\boldsymbol{a}\| = \sqrt{\boldsymbol{a}^\top \boldsymbol{b}}, \quad \|\boldsymbol{a}\|^2= \boldsymbol{a}^\top \boldsymbol{b}

である。

内積と類似度

コサイン類似度

\renewcommand{\b} when command \b does not yet exist; use \newcommand

\renewcommand{\b}[1]{\boldsymbol{#1}}
\boldsymbol{a}^T \boldsymbol{b} = ||\boldsymbol{a}|| \ ||\boldsymbol{b}|| \cos(\boldsymbol{a}, \boldsymbol{b}) \\
\implies \cos(\boldsymbol{a}, \boldsymbol{b}) = \frac{ \boldsymbol{a}^T \boldsymbol{b} }{ ||\boldsymbol{a}|| \ ||\boldsymbol{b}|| }

コサイン類似度はベクトルを矢印で表現したときに同じ方向を向いているほど1に近く、真逆の方向ほど-1に近くなる

1.0000000000000002
Source
<Figure size 900x250 with 3 Axes>

直交

コーシー・シュワルツの不等式

コサイン類似度が [−1,1][-1, 1] の範囲に正規化される理由

平方根をとれば

∣a⊤b∣≤∥a∥⋅∥b∥| \boldsymbol{a}^\top \boldsymbol{b} | \leq \| \boldsymbol{a} \| \cdot \| \boldsymbol{b} \|

となり、それを変形すると

−∥a∥⋅∥b∥≤a⊤b≤∥a∥⋅∥b∥- \| \boldsymbol{a} \| \cdot \| \boldsymbol{b} \| \leq \boldsymbol{a}^\top \boldsymbol{b} \leq \| \boldsymbol{a} \| \cdot \| \boldsymbol{b} \|

なので両辺を∥a∥⋅∥b∥\| \boldsymbol{a} \| \cdot \| \boldsymbol{b} \|で割れば

−1≤a⊤b∥a∥⋅∥b∥≤1- 1 \leq \frac{ \boldsymbol{a}^\top \boldsymbol{b} }{ \| \boldsymbol{a} \| \cdot \| \boldsymbol{b} \| } \leq 1