유사도 함수는 두 개 이상의 데이터 객체(벡터, 사용자, 아이템 등) 간의 유사성 정도를 수치로 측정하는 수학적 함수입니다. 유사도 측정은 데이터셋 내 데이터 객체들 간의 거리를 특징 차원에 기반하여 계산하며, 거리가 작을수록 유사도가 높고, 거리가 클수록 유사도가 낮습니다.
추천 시스템에서 유사도 함수는 특히 중요한데, 협업 필터링은 목표 사용자의 취향과 선호도에 따라 추천할 수 있는 데이터 흐름을 필터링하며, 목표 사용자의 프로필은 다른 사용자들과의 유사성에 기반하여 구축됩니다.
코사인 유사도는 두 비영벡터 간의 유사성을 벡터 사이 각도의 코사인 값을 계산하여 측정하며, 머신러닝과 데이터 분석에서 특히 텍스트 분석, 문서 비교, 검색 쿼리, 추천 시스템에서 널리 사용됩니다.
수식:
Cosine Similarity = (A · B) / (||A|| × ||B||)
특징:
사용 케이스:
한계:
유클리드 거리는 두 점을 연결하는 선분의 길이를 측정하며, n차원 유클리드 공간의 두 점 a = (a0, a1,…, an-1)와 b = (b0, b1,…, bn-1) 사이의 거리입니다.
수식:
Euclidean Distance = √Σ(ai - bi)²
특징:
사용 케이스:
피어슨 상관계수는 협업 필터링 추천 시스템에서 가장 인기 있는 유사도 측정 방법 중 하나로, 두 사용자가 얼마나 상관되어 있는지 평가합니다.
수식:
r = Σ(xi - x̄)(yi - ȳ) / √[Σ(xi - x̄)² × Σ(yi - ȳ)²]
특징:
장점:
한계:
자카드 거리 계수는 두 샘플 집합 간의 유사성을 측정하며, 정의된 집합의 교집합의 카디널리티를 합집합의 카디널리티로 나눈 값으로 정의됩니다.
수식:
Jaccard Similarity = |A ∩ B| / |A ∪ B|
특징:
사용 케이스:
응용:
두 임베딩 간의 IP 거리는 정규화되지 않은 데이터를 비교하거나 크기와 각도를 모두 고려할 때 더 유용합니다.
특징:
Manhattan Distance (맨해튼 거리):
맨해튼 거리는 두 점 사이의 거리가 데카르트 좌표의 절대 차이의 합인 메트릭이며, 간단히 말해 x 좌표와 y 좌표 간 차이의 총합입니다.
Minkowski Distance:
민코프스키 거리는 유클리드 거리와 맨해튼 거리의 일반화입니다.
Hamming Distance:
해밍 거리는 이진 벡터에 사용되며 컴퓨터 비전과 이미지 처리에서 이진 디스크립터(ORB 등) 간의 유사성을 측정하는 데 사용됩니다.
Mahalanobis Distance:
이는 점들의 그룹의 질량 중심으로부터 점의 방향을 제공하며, 역공분산 행렬도 사용해야 합니다.
협업 필터링 기법에 기반한 추천 시스템의 주요 구성 요소 중 하나는 선택한 아이템에 대해 동일한 행동을 보이는 사용자 집합을 결정하는 데 사용되는 유사도 측정입니다.
추천 시스템에 제안된 다양한 전략 중에서 협업 필터링은 단순성과 효율성으로 인해 주목받았으며, 이 전략의 성공을 위한 핵심 요소는 추천 정확도에 영향을 미치는 유사도 계산 방법입니다.
시스템은 각 사용자에게 목표 사용자와의 인지된 유사성을 나타내는 가중치를 할당하며, 이것이 목표 사용자의 이웃입니다. 그런 다음 가장 높은 가중치를 가진 n명의 사용자를 선택하고 선택된 이웃의 행동에 대한 가중 평균으로부터 목표 사용자의 행동 예측을 계산합니다.
아이템 기반 필터링은 유사한 아이템에 대한 해당 사용자의 행동을 기반으로 목표 사용자에게 새 아이템을 추천하지만, 아이템을 비교할 때 협업 시스템은 아이템 특징을 비교하지 않고 사용자가 해당 아이템과 어떻게 상호작용하는지를 비교합니다.
다양한 데이터 유형은 데이터 포인트의 유사성을 측정하기 위해 다양한 함수를 필요로 하며, 단항, 이진, 정량 데이터 간의 구별이 대부분의 문제에 도움이 됩니다:
| 데이터 유형 | 권장 유사도 함수 |
|---|---|
| 단항 데이터 (Unary) | Jaccard Similarity |
| 이진 데이터 (Binary) | Jaccard Similarity |
| 정량 데이터 (Quantitative) | Pearson 또는 Cosine Similarity |
정규화의 중요성:
정규화는 벡터를 일관된 스케일(일반적으로 단위 길이, 크기 1)로 조정하는 과정이며, 코사인 유사도를 사용할 때, 서로 다른 소스의 벡터를 다른 스케일로 결합할 때, 또는 서로 다른 벡터 차원에 걸쳐 공정한 비교를 원할 때 중요할 수 있습니다.
가장 일반적인 정규화 방법은 L2 정규화이며, 각 벡터를 L2 노름(유클리드 길이)으로 나눕니다. 정규화 후 코사인 유사도는 내적과 동일해지므로 계산 효율성이 향상될 수 있습니다.
메트릭 선택 시 고려사항:
협업 필터링에서의 과제:
기존의 유사도 방법은 여전히 몇 가지 한계가 있으며, CF 측정은 심각한 데이터 희소성과 콜드 스타트 문제를 겪습니다. 실제로 CF에 사용되는 사용자-아이템 평점 행렬은 극도로 희소하고 충분한 평점을 갖지 못하므로, CF 추천 시스템의 성능은 데이터 희소성에 의해 도전받습니다.
유사도 함수는 추천 시스템, 정보 검색, 머신러닝 등 다양한 분야에서 핵심적인 역할을 합니다. 각 유사도 함수는 고유한 특성과 장단점을 가지고 있으며, 데이터의 특성, 문제의 성격, 계산 효율성 요구사항에 따라 적절한 함수를 선택해야 합니다.
유사도 메트릭이 임베딩 모델에서 사용된 것이 무엇인지 모르거나 벡터가 생성 과정에서 특정 메트릭 없이 생성된 경우, 특정 사용 사례에 가장 좋은 결과를 생성하는 것을 보기 위해 다양한 유사도 메트릭을 실험해보세요.