임베딩과 벡터 — AI가 의미를 이해하는 방법

…

한줄 요약

임베딩은 단어를 숫자 좌표로 바꾸는 것이다. 의미가 비슷한 단어는 좌표 공간에서 가까이 위치한다.

본문

컴퓨터는 글자를 모른다

컴퓨터가 처리할 수 있는 것은 오직 숫자다. “고혈압”이라는 글자 자체에는 컴퓨터가 이해할 수 있는 의미가 없다.

그래서 텍스트를 숫자로 바꿔야 한다. 가장 원시적인 방법은 사전 순서대로 번호를 매기는 것이다.

가정의학과 → 1
고혈압 → 2
당뇨병 → 3
HTN → 4

하지만 이 방식은 치명적 결함이 있다: “고혈압(2)“과 “HTN(4)“이 같은 의미라는 걸 숫자만으로는 알 수 없다. 오히려 “고혈압(2)“이 “당뇨병(3)“에 더 가깝게 보인다.

임베딩이 해결한다

임베딩(Embedding)은 단어를 하나의 숫자가 아니라 숫자 배열(벡터) 로 표현한다. 이 벡터는 수백~수천 차원의 좌표다.

고혈압 → [0.82, 0.15, 0.91, 0.33, ...]  (768개의 숫자)
HTN    → [0.81, 0.14, 0.90, 0.34, ...]  ← 거의 같다!
당뇨병 → [0.75, 0.22, 0.85, 0.41, ...]  ← 관련 있지만 다르다
요리   → [0.12, 0.88, 0.05, 0.72, ...]  ← 완전히 다르다

핵심: 의미가 비슷한 단어는 벡터 공간에서 가까이 위치한다.

2차원으로 단순화하면 이렇게 시각화된다:

        질환 관련도 ↑

   1.0  ·고혈압  ·HTN
        ·동맥경화
   0.8
        ·당뇨병
   0.6  ·고지혈증

   0.4
        ·감기
   0.2
                    ·요리  ·레시피
   0.0 ─────────────────────────→
        0.0   0.2   0.4   0.6   0.8   1.0
                                  생활 관련도

임베딩은 어떻게 만들어지나

임베딩 모델은 대량의 텍스트를 학습하면서 함께 등장하는 단어들을 가까이 배치하도록 훈련된다.

의학 교과서에서:

  • “고혈압”과 “HTN”은 항상 같은 맥락에서 등장 → 벡터가 거의 같아짐
  • “고혈압”과 “ACE inhibitor”도 자주 함께 등장 → 벡터가 가까워짐
  • “고혈압”과 “파스타 레시피”는 거의 함께 등장하지 않음 → 벡터가 멀어짐

이것이 바로 AI가 “의미를 이해하는” 방식이다. 실제로 의미를 이해하는 게 아니라, 통계적으로 비슷한 맥락에서 쓰이는 것들을 가까이 놓는 것이다.

임베딩의 신기한 성질: 벡터 연산

임베딩의 가장 유명한 발견:

King - Man + Woman ≈ Queen
왕   - 남자 + 여자  ≈ 여왕

의학 버전으로 하면:

내과 - 성인 + 소아 ≈ 소아과
심장내과 - 심장 + 폐 ≈ 호흡기내과

벡터 공간에서 “성별”이나 “장기”같은 개념이 방향으로 인코딩되어 있기 때문이다. 이건 누가 프로그래밍한 게 아니라, 대량의 텍스트를 학습하면서 자연스럽게 형성된다.

의료에서 임베딩이 쓰이는 곳

  1. 유사 논문 검색

내가 읽고 있는 논문의 임베딩 벡터를 구하고, 데이터베이스에서 가장 가까운 벡터를 가진 논문을 찾으면 → 키워드가 달라도 의미적으로 관련된 논문을 찾을 수 있다.

“고혈압 치료”로 검색하면 “antihypertensive therapy”, “BP management”, “혈압 조절” 관련 논문이 모두 나온다.

  1. RAG의 핵심 기술

RAG에서 “관련 문서를 검색”하는 단계가 바로 임베딩 유사도 검색이다.

질문: "메트포르민 부작용은?"
→ 질문을 벡터로 변환
→ 문서 DB에서 가장 가까운 벡터를 가진 문서 검색
→ 메트포르민 관련 가이드라인/논문이 검색됨
  1. 환자 유사도 분석

환자의 임상 데이터(나이, 성별, 검사치, 진단코드)를 벡터로 변환하면, “이 환자와 비슷한 과거 환자”를 찾을 수 있다. 비슷한 환자의 치료 결과를 참고해서 예후를 예측하는 데 쓰인다.

  1. 의학 용어 표준화

병원마다 같은 질환을 다르게 기록한다:

  • “DM”, “당뇨”, “Type 2 DM”, “T2DM”, “제2형 당뇨병”

임베딩으로 이것들이 모두 같은 벡터 근처에 있다는 걸 확인하면, 자동으로 표준 용어로 매핑할 수 있다.

대표적인 임베딩 모델

모델개발사차원 수특징
text-embedding-3-smallOpenAI1536범용, API로 쉽게 사용
text-embedding-3-largeOpenAI3072더 높은 정확도
Voyage-3Voyage AI1024코드/기술 문서에 강함
BGE-M3BAAI1024다국어 지원, 오픈소스
PubMedBERTMicrosoft768의학 논문 특화

의학 분야에서는 PubMedBERT 계열이 일반 모델보다 의학 용어 유사도를 더 정확하게 잡아낸다.

핵심 정리

  • 임베딩 = 텍스트를 숫자 배열(벡터)로 변환. 의미가 비슷하면 벡터가 가까움
  • RAG, 유사 논문 검색, 환자 유사도 분석 등의 핵심 기술
  • 의학 특화 임베딩 모델(PubMedBERT)이 일반 모델보다 의학 맥락에서 정확

임상 적용

활용도구난이도
유사 논문 검색Semantic Scholar, Elicit쉬움
문서 기반 Q&A (RAG)NotebookLM, ChatPDF쉬움
의학 용어 매핑PubMedBERT + 코딩중간
환자 유사도 분석커스텀 개발 필요어려움

관련 글