거리 메트릭으로서 코사인 유사성 대 도트 곱


41

두 피처의 코사인 유사성은 크기의 곱으로 스케일 된 점의 곱인 것 같습니다. 코사인 유사성이 언제 내적보다 더 나은 거리 측정법을 만드는가? 즉, 내적 곱과 코사인 유사성이 상황에 따라 다른 강점 또는 약점을 갖습니까?


점이 "유사"할 때 작은 값으로 변환하더라도 이들 중 어느 것도 적절한 거리 메트릭이 아닙니다. 사용 사례에 따라 중요하지 않을 수도 있습니다.
Sean Owen

답변:


41

기하학적으로 생각하십시오. 코사인 유사성은 각도 차이에만 관심이있는 반면, 도트 곱은 각도와 크기에 관심이 있습니다. 데이터를 동일한 크기로 정규화하면 두 가지를 구분할 수 없습니다. 때때로 크기를 무시하는 것이 바람직하므로 코사인 유사성이 좋지만, 크기가 중요한 역할을하는 경우 내적은 유사성 측정으로 더 좋습니다. 이들 중 어느 것도 "거리 메트릭"이 아닙니다.


3
"거리 측정법"은 일반적으로 문헌에서 "유사성"과 반대로 사용됩니다. 거리가 멀고 유사성이 작지만 기본적으로 동일한 아이디어를 나타냅니다.
ffriend

1
@ffriend '비 유사성'을 의미합니다. 메트릭은 정확한 정의를 가지고 있습니다.
Memming

8

코사인 유사성은 벡터의 내적과 공통점이 많습니다. 실제로, 그것은 규모에 따라 스케일 된 내적입니다. 그리고 스케일링으로 인해 0과 1 사이에서 정규화됩니다. CS는 데이터의 변동성과 특징의 상대 주파수를 고려하기 때문에 바람직합니다. 반면에, 일반 도트 제품은 (복잡성 및 구현 측면에서) 조금 더 저렴합니다.


왜 내적 만 (동일하지에 정상화를) 하지 기능의 데이터 및 주파수를 차지? 나는 이것이 차이점이라는 것을 모른다.
Sean Owen

2
아마, 나는 명확하지 않았다. 데이터 다양성에 대해 이야기하고있었습니다. 예를 들어, 우리는 두 쌍의 문서를 가지고 있습니다. 각 페어 내 문서는 동일하지만 페어 1 문서는 페어 2 문서보다 짧습니다. 그리고 우리는 각 쌍 내에서 유사성을 계산합니다. 두 경우 모두 최대 유사성 추정치가 예상되지만 내적은 다른 수를 생성합니다.
sobach

5

위의 답변에 차원을 하나 더 추가하고 싶습니다. 데이터 단락에 거리 행렬을 사용하지 않는 것이 좋기 때문에 일반적으로 큰 텍스트에 코사인 유사성을 사용합니다. 또한 클러스터를 넓히려면 전체 유사성을 캡처하므로 코사인 유사성을 사용하는 경향이 있습니다.

예를 들어 최대 2 ~ 3 단어 길이의 텍스트가있는 경우 코사인 유사성을 사용한다고 생각하면 거리 측정법으로 달성 한 정밀도가 달성되지 않습니다.


4

여기에서 일반적인 내부 제품 기반 유사성 메트릭에 대한 훌륭한 비교가 있습니다 .

특히, 코사인 유사성은 임의의 실수 일 수있는 내적과는 달리 [0,1] 내에 있도록 정규화되지만, 다른 사람들이 말했듯이 벡터의 크기를 무시해야합니다. 개인적으로, 나는 그것이 좋은 것이라고 생각합니다. 나는 크기를 내부 (벡터 내) 구조로 생각하고 벡터 사이의 각도를 외부 (벡터 사이) 구조로 생각합니다. 그것들은 다른 것들이며 (제 생각에) 개별적으로 가장 잘 분석되는 경우가 많습니다. 코사인 유사성을 계산하는 것보다 내부 제품을 계산하고 나중에 크기를 비교하는 상황을 상상할 수 없습니다.


"코사인 유사도는 [0,1] 내에 있도록 정규화되었습니다."여전히 분자에 내적이 있으며 범위가 [-1, 1]이어야한다고 생각합니까?
Kari

2

기하학적 관점에서 모든 데이터가 인 경우 두 벡터의 스칼라 곱은 각도 , , 거리는 입니다.φ X , Y = COS φ φ = ARCCOS X , Y x,||x||2=x,x=1ϕx,y=cosϕϕ=arccosx,y

시각적으로 모든 데이터는 단위 영역에 있습니다. 내적을 거리로 사용하면 화음 거리가 생기지 만이 코사인 거리를 사용하면 구의 두 점 사이의 경로 길이에 해당합니다. 즉, 두 점의 평균을 원하면 '산술 평균 / 점 곱 ​​/ 유클리드 기하학'에서 얻은 중간 점이 아니라이 경로 (지오 데식) 사이의 점을 가져와야합니다. 구체에 살지 마십시오 (따라서 본질적으로 동일한 물체가 아닙니다)!


1

다른 사람들이 지적했듯이, 이들은 메트릭 기준을 충족시키지 않기 때문에 거리 "메트릭"이 아닙니다. 대신 "거리 측정"이라고 말하십시오.

어쨌든, 당신은 무엇을 측정하고 왜? 이 정보는 귀하의 상황에보다 유용한 답변을 제공하는 데 도움이됩니다.


측정 값과 측정 항목의 차이점에 대해 항상 궁금했습니다. 정부 (NIST)에 따르면 : "우리는보다 구체적이거나 객관적인 속성에 대한 척도를 사용하고보다 추상적이거나 높은 수준에 있거나 다소 주관적인 속성에 대한 척도를 사용합니다. ... 견고성, 품질 ("고품질 "에서와 같이), 효율성은 일관성있는 느낌을 주지만 객관적으로 정의하기 어려운 중요한 속성입니다. " 그러나 문맥은 수학이 아니라 소프트웨어 공학입니다. 당신의 테이크는 무엇입니까?
ahoffer

1
Wikipedia가 더 도움이되었습니다. 거리 (x, y)는 음이 아니어야합니다. x = y 인 경우에만 d (x, y) = 0; d (x, y) = d (y, x); 삼각형 부등식-d (x, z) ≤ d (x, y) + d (y, z) 만족
ahoffer

1
측정법이 특정 공리를 충족해야하며 측정 값이 덜 엄격하게 정의됩니다.
sintax
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.