코사인 유사성이 l2 정규화 된 유클리드 거리와 동일합니까? 공간 모델이

동일한 의미, 이는 벡터 u 와 벡터 세트 V 사이의 유사성 순위에 대해 동일한 결과를 생성 할 것 입니다.

거리 측정 (유클리드 거리, 코사인 유사성) 및 정규화 기술 (없음, l1, l2)을 매개 변수로 사용하는 벡터 공간 모델이 있습니다. 내 이해에서, 설정 [코사인, 없음]의 결과는 [유클리드, l2]와 동일하거나 적어도 실제로는 유사해야하지만, 그렇지 않습니다.

실제로 시스템이 여전히 버그가있을 가능성이 높습니까? 아니면 벡터에 심각한 문제가 있습니까?

편집 : 벡터는 말뭉치의 문서에서 단어 수를 기반으로한다는 것을 언급하지 않았습니다. 쿼리 문서 (단어 수 벡터로도 변환 됨)가 주어지면 가장 비슷한 모음에서 문서를 찾고 싶습니다.

유클리드 거리를 계산하는 것은 간단한 측정 방법이지만, 내가 작업하는 종류의 코사인 유사성은 종종 길이가 다른 벡터가 여전히 동일한 것으로 간주되기 때문에 유사성 지표로 선호되는 경우가 많습니다. 거리 / 코사인 유사성이 가장 작은 문서가 가장 유사한 것으로 간주됩니다.



답변

들면 -normalized 벡터 ,

우리가 그 제곱 유클리드 거리는 비례 코사인 거리 ,

즉, 데이터를 정규화하고 알고리즘이 거리의 스케일링에 불변 인 경우에도 여전히 제곱으로 인해 차이가 발생할 수 있습니다.

ℓ2

x,y

||x||2=||y||2=1,

||x−y||22=(x−y)⊤(x−y)=x⊤x−2x⊤y+y⊤y=2−2x⊤y=2−2cos⁡∠(x,y)


답변

u

v

cos⁡(u,v)=⟨u,v⟩‖u‖⋅‖v‖=uTv‖u‖⋅‖v‖∈[−1,1].