コサイン類似度の計算の仕方
概要
- ベクトルの距離を計算する方法
- numpyを使うと高速に大量のベクトルでも計算することができる
- numpyで計算する場合はメモリの使用量に注意が必要
定義
\[K(X, Y) = \frac{<X, Y>}{||X||*||Y||}\]numpyでの計算例
from numpy.linalg import norm
query = V[1] # Vという検索対象のベクトルがあるとき
score = (query@V.T) / (norm(query) * norm(V.T, axis=0))
scipyでの計算例
from sklearn.metrics.pairwise import cosine_similarity
score = cosine_similarity(V, np.array([V[1]]))