본문 바로가기
Deep Learning Study/cs224n

Stanford CS224N - Lecture 1. Intro & Word Vectors

by BangGeuk 2023. 10. 23.

본 글은 Stanford CS224N: NLP with Deep Learning | Winter 2021 내용을 기반으로 합니다.

강의를 듣고 정리한 글로 혹시 잘못된 부분이나 수정할 부분이 있다면 댓글로 알려주시면 감사하겠습니다.


How to represent words meaning

1. WordNet

간단한 방법으로는 WordNet과 같이 유의어(synonym)와 상위어(hypernym) 사전을 사용.

어휘 사전의 문제점

- 단어에 대한 의미의 차이가 있음

- 신조어에 대해 일일이 반영해 주기 힘듦

- 주관적임

- 단어와 단어 간의 유사도를 계산할 수 없음

2. One-hot Vector

- 단어를 벡터로 표현할 수 있는 가장 간단한 방법

- 단어를 discrete symbols로 여기며 localist 표현이라고 함

- 해당 단어의 인덱스에만 1이고 나머지는 전부 0인 벡터

- 각 단어 간의 유사도를 계산할 수 없음 (내적했을 때 모두 0이 됨)

- 단어의 개수가 많아지면 고차원 벡터가 됨

3. Representing words by their context

- 위 두 가지의 문제점을 해결한 것으로 단어의 문맥을 고려하는 방법

- 분포 가설(Distributional Hypothesis) :  동일한 문맥에서 사용되는 단어는 비슷한 의미를 가지는 경향이 있음

- 단어 w가 출현할 때, 그 문맥은 fixed-size window 내 단어들의 집합에서 주변에 나타남

- 단어 w의 많은 context를 사용해 w의 표현을 생성

- word vector는 word embedding 혹은 (neural) word representation으로도 불림

Word2Vec

1. 개념

Word Vector를 학습하기 위한 프레임워크

충분한 양의 corpus를 바탕으로 각 단어를 잘 표현하는 vector를 찾는다.

단어 vector간의 유사도를 이용하여 특정 단어가 나타날 확률을 계산한다.

기존의 방법론들보다 계산 속도도 빠르고, 성능도 좋은 신경망 모델이다.

Word2Vec에는 Continuous Bag-of-Words(CBOW)와 Skip-gram이 있다.

2. 과정

t번째에 있는 단어 Wt를 이용하여 주변 단어들에 대한 확률을 구한다.

주변 단어들에 대한 확률을 최대화하는 방향으로 word vector를 계속 조정한다.

1) Likelihood

word vector가 주어졌을 때, window 내의 주변 단어들이 해당 위치에 나타날 확률들의 곱이다.

T는 전체 corpus 크기이며 1부터 T까지 진행되며 window size(m)만큼 주변 단어(o)들에 대한 확률을 계산한다.

2) Objective function

Objective function은 negative log likelihood로 이를 최소화하는 Θ(파라미터)를 구한다.

Objective function을 최소화하는 과정을 통해 최적화를 진행한다.

크기에 대한 의존도를 줄이기 위해 T로 나누고 곱셈을 덧셈으로 바꾸기 위해 log를 취한다.

3) P(o|c)

word마다 두 개의 vector를 학습한다.

w가 중심 단어일 때 vw이고 w가 주변 단어일 때 uw이다.

내적을 통해 유사도를 측정한 후, softmax 과정을 통해 P(o|c)를 계산한다.

4) Optimization

Optimization을 통해 목적함수를 최소화하는 파라미터 Θ, 즉 u와 v(word를 나타내는 두 vector)를 찾는다.

V개의 단어가 존재하고

Θ가 d-dimension vector이면 word vector는 u, v를 포함하므로 2dV 차원을 갖는다.