자연어 처리에서 단어 임베딩은 단어의 의미를 인코딩하는 실수 값 벡터로 단어를 표현하는 방식이다. 핵심 아이디어는 벡터 공간에서 더 가까운 단어일수록 의미가 유사할 것이라는 기대에 기반하며, 이를 통해 의미적 관계에 대한 정량적 분석이 가능해진다. 단어 임베딩은 일반적으로 언어 모델링과 특징 학습 기법을 통해 얻어지며, 어휘집의 단어나 구를 숫자 벡터로 매핑한다. 이러한 표현은 입력 특징으로 사용될 때 구문 분석 및 감성 분석과 같은 작업에서 성능을 향상시키는 것으로 입증되었다.
단어 임베딩을 생성하는 방법에는 신경망, 단어 동시 발생 행렬에 대한 차원 축소, 확률적 모델, 맥락의 명시적 표현 등이 포함된다. 이 접근법은 초기 의미 공간 모델에서 현대 딥러닝 기법으로 발전해 왔으며, 자연어 이해 시스템의 초석이 되었다.
발전과 역사
"단어는 그 주변 환경에 의해 특징지어진다"는 근본적인 아이디어는 1957년 존 루퍼트 퍼스의 기사에서 제안되었으며, 분포 의미론에 뿌리를 두고 있다. 정보 검색을 위한 벡터 공간 모델과 같은 초기 의미 공간 모델은 단어를 희소하고 고차원적인 공간으로 표현했다. 특이값 분해를 통한 차원 축소는 1980년대 후반 잠재 의미 분석으로 이어졌다. 2000년, 요슈아 벤지오와 동료들은 단어에 대한 분산 표현을 학습하고 차원을 줄이는 신경 확률 언어 모델을 도입했다. 2002년 NeurIPS 연구는 이중 언어 말뭉치에 커널 CCA를 적용했는데, 이는 단어 임베딩을 위한 자기 지도 학습의 초기 사례였다.
벤지오와 다른 연구자들의 기초 작업 이후, 약 2005년 이후의 대부분의 새로운 기법은 신경망 아키텍처에 의존했다. 2013년, 토마스 미콜로프가 이끄는 구글 팀은 이전 접근법보다 빠르게 벡터 공간 모델을 훈련하는 도구인 word2vec을 만들었고, 이는 단어 임베딩을 널리 대중화했다. 이후 연구로는 단어를 부분적으로 문자 n-그램으로 표현하는 fastText가 있다.
다의어와 동음이의어
정적 단어 임베딩의 주요 한계는 여러 의미를 가진 단어가 단일 벡터로 통합되어 다의어와 동음이의어를 처리하지 못한다는 점이다. 예를 들어, "club"은 샌드위치, 클럽하우스 또는 골프 클럽을 가리킬 수 있다. 다중 의미 임베딩은 각 의미에 서로 다른 벡터를 할당하여 이를 해결한다. 접근법에는 단어 의미 판별과 임베딩을 동시에 수행하는 MSSG(Multi-Sense Skip-Gram)와 단어당 가변적인 의미 수를 허용하는 NP-MSSG(Non-Parametric Multi-Sense Skip-Gram)가 포함된다. MSSA(Most Suitable Sense Annotation)는 WordNet과 같은 어휘 데이터베이스와 단어 의미 중의성 해소를 자기 개선 방식으로 결합한다.
다중 의미 임베딩은 품사 태깅, 의미 관계 식별, 감성 분석과 같은 작업에서 성능을 향상시킨다. 2010년대 후반 기준으로 ELMo와 BERT와 같은 맥락 기반 임베딩은 토큰 수준 표현을 제공하며, 단어의 각 발생이 고유한 임베딩을 가지므로 다의어적 특성을 더 잘 반영한다.
생물학적 서열
단어 임베딩은 생물정보학 응용을 위해 DNA, RNA, 단백질과 같은 생물학적 서열로 확장되었다. Asgari와 동료들은 생물학적 서열의 n-그램에 임베딩 기법을 적용하여 기능적 및 구조적 유사성 분석을 가능하게 하는 BioVectors를 제안했다.
응용 및 영향
단어 임베딩은 Machine learning 및 Deep learning 모델에서 널리 사용되며, 텍스트 분류, 기계 번역, 질문 응답과 같은 작업의 입력 표현으로 활용된다. 이는 토큰 수준 임베딩을 기반으로 하는 Large language model 및 Transformer (architecture) 아키텍처의 필수 요소이다. 이 기법은 University of Toronto 및 Stanford AI Lab과 같은 기관의 연구에 영향을 미쳤으며, Google DeepMind 및 OpenAI와 같은 회사의 도구에 구현되어 있다.
향후 방향
희귀 단어에 대한 임베딩 개선, 교차 언어 정렬, 도메인 특화 응용에 대한 연구가 계속되고 있다. 맥락 기반 임베딩으로의 전환은 많은 응용에서 정적 임베딩을 대체했지만, 정적 임베딩은 효율성과 해석 가능성 측면에서 여전히 유용하다.