본문 바로가기
인공지능/랭체인

(궁금) 시맨틱 검색(Semantic Search)와 코사인 유사도(Cosine Similarity)이란 뭘까?

by 으노으뇨 2025. 4. 2.
728x90
반응형
SMALL

시맨틱 검색은 문장의 의미적 유사성(Semantic Similarity)을 기반으로 검색을 수행하는 기법이다. 이는 전통적인 키워드 검색과 달리 단순한 단어 일치(matching) 방식이 아닌 문맥과 의미를 고려하는 방식이다. 이 과정에서 문장 임베딩(Sentence Embedding)을 생성하고, 이를 기반으로 벡터 검색(Vector Search)을 수행한다.

이러한 시맨틱 검색의 핵심 요소 중 하나가 코사인 유사도(Cosine Similarity)이다. 코사인 유사도는 두 개의 벡터가 이루는 각도를 기반으로 유사성을 측정하는 방식으로, 텍스트 검색, 추천 시스템, 클러스터링, 정보 검색 등에 널리 활용된다.


1. 코사인 유사도(Cosine Similarity)의 정의

코사인 유사도는 두 벡터 사이의 각도를 이용하여 유사도를 측정하는 지표로, 벡터의 크기(길이)가 아닌 방향(direction)을 기반으로 비교한다.

📌 코사인 유사도 공식

여기서:

  • A와 B는 각각의 문장 벡터(sentence embedding)
  • A⋅B는 두 벡터의 내적(dot product)
  • ∥A∥∥B∥는 각각의 벡터 크기(유클리드 노름, Euclidean Norm)

코사인 유사도 값의 범위는 [-1, 1]이며,

  • 11에 가까울수록 두 벡터의 방향이 유사함 (즉, 두 문장이 의미적으로 유사)
  • 00에 가까울수록 관계 없음
  • −1-1에 가까울수록 정반대 의미

2. 코사인 유사도의 유도 과정

(1) 두 벡터의 내적(Dot Product)

두 벡터 A와 B의 내적은 다음과 같이 정의된다.

이는 벡터의 각 차원에서 대응하는 요소끼리 곱한 후 합산한 값이다.

(2) 벡터의 크기(Norm)

각 벡터의 크기(노름)는 다음과 같다.

(3) 코사인 유사도의 도출

코사인 유사도는 두 벡터가 이루는 각도 θ코사인 값을 이용하여 정의된다.

즉, 두 벡터가 이루는 각도가 작을수록(벡터의 방향이 비슷할수록) 코사인 값이 1에 가까워지고, 각도가 90도일 경우 0, 반대 방향이면 -1이 된다.


3. 코사인 유사도가 유용한 이유

📌 코사인 유사도는 왜 텍스트 비교에 적합한가?

  1. 문장의 길이 차이를 보정할 수 있다.
    • 두 문장의 길이가 다르더라도, 방향이 유사하면 높은 유사도로 측정됨.
    • 예: "나는 밥을 먹었다." 와 "나는 오늘 아침에 맛있는 밥을 먹었다." → 단어 수는 다르지만 의미가 유사함.
  2. 문장의 문맥을 비교할 수 있다.
    • 같은 키워드를 포함하지 않아도 의미가 비슷하면 높은 유사도를 가짐.
    • 예: "자동차" 와 "승용차"
  3. TF-IDF, Word2Vec, BERT와 결합하여 더욱 강력한 성능을 발휘
    • Word2Vec이나 BERT 등으로 임베딩된 벡터를 사용하면 의미 기반 비교 가능.

4. 코사인 유사도의 가설 및 증명

코사인 유사도는 다음과 같은 가정을 기반으로 한다.

📌 가설: 문서의 의미는 단어 벡터 공간에서 방향으로 표현될 수 있다.

  • 단어의 출현 빈도가 중요한 TF-IDF와 달리, 문장의 의미는 단어 간의 관계와 맥락(Context) 속에서 결정됨.
  • 즉, 단어의 등장 횟수보다는 단어 벡터 간의 방향이 문서 의미를 더 잘 반영할 수 있다는 가설을 기반으로 한다.

이를 수학적으로 증명하면,

  1. 두 벡터의 방향이 같을수록(코사인 값이 1에 가까울수록) 의미적으로 유사한 문서임을 확인할 수 있다.
  2. 벡터의 크기를 정규화함으로써 단어 수의 차이에 따른 영향을 최소화할 수 있다.

📌 결론: 코사인 유사도는 문서 간 의미 비교를 위한 유용한 방법론임을 수학적으로 증명할 수 있다.


5. 현실에서의 응용 및 발전 가능성

(1) 검색 엔진 및 정보 검색

  • 구글, 네이버, 빙(Bing) 등의 검색 엔진에서 사용
  • 기존의 키워드 검색과 결합하여 하이브리드 검색 시스템 구축

(2) 추천 시스템(Recommendation Systems)

  • 넷플릭스, 유튜브에서 사용자 시청 이력을 벡터화하여 비슷한 취향의 콘텐츠 추천

(3) 문서 분류 및 클러스터링

  • 뉴스 기사 자동 분류, 스팸 메일 필터링 등
  • 의미적으로 유사한 문서끼리 그룹화 가능

(4) 챗봇과 자연어 처리(NLP) 모델

  • 챗봇이 사용자의 의도를 정확히 이해하기 위해 문장 간 유사도를 평가하는 데 활용됨.

6. 시맨틱 검색의 발전 가능성과 미래

  • 기존 키워드 기반 검색보다 의미적 검색(Semantic Search)이 훨씬 높은 검색 정확도를 제공
  • Transformer 기반 모델(BERT, GPT, T5 등)과 결합하여 더욱 정교한 문맥 분석 가능
  • 벡터 검색 기술(FAISS, ANN)을 활용한 대규모 데이터 처리 가능성 증가
  • 멀티모달 검색(텍스트 + 이미지 + 음성 검색 통합) 기술로 발전 가능

7. 결론

코사인 유사도는 벡터 공간에서 문장의 의미적 유사성을 평가하는 강력한 방법으로, 검색 엔진, 추천 시스템, 챗봇 등 다양한 분야에서 활용되고 있다. 특히, BERT, GPT와 같은 최신 NLP 기술과 결합하면서 시맨틱 검색의 정밀도가 향상되고 있으며, 앞으로 멀티모달 검색과 결합하여 더욱 진화할 가능성이 크다. 

📌 핵심 요약:

  • 코사인 유사도는 문장의 방향을 비교하여 의미적 유사성을 평가하는 방법
  • 검색 엔진, 추천 시스템, 챗봇 등 다양한 분야에서 활용됨
  • Transformer 모델과 결합하여 더욱 정교한 검색 성능을 제공
  • 멀티모달 검색(텍스트 + 이미지 + 음성)으로 발전 가능
728x90
반응형
LIST

댓글