워드 임베딩이란
워드 임베딩은 자연어 처리(NLP)에서 단어를 고정 길이의 실수 벡터(밀집 벡터, dense vector)로 변환하는 기술이다.
이 벡터는 단어의 의미적, 문맥적 정보를 수치적으로 담고 있으며, 컴퓨터가 자연어의 의미를 더 잘 이해하고 처리할 수 있도록 돕는다.
워드 임베딩을 통해 의미적으로 유사한 단어는 벡터 공간상에서 가까운 위치에 놓이게 된다.
워드 임베딩의 필요성
- 컴퓨터는 텍스트 데이터를 직접 처리할 수 없기 때문에, 텍스트를 숫자로 변환하는 과정이 필요하다.
- 전통적으로 원-핫 인코딩(One-Hot Encoding) 방식이 사용되었으나, 이 방식은 차원이 매우 높고(희소 벡터, sparse vector), 단어 간 의미적 유사성을 반영하지 못하는 한계가 있다.
- 워드 임베딩은 이러한 한계를 극복하여, 저차원 밀집 벡터로 단어를 표현하고, 의미적 유사성을 반영한다.
워드 임베딩의 원리
- Distributional Hypothesis(분포 가설)에 기반한다.
"같은 맥락(context)에서 사용되는 단어들은 유사한 의미를 가진다"는 가정이다.
- 대량의 텍스트 데이터에서 단어의 등장 패턴, 주변 단어(컨텍스트)를 분석하여 벡터를 학습한다.
- 학습된 임베딩 벡터는 코사인 유사도(cosine similarity) 등으로 단어 간 의미적 유사도를 계산할 수 있다.
워드 임베딩의 특징
- 밀집 벡터: 각 단어는 수십~수백 차원의 실수값 벡터로 표현된다.
- 의미적 관계 반영: 유사한 의미의 단어는 벡터 공간에서 가까운 위치에 있다.
- 차원 축소: 기존 희소 벡터에 비해 훨씬 적은 차원으로 효율적으로 표현된다.
- 벡터 연산 가능: 벡터의 덧셈, 뺄셈 등 연산을 통해 단어 간 관계(예: king - man + woman ≈ queen)를 파악할 수 있다.
대표적인 워드 임베딩 방법
-
Word2Vec: CBOW(주변 단어로 중심 단어 예측), Skip-gram(중심 단어로 주변 단어 예측) 방식이 있다. 자세히
-
GloVe: 전체 말뭉치의 동시 등장 행렬을 기반으로 임베딩을 학습한다. 자세히
-
FastText: 단어를 문자 n-gram 단위로 쪼개어 임베딩, 희귀 단어도 잘 처리할 수 있다. 자세히