4

昨日、次のように定義されるコサインの類似性を学びました。

ここに画像の説明を入力

2 つのベクトルがどの程度類似しているかを効果的に測定できます。

Aここでの定義では、L2 ノルムを使用してとの内積を正規化していますB。私が興味を持っているのは、分母にAとの L1 ノルムを使用しない理由です。B

分母に L1 ノルムを使用すると、 の場合、余弦類似度は 1 にならない、と先生に言われましたA=B。次に、コサイン類似度の定義を次のように変更すると、元のモデルと比較して、変更されたモデルの長所と短所は何ですか?

sim(A,B) = (A * B) / (||A||1 * ||B||1) A!=B の場合

A==B の場合、sim(A,B) = 1

誰かが私にもう少し説明をしてくれれば幸いです。

4

1 に答える 1

10

L1-ノルムを使用した場合、コサインを計算していません

コサインは幾何学的な概念であり、ランダムな定義ではありません。それに付随する数学の文字列全体があります。L1 を使用した場合は、もう角度を測定していません

参照:ウィキペディア: 三角関数 - コサイン

コサインは、L2 正規化ベクトルのユークリッド距離に対して単調であることに注意してください。

Euclidean(x,y)^2 = sum( (x-y)^2 ) = sum(x^2) + sum(y^2) - 2 sum(x*y)

xと y が L2 正規化されている場合sum(x^2)=sum(y^2)=1、 、そして

Euclidean(x_norm,y_norm)^2 = 2 * (1 - sum(x_norm*y_norm)) = 2 * (1 - cossim(x,y))

したがって、コサイン類似度を使用することは、基本的にデータを単位長に標準化することを意味します。しかし、これに関連する計算上の利点もありsum(x*y)ます。まばらなデータの計算が安価になるからです。

データを L2 正規化した場合、

Euclidean(x_norm, y_norm) = sqrt(2) * sqrt(1-cossim(x,y))

質問の 2 番目の部分: L1 ノルムを修正するのはそれほど簡単ではありません。ベクトル (1,1) と (2,2) を考えてみましょう。明らかに、これら 2 つのベクトルは同じ角度を持っているため、コサイン類似度 1 を持つ必要があります。

あなたの方程式を使用すると、類似性があります(2+2)/(2*4) = 0.5

ベクトル (0,1) と (0,2) を見ると、ほとんどの人が上記の例と同様の類似性を持つべきであることに同意します (そして、余弦が実際に同じ類似性を与える場合)、方程式は になります(0+2)/(1+2) = 0.6666...。あなたの類似性は直感と一致しませんね。

于 2014-08-22T08:40:15.560 に答える