コサイン類似度(Cosine Similarity)って何ですか

U3
2025/11/25
2026/1/15

コサイン類似度(Cosine Similarity)とは、一言で言うと「2つのデータが、どれくらい似ているか(類似しているか)」を測るための物差しのことです。

AI、特に自然言語処理(テキストを扱うAI)の分野では、言葉や文章の意味の近さを計算するために頻繁に使われます。

専門的な数式は一旦置いておき、イメージしやすいようにポイントを絞って解説します。


1. 直感的なイメージ:矢印の向き


AIは、言葉や文章を「数字の列(ベクトル)」として扱います。これを空間上の「矢印」だと想像してください。

  1. 似ているデータ: 2本の矢印が同じ方向を向いている(角度が小さい)。
  2. 似ていないデータ: 2本の矢印が違う方向を向いている(角度が大きい、例えば直角や反対方向)。

コサイン類似度は、この「矢印の角度」を見て、似ているかどうかを判断します。

  1. 1に近いほど: 「激似」(方向が同じ)
  2. 0に近いほど: 「無関係」(方向が直角)
  3. -1に近いほど: 「正反対」(方向が逆)


2. 具体的な例


例えば、以下の3つの文があったとします。

  1. 文A: 「今日のランチは美味しいカレーだった。」
  2. 文B: 「昼食に食べたスパイスの効いた料理は最高だった。」
  3. 文C: 「明日の株価の変動を予測する。」


人間が見れば、文A文Bは使っている単語は違いますが、「食事の話」をしていて意味が近いことがわかります。一方で文Cは全く関係ありません。

AIがコサイン類似度を計算すると、以下のようになります(数値はイメージです)。


  1. 文A と 文B: 0.85 (とても似ている)
  2. 文A と 文C: 0.02 (ほとんど関係ない)


3. AIに関する文脈でのコサイン類似度


AI関連の話題でこの言葉が出る場合、主に以下の用途で使われている可能性が高いです。

意味検索(セマンティック検索):

  1. 単なるキーワードの一致ではなく、「意味が近い資料」を探す機能。「PCの調子が悪い」と検索して、「パソコンのトラブルシューティング」の資料をヒットさせる際などに使われます。

レコメンデーション(おすすめ機能):

  1. 「この商品を買った人は、傾向(ベクトルの向き)が似ているこの商品も買っています」という提案に使われます。

RAG(検索拡張生成):

  1. ChatGPTのようなAIに社内データを参照させる際、質問文と「最も意味が近い(コサイン類似度が高い)社内ドキュメント」を見つけ出し、それをAIに読ませるために使います。


4. 「距離」ではなく「角度」を見る理由


なぜ定規で測るような「距離」ではなく「角度(コサイン)」を使うのでしょうか?

それは、文章の長さや頻度に左右されにくいからです。

例えば、「猫が好き」という短い文と、「猫についての長編小説」があったとします。データの長さ(矢印の長さ)は全然違いますが、テーマ(矢印の向き)は同じ「猫」です。

コサイン類似度は長さ(文の長短)を無視して、向き(テーマの一致度)だけを純粋に評価できるため、AIと相性が良いのです。


まとめ


コサイン類似度、という言葉が出たら、「データの中身や意味が、どれくらい似ているかを判定する計算方法のことだな」と理解しておけば間違いありません。


これに関連して、AIが言葉を数値化する「ベクトル化(埋め込み表現/Embeddings)」という技術についての解説はこちら


コメント

コメントはまだありません。