コサイン類似度(Cosine Similarity)って何ですか
コサイン類似度(Cosine Similarity)とは、一言で言うと「2つのデータが、どれくらい似ているか(類似しているか)」を測るための物差しのことです。
AI、特に自然言語処理(テキストを扱うAI)の分野では、言葉や文章の意味の近さを計算するために頻繁に使われます。
専門的な数式は一旦置いておき、イメージしやすいようにポイントを絞って解説します。
1. 直感的なイメージ:矢印の向き
AIは、言葉や文章を「数字の列(ベクトル)」として扱います。これを空間上の「矢印」だと想像してください。
- 似ているデータ: 2本の矢印が同じ方向を向いている(角度が小さい)。
- 似ていないデータ: 2本の矢印が違う方向を向いている(角度が大きい、例えば直角や反対方向)。
コサイン類似度は、この「矢印の角度」を見て、似ているかどうかを判断します。
- 1に近いほど: 「激似」(方向が同じ)
- 0に近いほど: 「無関係」(方向が直角)
- -1に近いほど: 「正反対」(方向が逆)
2. 具体的な例
例えば、以下の3つの文があったとします。
- 文A: 「今日のランチは美味しいカレーだった。」
- 文B: 「昼食に食べたスパイスの効いた料理は最高だった。」
- 文C: 「明日の株価の変動を予測する。」
人間が見れば、文Aと文Bは使っている単語は違いますが、「食事の話」をしていて意味が近いことがわかります。一方で文Cは全く関係ありません。
AIがコサイン類似度を計算すると、以下のようになります(数値はイメージです)。
- 文A と 文B: 0.85 (とても似ている)
- 文A と 文C: 0.02 (ほとんど関係ない)
3. AIに関する文脈でのコサイン類似度
AI関連の話題でこの言葉が出る場合、主に以下の用途で使われている可能性が高いです。
意味検索(セマンティック検索):
- 単なるキーワードの一致ではなく、「意味が近い資料」を探す機能。「PCの調子が悪い」と検索して、「パソコンのトラブルシューティング」の資料をヒットさせる際などに使われます。
レコメンデーション(おすすめ機能):
- 「この商品を買った人は、傾向(ベクトルの向き)が似ているこの商品も買っています」という提案に使われます。
RAG(検索拡張生成):
- ChatGPTのようなAIに社内データを参照させる際、質問文と「最も意味が近い(コサイン類似度が高い)社内ドキュメント」を見つけ出し、それをAIに読ませるために使います。
4. 「距離」ではなく「角度」を見る理由
なぜ定規で測るような「距離」ではなく「角度(コサイン)」を使うのでしょうか?
それは、文章の長さや頻度に左右されにくいからです。
例えば、「猫が好き」という短い文と、「猫についての長編小説」があったとします。データの長さ(矢印の長さ)は全然違いますが、テーマ(矢印の向き)は同じ「猫」です。
コサイン類似度は長さ(文の長短)を無視して、向き(テーマの一致度)だけを純粋に評価できるため、AIと相性が良いのです。
まとめ
コサイン類似度、という言葉が出たら、「データの中身や意味が、どれくらい似ているかを判定する計算方法のことだな」と理解しておけば間違いありません。
これに関連して、AIが言葉を数値化する「ベクトル化(埋め込み表現/Embeddings)」という技術についての解説はこちら

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