行列 | 数学
ベクトルの大きさ( L2 ノルム)
\[|\vec{x}| = \sqrt{x_1^2+x_2^2} \qquad \text{※ 2 次元のときはビタゴラスの定理}\]内積
ベクトル $\vec{x} = \begin{pmatrix}x_{1} & x_{2}\end{pmatrix}$ と ベクトル $\vec{y} = \begin{pmatrix}y_{1} & y_{2}\end{pmatrix}$ の内積は以下のとおり。
2 ベクトルの内積は線形空間でのベクトルの近さ(類似度)を計算する場合にも使われます。
ベクトルの内積は「要素による定義(ドット積)」と「コサイン類似度による定義」があります。
要素による定義(ドット積)
\[\langle{\vec{x}}, {\vec{y}}\rangle = x_{1}y_{1} + x_{2}y_{2}\]コサイン類似度による定義
\[\langle{\vec{x}}, {\vec{y}}\rangle = |\vec{x}||\vec{y}|cosθ \quad ※ |\vec{x}| \text{はベクトルの大きさ}\]定義より明らかなようにベクトルの向きが近い(類似している)ときに大きくなります。
コサイン類似度を使った行列積の解釈
行列の積はベクトルの内積を使って定義されます。 内積はベクトルの要素を使って定義する方法が一般的ですが cos 類似度を使った定義もあります。
LLM(大規模言語モデル)の文脈では単語(正確にはトークン)の Embedding Matrix における 2 ベクトルの近さを内積で計測するため cos 類似 を使った解釈も重要です。
\[\begin{aligned} \begin{pmatrix} x_1 & x_2 \end{pmatrix} \cdot \begin{pmatrix} w^1_{11} & w^1_{12} & w^1_{13} \\ w^1_{21} & w^1_{22} & w^1_{23} \end{pmatrix} \\ = \begin{pmatrix} x_1 w^1_{11} + x_2 w^1_{21} & x_1 w^1_{12} + x_2 w^1_{22} & x_1 w^1_{13} + x_2 w^1_{23} \end{pmatrix} \\ = \begin{pmatrix} |\vec{x}||\vec{w}^1|\cos\theta_1 & |\vec{x}||\vec{w}^2|\cos\theta_2 & |\vec{x}||\vec{w}^3|\cos\theta_3 \end{pmatrix} \end{aligned}\]ここで $\vec{w}^1$、$\vec{w}^2$、$\vec{w}^3$ はそれぞれ $W$ の1列目・2列目・3列目のベクトルを表します。
2 つのベクトルの内積
定義より 2 ベクトル間の内積は 各ベクトルの絶対値が大きく、同じ方向を向いているほど大きくなります。
行列の積
行列の積( $\cdot$ 積)は行と列の内積を使って計算します。
[!NOTE] Python では行列の積を @ 演算子でも計算できます。
要素を使った計算
\[\begin{pmatrix} x_{1} & x_{2} \end{pmatrix} \cdot \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix} = \\ \begin{pmatrix} x_1 \times a_{11} + x_2 \times a_{21} & x_1 \times a_{12} + x_2 \times a_{22} \end{pmatrix}\]cos 類似度を使った計算
\[\begin{pmatrix} x_{1} & x_{2} \end{pmatrix} \cdot \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix} = \\ \begin{pmatrix} |\vec{x}||\vec{a^1}|cosθ & |\vec{x}||\vec{a^2}|cosθ \end{pmatrix} \qquad \vec{a^1} は A の 1 列目のベクトル。\vec{a^2} は A の 2 列目のベクトル\]転置
```math
A =
\begin{bmatrix}
a11 & a12 & a13
a21 & a22 & a23
\end{bmatrix}
\hspace{20px}
A^T =
\begin{bmatrix}
a11 & a21
a12 & a22
a13 & a23
\end{bmatrix}