コサイン類似度

コサイン類似度の計算の仕方

タグ コサイン類似度 cosine similarity


概要

  • ベクトルの距離を計算する方法
  • 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]]))

参考