이번 페이지에서 소개할 NLP 논문은 Doc2Vec이라고 불리는 논문이다.
일련의 과정들이 이어지면 이해가 쉽기 때문에 이번 페이지에서도,
이전 논문들을 읽지 않았다면 참고해보시기를 권장한다.
Efficient Estimation of Word Representations in Vector Space(Word2Vec)
이번 페이지에서 정리하고자 하는 NLP 논문은 Word2Vec이라고 불리는 논문이다. Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient estimation of word representations in vector space. arXiv..
for-ai-master.tistory.com
Distributed Representations of Words and Phrasesand their Compositionality
이번 페이지에서 정리하고자 하는 NLP 논문은 Word2Vec의 발전모델을 구현한 모델을 제안한 논문이다. 혹시 Word2Vec논문을 읽지 않았다면, 이전 링크를 참고해보도록 하자. 2021.10.28 - [또치의 AI 공부
for-ai-master.tistory.com
Le, Q., & Mikolov, T. (2014, June). Distributed representations of sentences and documents. In International conference on machine learning (pp. 1188-1196). PMLR.
Abstract
- 기존의 많은 머신러닝 알고리즘은 고정된 길이 feature vector표현의 Input을 요구했다.
- 널리 알려진 Bag-of-words(BoW)의 경우 단어 순서를 무시하고, 의미론을 무시한다.
- 이러한 맥락에서 저자들은 'Paragraph Vector'를 소개한다. 이는 비지도 학습 알고리즘으로 문장, 문단, 문서와 같은 text조각으로부터 고정된 feature표현을 학습한다. 특히, 문서 내의 단어를 예측하도록 훈련된 dense vector에 의해 각 문서를 표현한다.
- 이러한 알고리즘은 BoW의 단점을 극복하고자 했으며, 텍스트 표현을 위한 다른 기술의 제한점들을 극복하고자 했다.
- 결론적으로, state-of-the-art를 달성하며 텍스트 분류와 감성 분석 task에 적용된 사례를 보여준다.
1. Introduction
- 텍스트 분류 그리고 군집화는 많은 적용 법에 있어 중요한 역할을 한다. (문서 검색, 웹 검색, 스팸 필터링 등)
- 이러한 task에 적용된 대표적인 알고리즘은 logistic regression 또는 K-means 방법이 있다.
- 앞서 언급한 방법들은 고정된 길이 벡터를 텍스트 input으로 요구한다. 왜냐하면, BoW 또는 Bag-of-n-grams의 경우 간단하며 효율성 있고 종종 높은 정확도를 보여주기 때문이다.
- 하지만, BoW의 경우 단어 순서를 고려하지 않는다는 데에서 단점이 발생한다. 다른 문장이어도 같은 단어를 사용하면 같은 의미를 갖게 된다는 점이 바로 그 예이다.
- 심지어, 짧은 단락 내에서 Bag-of-n-grams가 단어 순서를 고려하더라도 데이터의 sparsity와 높은 차원을 요구하기 때문에 효율적이지 않다.
- 이처럼 BoW와 Bag-of-n-grams는 단어의 semantics(의미론적)에 관하여 덜 민감하거나, 단어 사이에 거리에 대해 더 형식적인 접근을 보여준다. 즉, Powerful, strong, Paris의 의미론적의 차이에도 불구하고 같은 거리 내에 있을 수 있다는 의미이다.
- 본 논문에서는 이를 극복하고자 'Paragraph Vector'를 소개한다. 이는 비지도 학습이며, 텍스트의 조각을 통해 연속적인 분포 벡터를 학습한다. 또한, 길이의 다양성과 문서에서의 문장의 다양한 길이를 적용할 수 있다. 즉, 대용량 문서에서 문장 혹은 구를 원하는 text 조각의 가변 길이만큼 적용할 수 있다.
- 논문의 모델에서, 벡터 표현은 문단 내 단어를 예측하기 위해 훈련된다. 정확하게는, 문단으로부터 몇 개의 단어 벡터와 함께 문단 벡터를 concatenate 하는 것이다. 단어 벡터들과 문단 벡터들은 확률적 경사 하강법과 역전파(backpropagarion) 기법을 통해 훈련된다.
- 문단 벡터는 문단들 사이에 unique 한 반면, 단어 벡터는 공유된다. 그리고, 문맥 벡터는 고정된 단어 벡터들에 의해 추론되며 수렴할 때까지 새로운 문맥 벡터를 훈련한다.
- 이러한 기술은 neural networks(NN)에 영감을 받았다고 한다. 기존 논문들에서 word는 vector로 표현하거나, 문맥 내 다른 단어 벡터와 함께 평균 내어 concatenate 했다. 또한 결과 벡터는 문맥 내 다른 단어를 예측했다.
ex) NN 기반 언어 모델은 몇 개의 이전 단어 벡터들의 concatenate 해서 사용했으며, 다음 단어를 예측하고, 모델 훈련 후 mapping 된 단어 벡터는 의미적으로 더 유사한 단어 벡터와 연관되었다.
- 이러한 모델의 확장으로 문서 내 모든 단어의 weighted average를 사용하고자 했으며, 문장의 구문 분석 tree에서 주어진 순서로 단어 벡터를 결합했다.
- 물론 이러한 점에도 부족한 점들이 있었다. 첫 번째 방법의 경우 단어 벡터들의 weighted averaging를 사용한다면 BoW 방법과 마찬가지로 단어 순서를 고려하지 못한다. 두 번째 방법의 경우 parsing에 의존하기 때문에 오직 문장을 위한 task에서만 접근이 가능하다.
- 이러한 점에서 논문에서 소개하고자 하는 'Paragraph Vector'는 가변 길이의 input sequence의 표현법을 적용 가능하다. general 하게 문장, 문단 그리고 문서에 걸쳐 어떤 길이의 텍스트에도 적용 가능하다. 특히, 단어 가중치 함수의 tuning을 요구하지 않고, parsing도 필요 없다. 벡터의 성능을 증명하기 위해 감성 분석을 시행하였으며, 이보다 더 복잡한 모델보다도 error rate가 16%가량 개선되었다. 분류 task의 경우, BoW과 겨루어볼 때 30%가량의 상대적인 개선이 이루어졌다.
2. Algorithms
2.1 Learning Vector Representation of Words

- 단어의 분포 벡터 표현을 통해 알려진 framework이다. 이 task는 문맥 안에서 주어진 단어들을 통해 다음 단어를 예측한다. 각 단어는 unique vector이며, matrix W의 column으로 mapping 된다.
- column은 vocabulary에서 단어의 위치가 indexed 되며, 벡터의 합과 concatenate는 문장 내에서 다음 단어 예측을 위한 features로 사용된다.
- 주어진 훈련 단어들의 sequence (w1, w2, w3,..., wT)에 대해서 단어 벡터 모델의 목적은 log-probability의 평균을 최대화하는 것이다. (아래 공식 참고)

- 좀 더 직관적으로 표현하면, T개의 단어 개수로 이루어진 sequence가 있다고 가정하자. 이때, t(현재 시점)=k일 때, k이전의 단어 조건들에 대하여 이후 단어들을 하나씩 wt로 대입한 조건부 확률을 구한 뒤 log를 통해 summation 하게 된다.

- 이러한 예측 task는 결국, multiclass 분류기를 사용하는 것과 같기 때문에 위처럼 softmax공식을 사용할 수 있다.

- yi는 각 output word i에 대해 로그 확률을 normalized하지 않은 값이다. U, b는 softmax 파라미터이며, h는 W로부터 추출된 단어 벡터들의 평균이거나 concatenate에 의해 만들어진 것이다.
- 더불어, 이전 논문에서도 언급했듯이, 계층적 softmax를 통해 빠른 학습이 가능했다. (binary Huffman tree는 단어 빈도수에 의해 배열화된 짧은 코드로 구현이 가능하다 > 자세한 건 이전의 논문을 참고하자)
- 신경망 기반 단어 벡터들은 확률적 경사 하강법으로 훈련 가능하다. 또한, backpropagation으로 기울기가 얻어진다.
- 훈련이 끝난 후에 비슷한 단어들은 vector space에서 비슷한 위치에 매핑된다. 또한 단어 벡터들 사이에 차이점은 의미의 차이로 나타난다. 이에 대한 예시는 기존 연구들에서 언급된 algebra를 통한 단어 벡터의 사용법이 이에 해당한다.
2.2 Paragraph Vector: A distributed memory model
- 문맥 벡터는 단어 벡터의 훈련에서 영감을 받았다고 한다. 그래서, 단어 벡터의 랜덤화 된 시작에도 불구하고, 결국 예측 task의 간접적 결과로 의미론적인 것들을 포착할 수 있게 된다.
- 저자들은 문맥 벡터가 문단으로부터 샘플화 되어 주어진 많은 문맥에서 다음 단어를 예측하는데 공헌했다고 한다.

- 문맥 벡터 framework에서, 각 문맥은 unique vector에 매핑되고, matrix D의 column으로 표현된다. 그리고, 각 단어는 unique vector로 매핑되며, matrix W의 column에 의해 표현된다.
- 문맥 벡터 그리고 단어 벡터들은 평균 혹은 concatenate 되어 문맥 안에서 다음 단어를 예측하도록 한다. 저자들은 실험에서 vector들을 combine 하여 concatenate 하는 방법을 사용한다.
- 좀 더 구체적으로, 이전의 (1)식에서 바뀌는 부분은 h가 W 그리고 D를 고려한 값으로 바뀌는 것 밖에 없다.
- paragraph token은 다른 단어로 여겨질 수 있는데, 이것은 현재 문맥으로부터 소실된 무언가를 기억하기 위한 기억 조각 또는 paragraph의 topic으로 행동한다. 이러한 이유로 이 모델을 'Distributed Memory Model of Paragraph Vectors(PV-DM)'이라 한다.
- 특히, 문단 벡터는 같은 문단 내 문맥에서 공유하고 다른 문단과는 공유하지 않는다. 한편, 단어 벡터는 모든 문단에서 공유되며 동일하게 사용된다.
- PV-DM은 각 단계에서 임의의 단락으로부터 고정길이 문맥을 샘플링한다. 그리고, error gradient를 계산하여 매개변수를 update 한다.
- 추론(예측) 단계에서는 새로운 문맥을 위한 문맥 벡터를 추론한다. 이 또한, gradient descent 방법을 통해 구한다. 이 단계에서 단어 벡터 W와 softmax weight는 고정된다.
- N은 말뭉치의 문맥 개수이고, M은 vocabulary의 단어이다. 그리고, 문맥 벡터를 학습하기 위해 p차원으로 매핑한다. 단어는 q차원으로 매핑한다. 결과적으로 N x p + M x q 개의 파라미터로 구성된다. 비록, N이 클 때, 파라미터의 숫자고 커지지만, 훈련 동안 업데이트는 sparse 하게 이루어지므로 효율적으로 이루어진다.
- 훈련 이후, 문단 벡터는 문단을 위한 feature로 사용된다.
- 요약하면, 이 알고리즘의 key는 (1) 단어 벡터를 위한 비지도 학습 훈련이며, (2) 문단 벡터 D를 얻기 위한 추론 단계이다. 또한, (3) classifier를 사용하여, 특정 라벨에 관한 예측을 가능하게 해주는 D를 얻는다.
Advantages of paragraph vectors
- 문단 벡터의 이점은 레이블링 되지 않은 데이터로부터 학습이 가능하다는 점이다.
- 또한, BoW의 약점을 극복했는데, 단어의 의미론적인 부분과 관련하여 단어 벡터의 특성을 그대로 살려냈다. 또한, n그램이 하는 방식과 동일한 방식으로 단어 순서를 고려할 수 있다. n그램 모델은 단어 순서를 포함한 문단의 정보를 보존하기 때문에 이는 매우 중요한 시사점이다.
- 즉, n그램 모델은 고차원의 표현법을 일반화하는 데 있어서는 부족하기 때문에, 문단 벡터가 이를 대체할 수 있을 것이라 판단된다.
2.3 Paragraph Vector without word ordering: Distributed bag of words
- 단어 벡터와 함께 문단 벡터를 concatenate 하는 것은 text window에서 다음 단어를 예측하는 데에 중요하게 고려된다. 또한, input에서 문맥 단어를 무시하는 또 다른 방법은 output의 문단으로부터 랜덤 하게 샘플링된 단어를 예측하게 하여 모델을 강화하는 것이다.
- 확률적 경사 하강법의 반복을 통해, text window를 샘플링하고, text window로부터 랜덤 단어를 샘플링한다. 그리고, 문단 벡터를 통해 classifier를 형성한다. 이러한 방법을 'Distributed Bag of Words version of Paragraph Vector(PV-DBOW)'라고 한다. 이 방법은 PV-DM과 반대되는 방법이다.

- 이 알고리즘을 통해, 문단 벡터는 작은 window size의 범위 내의 단어들을 예측하도록 한다.
- 이 모델은 적은 데이터를 저장하기 때문에, softmax의 weights를 저장하는 것만 필요하다. 또한, Skip-gram model과 유사하다.
- 본 연구의 task 실험 결과 PV-DBOW와 PV-DM의 조합으로 실행했을 때 좋은 성능을 냈다고 한다.
3. Experiments
- 본 연구에서는 감성 분석과 정보 검색 task를 통해 성능을 시험해 본다.
- 감성 분석을 위해 Stanford sentiment treebank dataset과 IMDB dataset을 사용한다. 이러한 데이터 셋의 문서는 길이가 다양하다. 또한, 문서 검색 task는 query에 의해 문서 검색이 가능하도록 한다.
3.1 Sentiment Analysis with the Stanford Sentiment Treebank Dataset
Dataset: 데이터 셋은 11855개의 문장으로 이루어졌는데, 영화 리뷰 사이트로부터 얻어진 문장이다. 이 중 8544개가 훈련을 위해, 2210개가 테스트를 위해, 그리고 1101개가 검증을 위해 사용되었다.
- 데이터셋의 각 문장은 0-1 사이의 scale로 매우 부정부터 매우 긍정까지 레이블링 되어있다.
- 또한, 하위 문구들에 해당하는 레이블링 또한 데이터셋에 포함되었는데 총 239,232개의 레이블 된 구가 있다.
Tasks and Baselines: 5-way fine-grained classification task는 매우 부정, 부정, 중립, 긍정, 매우 긍정으로 구성되어있고, 2-way coarse grained classification은 부정과 긍정으로 나뉘어 있다. 본 연구에서는 전체 문장의 레이블링만을 고려했다고 한다.
- 영화 리뷰는 종종 너무 짧거나 구성성이 긍정과 부정을 결정하는 중요한 역할을 하기 때문에, 단어 간의 유사도가 훈련 데이터셋에서는 중요한 역할을 한다.
Experimental protocols: 연구에서 사용된 모델에서, 각 하위 문구들은 독립정인 문장으로 다루어졌으며, 훈련 셋에서 모든 하위 문구들을 위한 표현법을 학습한다. 훈련 데이터의 문장과 문장의 하위 구들을 학습하기 위한 벡터 표현 훈련이 끝나면, logistic regression을 이용하여 영화 평점을 예측하도록 한다.
- 모델 테스트 단계에서, 각 단어의 벡터 표현을 고정하고, gradient descent를 사용하여 문장의 표현을 학습한다.
- 본 실험에서, window size를 검증 데이터 셋을 통해 검증하였으며, 최적의 사이즈는 8이라는 것을 확인했다.
- PV-DBOW와 PV-DM을 concatenate 하여 classifier을 표현한다.
- PV-DBOW는 400차원을 가지며, 벡터 표현을 학습하고, PV-DM은 단어와 문맥으로부터 학습된 벡터 표현들이 400차원을 갖는다.
- 8번째 단어를 예측하기 위해 저자는 문맥 벡터와 7번째 단어 벡터를 concatenate 하였으며, ,.!? 와 같은 특수 문자는 normal word로 다루어졌다. 만약, 문단이 9 단어 미만으로 구성되어 있다면 이는 NULL로 pre-pad처리를 했다.
Results: BoW, Bag-of-n-grams 계열의 모델들은 저조한 결과를 보여주었다. 단어 벡터의 평균을 이용하는 경우(bag-of-words fashion)도 결과에 큰 개선을 보이지 않았다. 왜냐하면, BoW는 문장이 어떻게 구성되는지(e.g., 단어 순서) 포함하지 않았고, 많은 상세한 언어적 특성(e.g., 풍자)을 모델이 알기 어려웠기 때문이다.

- 결과적으로 모든 baselines와 비교하였을 때, 더 나은 수행을 보인다는 것을 알 수 있었다. (error rate가 2.4% 개선, 이는 16%의 상대적 개선으로 해석 가능)
3.2 Beyond One Sentence: Sentiment Analysis with IMDB dataset
- 본 연구는 기존의 방법들과는 달리, 구문분석(Parsing)이 필요 없다. 그래서, 많은 문장으로 구성된 긴 문서에 대한 표현 생성이 가능하다.
Dataset: 데이터 셋은 100,000개의 영화 리뷰로 구성되었다. 하나의 영화 리뷰는 몇 개의 문장을 갖는다. 데이터 셋은 25,000개의 레이블링 된 훈련 데이터, 25,000개의 레이블링 된 테스트 데이터 그리고 50,000개의 레이블링 되지 않은 훈련 셋으로 구성되어 있다. 레이블에는 긍정과 부정으로 구분되어 있으며, 훈련과 테스트 셋 모두 각 class의 균형을 이루고 있다.
Experimental protocols: 75,000개의 훈련 documents(25,000개의 레이블링 된 그리고 50,000개의 레이블링 되지 않은 데이터)를 사용하여 단어 벡터와 문단 벡터를 학습한다. 25,000개의 레이블링 된 데이터는 50개의 유닛을 가진 하나의 hidden layer와 함께 neural network를 통해 학습되고, logistic classifier을 통해 문장을 예측하도록 학습한다.
- 모델 테스트를 위해, 네트워크의 나머지를 고정하고 gradient descent를 통해 테스트 리뷰를 위한 문단 벡터를 학습한다.
- 검증 데이터를 통해 window size의 적정 사이즈가 10개의 단어임을 확인했으며, 벡터는 PV-DM과 PV-DBOW로부터 하나로 concatenate 된다.
- PV-DBOW에서 학습된 벡터 표현은 400차원이고, PV-DM에서 학습된 벡터 표현은 단어와 문서를 포함하여 400차원이다.

Results: 결과적으로 문단 벡터를 사용한 경우 다른 방법들 중 가장 우수했던 기존 모델에 비해서 1.3%의 개선이 있는 만큼 좋은 결과를 도출함을 알 수 있다. (상대적으로 15%의 개선)
3.3 Information Retrieval with Paragraph Vectors
- 1,000,000개의 인기 있는 query에 대해 검색 엔진에서 10개의 결과를 추출한다. 이러한 문단들의 각각은 snippet으로 알려져 있으며 이는 웹페이지의 콘텐츠를 요약한다. 그리고 query와 웹페이지의 매치가 얼만큼인지 알려준다.
- 이러한 collection으로부터, 저자들은 문단의 test 벡터 표현을 위해 새로운 dataset을 이용한다. 각 query에서, 문단의 triplet을 만드는데, 두 개는 같은 query의 결과이며 세 번째 문단은 collection의 나머지로부터 랜덤으로 샘플링된 문단이다.
- 이 task의 목표는 세 개의 문단들이 같은 query의 결과가 되도록 하는 것이다. 이를 위해, 문단 벡터를 이용하며, 문단 간의 거리를 계산한다.
- 80%는 훈련, 10%는 검증, 10%는 시험을 위해 triplet을 나눈다.
- BoW, bag-of-bigrams, 단어 벡터 평균, 문단 벡터를 이용하여 문단을 위한 features를 계산한다. 저자는 또한, weighting matrix를 학습하도록 한다.

- TF-IDF weighting은 raw count에서 잘 작동하기 때문에, 이번 task에서는 TF-IDF를 이용하도록 한다.
- 결과적으로, 문단 벡터는 32%의 상대적 개선을 보여주었다.
3.4 Some Further observations
- PV-DM은 상대적으로 PV-DBOW보다 낫다.
- PV-DM의 concatenate를 사용하는 것은 sum을 이용하는 것보다 낫다.
- window size를 검증할 때 cross validate를 하는 게 낫다. 범위는 5-12 사이 값을 이용하자.
- 문단 벡터는 expensive 할 수 있으나, 병렬 수행이 가능하다.
4 Related Work
- 단어 분산 표현은 통계적 언어 모델링의 성공적인 패러다임이다.
- 단어 벡터는 단어 표현, 명명된 엔티티 인식, 단어의 명확화, 구문분석, 태깅, 기계번역 등에 사용된다.
5 Discussion
- 문단 벡터는 비지도 학습 알고리즘이며, 다양한 길이의 문장과 문서들로부터 벡터 표현을 학습한다.
- 벡터 표현은 샘플링된 문맥에서 주변 단어를 예측하도록 학습된다.
- 문단 벡터는 문단의 의미론적인 부분을 잘 잡아내는 수행을 보여준다. 특히, BoW모델의 약점을 극복했다.
- 본 연구에서 제안된 알고리즘은 sequential data에서 표현을 학습하는데 적용될 수 있다. 특히, 구문 분석이 불가능한 경우(e.g., 특수문자를 고려해야 하는 경우 등)에는 BoW, bag-of-n-grams의 대안으로 사용될 수 있다.