Word Embedding
- 희소 표현과 밀집 표현
- 희소 표현 Sparse Representation: 벡터 또는 행렬(matrix)의 값이 대부분이 0으로 표현되는 방법
- ex. One-Hot Vector
- 밀집 표현 Dense Representation: 사용자가 설정한 값으로 모든 단어의 벡터 표현의 차원을 맞춤에 따라 차원이 조밀해진 벡터
- 워드 임베딩 Word Embedding: 단어를 밀집 벡터로 표현하는 방법
- 임베딩 벡터 Embedding Vector: 임베딩 과정을 통해 나온 결과
1 word2vec
- word2vec
- 의미상의 유사도를 반영하여 단어의 의미를 벡터 공간에 임베딩하는 것
- Input Data: One Hot Encoding Vector
- Input → Hidden: Embedding Vector
- Hidden → Output: Score Matrix
- Output: Softmax Function
- word2vec의 종류
- CBoW(Continuous Bag of Words): 주변에 있는 단어들을 입력으로 중간에 있는 단어들을 예측
- Skip-Gram: 중간에 있는 단어들을 입력으로 주변 단어들을 예측하는 방법
- word2vec의 장점과 단점
- 장점
- 단어 간의 유사도 측정 및 관계 파악이 용이함
- 벡터 연산을 통한 추론이 가능함 (ex. 한국 - 서울 + 도쿄 = ?)
- 단점
- 연산량 많음
- 단어의 subword information 무시 (ex. 서울 vs 서울시 vs 고양시)
- Out Of Vocabulary (OOV)에서는 적용이 불가능
- 장점
1.1 CBoW
- CBoW(Continuous Bag of Words): 주변에 있는 단어들을 입력으로 중간에 있는 단어들을 예측
- 중심 단어 center word: 예측해야하는 단어
- 주변 단어 context word: 예측에 사용되는 단어
- 윈도우 window: 중심 단어를 예측하기 위해 앞, 뒤로 보는 단어의 범위
- CBoW의 인공 신경망
- Input layer: 사용자가 정한 윈도우 크기 범위 안에 있는 주변 단어들의 one-hot vector
- 은닉층이 1개인 얕은 신경망 (shallow neural network)
- 활성화 함수: X
- 손실 함수: 크로스 엔트로피
1.2 Skip-Gram
- Skip-Gram: 중간에 있는 단어들을 입력으로 주변 단어들을 예측하는 방법
- Skip-Gram의 인공 신경망
- Skip-Gram의 학습 과정
- Hyperparameter
- V: 총 unique 토큰의 개수
- N: Hidden layer의 차원 (몇 차원의 벡터로 단어를 표현할 것인가)
- M: Window Size
- Goal
- Maximize \(\mathrm{P}\left(\mathrm{w}_{C-\mathrm{m}}, \ldots, \mathrm{w}_{C+\mathrm{m}} \mid \mathrm{w}_C\right)\)
- → loss function:\(-\log P\left(w_{c-m}, \ldots, w_{c+m} \mid w_c\right)\)
- 학습 과정
- Tokenization
- One-Hot Encoding
- One-Hot vector * Embedding matrix → Embedding vector
- Embedding vector * Score matrix → Score vector
- Softmax function을 통해 Score vector을 확률값으로 나타냄
- Score vector와 Target vector의 차이를 이용해 Backpropagation하여 Embedding matrix, Score matrix 업데이트
2 Hierarchical Softmax
- word2vec의 단점: too expensive computation
- → softmax 대신 hierarchical softmax (연산량: V → \(log_2V\))
- Hierarchical Softmax
- Error Function
- Backpropagation (Update W matrix)
- Softmax
- \(W_{w_I}^{\text {new }}=W_{w_I}^{\text {old }}-\alpha \cdot E H^T,\left(E H_i=\sum_{j=1}^V E I_j W_{i j}^{\prime}\right)\)
- Hierarchical Softmax
- \(W_{w_I}{ }^{\text {new }}=W_{w_I}{ }^{\text {old }}-\alpha \cdot E H^T,\left(E H=\sum_{j=1}^{L(w)-1}\left(\sigma\left(W_{n(w, j)}^{\prime T} \cdot h\right)-t_j\right) \cdot W_{n(w, j)}^{\prime}\right)\)
- Softmax
3 Negative Sampling
- word2vec의 단점: too expensive computation + target word 외의 토큰들에 대해서는 연산 필요 X
- → Negative Sampling
- Error Function
- Softmax
- \(E=-\log \prod_{c=1}^C \frac{\exp \left(u_{c, j_c^*}\right)}{\sum_{j^{\prime}=1}^V \exp \left(u_{j^{\prime}}\right)}\left(u_j=W_j^{\prime T} \cdot h\right)\)
- Negative Sampling
- \(E=-\log \sigma\left(v^{\prime}{ }{W_O}{ }^T h\right)-\sum{w_j \in W_{n e g}} \log \sigma\left(-v_{w_j}^{\prime}{ }^T h\right)\)
- Softmax
- Backpropagation (Update W matrix)
- Softmax
- \(W_{w_I}^{\text {new }}=W_{w_I}^{\text {old }}-\alpha \cdot E H^T,\left(E H_i=\sum_{j=1}^V E I_j W_{i j}^{\prime}\right)\)
- Negative Sampling
- \(v_{W_I}^{\text {new }}=v_{W_I}^{\text {old }}-\alpha \cdot E H^T,\left(E H=\sum_{w_j \in\left\{w_o\right\} \cup w_{\text {neg }}}\left(\sigma\left(v_{w_j}^T \cdot h\right)-t_j\right) \cdot v_{w_j}^{\prime}\right)\)
- Softmax
4 FastText
- FastText
- word2vec의 확장판 (최소 단위: word → subword)
- word2vec과 유사하나, 단어가 아닌 n-gram 단위로 사전을 구축하고 학습을 진행함
- 단어의 시작과 끝을 의미하는 <와 >를 도입한 후 n-gram으로 분리
- 단어를 n-gram으로 분리한 후 모든 n-gram vector를 합산한 후 평균을 취함으로써 단어에 대한 벡터를 획득
- FastText의 장점
- OOV: 데이터셋의 모든 단어의 각 n-gram에 대한 워드 임베딩이 진행되므로, subword를 통하여 모르는 단어에 대한 워드 임베딩이 가능해짐
- Rare word: 희귀한 단어 또는 오탈자를 포함한 단어이더라도, 그 단어의 n-gram이 다른 단어에서도 많이 사용된 n-gram이라면, word2vec에 비해 비교적 정확한 임베딩 벡터값을 가지게 됨
5 GloVe
word2vec의 예측 기반 방법론과 카운트 기반 방법론을 모두 사용함
'NLP > Concept' 카테고리의 다른 글
[NLP] Machine Reading Comprehension (1) | 2023.06.06 |
---|---|
[NLP] BERT basic (0) | 2023.05.05 |
[NLP] Beam Search (0) | 2023.04.03 |
[NLP] Seq2Seq with Attention (0) | 2023.04.03 |
[NLP] Sequential Model (0) | 2023.04.03 |
댓글