よく使われる類似度指標の概要: コサイン類似度、ドット積、L1、L2

よく使われる類似度指標の概要: コサイン類似度、ドット積、L1、L2

類似度の測定は機械学習において重要な役割を果たします。これらのメトリックは、オブジェクト、データ ポイント、またはベクトル間の類似性を数学的に定量化します。ベクトル空間における類似性の概念を理解し、適切なメトリックを採用することは、現実世界のさまざまな問題を解決するための基本となります。この記事では、埋め込み空間内の 2 つのベクトルの近接性を計算するために一般的に使用されるいくつかの類似度測定法を紹介します。

コサイン類似度

コサイン類似度(cos(θ))の値の範囲は、-1(類似していない)から+1(非常に類似している)までです。下の図からわかるように、点 A (1.5, 1.5) と点 B (2.0, 1.0) は 2 次元埋め込み空間内で非常に近い位置にあります。コサイン類似度を計算すると、0.948 という値が得られ、これも 2 つのベクトルが非常に類似していることを表します。点 A (1.5, 1.5) と点 C (-1.0, -0.5) の類似度を比較すると、コサイン類似度は -0.948 となり、2 つのベクトルは類似していないことがわかります。また、埋め込み空間ではそれらが反対方向にあることも確認できます。 cos(θ) 値が 0 の場合、2 つのベクトルは互いに垂直であり、類似も相違もないことを意味します。

2 つのベクトル間のコサイン類似度を計算するには、2 つのベクトルのドット積をそれらの長さの積で割るだけです。コサイン類似度は、主に 2 つのベクトル間の角度を考慮して類似度を判断し、ベクトルの長さは無視します。

Python でコサイン類似度を計算するのは簡単です。逆余弦を取ることで、類似度値 cos(θ) を 2 つのベクトル間の角度 (θ) に変換できます。

 import torch import torch.nn.functional as F import math #Create 3 Vectors A = torch.tensor([1.5,1.5]) B = torch.tensor([2.0,1.0]) C = torch.tensor([-1.0,-0.5]) # Calculate cosine similarity cos(𝜃): cos = F.cosine_similarity(A, B, dim=0) print("Cosine Similarity:", cos) # Calculate the angle 𝜃: # acos is the inverse of cos(x) theta = math.acos(cos) # Convert radians to degrees theta_degrees = math.degrees(theta) print("Angle in radians:", theta) print("Angle in degrees:", theta_degrees)

ドット積

ドット積はよく使われる類似度の尺度です。内積とコサイン類似度は密接に関連した概念です。内積値の範囲は負の無限大から正の無限大までです。負の値は反対方向、正の値は同方向を示し、ベクトルが垂直の場合は 0 になります。ドット積の値が大きいほど類似性が高いことを示します。次の図は、点 P1 と残りの点 P2 ~ P5 の間のドット積の計算を示しています。

内積は余弦方程式から導き出すことができます。つまり、下の図に示すように、2 つのベクトル間の角度の余弦に 2 つのベクトルの長さを掛けることで得られます。ドット積はベクトル埋め込みの長さの影響を受けます。これは類似性メトリックを選択する際の重要な考慮事項となる場合があります。

ドット積は類似度の測定にどのような影響を与えますか?

一連の科学研究論文の類似性を計算しているとします。研究論文の埋め込みベクトルの長さは引用数に比例します。研究論文間の類似性を計算するには、コサイン類似度を使用するのが一般的です。ドット積を使用すると、研究論文間の類似性はどのように変化するのでしょうか?

コサイン類似度はベクトルの方向と大きさを考慮するため、ベクトルの長さが類似度に直接関係しない状況に適しています。ドット積を使用する場合、ベクトルの大きさだけが重要であり、方向はそれほど重要ではありません。

引用数が多い論文(ベクトルが長い)は、その大きさが結果に大きく寄与するため、他の引用数の多い論文とのドット積類似度スコアが高くなります。引用数が少ない論文(ベクトルが短い)は、大きさが小さいため、引用数が多い論文とのドット積類似度スコアが低くなります。

マンハッタン距離(L1)とユークリッド距離(L2)

マンハッタン距離は各次元の絶対差を加算して距離を計算しますが、ユークリッド距離はポイント間の直線距離を計算します。

マンハッタン距離は、グリッドのような動きを伴うシナリオや、個々の次元の重要性が異なる場合に適しています。ユークリッド距離は、最短経路を測定する場合、またはすべての次元が距離に等しく寄与する場合に最適です。

ほとんどの場合、マンハッタン距離は、同じポイントのペアに対してユークリッド距離よりも大きな値を生成します。データの次元が増加するにつれて、ユークリッド距離メトリックよりもマンハッタン距離が優先されるようになります。

マンハッタン距離 L1

ユークリッド距離L2

マンハッタン距離はグリッド線に沿って歩いた距離であり、ユークリッド距離は直線距離です。これら 2 つの距離は、機械学習、画像処理、経路計画など、多くの分野で広く使用されています。

要約する

これら 4 つの距離測定方法には、それぞれ異なる適用シナリオと用途があります。測定方法の選択は、具体的な問題とデータ タイプによって異なります。マンハッタン距離とユークリッド距離は空間座標の距離測定に適用できます。

マンハッタン距離は、都市の道路間の距離を計算するためによく使用され、特徴選択やクラスタリングなどのデータ分析タスクでも使用されます。ユークリッド距離は、空間での距離測定、機械学習、データマイニング、グラフ処理などで広く使用されています。

ドット積距離とコサイン類似度は、ベクトルまたはテキスト データ間の類似性を測定するためによく使用されます。これは主に、テキストマイニングや自然言語処理における文書の類似性などのベクトル類似性や、情報検索や推奨システムなどの分野での測定に使用されます。

<<:  人工知能、機械学習、アルゴリズムが施設・資産管理に与える影響

>>:  Google は、ユーザーにパーソナライズされたヘルプを提供するために、Bard を搭載したアシスタントをリリースしました。

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

データ構造フレームワークの考え方を理解すると、すべてのアルゴリズムは単なる張り子の虎に過ぎない

1. データ構造の保存方法データ構造を保存する方法は、配列 (順次ストレージ) とリンク リスト (...

AIはIoTベースのDDoS攻撃を阻止できる

研究者らによると、人工知能はインターネットサービスプロバイダー(IPS)がDDoS攻撃に先手を打つの...

AIは生産性を低下させるでしょうか?今のところは出演はありません!

[[286440]] ▲ イラスト出典:エドモン・デ・ハロ2016年、ロンドンに拠点を置くアルファ...

顔認識技術のまとめ:従来の方法からディープラーニングまで

1970 年代以来、顔認識はコンピューター ビジョンと生体認証の分野で最も研究されているトピックの ...

...

データ拡張とは何ですか?

十分なトレーニング データがあれば、機械学習モデルは非常に優れたパフォーマンスを発揮します。残念なが...

...

産業用人工知能の未来について語る

AI はこれらの分野で大きな進歩を遂げており、世界がネットゼロの未来を目指す中でのエネルギー効率と持...

...

ARにおける人工知能

今年3月、上海市経済情報化委員会は、同市の人工知能の革新と発展を支援する2018年特別プロジェクトの...

自動運転テストシステムを1つの記事で理解する

[[433515]]自動運転のテストは非常に複雑なシステムです。この記事では、小さなものから大きなも...

AIがまだ人間を超えられない9つの分野

人工知能技術の急速な発展により、画像認識や音声認識など多くの分野で大きな進歩を遂げ、一部の分野では人...

機械学習サーバーの利用率とスケーラビリティを最大化するにはどうすればよいでしょうか?

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...