본문 바로가기

DL_general

cosine similarity

두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미한다.

두 벡터의 방향이 완전히 동일한 경우에는 1의 값을 가지며, 90°의 각을 이루면 0, 180°로 반대의 방향을 가지면 -1의 값을 갖는다. 

즉, 결국 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다. 

 

벡터 간의 크기는 무시되고 방향의 차이만 계산된다. 

 

문서의 유사도

ex. 

문서1 : 저는 사과 좋아요
문서2 : 저는 바나나 좋아요
문서3 : 저는 바나나 좋아요 저는 바나나 좋아요

문서3은 문서2에서 단지 모든 단어의 빈도수가 1씩 증가했을 뿐이므로 기존의 문서와 코사인 유사도의 값이 1이다.

하지만 유클리드 거리로 유사도를 연산하면 문서의 길이에 영향을 받기 때문에 문서 A가 문서 B보다 문서 C와 유사도가 더 높게 나오는 상황이 발생할 수 있다.

이런 경우 코사인 유사도가 해결책이 될 수 있다.

코사인 유사도는 유사도를 구할 때 벡터의 방향(패턴)에 초점을 두므로 코사인 유사도는 문서의 길이가 다른 상황에서 비교적 공정한 비교를 할 수 있도록 도와준다. 

 

 

'DL_general' 카테고리의 다른 글

localization  (0) 2023.03.15
YOLO  (0) 2023.03.13
auto encoder  (0) 2023.03.07
Federated learning  (0) 2023.03.06
[simplified] GAN 종류  (0) 2023.03.04