벡터란? — King - Man + Woman = Queen
벡터는 크기와 방향을 가진 수의 배열. 단어 임베딩으로 의미를 숫자로 표현한다.
AI가 '왕'과 '여왕'이 비슷한 관계라는 것을 어떻게 알까? 비밀은 단어를 숫자 벡터로 변환하는 것에 있다. King - Man + Woman = Queen, 이 마법 같은 수식이 벡터 공간에서 성립한다. 벡터 — AI가 단어의 의미를 숫자로 표현하는 핵심 도구이다.
벡터는 크기와 방향을 가진 숫자들의 나열입니다
| 용어 | 설명 |
|---|---|
| 벡터 | 크기와 방향을 가진 수의 배열, 의미를 숫자로 표현 |
| 임베딩 | 단어·문장을 고정 길이 벡터로 변환하는 것 |
[3, 4]는 '오른쪽 3, 위로 4' 만큼의 이동입니다
AI에서는 수백~수천 차원의 벡터를 사용합니다
벡터(Vector), 차원(Dimension), 임베딩(Embedding)
벡터 = 숫자들의 순서 있는 나열 [v₁, v₂, ..., vₙ] 차원 = 벡터 안 숫자의 개수 (n) 임베딩 = 단어/문장을 벡터로 변환하는 것
AI는 단어를 고차원 공간의 점으로 배치합니다
비슷한 의미의 단어는 가까이, 다른 의미는 멀리 배치됩니다
'왕' ↔ '여왕' = 가까움, '왕' ↔ '바나나' = 멀리
Word2Vec, GloVe, FastText — 초기 임베딩 모델들 GPT/BERT — Transformer 기반 문맥 임베딩 핵심: 비슷한 문맥에서 등장하는 단어 → 비슷한 벡터
벡터 연산으로 단어의 관계를 포착할 수 있습니다
\vec{King} - \vec{Man} + \vec{Woman} \approx \vec{Queen} '왕'에서 '남성성'을 빼고 '여성성'을 더하면 '여왕'이 됩니다. 벡터 공간에서 성별 관계가 방향으로 인코딩되어 있기 때문입니다.
\vec{Paris} - \vec{France} + \vec{Japan} \approx \vec{Tokyo} 수도–나라 관계도 벡터 연산으로 포착됩니다. '파리'에서 '프랑스'를 빼고 '일본'을 더하면 '도쿄'에 근접합니다.
벡터 연산이 의미를 포착하는 이유: 동일한 관계 = 동일한 방향 벡터 King→Queen 방향 ≈ Man→Woman 방향 Paris→France 방향 ≈ Tokyo→Japan 방향
NumPy로 벡터를 만들고 연산해봅시다
NumPy 배열로 벡터를 만들고, 덧셈/뺄셈 연산으로 King-Man+Woman≈Queen을 확인한다.
리스트로 벡터 덧셈과 뺄셈을 구현하고 단어 관계가 어떻게 포착되는지 실험합니다
순수 Python 리스트로 벡터 연산을 구현하여 King-Man+Woman의 결과가 Queen에 가장 가까움을 확인한다.
| 핵심 개념 | 설명 |
|---|---|
| 벡터 | 숫자들의 순서 있는 나열 [v₁, v₂, ..., vₙ] — 크기와 방향을 가짐 |
| 차원 | 벡터 안 숫자의 개수 (n) — GPT는 수백~수천 차원 사용 |
| 임베딩 | 단어·문장을 고정 길이 벡터로 변환하는 것 |
| 벡터 연산과 의미 | 설명 |
|---|---|
| King−Man+Woman≈Queen | 동일한 관계는 벡터 공간에서 동일한 방향으로 인코딩 |
| 의미적 유사성 | 비슷한 문맥의 단어 → 가까운 벡터 위치 |
| NumPy | np.array()로 벡터 생성, +, -, @ 연산자로 벡터 연산 |
임베딩은 LLM 파이프라인의 첫 번째 단계! 토큰 → 벡터 변환 없이는 AI가 언어를 이해할 수 없습니다.
단어 임베딩에서 '비슷한 의미'의 단어들은 벡터 공간에서 어떤 관계를 갖나요?
GPT, BERT 같은 Transformer 모델도 단어를 벡터로 변환하는 임베딩을 사용한다.
벡터 [1, 2, 3]의 차원(dimension)은 얼마인가요?
NumPy에서 v = np.array([1, 2, 3])의 shape은?
Word2Vec에서 "King" - "Man" + "Woman"의 결과 벡터와 가장 가까운 단어는?