유사도 공식은 상당히 많습니다.
몇 가지 소개해 보겠습니다.
첫번째는 맨해튼 거리Manhattan distance 공식입니다.
여기서 맨해튼은 모두 아는 뉴욕의 지명입니다.
앞서 유클리드 거리는 거리를 계산할 때 장애물에 대한 고려를 하지 않습니다.
즉, 유클리드 거리는 최단 거리라 할 수 있습니다.
그러나 실생활에서의 맨해튼, 서울과 같은 도심은 꽤나 복잡한 거리 구조로 연결되어 있습니다.
그래프에서 P1에서 P2로 가는 가장 빠른 길은 파란색 길(선)입니다.
이 선은 앞서 살펴본 유클리드 거리죠.
그러나 실제 도로가 그래프처럼 바둑판 모양이라면 유클리드 거리가 제안한 길로는 갈 수 없습니다.
그래서 도로를 따라 간다면 검정색 선이 가장 빠른 길이 될 것입니다.
이 선을 구하는 게 맨해튼 거리 공식입니다.
맨해튼 거리 공식은 유클리드 거리 공식보다 매우 간단합니다.
맨해튼 거리는 두 좌표 값의 차이에 절대값을 취해 구합니다.
따라서 유클리드 공식을 따르는 파란색 선의 거리는 앞서 구한 것처럼 8.5이고 맨해튼 공식을 따르는 검은색 선의 거리는 12가 됩니다.
다음은 코사인 유사도cosine similarity입니다.
삼각함수에서 나오는 코사인cosine을 이용합니다.
코사인 유사도의 원리만 간단히 소개하겠습니다.
코사인은 익히 아는 삼각함수의 하나입니다.
더 정확히 표현하면 코사인은 2차원 평면에서 볼 때 한 지점에서 출발한 방향을 가진 두 값( 벡터)의 길이에 대한 비율을 의미합니다.
그림을 보면, 임의의 점 A에서 출발한 두 값 B와 C는 각각의 방향을 가지고 있습니다.
출발점 A로부터 B까지의 거리를 ab, A에서 C까지의 거리를 ac라고 할 때 코사인 A는 다음과 같습니다.
코사인 유사도는 이 공식을 기본으로 활용합니다.
앞의 그림에서 B와 C의 방향이 같다고 가정해 봅니다.
그러면 A의 각도는 0이고 코사인 값은 1이 됩니다.
만약 B와 C의 방향이 90도를 이루면 코사인 값은 0이 되고, 두 방향이 정반대인 180도면 코사인 값은 –1이 됩니다.
유사도는 0과 1 사이의 값을 수렴하므로 코사인 유사도는 두 값의 방향이 0도일 때와 90도일 때를 기준으로 합니다.
따라서 두 값의 방향성이 정확히 일치하는 0도일 때 값이 1이므로 가장 유사도가 높고 각도가 늘어날수록 1보다 값이 작아지며 0이 유사도가 가장 낮다고 판단합니다.