워드 임베딩(Word Embedding)은 자연어 처리(NLP)에서 단어를 실수 값 벡터로 표현하는 기법이다. 임베딩은 텍스트 분석에 사용되며, 일반적으로 벡터 공간에서 더 가까운 거리에 위치한 단어일수록 의미가 유사할 것으로 예상되는 방식으로 단어의 의미를 인코딩한다. 워드 임베딩은 언어 모델링과 특징 학습(feature learning) 기술을 통해 얻을 수 있으며, 어휘의 단어나 구문이 실수 벡터에 매핑된다.
이 매핑을 생성하는 방법에는 신경망(neural networks), 단어 동시 발생 행렬(word co-occurrence matrix)의 차원 축소, 확률 모델, 설명 가능한 지식 기반 방법, 단어가 나타나는 맥락에 따른 명시적 표현 등이 포함된다. 단어 및 구문 임베딩을 기본 입력 표현으로 사용할 경우 구문 분석(syntactic parsing) 및 감정 분석(sentiment analysis)과 같은 NLP 작업의 성능이 향상되는 것으로 나타났다.
배경 및 발전
분포 의미론(distributional semantics)의 관점에서 워드 임베딩 또는 의미 특징 공간 모델은 오랫동안 지식 표현 방식으로 사용되어 왔다. 이러한 모델은 대규모 언어 데이터에서 단어의 분포적 특성을 기반으로 언어 항목 간의 의미적 유사성을 정량화하고 분류하는 것을 목표로 한다. "단어는 그 주변의 맥락에 의해 특징지어진다"는 기본 아이디어는 1957년 존 루퍼트 퍼스(John Rupert Firth)의 논문에서 제안되었으며, 동시대의 검색 시스템 연구와 인지 심리학에도 그 뿌리를 두고 있다.
초기 의미 공간 모델의 1세대는 정보 검색을 위한 벡터 공간 모델(vector space model)이다. 가장 단순한 형태로 구현된 단어 및 분포 데이터의 벡터 공간 모델은 고차원의 매우 희소한(sparse) 벡터 공간을 생성한다. 특이값 분해(SVD)와 같은 선형 대수적 방법을 사용하여 차원을 축소함으로써 1980년대 후반 잠재 의미 분석(Latent Semantic Analysis, LSA)이 도입되었고, 2000년에는 벤지오(Bengio) 등의 연구진이 "신경 확률적 언어 모델(Neural Probabilistic Language Models)" 시리즈 논문을 통해 "단어의 분산 표현(distributed representation for words)"을 학습하는 방식으로 단어 표현의 고차원성을 줄이는 방법을 제시하였다.
2013년 구글의 토마스 미콜로프(Tomas Mikolov) 팀이 개발한 Word2Vec은 이전 접근법보다 빠르게 벡터 공간 모델을 학습할 수 있는 워드 임베딩 도구 키트이다. Word2Vec의 등장은 워드 임베딩에 대한 연구와 실용적 응용의 관심을 크게 높이는 계기가 되었다.
주요 기법
워드 임베딩을 생성하는 대표적인 기법은 다음과 같다.
- Word2Vec: CBOW(Continuous Bag of Words)와 Skip-gram 두 가지 모델을 제공한다. CBOW는 주변 단어(context words)로부터 중심 단어(target word)를 예측하는 방식이고, Skip-gram은 중심 단어로부터 주변 단어를 예측하는 방식이다.
- GloVe(Global Vectors for Word Representation): 스탠퍼드 대학교에서 개발한 방법으로, 단어 동시 발생 행렬(word co-occurrence matrix)의 통계적 정보를 활용하여 임베딩을 학습한다.
- FastText: 페이스북에서 개발한 방법으로, 단어를 문자 n-gram 단위로 분해하여 학습하므로 모르는 단어(OOV, Out-of-Vocabulary)에 대해서도 임베딩을 생성할 수 있다.
- ELMo(Embeddings from Language Models): 문맥에 따라 단어의 임베딩이 달라지는(contextualized) 표현을 제공한다.
- BERT(Bidirectional Encoder Representations from Transformers): 양방향 문맥을 고려한 사전 학습 모델로, 단어 수준이 아닌 토큰 수준의 임베딩을 생성하여 다의어(polysemy)를 효과적으로 처리한다.
다의어와 동음이의어 문제
전통적인 정적(static) 워드 임베딩의 주요 한계 중 하나는 여러 의미를 가진 단어가 하나의 단일 벡터로 표현된다는 점이다. 즉, 다의어(polysemy)와 동음이의어(homonymy)가 적절히 처리되지 않는다. 예를 들어 "club"이라는 단어는 샌드위치, 클럽하우스, 골프 클럽 등 다양한 의미를 가질 수 있지만, 정적 임베딩에서는 하나의 벡터로 표현된다. 이러한 문제를 해결하기 위해 다중 의미 임베딩(multi-sense embeddings) 연구가 진행되었으며, 2010년대 후반부터는 ELMo, BERT와 같은 문맥 기반(contextualized) 임베딩이 등장하여 각 단어의 발생마다 서로 다른 임베딩을 부여함으로써 이 문제를 완화하였다.
윤리적 함의
워드 임베딩은 학습 데이터에 포함된 편향(bias)과 고정관념을 그대로 반영할 수 있다. 볼루크바시(Bolukbasi) 등의 2016년 연구에 따르면, 구글 뉴스 텍스트로 학습된 Word2Vec 임베딩에서 "남성은 프로그래머, 여성은 주부"와 같은 성별 고정관념이 발견되었다. 이러한 편향은 임베딩을 활용하는 응용 시스템에 그대로 전파되거나 증폭될 수 있으므로 주의가 필요하다.
소프트웨어
워드 임베딩의 학습 및 사용을 위한 주요 소프트웨어로는 Word2Vec, GloVe, fastText, Gensim, Deeplearning4j, AllenNLP의 ELMo, BERT 등이 있다. 차원 축소 및 시각화를 위해서는 PCA, t-SNE, UMAP 등이 사용된다.