「内積とコサイン類似度の違い」新人エンジニア向けやさしい解説

内積とコサイン類似度の違いをわかりやすく解説!向き?長さ?どっちを見てるの?

こんにちは。ゆうせいです。

今回は、ベクトルの「内積」と「コサイン類似度」の違いについて、やさしく説明していきます!


ベクトルの基本をおさらい

ベクトルとは「向き」と「大きさ」を持った量のことです。
たとえばベクトル A = (3, 4) は、右に3、上に4進むような矢印で表されます。


内積とは?

2つのベクトル A と B の内積(dot product)は、次のように定義されます:

A \cdot B = |A||B|\cos\theta

または、成分で表すと:

A \cdot B = a_1b_1 + a_2b_2 + \cdots + a_nb_n

例:

A = (1, 2), \quad B = (3, 4) のとき、

A \cdot B = 1 \times 3 + 2 \times 4 = 11


コサイン類似度とは?

コサイン類似度は、2つのベクトルの向きの似ている度合いを表す指標です。

定義式はこうなります:

\cos(\theta) = \frac{A \cdot B}{|A||B|}

つまり、内積をベクトルの長さで割っただけのものです。


どう違うの?

違いをはっきりさせましょう。

比較項目内積コサイン類似度
大きさの影響ありなし
向きの影響ありあり
値の範囲-∞〜∞-1〜1
使いみち力の計算など(物理)類似度の判定(AI、情報検索など)

数値で比較してみよう!

A = (1, 2), B = (3, 6) のとき:

内積:

A \cdot B = 1 \times 3 + 2 \times 6 = 15

長さ:

|A| = \sqrt{1^2 + 2^2} = \sqrt{5}

|B| = \sqrt{3^2 + 6^2} = \sqrt{45}

コサイン類似度:

\cos(\theta) = \frac{15}{\sqrt{5} \times \sqrt{45}} = 1

→ 向きが完全に同じなので、コサイン類似度は「1」になります。


たとえ話で覚えよう!

サッカー部のAくんとBくんがそれぞれボールを蹴ったとします。

  • Aくんは10メートル先に蹴った(短い)
  • Bくんは20メートル先に蹴った(長い)

でも2人とも同じ方向に蹴っていたら:

  • 内積は、Bくんのほうが大きい(長さも見ているから)
  • コサイン類似度は、同じになる(向きだけを見ているから)

結論

  • 内積: ベクトルの「向き」と「長さ」の両方を見る
  • コサイン類似度: 「向き」だけを見る

数学は「わかった!」という感覚を積み重ねることが大事です。
焦らず、一歩ずつ理解を深めていきましょう!

生成AI研修のおすすめメニュー

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。