コサイン類似度
Cosine Similarity
2つのベクトルの「向きの近さ」を-1〜1で測る指標。意味ベース検索やRAGで類似文書を探すのに使われる。
コサイン類似度とは
コサイン類似度(Cosine Similarity)は、2つのベクトルがどれくらい似た「向き」を向いているかを-1〜1の値で測る指標です。意味ベース検索やRAGで、文書同士の近さを判定するのに広く使われます。
計算の考え方
2つのベクトルのなす角度のコサイン値として定義されます。
- 1に近い: 向きがほぼ同じ → 意味が近い
- 0付近: 直交 → 関連なし
- -1に近い: 逆向き → 意味が反対
ベクトルの「長さ」ではなく**「向き」だけ**を見るため、文書の長短に影響されにくいのが利点です。
なぜ埋め込みと相性がよいか
埋め込み(Embedding)で作られた文章ベクトルは、似た意味の文章は似た方向を向く性質を持っています。そのため、向きの近さを測るコサイン類似度が自然な選択になります。
- 「源泉徴収の計算方法」と「源泉税の算出手順」 → 類似度が高い
- 「源泉徴収の計算方法」と「天気予報」 → 類似度が低い
使われる場面
- セマンティック検索: 質問ベクトルと文書ベクトルの類似度で並び替え
- RAG: 質問に近い文書をベクトルDBから抽出
- 推薦: 似た内容の資料をレコメンド
- 重複検出: 似た文章のクラスタリング
他との関係
ベクトル検索の結果はまずコサイン類似度で並び、必要に応じてリランキングで精度を上げる、という流れが定番です。LLMに「関連文書だけを渡す」RAGの根幹を支える計算です。
