Cosine Similarity
コサイン類似度は 2 つのベクトル間の角度のコサインを測り、ベクトルの長さを無視する。テキストベクトルの類似度計算に広く使われる。
目的
大きさではなく方向を比較するため、長い文書と短い文書を公平に比較できる。
メカニズム
sim(A,B) = (A·B) / (|A|×|B|) = Σ(A_i×B_i) / (sqrt(ΣA_i²)×sqrt(ΣB_i²))。出力は -1 から 1 の範囲(非負のテキストベクトルでは 0 から 1)。1 は同一方向、0 は直交(無関係)を意味する。
ユースケース
- 文書のベクトル類似検索
- レコメンドのアイテム類似度
- 単語ベクトルのセマンティック類似度
- クラスタリングの距離指標
例
- 入力
[1,0,1] vs [1,1,1]Output0.816Angle of about 35°
よくあるエラー
- Unnormalized vectors cause computation overflow
- Apply L2 normalization in advance or use a numerically stable implementation