Introduction and Recap
- 단어를 벡터화 한 것은 단순히 유사도 계산을 용이하게 하는 것이 아니라, 실제 단어의 의미를 포착한다
Word Vectors, Analogies, and Applications
analogy()
함수로 의미의 덧셈 뺄셈 등이 가능 ⇒ king → man = woman → ? 특정 벡터 (가장 유사한 단어 찾으면 queen) ⇒ autsralia → beer = france → ? 특정 벡터 (가장 유사한 단어 찾으면 champagne) ⇒ tall→ tallest= long→ ? 특정 벡터 (가장 유사한 단어 찾으면 longest)
- 이렇게 하다보면 하나의 단어에 여러 의미가 묶이는 경우도 생김
- e.g.) obama → clinton = reagan → ? 에서 nixon이 나옴
- 애초에 첫 비유가 모호했음
- 강의자는 클린턴과 닉슨이 모두 탄핵 위기였다는 점을 듦
- 또한 클린턴이 빌 클린턴인지 힐러리 클린턴인지 알 수 없음. 단어에 둘 모두 묶임.
doesnt_match()
함수를 이용해 여러 단어 중 다른 단어를 고를 수도 있음
- PCA를 통해 축소한 다음에 산포도를 그릴 수도 있음.
- PCA는 100차원을 2차원으로 줄이다 보니 정보량이 상당히 많이 소실된다는 점을 조심해야
Word2Vec and Contextual Predictions
Negative Sampling and Optimization in Word2Vec
- 최적화
- Gradient Descent
- 갱신 함수
θnew=θold−α∇θJ(θ)
- 이때 α는
step size
혹은 learning rate
이라 한다
- 근데 이 손실함수는 corpus 내 모든 window에 대한 함수이므로 연산량이 엄청 많음
- Stochastic Gradient Descent
- window를 샘플링하여 연산량을 줄임 → 그래디언트를 추정한 후 파라미터 업데이트에 활용함
- 굉장히 noisy한 추정이지만 별로 중요하지 않음 실제로는? 32나 64 차원짜리 샘플을 따옴, 이 미니배치의 그래디언트를 추정함 → 미니배치를 활용하여 평균했으므로 노이즈 감소, 병렬화 가능하므로 gpu 활용 可
- 워드 벡터를 활용한 SGD
- 비전 딥러닝 등과 다름
- 미니배치는 많아야 100~150개의 단어를 가지고 있을 것 (32짜리 배치, 윈도우 크기 10)
- 근데 총 어휘집은 단어 25만 개 정도
- 따라서 대부분의 벡터 내 대부분의 원소의 값은 0에 근접함
- 이러한 희소행렬 문제를 해결하려면, 실제로 등장하는 워드 벡터만을 업데이트 해야함.
- 즉, 특정 행만을 업데이트 하는 행렬 연산이 있어야 함. 또는 해시테이블 가지거나
- 두개의 벡터를 쓰는 것이 현실적으로 최적화하기 편함.
- 하나의 벡터만을 가지고 연산하면 center word기 두 번 나와서 제곱 나옴 →계산 복잡해짐
- Skip-Gram 모델 : center 단어를 통해 context 단어를 예측
- Continuous Bag of Words 모델 : context 단어를 통해 center 단어를 예측
- 이후는 과제 설명이긴 한데, 시그모이드 함수가 소프트맥스 함수의 binary version 이라는 점이 인상적
-
Negative Sampling:
- 정규화가 보통 너무 무거운 작업이라 word2vec 에서는
Negative Sampling
을 활용한 skip-gram
모델이 구현됨
Count-Based Methods, SVD, and GloVe
- Neural Networks 등장 전에는 단어 의미를 co-occurrence 행렬을 통해 포착
- Singular Value Decomposition (SVD)는 co-occurrence 행렬에서 차원 축소를 통해 단어 간 유사성을 포착
- GloVe는 count-based와 prediction-based 방법을 결합한 모델
- Log of co-occurrence probabilities를 사용해 단어 벡터 공간에서 선형적 관계를 표현
- 벡터 간 선형 관계는 유추 문제에서 중요한 역할을 함
- GloVe는 효율적인 학습을 위해 말뭉치 전체를 활용하고 계산 복잡도를 줄임
Evaluations and Word Sense Ambiguity
- Word Vectors의 성능은 intrinsic(유추 문제)와 extrinsic(실제 과제 성능) 평가로 나뉨
- Cosine similarity로 단어 벡터 간 유사성을 측정
- Word sense ambiguity(단어 의미 모호성) 문제: 한 벡터가 여러 의미를 혼합해 표현함
- 예: "Jaguar"는 자동차, 동물 등 여러 의미를 가짐
- Superposition Principle: 단어 벡터는 여러 의미의 가중 평균으로 나타남
- 희소한 의미 벡터를 sparse coding 기법으로 복원 가능
- 이를 통해 여러 가지 의미를 분리할 수 있음
Word Vectors in NLP and Conclusion
- Word Vectors는 Named Entity Recognition, Text Classification 등 다양한 NLP 과제에서 성능을 향상시킴
- Pre-trained word vectors는 다양한 NLP 시스템에서 재사용 가능
- Wikipedia와 같은 백과사전형 텍스트는 더 좋은 성능을 제공
- 말뭉치의 크기와 품질은 단어 벡터 성능에 큰 영향을 미침
- Word Vectors는 NLP에서 중요한 기술로 자리 잡음
- 고차원 벡터는 다양한 응용에서 성능을 크게 향상시킴