【こさいんるいじど】

コサイン類似度 とは?

💡 2つのベクトルの「向きの近さ」で似ている度合いを測る「AIの方向感覚」
📌 このページのポイント
コサイン類似度(Cosine Similarity) ベクトル A ベクトル B θ 計算式 cos(θ) = A·B / (|A|×|B|) 値の範囲: -1 〜 1 類似度スケール 低い 中程度 高い -1(逆向き) 0 1(同じ向き) 活用例: 文書の類似度、レコメンド
コサイン類似度のイメージ
ひよこ ひよこ

コサイン類似度ってどういう意味?

ペンギン先生 ペンギン先生

2つの矢印(ベクトル)が同じ方向を向いていれば「似ている」、直角なら「関係なし」、逆方向なら「正反対」と判定するんだ。例えば「犬」と「猫」のベクトルは近い方向を向いていて、「犬」と「経済学」のベクトルは全然違う方向を向いている、というイメージだよ。

ひよこ ひよこ

おもしろい!ユークリッド距離とどう違うの?

ペンギン先生 ペンギン先生

ユークリッド距離は「2点間の直線距離」を測るから、ベクトルの長さ(大きさ)に影響されるんだ。コサイン類似度は方向だけを見るから、長さの違いを無視できる。例えば短い文書と長い文書でも、話題が同じなら高い類似度が出るのがコサイン類似度の利点だよ。

ひよこ ひよこ

どういう場面で使われるの?

ペンギン先生 ペンギン先生

一番有名なのは文書や単語の類似度計算だね。検索エンジンクエリと文書の関連度を測ったり、推薦システムでユーザーの好みとアイテムの類似度を計算したりする。最近ではRAGでも、質問に関連する文書を見つけるためにコサイン類似度が活躍しているよ。

ひよこ ひよこ

コサイン類似度と他の類似度(ユークリッド距離とか)って何が違うの?

ペンギン先生 ペンギン先生

ユークリッド距離は「点と点の直線距離」で、ベクトルの大きさ(長さ)に影響される。コサイン類似度は「ベクトルの向き」だけを見るから、文書の長さに関係なく内容の類似性を測れるんだ。たとえば「猫」を100回書いた文書と1回書いた文書は、ユークリッド距離では遠いけどコサイン類似度では同じ方向を向いているよ。実はOpenAIのEmbedding API正規化されたベクトルを返すから、コサイン類似度と内積が一致するんだ。この場合は内積の方が計算が速いから、大規模検索では内積が使われることが多いよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「コサイン類似度」って出てきたら「2つのベクトルの向きの近さで意味的な類似度を測る指標だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cosine Similarity」 = コサインによる類似度
💬 三角関数の「Cosine(コサイン)」を使って2つのベクトルの角度から類似度を計算する。角度が小さいほどコサイン値が大きく(1に近く)なるよ
← 用語集にもどる