본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
Natural Language Processing

[2023-2] 황재연 - Efficient Estimation of Word Representations inVector Space

by khangjae 2023. 12. 3.

https://arxiv.org/abs/1301.3781

 

Efficient Estimation of Word Representations in Vector Space

We propose two novel model architectures for computing continuous vector representations of words from very large data sets. The quality of these representations is measured in a word similarity task, and the results are compared to the previously best per

arxiv.org

Abstract

  • 단어의 연속 벡터를 표현하기 위한 새로운 2가지 모델을 제안
  • 단어의 유사성 측정하고, 기존의 인공신경망과 다른 성능을 보여주려고 하였다.
  • 적은 계산 비용으로 더 좋은 정확도를 향상시켰다.
  • 그들의 데이터에서 구문 및 의미적 단어 유사성에 최첨단 성능을 보여준다.

Introduction

  • 많은 자연어 처리 시스템은 단어를 원자 단위로 취급한다.
  • 이렇게 원자 단위로 취급을 하면 단순하고 강건하고 많은 데이터를 가질 수 있게 해준다.
  • 방대한 양의 단순한 모델 > 적은 양으로 학습된 복잡한 모델(단순한 모델로 N-grams 모델이 있다.)
  • 하지만, 이러한 단순한 모델에는 분명한 한계가 있다. 음석 인식같은 것은 데이터의 크기에 따라 성능이 결정되기 때문이다.
  • 그러므로 복잡한 기술에 집중해야하는 상황이다. 더 크고 복잡한 모델은 분산 표현을 사용하여 성능이 단순한 모델보다 성능 뛰어납니다.

1.1 Goal of paper

  • 목표는 수십억 개의 단어와 수백만 개의 어휘가 포함된 데이터를 고품질의 단어 벡터를 학습할 수 있도록 하는 기술을 소개하는 것이다.
  • 유사한 단어는 거리가 가까워 지는데 이뿐만 아니라 여러 관점의 유사성을 가지는 것이 중요하다고 말하였다.
  • Offset 기술을 사용하였을 때, 예를 들어 king, man, woman을 벡터 공간에 표현하였다면 king에서 man을 빼고 woman을 넣었을 때 queen에 가장 가까운 벡터가 생성 된다는 말이다.
  • 선형적 규칙성을 보존하는 새로운 모델 아키텍처를 만들어 벡터 연산의 정확도를 최대화 하는 것이 목표이다.

1.2 Previous work

  • neural network language model (NNLM)이 제안 되었다.
  • linear projection layer, non-linear hidden layer가 feedforward neural network를 하여 통계적 언어 모델을 학습한 것이다.
  • 다음 단어 벡터를 사용하여 NNLM을 학습시켜 전체 모델을 구축하지 않아도 학습할 수 있습니다. 이로써, 단어 벡터를 학습하는 단계에만 집중할 수 있습니다.
  • 대각선 가중치 행렬이 갓용되는 로그 이선형 모델(log-bilinear model)을 제외하고는 기존 모델들은 더 많은 계산 비용이 들었다.

2 Model Architectures

  • 연속적인 단어 표현을 추적하기 위해 LSA(잠재 의미 분석)과 LDA(잠재 연속확률분포 할당)이 제안되었습니다.
  • 논문에서는 분산 표현에 초점을 맞추고, 선형 규칙성이 LSA보다 우수한 성능을 보인다는 것을 말하고 있다. 그리고 LDA는 빅데이터에서 계산 비용이 비싸다.
더보기
  • LSA & LDANLP - 9. 토픽 모델링: 잠재 의미 분석(LSA) (tistory.com)
  • [LSA 잠재 의미 분석이란 문서에 숨어있는 의미를 이끌어내기 위한 방법이고 특이값 분해(SVD)를 통해 설명할 수 있다.
  • 행렬 A를 분해하면 U ∑ Vt 가 됩니다. 이때 ∑는 총 r개의 특이값을 갖습니다.→ 가장 중요한 특이값 k개만 남는다.LDA는 선형판별분석(Linear Discriminant Analysis, LDA)이고 PCA와 마찬가지로 축소 방법 중 하나입니다.LDA는 PCA와 유사하게 입력 데이터 세트를 저차원 공간으로 투영(project)해 차원을 축소하는 기법이지만, PCA와 다르게 LDA는 지도학습의 분류(Classification)에서 사용됩니다.→ Max (클래스 간 분산) / (클래스 내부 분산) ]
  • LDA는 데이터의 Target값 클래스끼리 최대한 분리할 수 있는 축을 찾습니다. → 분산이 최대가 되는 축을 찾는다.
  • 머신러닝 - 18. 선형판별분석(LDA) (tistory.com)
  • → k만큼만 남기고 잘라내었다는 것은 중요한 토픽만 남기고 불필요한 토픽은 제거한다는 의미입니다.(문서의 잠재 의미만 남아있다는 말이다.)
  • → r보다 작은 k 값을 설정한다.

 

LSA의 SVD행렬 분해

  • 그러므로 다른 모델들과 모델의 파라미터 수 비교를 통해 계산량을 줄이면서 정확도를 최대한 높이는 방법을 찾도록 노력하였다.
  • 모델의 훈력 복잡도는 다음에 비례
  • O = E × T × Q (E는 epoch, T는 training set 단어 수, Q는 각모델 아키텍처에 추가로 정의된 복잡도이다.)
  • All models are trained using stochastic gradient descent and backpropagation

2.1 Feedforward Neural Net Language Model (NNLM)

NNLM구조

  • input layer을 지나면서 벡터들이 고차원으로 이동하여 다음 projection layer에서 선형 분류를 하고 다시 워낼 차원으로 돌아와서 nonlinear하게 만들어주고 activation을 거치면서 output layer로 이동한다.
  • 복잡도: Q = N × D + N × D × H + H × V
  • N은 이전 단어 인코딩, V는 on-hot vector 크기, projection layer인 P에 투영된다. 차원은 NxD이다. h는 hidden layer의 size이다.(dominating term is H × V)
  • 이를 피하기 위해서 계층적 softmax를 사용하거나 정규화된 모델을 완전히 피하는 방법이 있다.
  • binary tree를 사용하면 출력 단위가 log2(V)까지 내려하고 복잡성은 N x D x H가 발생한다.
  • 여기서 Huffman binary tree를 사용하는데 빈도에 따른 모델의 클래스를 얻는데 효과적이기 때문이다.(Huffman binary tree는 데이터의 등장 빈도에 따라서 배치하는 깊이가 달라지는 이진 트리이다. Word2Vec에서는, 자주 등장하는 단어는 얕게, 가끔 등장하는 단어는 깊게 배치한다.)
  • 빈번한 단어에 짧은 바이너리를 할당하여 평가하는 출력 단위 수를 줄일 수 있다.
  • LM에 경우 계산 병목현상이 N x D x H항에 있어 위에서 한 것이 중요한 속도 향상 방법은 아니지만 hidden layer가 없어서 softmax정규화의 효율성에 의존을 많이 한다.
  • hierarchical softmax를 사용하면 H×V를 H×log2(V)로 줄일 수 있고, 이 경우 전체 시간 복잡도를 지배하는 항은 N×D×H로 바뀌게 된다.

2.2 Recurrent Neural Net Language Model (RNNLM)

  • RNNLM은 모델의 순서를 지정해야하는 NNLM의 한계를 극복하기위해 제안되었으며, projection layer는 없고 hidden과 output만 있다.

RNNLM구조

  • 숨겨진 레이어를 스스로 연결하는 순환 행렬입니다.
  • 과거의 정보를 통해 일종의 단기 메모리처럼 현재 상태를 업데이트한다.
  • 복잡도: Q = H × H + H × V
  • 차원(D)은 hidden layer의 차원과 같다.
  • H×V의 시간 복잡도는 Hierarchical Softmax(binary tree)를 사용해서 Hxlog2(V)로 줄일 수 있다. 이 경우 전체 시간 복잡도를 지배하는 항은 H×H이다.

2.3 Parallel Training of Neural Networks

  • 여기서 새로운 모델을 위해 DistBelief라는 대규모 분산 프레임워크를 사용
  • 동일한 모델의 여러 복제본을 병렬로 실행, 중앙 서버를 통해 기울기 업데이트 동기화를 한다.

3 New Log-linear Models

  • 계산 복잡성을 최소화하기 위한 분산표현 학습에 두가지 모델을 제안하였다. 복잡성은 모델의 the non-linear hidden layer때문이다.
  • 그렇기 때문에 많은 데이터를 효율적으로 학습할 수 있는 단순한 모델을 탐색하였다. 그 위에 N-gram NNLM은 분산 단어 표현이 훈련된다.

3.1 Continuous Bag-of-Words Model(CBOW)

  • the non-linear hidden layer을 제거하고 projection matrix뿐만 아니라 projection layer가 공유되므로 모든 단어가 동일 위치에 투영이된다. 단어의 순서가 projection에 영향을 미치지 않는다.
  • 이전 4개의 단어와 앞으로 등장할 4개의 단어를 사용하여 현재 단어를 예측하는 a log-linear classifier방식
  • 복잡도: Q = N × D + D × log2(V )

CBOW구조

  • NNLM처럼 input과 projection사이의 가중치 행렬은 모든 단어의 위치를 공유한다.

3.2 Continuous Skip-gram Model

  • Skip-gram은 앞서 소개한 CBOW와 유사하다. 차이점이 있다면 현재 단어를 이용해서 주변 단어를 예측하는 것이다.
  • 범위를 증가시킬 수록 word vector의 결과가 향상됨을 찾아냈다. 하지만 이것은 계산 복잡성 역시 함께 증가시킨다.
  • 더 멀리 떨어진 단어일수록 현재 단어와 연관성이 적기 때문에 적은 가중치를 부여하였다.
  • 복잡도: Q = C × (D + D × log2(V ))
  • C는 단어의 최대 거리입니다. 예를들면 5라고하면 앞뒤로 거리가 5이다. 그러므로 다음 실험에서는 2배인 C = 10을 사용한다.

4 Results

  • 이전의 평가 방법은 예제 단어와 유사한 단어들을 보여주는 것이였다. 하지만 더 복잡한 유사성을 다루기에는 정확한 평가가 어렵다고 말한다.단어들의 쌍으로 비슷한 맥락의 유사도를 확인할 수 있다.
  • 예를 들어, big-biggest, small-smallest처럼 단어쌍이 같은 맥락에 존재하는지 알기 위해 big과biggset가 비슷한데 그러면 small과 비슷한 비슷한 맥락을 가지는 것이 무엇이 있는지에 대한 질문을 하였다.
  • X = vector(”biggest”)−vector(”big”) + vector(”small”)

X와 코사인 유사도가 가장 큰 단어를 찾아서 정답을 찾아낸다.

 

관계의 유형과 단어의 쌍

4.1 Task Description

  • 전체 데이터셋에는 8,869개의 의미론적 유사도를 갖는 단어 쌍과 10,675개의 구문론적 유사도를 갖는 단어 쌍이 존재한다. 먼저 유사한 단어 쌍의 목록을 수동을 생성하고, 두 단어 쌍을 연결하여 큰 질문 목록을 만들었다.(무작위로 두 단어 쌍을 선택하여 질문 생성)
  • 위의 방법으로 계산 하였을 때 벡터에 가장 가까운 단어가 문제의 정답 단어와 일치하는 경우에 정답으로 간주하였다. 가장 가까이 위치해 있는 단어가 정답과 정확히 일치하는 경우에만 정답으로 처리하였다.

4.2 Maximization of Accuracy

  • 여기서는 Google 뉴스 말뭉치를 사용하였고, 60억 개의 토큰이 포함되어 있습니다. 하지만 계산 시간의 제약이 있어 최적화 문제로 인해 어휘 크기는 가장 빈번한 단어 100만개로 제한했습니다.
  • 밑에도 나오겠지만 차원을 더 추가하거나 학습 데이터를 더 추가해도 개선 효과가 감소하는 것을 확인할 수 있다. 그래서 차원과 데이터를 같이 추가하였다.

CBOW를 사용한 의미론적-구문론적 관계 정확도
훈련된 모델의 비교 정확도

4.3 Comparison of Model Architectures

  • RNNLM은 단일 cpu에서 훈련하는데 약 8주가 걸렸고, NNLM은 DistBelief parallel training을 사용하여 640개의 hidden units을 feedforward NNLM을 훈련했습니다. 결과적으로 CBOW는 문법적인 유사도를 문는 작업에서 탁월한 성능을 보여주었다.
  • Skip-gram 구조는 의미론적인 유사도를 묻는 과제에서 탁월한 성능을 보여주었고, 문법적인 유사도를 묻는 작업에서는 CBOW보다 살짝 못 미치는 성적을 보여주었다.

차원과 데이터수에 따른 모델별 의미론적인 정확도와 문법적인 정확도

  • 벡터의 차원과 데이터의 개수를 달리해가며 비교 분석을 하였을 때 자신의 모델과 skip-gram이 좋다라고 말하고 있습니다.

모델과 epoch수와 차원과 데이터수에 따른 의미론적인 정확도와 문법적인 정확도, 훈련시간

  • 하나의 epoch만 사용할 때는 차원을 2배 늘리는 것이 데이터를 2배 늘리는 것보다 성능이 좋다.

4.4 Large Scale Parallel Training of Models

  • 본 논문의 실험에서는 분산 연산 framework인 DistBelief을 사용 하였다. Mini-batch asynchronous gradient descent와 Adagrade를 이용하여 학습시켰다.

모델에 따른 정확도 / Microsoft Sentence Completion Challenge의 모델별 정확도

4.5 Microsoft Research Sentence Completion Challenge

  • Microsoft Sentence Completion Challenge는 각 문장에 한 단어가 누락되어 있고 5개의 합리적인 선택 목록이 주어질 때 나머지 문장과 가장 일관성 있는 단어를 선택하는 것이 목표인 대회입니다.
  • 결과적으로 Skip모델은 LSA보다 더 나은 성능을 보여주지 못하지만, RNNLMS와 합친 모델은 새로운 정확도 점수를 얻었다.

5. Examples of the Learned Relationships

◎ 빨간색 표시는 잘못된 예시

모델을 이용한 다양한 단어 쌍 관계의 예