AI用語集・AIに必要な数理・統計知識

コサイン類似度とは

こさいんるいじどcosine similarity

別名:cos類似度

  • シラバス 技術37
  • ◯×チェック3問
  • 練習問題4問

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

1行定義

コサイン類似度とは、2つのベクトルがなす角度のコサインの値で、ベクトルの向きがどれだけ近いかを表す指標のことです。

くわしく

コサイン類似度は、2つのベクトル(数値の並び)がどれだけ同じ方向を向いているかを表す指標です。文章や画像を数値のベクトルに直したあと、「似ているかどうか」を測るのによく使われます。

計算のしかた

2つのベクトルをa、bとすると、cos θ = (a・b) / (|a| × |b|)で求めます。a・bは内積(成分どうしの積の和)、|a|はベクトルの長さ、θは2つのベクトルがなす角度です。

たとえばa = (1, 0)、b = (1, 1)なら、内積は1、長さの積は1 × √2です。コサイン類似度は1 / √2で、約0.71になります。角度は45度です。

値の意味

  • 1:同じ向き(角度0度)
  • 0:直交している(角度90度)
  • −1:正反対の向き(角度180度)

値は−1から1の範囲です。単語の出現回数のように成分がすべて0以上なら、0から1の範囲に収まります。

長さを無視する理由

コサイン類似度は、ベクトルの長さで割るため、向きだけを比べます。たとえば文書を単語の出現回数で表すと、長い文書ほどベクトルが長くなります。ユークリッド距離で比べると、話題が同じでも、長さの違いだけで「遠い」と判定されがちです。コサイン類似度なら、単語の使われ方の比率が同じであれば、長さが違っても高い値になります。

逆に、大きさそのものに意味がある場合(購入金額の規模など)は、ユークリッド距離のほうが適しています。

使われる場面

word2vecなどで学習した単語ベクトルの近さを測るのに使われます。文書検索や推薦、RAG(外部の文書を検索して生成AIの回答に使う手法)での類似文書の検索でも使われます。ベクトルの長さを1にそろえておくと、コサイン類似度は内積と一致し、計算が簡単になります。

覚え方

「長さは無視、向きだけを見る」と覚えます。

G検定での出題

出題のされ方

内積をベクトルの長さの積で割る計算、−1から1の値の意味、長さを無視して向きだけを比べる点、ユークリッド距離との使い分け、文書や単語ベクトルの類似検索での利用が問われます。

混同しやすい用語

用語意味
コサイン類似度このページの用語2つのベクトルがなす角度のコサインの値で、ベクトルの向きがどれだけ近いかを表す指標
ユークリッド距離各座標の差を2乗して足し合わせ、その平方根をとって求める、2つの点を結ぶ直線の長さ

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. ベクトル(1, 2)と(2, 4)のコサイン類似度は1である。

    答えを見る

    答え ◯ 正しい

    (2, 4)は(1, 2)を2倍したもので、向きが同じです。内積10を長さの積√5 × √20 = 10で割ると1になります。

  2. コサイン類似度が0のとき、2つのベクトルは同じ向きを向いている。

    答えを見る

    答え × 誤り

    0は、2つのベクトルが直交している(90度の角度をなす)ことを表します。同じ向きなら1、正反対の向きなら−1です。

  3. 単語の出現回数を並べた文書ベクトルどうしのコサイン類似度は、負の値にならない。

    答えを見る

    答え ◯ 正しい

    出現回数はすべて0以上なので、内積も0以上になります。そのため、値は0から1の範囲に収まります。

この用語の練習問題

4問
  1. #0220文書を活用するNLPタスク難易度 標準・単一選択未回答
  2. #0409単語ベクトルの加減算による類推難易度 応用・単一選択未回答
  3. #0411同義語を含む文の類似度計算難易度 標準・単一選択未回答

ほかに1問あります。続けて解くと、すべての問題を順に出題します。

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術37

誤りを報告

表示設定

テーマ
文字の大きさ
問題演習