Word Embedding
: map the words in a lanugage into a vector space so that semantically similar words are located close to each other.
(특정 공간에 단어를 연속형의 벡터로 치환하는데, 단어 끼리 유사하다면 공간 상에서 비슷한 위치에 있도록 구현한다.)
Word vectors: one-hot vector
: vector representation은 표현할 수 있지만, 단어 간 유사도는 알 수 없다.
어떠한 두 벡터간 내적을 해도 직교하므로 모두 연관이 없다고 할 수없다.
Word vectors: distributed representation
distributed reprenstation: 분산 표상
의미론적 차이가 벡터간 차이에 반영된다.
Neural Networ Language Model(NNLM)
: One-hot encoding의 차원의 저주를 해결하겠다.
- 각각의 단어들은 분산 표상에 대한 word feautre vector로 표현할 수 있다.
- 단어 sequence의 확률분포에 따라 해당 단어들의 조합이 발생할 확률을 계산할 수 있다.
- 1. 어떤 feauture vector(고정된 공간상의 연속형 벡터)가 좋은지?
- 2. 일련의 단어 sequence probablity 가 높게 나오도록 >> 위 1,2번을 통해 학습한다.
Comparison with Count-based Language Models
Learning NNLM
실선: Model이 연결된 부분
점선: Option
>> Output을 만들 때 Input에서 Hidden Node로 갔다가 Output으로 가는 구조는 당연히 존재하고, Hidden Node를 뛰어넘어 Input에서 Output으로 연결하는(Skip Connection)이 존재할수도, 하지 않을수도 있다.
* index for W_t-n+1은 W_t-n+1에 대한 one-hot vector을 의미한다.
Objective: 목적 함수
제약
- 어떤 조건에서도 이후 단어들이 생성될 확률의 총 합은 1
- 각 단어가 생성될 확률은 0보다 크거나 같아야 함.
- 즉, 개별적인 단어의 추정 확률은 0보다 크고, 모든 단어의 추정 확률을 더했을 때는 1이여야 한다.
C는 |V| x m차원의 Look up table.
즉, w1 은 One-hot vector이고, w1이 주어졌을 때 Lookup table에서 사용하는 부분은 희소 행렬이 아닌, Real value를 가진 값이다.
Projection Layer의 크기를 M으로 설정하면, 각 입력 단어들은 Vxm의 가중치 행렬과 곱해진다.
각각의 input X의 차원의 크기는 1 x V이고 i번째 인덱스에 1을 가지고 있으므로 결국, 위 그림과 같이 곱하는 것은 Vxm의 가중치 행렬에서 i번째 행을 look up 해오는 것과 같다. V차원의 One-hot vector input이 m차원의 Embedding vector로 변환
각 단어가 즉, 테이블 룩업을 통해 임베딩 벡터로 변경된다.
수많은 문장에서 유사하게 사용된은 단어들은 결국 비슷한 Embdding Vector를 가지고, Embedding Vector를 통해 단어 간 유사도를 구할 수 있다.
즉, 함수 g는 Input으로 Lookup table에서 가져온 n개 (C(W_t-n+1 ..... C(W_t-1)을 가지고, 모든 단어 V에 대해 Conditional probability를 산출한다. 산출된 Conditional probability는 목적함수를 최대화하는 방향으로 간다.
* Conditional Probability: 조건부 확률
해당 게시글은 유튜브 고려대학교 산업경영학부 강필성 교수님의 DSBA 연구실 유튜브 영상을 바탕으로 작성된 글입니다.
https://www.youtube.com/watch?v=bvSHJG-Fz3Y&list=PLetSlH8YjIfVzHuSXtG4jAC2zbEAErXWm&index=7
참조: