유사도 함수(Similarity Function)

김동준·2025년 12월 2일

Recommend System

목록 보기
5/14

유사도 함수(Similarity Function) 종합 가이드

1. 유사도 함수란?

유사도 함수는 두 개 이상의 데이터 객체(벡터, 사용자, 아이템 등) 간의 유사성 정도를 수치로 측정하는 수학적 함수입니다. 유사도 측정은 데이터셋 내 데이터 객체들 간의 거리를 특징 차원에 기반하여 계산하며, 거리가 작을수록 유사도가 높고, 거리가 클수록 유사도가 낮습니다.

추천 시스템에서 유사도 함수는 특히 중요한데, 협업 필터링은 목표 사용자의 취향과 선호도에 따라 추천할 수 있는 데이터 흐름을 필터링하며, 목표 사용자의 프로필은 다른 사용자들과의 유사성에 기반하여 구축됩니다.

2. 주요 유사도 함수 종류

2.1 Cosine Similarity (코사인 유사도)

코사인 유사도는 두 비영벡터 간의 유사성을 벡터 사이 각도의 코사인 값을 계산하여 측정하며, 머신러닝과 데이터 분석에서 특히 텍스트 분석, 문서 비교, 검색 쿼리, 추천 시스템에서 널리 사용됩니다.

수식:

Cosine Similarity = (A · B) / (||A|| × ||B||)

특징:

  • 코사인 유사도는 크기와 관계없이 데이터 객체가 얼마나 유사한지 결정하는 데 유용하며, 유클리드 거리로는 멀리 떨어진 두 유사 데이터 객체도 크기 때문에 여전히 작은 각도를 가질 수 있습니다
  • 각도가 작을수록 유사도가 높으며, 다차원 공간에 표시될 때 코사인 유사도는 크기가 아닌 방향(각도)을 포착합니다
  • 코사인 유사도는 일반적으로 문서나 이메일을 비교하기 위한 텍스트 마이닝 맥락에서 사용되며, 두 문서 용어 벡터 간의 코사인 유사도가 높으면 두 문서는 더 많은 공통 단어를 갖습니다

사용 케이스:

  • 방향의 차이를 중요시할 때 코사인 유사도를 사용하며, NLP 애플리케이션과 벡터 방향이 크기보다 중요한 시나리오에 완벽합니다
  • 텍스트 데이터(예: 단어 임베딩 또는 TF-IDF 벡터)를 비교할 때 이상적이며, 문서 길이가 아닌 의미적 유사성에 초점을 맞춥니다

한계:

  • 희소 데이터에 민감하며 많은 0 성분을 가진 희소 데이터에는 효과적이지 않습니다
  • 크기를 무시하고 벡터 간의 각도만 고려하므로 크기의 차이를 놓칩니다

2.2 Euclidean Distance (유클리드 거리)

유클리드 거리는 두 점을 연결하는 선분의 길이를 측정하며, n차원 유클리드 공간의 두 점 a = (a0, a1,…, an-1)와 b = (b0, b1,…, bn-1) 사이의 거리입니다.

수식:

Euclidean Distance = √Σ(ai - bi)²

특징:

  • 가장 일반적으로 사용되는 거리 메트릭이며 데이터가 연속적일 때 매우 유용합니다
  • 크기의 차이를 중요시할 때 유클리드 거리를 사용하며, 벡터가 서로 다른 크기를 가지고 공간상 데이터 포인트가 얼마나 떨어져 있는지를 주로 중요시할 때 좋습니다

사용 케이스:

  • 추천 시스템에서 유클리드 거리는 사용자 평점의 차이를 포착할 수 있습니다(예: 1-10 척도의 두 사용자의 영화 점수 비교)

2.3 Pearson Correlation Coefficient (피어슨 상관계수)

피어슨 상관계수는 협업 필터링 추천 시스템에서 가장 인기 있는 유사도 측정 방법 중 하나로, 두 사용자가 얼마나 상관되어 있는지 평가합니다.

수식:

r = Σ(xi - x̄)(yi - ȳ) / √[Σ(xi - x̄)² × Σ(yi - ȳ)²]

특징:

  • 피어슨 상관계수는 두 데이터 집합 간의 선형 관계의 강도와 방향을 측정하며, 절대 평점이 아닌 평점 경향에 기반하여 사용자 간 유사성을 측정하는 데 도움이 되므로 추천 시스템에서 인기 있는 도구입니다
  • 피어슨 상관계수는 -1에서 1까지의 범위를 가지며, 1은 완벽한 양의 선형 관계를 나타냅니다
  • 피어슨 상관계수는 평균 중심화된 코사인 유사도로 볼 수 있습니다

장점:

  • 사용자가 특정 영화를 좋아하면, 해당 영화 열과 다른 모든 영화 열의 상관관계를 찾아 선택한 영화와 높은 상관관계를 가진 영화를 얻을 수 있으며, 이는 행이 사용자를 나타내고 특정 사용자가 유사한 영화를 좋아할 수 있기 때문에 작동합니다

한계:

  • 희소 데이터셋에서 문제가 발생할 수 있으며, 코사인 유사도는 이 문제를 겪지 않고 추천 시스템 문헌에서 널리 사용됩니다
  • 공통 평점 집합이 작은 사용자 간의 과도하게 높은 상관관계를 수정하기 위해 피어슨 상관계수를 "감쇠"하는 것이 표준 솔루션입니다

2.4 Jaccard Similarity (자카드 유사도)

자카드 거리 계수는 두 샘플 집합 간의 유사성을 측정하며, 정의된 집합의 교집합의 카디널리티를 합집합의 카디널리티로 나눈 값으로 정의됩니다.

수식:

Jaccard Similarity = |A ∩ B| / |A ∪ B|

특징:

  • 유한한 샘플 집합에만 적용할 수 있으며, 이진 변수의 경우 자카드 거리는 Tanimoto 계수와 동일합니다
  • A 또는 B가 1인 항목을 "합집합"으로 세고, A와 B 모두 1인 항목을 "교집합"으로 셉니다
  • 자카드 계수는 비유사성 또는 거리 측정으로 사용될 수 있으며, 1에서 자카드 유사도 계수를 빼서 얻을 수 있습니다

사용 케이스:

  • 자카드 계수는 정보 검색에서 랭킹과 점수 매기기에 사용됩니다
  • 단항 데이터와 이진 데이터에 자카드 유사도가 적합합니다

응용:

  • 코사인 인덱스는 표절을 식별하는 데 사용될 수 있지만 인터넷의 미러 사이트를 식별하는 데는 좋은 인덱스가 아니며, 반면 자카드 인덱스는 미러 사이트를 식별하는 데는 좋은 인덱스이지만 복사-붙여넣기 표절을 잡는 데는 그다지 훌륭하지 않습니다

2.5 Inner Product (내적)

두 임베딩 간의 IP 거리는 정규화되지 않은 데이터를 비교하거나 크기와 각도를 모두 고려할 때 더 유용합니다.

특징:

  • 크기와 방향을 모두 중요시할 때 내적을 사용하며, 정규화된 데이터셋과 정규화되지 않은 데이터셋 모두에서 잘 작동하는 다목적 옵션입니다

2.6 기타 거리 메트릭

Manhattan Distance (맨해튼 거리):
맨해튼 거리는 두 점 사이의 거리가 데카르트 좌표의 절대 차이의 합인 메트릭이며, 간단히 말해 x 좌표와 y 좌표 간 차이의 총합입니다.

Minkowski Distance:
민코프스키 거리는 유클리드 거리와 맨해튼 거리의 일반화입니다.

Hamming Distance:
해밍 거리는 이진 벡터에 사용되며 컴퓨터 비전과 이미지 처리에서 이진 디스크립터(ORB 등) 간의 유사성을 측정하는 데 사용됩니다.

Mahalanobis Distance:
이는 점들의 그룹의 질량 중심으로부터 점의 방향을 제공하며, 역공분산 행렬도 사용해야 합니다.

3. 추천 시스템에서의 적용

3.1 협업 필터링에서의 역할

협업 필터링 기법에 기반한 추천 시스템의 주요 구성 요소 중 하나는 선택한 아이템에 대해 동일한 행동을 보이는 사용자 집합을 결정하는 데 사용되는 유사도 측정입니다.

추천 시스템에 제안된 다양한 전략 중에서 협업 필터링은 단순성과 효율성으로 인해 주목받았으며, 이 전략의 성공을 위한 핵심 요소는 추천 정확도에 영향을 미치는 유사도 계산 방법입니다.

3.2 사용자 기반 vs 아이템 기반

시스템은 각 사용자에게 목표 사용자와의 인지된 유사성을 나타내는 가중치를 할당하며, 이것이 목표 사용자의 이웃입니다. 그런 다음 가장 높은 가중치를 가진 n명의 사용자를 선택하고 선택된 이웃의 행동에 대한 가중 평균으로부터 목표 사용자의 행동 예측을 계산합니다.

아이템 기반 필터링은 유사한 아이템에 대한 해당 사용자의 행동을 기반으로 목표 사용자에게 새 아이템을 추천하지만, 아이템을 비교할 때 협업 시스템은 아이템 특징을 비교하지 않고 사용자가 해당 아이템과 어떻게 상호작용하는지를 비교합니다.

4. 데이터 유형에 따른 선택 가이드

다양한 데이터 유형은 데이터 포인트의 유사성을 측정하기 위해 다양한 함수를 필요로 하며, 단항, 이진, 정량 데이터 간의 구별이 대부분의 문제에 도움이 됩니다:

데이터 유형권장 유사도 함수
단항 데이터 (Unary)Jaccard Similarity
이진 데이터 (Binary)Jaccard Similarity
정량 데이터 (Quantitative)Pearson 또는 Cosine Similarity

5. 실무 고려사항

정규화의 중요성:
정규화는 벡터를 일관된 스케일(일반적으로 단위 길이, 크기 1)로 조정하는 과정이며, 코사인 유사도를 사용할 때, 서로 다른 소스의 벡터를 다른 스케일로 결합할 때, 또는 서로 다른 벡터 차원에 걸쳐 공정한 비교를 원할 때 중요할 수 있습니다.

가장 일반적인 정규화 방법은 L2 정규화이며, 각 벡터를 L2 노름(유클리드 길이)으로 나눕니다. 정규화 후 코사인 유사도는 내적과 동일해지므로 계산 효율성이 향상될 수 있습니다.

메트릭 선택 시 고려사항:

  • 특징이 정규화되면(유사한 범위로 조정) 코사인과 유클리드는 유사하게 작동할 수 있지만, 크기가 관련 없을 때는 코사인이 여전히 선호됩니다
  • 바이너리 데이터나 특정 응용 프로그램에서 이러한 메트릭이 더 적절한 경우 해밍이나 자카드와 같은 전문 메트릭을 사용하세요

협업 필터링에서의 과제:
기존의 유사도 방법은 여전히 몇 가지 한계가 있으며, CF 측정은 심각한 데이터 희소성과 콜드 스타트 문제를 겪습니다. 실제로 CF에 사용되는 사용자-아이템 평점 행렬은 극도로 희소하고 충분한 평점을 갖지 못하므로, CF 추천 시스템의 성능은 데이터 희소성에 의해 도전받습니다.

6. 결론

유사도 함수는 추천 시스템, 정보 검색, 머신러닝 등 다양한 분야에서 핵심적인 역할을 합니다. 각 유사도 함수는 고유한 특성과 장단점을 가지고 있으며, 데이터의 특성, 문제의 성격, 계산 효율성 요구사항에 따라 적절한 함수를 선택해야 합니다.

유사도 메트릭이 임베딩 모델에서 사용된 것이 무엇인지 모르거나 벡터가 생성 과정에서 특정 메트릭 없이 생성된 경우, 특정 사용 사례에 가장 좋은 결과를 생성하는 것을 보기 위해 다양한 유사도 메트릭을 실험해보세요.

profile
Story Engineer

0개의 댓글