코사인 유사도의 직관적 이해와 실용적 활용
카테고리
데이터 과학/AI
서브카테고리
데이터 분석
대상자
- 데이터 과학자, 머신러닝 엔지니어, 검색 엔지니어, 추천 시스템 개발자, 소프트웨어 엔지니어
- 난이도: 중급 이상 (벡터, 임베딩, 알고리즘 개념 이해 필요)
핵심 요약
- 코사인 유사도는 벡터의 방향을 기반으로 유사성을 측정하며, 길이(크기)는 무시합니다.
- 0~1 범위에서 유사도를 표현하며, 텍스트, 임베딩, 사용자 행동 데이터에 이상적입니다.
- NLP, 추천 시스템, 클러스터링 등 다양한 분야에서 핵심 활용 지표로 사용됩니다.
섹션별 세부 요약
1. 코사인 유사도의 정의
- 두 벡터 간 각도를 기반으로 유사도를 계산합니다.
- 0° (1), 90° (0), 180° (-1)로 유사도를 표현합니다.
- 길이와 관계없이 방향이 같으면 유사도가 높음 (예: 텍스트 빈도 벡터).
2. 수학적 공식
- $$ \text{cosine_similarity}(A, B) = \frac{A \cdot B}{|A| |B|} $$
- $ A \cdot B $: 내적 (dot product)
- $ |A|, |B| $: 벡터의 크기 (magnitude)
- 결과 범위: -1 (완전히 반대) ~ +1 (완전히 동일).
3. 실용적 활용 사례
- 텍스트 유사도: 문서, 문장 비교 (예: TF-IDF, BERT 임베딩).
- 추천 시스템: 사용자-아이템 유사도 계산 (예: 콘텐츠 기반 추천).
- 이미지 인식: 얼굴 인식, 이미지 임베딩 비교.
- 데이터 클러스터링: k-Means, k-NN 알고리즘에서 유사도 기준으로 그룹화.
4. 장점과 한계
- 장점: 고차원 데이터, 텍스트 데이터에서 효과적.
- 한계: 크기(길이)를 무시하므로, 상대적 크기 정보는 반영하지 않음.
결론
- 코사인 유사도는 방향 기반 유사도 측정으로, NLP, 추천 시스템, 클러스터링 등에 필수적입니다.
- 실무 적용 시 텍스트 임베딩, 사용자 프로필 벡터, 이미지 임베딩과 결합하여 활용하세요.
- 주의: 크기 정보가 중요한 경우, 유사도 지표와 병행하여 사용해야 합니다.