다중 의미를 위한 효율적인 비모수적 워드 임베딩 학습
본 논문은 Skip‑gram 모델을 확장해 단어마다 여러 개의 의미별 벡터를 동시에 학습한다. 고정된 의미 수를 갖는 MSSG와, 문맥 거리 기반으로 의미 수를 자동 결정하는 비모수적 NP‑MSSG를 제안한다. 의미 구분과 임베딩 학습을 온라인으로 공동 최적화함으로써 기존 방법보다 27배 빠르게 10억 토큰 규모 코퍼스를 6시간 내에 처리하고, SCWS·WordSim353·Google Analogy 등에서 최첨단 성능을 달성한다.
저자: Arvind Neelakantan, Jeevan Shankar, Alex
본 논문은 최근 NLP 분야에서 널리 사용되는 밀집형 워드 임베딩이 대부분 단일 벡터만을 제공한다는 근본적인 문제점을 지적한다. 단어는 다의성을 갖는 경우가 빈번함에도 불구하고, 기존 Skip‑gram이나 CBOW 같은 로그선형 모델은 각 형태소에 하나의 고정된 벡터만을 할당한다. 이는 의미가 서로 다른 상황에서 같은 벡터를 사용하게 만들어, 의미 간 불필요한 삼각 부등식(triangle inequality) 문제를 야기하고, downstream 작업에서 성능 저하를 초래한다.
이에 저자들은 Skip‑gram 모델을 기반으로 다중 의미 임베딩을 동시에 학습하는 두 가지 모델을 제안한다. 첫 번째는 고정된 K개의 의미를 갖는 MSSG(Multi‑sense Skip‑gram)이며, 두 번째는 비모수적 방법인 NP‑MSSG(Non‑Parametric MSSG)이다. 두 모델 모두 “전역 벡터”(global vector)와 “의미 벡터”(sense vector)를 구분한다. 전역 벡터는 모든 토큰에 대해 동일하게 사용되며, 컨텍스트 평균(v_context)을 계산할 때 활용된다. 의미 벡터는 특정 의미 클러스터에 할당된 토큰에만 업데이트된다.
MSSG의 학습 절차는 다음과 같다. 각 토큰 w_t에 대해 주변 컨텍스트 c_t를 정의하고, 그 컨텍스트 단어들의 전역 벡터를 평균해 v_context를 만든다. 이후 현재 단어 w_t가 보유한 K개의 클러스터 중심 µ(w_t, k)와 v_context 사이의 코사인 유사도를 계산해 가장 높은 유사도를 보이는 k*를 선택한다. 선택된 클러스터 k*는 해당 토큰의 의미 s_t가 된다. 그런 다음, 기존 Skip‑gram의 부정 샘플링 방식을 그대로 적용해, 선택된 의미 벡터 v_s(w_t, s_t)와 컨텍스트 단어들의 전역 벡터를 사용해 로그우도 J(θ)를 최대화한다. 동시에, 클러스터 중심 µ(w_t, s_t)도 v_context와의 평균으로 업데이트한다. 이 과정은 전체 코퍼스를 한 번 순회하면서 온라인으로 진행되며, 의미 구분과 임베딩 학습이 동시에 이루어진다.
NP‑MSSG는 MSSG의 고정 K 제한을 없앤다. 초기에는 각 단어에 의미가 없으며, 첫 번째 등장 시점에 새로운 의미와 클러스터를 생성한다. 이후 토큰이 등장할 때마다 v_context와 기존 클러스터 중심들 사이의 최대 유사도가 사전 정의된 임계값 λ보다 작으면 새로운 클러스터와 의미 벡터를 추가한다. 이는 Meyerson(2001)의 온라인 시설 위치 알고리즘을 차용한 것으로, 데이터에 따라 의미 수가 자동으로 조절된다. 따라서 고빈도 다의어는 여러 의미를, 저빈도 단어는 하나 혹은 두 개의 의미만을 갖게 된다.
학습 효율성 측면에서, 기존 다중 의미 임베딩 방법(Huang et al., 2012)은 먼저 컨텍스트를 클러스터링하고, 그 결과를 이용해 재라벨링한 뒤 별도로 임베딩을 학습하는 두 단계 프로세스로 수 일에서 수 주가 소요되었다. 반면 제안된 MSSG/NP‑MSSG는 Skip‑gram의 부정 샘플링과 효율적인 행렬 연산을 그대로 활용해, 1 B 토큰 규모의 위키피디아 데이터셋을 단일 머신(8‑core CPU, 12 GB RAM)에서 6시간 이내에 학습한다. 이는 기존 방법 대비 약 27배 빠른 속도이다.
실험에서는 세 가지 주요 벤치마크를 사용했다. 첫째, SCWS(Word Similarity in Context)에서는 각 단어 쌍에 문맥을 제공하고 인간 평가와의 상관관계를 측정한다. MSSG와 NP‑MSSG는 기존 단일‑벡터 Skip‑gram 및 Huang et al.보다 높은 Pearson/Spearman 상관계수를 기록했다. 둘째, WordSim‑353에서는 문맥이 없는 일반 단어 유사도 평가에서 비슷한 수준의 성능을 보였으며, 다의어가 포함된 경우 특히 우수했다. 셋째, Google Analogy 테스트에서는 의미 선택이 필요한 “capital‑city”와 같은 관계에서 기존 단일‑벡터보다 크게 개선되었으며, 특히 다의어가 포함된 질문에서 두드러진 성능 향상을 보였다.
정성적 분석에서는 의미별 이웃 단어를 시각화해, 같은 의미를 공유하는 단어들이 동일 클러스터에 모이고, 다른 의미는 명확히 구분되는 것을 확인했다. 예를 들어 “plant”는 “factory”와 “seed” 클러스터, “bank”는 “river”와 “finance” 클러스터로 구분되었다.
결론적으로, 이 논문은 (1) 의미 구분과 임베딩 학습을 공동 최적화함으로써 의미 클러스터가 점진적으로 정제되는 피드백 루프를 만들고, (2) 비모수적 클러스터링을 통해 의미 수를 데이터에 맞게 자동 조절하며, (3) 기존 방법 대비 1~2 orders of magnitude 빠른 학습 속도로 대규모 코퍼스에 적용 가능하다는 세 가지 핵심 기여를 제시한다. 향후 연구에서는 클러스터 중심을 전역 벡터가 아닌 의미‑가중치 벡터로 업데이트하거나, 문맥의 순서 정보를 활용하는 확장 모델을 고안함으로써 더욱 정교한 다의어 표현을 얻을 수 있을 것으로 기대된다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기