1. How to represent Word's Meaning
- NLP를 시작하기 앞서서, 각 단어들의 의미를 어떻게 담을지가 중요하다.
- 이를 위한 방법 몇가지에 대해서 알아보자.
1.1. WordNet
- WordNet은 동의어나, 비슷한 단어들을 같은 그룹으로 모아둔것이다.
- 하지만, 이러한 단어들은 관리하기가 너무 힘들다. (신조어나 이런 이유)
- 뿐만아니라, 만일 좋은 사람, 착한 사람 등등, "좋은"과 "착한"이 만일 같은 그룹이라고 한다해도,
- 좋은 사람과, 착한 사람은 뉘앙스가 다르다.
- 즉, 단어 간의 관계를 얻어내기 어렵다는 단점이 존재한다.
1.2. One-hot vector
- 단어들을 사전에 있는 모든 단어들의 길이만큼 0으로 채워진 리스트 안에,
- 어떤 단어가 해당하는 번째만 1로 표현해주는 방식(One-hot encoding)이라고 생각하면 좋다.
ex)
가지 = [0,0,0,1,...,0,0,0] #가지가 사전에서 4번째 있다고 가정
허수아비 = [0,0,0,....,0,1,0] #허수아비가 사전에서 맨 뒤에서 2번째 있다고 가정
- 이렇게 된다면, Vector의 차원이 사전에 있는 모든 단어들의 길이에 해당할 것이고,
- 단어 간의 관계를 파악하려면, (길이)^2 만큼의 차원을 가지게되어, 계산량이 말도안되게 많아진다.
- 그리고 뿐만 아니라, 단어간의 유사도를 파악하기 힘들다.
- 모든 One-hot encoding되어있는 벡터들은 orthogonal하기 때문이다.
1.3. Word2Vec
- 위의 단점을 해결하기 위해, 고안된 기법이 Word2Vec이다.
- 이에 대한 내용은 밑의 포스팅을 참고바란다.
https://ceulkun04.tistory.com/245
[논문 리뷰] [NLP] Efficient Estimation of Word Representations inVector Space (Word2Vec)
0. Referencehttps://arxiv.org/abs/1301.3781 Efficient Estimation of Word Representations in Vector SpaceWe propose two novel model architectures for computing continuous vector representations of words from very large data sets. The quality of these repre
ceulkun04.tistory.com
- 즉, Word2Vec은 다음과 같이 Word vector간의 유사도를 이용하여 특정 단어가 나타날 확률을 계산하게 된다.
- 즉, 우리의 목표는 window내의 probability를 최대가 되게끔하는 모수를 찾아줘야한다.
- 이를 Likelihood로 표현하면 다음과 같다.
- 우리는 이것의 MLE를 구해나가면 되는데, 약간 달리 생각하여 다음과 같이 Loss Function을 나타내보자.
- 이러면 반대로 J(theta)가 가장 작아지는 모수를 찾아내면 된다.
- 여기서 P는 Softmax로 구해진다.(실제론 Hierarchical Softmax)
- 여기서 J(theta)를 minimize하는 건 우리가 기존에 했었던, Gradient Descent의 과정이 들어가게 된다.
- v_c를 기준으로 J(theta)가 최소가 되는것을 찾기위해서 v_c에 대해서 편미분을해보자.
- 즉, 해당 값이 0이 되는 지점을 찾는게 목적이다.
- 자세히 보면, 왼쪽은 obeserved고, 오른쪽은 Expected이다.
- 즉, J(theta)의 최솟값을 찾는 것과, Expected가 observed와 가까워지기 바라는 것과 같은 논리라고 생각하면 좋다.
'DS Study > CS 224n(NLP)' 카테고리의 다른 글
[CS 224n] [5] Recurrent Neural Networks (Lecture 5) (0) | 2025.03.30 |
---|---|
[CS 224n] [4] Dependency Parsing (Lecture 4) (0) | 2025.03.30 |
[CS 224n] [3] Backpropagation and Neural Network Basics (생략) (0) | 2025.03.30 |
[CS 224n] [2] Word Vectors and Language Models(Lecture 2) (1) | 2025.03.30 |