단어들의 벡터 공간 표현 학습에 관한 최근의 방법론들은 벡터 사칙연산을 활용한 미세한(fine-grained) 의미적(semantic) 및 통사적(syntactic) 규칙성들을 포착하는 데 성공했으나, 이러한 규칙성들의 근원은 여전히 불투명한 채로 남아있다. 우리는 이러한 규칙성들을 단어 벡터들에 나타내기 위해 필요한 모형의 특성들을 분석하고 명시하였다. 이 결과는 새로운 전체 구조(global) 로그-양선형(log-bilinear) 회귀 모형으로, 이러한 맥락에서 주요 두 가지 모형인 전체 구조 행렬 분해(global matrix factorization)와 부분 구조 문맥 윈도우(local context window) 방법의 장점을 결합하였다. 우리의 모형은 거대한 말뭉치 내 전체 희소 행렬이나 개별적인 문맥 윈도우로 훈련하는 대신 단어 대 단어 동시등장 행렬(word-word co-occurrence matrix)의 0이 아닌 원소들에 대해서만 훈련하여 효율적으로 통계적 정보를 활용한다. 본 모형은 의미있는 세부구조를 가진 벡터 공간을 형성해내며, 최근 단어 추론 태스크에서 75%의 성능을 내며 이를 입증하였다. 이는 또한 유사한 과제들 및 개체명 인식 분야에서 관련된 모델들을 능가했다.
1
, 나머지 원소들은 0
인 값을 갖는 벡터를 만듭니다.from nltk.corpus import wordnet as wn
으로 사용할 수 있습니다.Direct Prediction
Count-based
위에서 살펴봤듯, 단어를 벡터로 표현하는 대표적인 방식인 Word2Vec과 LSA는 완전히 다른 관점을 취합니다.
Word2Vec은 정해진 윈도우 사이즈 안의 단어들만을 갖고 훈련을 진행합니다. 따라서 정해진 시야 안의 구조만을 학습할 수 있기 때문에, local structure는 굉장히 잘 학습한다는 특징을 갖고 있습니다. 다만, 단어 전체가 갖는 어떤 통계적 정보 혹은 global structure는 이용하지 않는다는 단점이 존재합니다. 또한, logit을 확률로 변환하기 위해 softmax 함수를 적용하는데, computation cost가 굉장하다는 단점이 있습니다. 그리고 무엇보다 벡터 공간 상에 의미 구조를 나타내기 때문에, 유사도나 거리 개념 등을 다양한 분야에서 활용이 가능합니다.
LSA의 경우는 document 전체의 단어 빈도수(term frequency) 혹은 TF-IDF를 이용하게 되는데, 이 덕분에 단어들의 통계적 정보를 적극 활용할 수 있다는 장점이 있습니다. 그러나 문제는 새로운 단어가 1개만 추가되더라도, SVD를 다시 수행해야 하며 결과값들이 모두 바뀌게 된다는 단점이 존재합니다. 따라서 역동적으로 변화하고 새로운 단어들이 만들어지는 환경 속에서 변화하는 모델을 만들기는 어렵습니다. 또한, 성능이 좋지 않으며, 자주 등장하는 단어들에 대해 별도의 전처리가 필요합니다.