임베딩과 벡터 — 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
왕 - 남자 + 여자 ≈ 여왕
의학 버전으로 하면:
내과 - 성인 + 소아 ≈ 소아과
심장내과 - 심장 + 폐 ≈ 호흡기내과
벡터 공간에서 “성별”이나 “장기”같은 개념이 방향으로 인코딩되어 있기 때문이다. 이건 누가 프로그래밍한 게 아니라, 대량의 텍스트를 학습하면서 자연스럽게 형성된다.
의료에서 임베딩이 쓰이는 곳
- 유사 논문 검색
내가 읽고 있는 논문의 임베딩 벡터를 구하고, 데이터베이스에서 가장 가까운 벡터를 가진 논문을 찾으면 → 키워드가 달라도 의미적으로 관련된 논문을 찾을 수 있다.
“고혈압 치료”로 검색하면 “antihypertensive therapy”, “BP management”, “혈압 조절” 관련 논문이 모두 나온다.
- RAG의 핵심 기술
RAG에서 “관련 문서를 검색”하는 단계가 바로 임베딩 유사도 검색이다.
질문: "메트포르민 부작용은?"
→ 질문을 벡터로 변환
→ 문서 DB에서 가장 가까운 벡터를 가진 문서 검색
→ 메트포르민 관련 가이드라인/논문이 검색됨
- 환자 유사도 분석
환자의 임상 데이터(나이, 성별, 검사치, 진단코드)를 벡터로 변환하면, “이 환자와 비슷한 과거 환자”를 찾을 수 있다. 비슷한 환자의 치료 결과를 참고해서 예후를 예측하는 데 쓰인다.
- 의학 용어 표준화
병원마다 같은 질환을 다르게 기록한다:
- “DM”, “당뇨”, “Type 2 DM”, “T2DM”, “제2형 당뇨병”
임베딩으로 이것들이 모두 같은 벡터 근처에 있다는 걸 확인하면, 자동으로 표준 용어로 매핑할 수 있다.
대표적인 임베딩 모델
| 모델 | 개발사 | 차원 수 | 특징 |
|---|---|---|---|
| text-embedding-3-small | OpenAI | 1536 | 범용, API로 쉽게 사용 |
| text-embedding-3-large | OpenAI | 3072 | 더 높은 정확도 |
| Voyage-3 | Voyage AI | 1024 | 코드/기술 문서에 강함 |
| BGE-M3 | BAAI | 1024 | 다국어 지원, 오픈소스 |
| PubMedBERT | Microsoft | 768 | 의학 논문 특화 |
의학 분야에서는 PubMedBERT 계열이 일반 모델보다 의학 용어 유사도를 더 정확하게 잡아낸다.
핵심 정리
- 임베딩 = 텍스트를 숫자 배열(벡터)로 변환. 의미가 비슷하면 벡터가 가까움
- RAG, 유사 논문 검색, 환자 유사도 분석 등의 핵심 기술
- 의학 특화 임베딩 모델(PubMedBERT)이 일반 모델보다 의학 맥락에서 정확
임상 적용
| 활용 | 도구 | 난이도 |
|---|---|---|
| 유사 논문 검색 | Semantic Scholar, Elicit | 쉬움 |
| 문서 기반 Q&A (RAG) | NotebookLM, ChatPDF | 쉬움 |
| 의학 용어 매핑 | PubMedBERT + 코딩 | 중간 |
| 환자 유사도 분석 | 커스텀 개발 필요 | 어려움 |