유사도 측정은 두 개 이상의 객체(데이터, 문자열, 벡터, 문서 등) 사이의 유사성을 수량화하여 값으로 표현하는 과정이다. 흔히 0과 1(또는 −1과 1) 사이의 수치로 나타내며, 1에 가까울수록 두 객체가 서로 비슷함을, 0에 가까울수록 차이가 크다는 의미를 갖는다. 유사도 측정은 정보 검색, 자연어 처리, 머신러닝, 통계학, 생물정보학 등 다양한 분야에서 핵심적인 역할을 한다.
1. 정의
유사도 측정은 거리(metric) 와 유사도(similarity) 를 서로 대비되는 개념으로 정의한다.
- 거리는 객체 간 차이를 나타내며 값이 클수록 멀리 떨어져 있음을 의미한다.
- 유사도는 거리와 반대로 객체 간 유사성을 나타내며 값이 클수록 가깝게(비슷하게) 존재함을 의미한다.
수학적으로는 두 객체 $x, y$ 에 대해 거리 $d(x,y)$ 와 유사도 $s(x,y)$ 가 다음 관계를 만족하도록 정의될 수 있다.
$$ s(x,y)=\frac{1}{1+d(x,y)} \quad \text{또는} \quad s(x,y)=1-\frac{d(x,y)}{\max{d_{\text{max}}}} $$
2. 주요 종류
| 구분 | 설명 | 대표적 지표 |
|---|---|---|
| 벡터 기반 유사도 | 고차원 실수 벡터 간의 방향 또는 크기 차이를 이용 | 코사인 유사도, 피어슨 상관계수, 유클리드 거리(역수) |
| 집합 기반 유사도 | 객체를 원소 집합으로 보고 교집합·합집합·차집합을 활용 | 자카드 계수, 사보이 지수, 오버랩 계수 |
| 서열/문자열 기반 유사도 | 시퀀스(문자열, DNA, 단백질 서열)의 편집 거리를 측정 | 레벤슈타인 거리, 다이스 계수, N-그램 기반 유사도 |
| 확률·통계 기반 유사도 | 확률 분포나 통계적 특성을 비교 | KL-발산(역수), JS-발산, 히스토그램 교차점 |
| 그래프·네트워크 기반 유사도 | 정점·간선 구조를 비교 | 그래프 편집 거리, Jaccard 네트워크, SimRank |
3. 대표적인 유사도 측정 방법
3.1 코사인 유사도 (Cosine Similarity)
두 벡터 $\mathbf{a}, \mathbf{b}$ 사이의 각도 코사인을 이용한다.
$$ \text{cosine}(\mathbf{a},\mathbf{b})=\frac{\mathbf{a}\cdot\mathbf{b}}{|\mathbf{a}||\mathbf{b}|} $$
값 범위: $[0,1]$ (양수 벡터 경우)
3.2 자카드 계수 (Jaccard Index)
두 집합 $A, B$의 교집합 크기를 합집합 크기로 나눈다.
$$ J(A,B)=\frac{|A\cap B|}{|A\cup B|} $$
값 범위: $[0,1]$
3.3 레벤슈타인 거리 (Levenshtein Distance)
문자열 변환에 필요한 최소 삽입·삭제·대체 연산 횟수.
$$ d_{\text{Lev}}(s,t)=\min{\text{편집 작업 수}} $$
유사도는 $s(x,y)=1-\frac{d_{\text{Lev}}(x,y)}{\max(|x|,|y|)}$ 로 변환 가능.
3.4 피어슨 상관계수 (Pearson Correlation)
두 연속형 변수 간 선형 관계를 측정한다.
$$ \rho_{X,Y}= \frac{\operatorname{cov}(X,Y)}{\sigma_X\sigma_Y} $$
값 범위: $[-1,1]$ (절댓값이 클수록 높은 유사도)
3.5 KL-발산 (Kullback‑Leibler Divergence)
두 확률분포 $P, Q$ 사이의 비대칭 거리.
$$ D_{\text{KL}}(P|Q)=\sum_i P(i)\log\frac{P(i)}{Q(i)} $$
유사도는 $s(P,Q)=e^{-D_{\text{KL}}(P|Q)}$ 와 같이 정의한다.
4. 활용 분야
| 분야 | 적용 사례 |
|---|---|
| 정보 검색 | 문서 간 유사도 기반 검색 순위 결정 (TF‑IDF·코사인 유사도) |
| 추천 시스템 | 사용자·아이템 유사도 기반 협업 필터링 |
| 자연어 처리 | 문장 임베딩 간 유사도 측정, 의미론적 유사도 평가 |
| 컴퓨터 비전 | 이미지 특징 벡터(예: SIFT, CNN) 간 유사도 매칭 |
| 생물정보학 | DNA·단백질 서열 비교, 계통분류 |
| 클러스터링/분류 | 군집 알고리즘(k‑means, DBSCAN)에서 거리·유사도 함수 사용 |
| 시계열 분석 | DTW(Dynamic Time Warping) 등 시계열 유사도 측정 |
5. 관련 용어
- 거리(metric) : 두 객체 사이의 차이를 수치화한 함수.
- 핵심 함수(kernel) : 고차원 공간에서의 내적을 효율적으로 계산하는 함수, 유사도 측정에 활용.
- 정규화(normalization) : 유사도 값의 해석을 용이하게 하기 위한 스케일링 과정.
- 차원 축소(dimensionality reduction) : 고차원 유사도 계산의 비용을 낮추기 위한 기법 (PCA, t‑SNE 등).
6. 참고 문헌
- Manning, C. D., Raghavan, P., & Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press.
- Tan, P.-N., Steinbach, M., & Kumar, V. (2005). Introduction to Data Mining. Pearson.
- Jurafsky, D., & Martin, J. H. (2023). Speech and Language Processing (3rd ed.). Draft.
- Shannon, C. E., & Weaver, W. (1949). The Mathematical Theory of Communication. University of Illinois Press.
Note: 본 내용은 2026년 현재까지 축적된 학술·산업 자료를 바탕으로 작성되었으며, 최신 연구 동향에 따라 새로운 유사도 측정 기법이 지속적으로 제안되고 있다.