본문 바로가기
NLP/Concept

[NLP] Word Embedding

by iamzieun 2023. 4. 3.

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: 중간에 있는 단어들을 입력으로 주변 단어들을 예측하는 방법
    ⇒ 같은 epoch을 학습해도 Skip-Gram이 CBoW보다 각 단어들이 여러 번 여러 context에 걸쳐 빈번하게 학습되므로 일반적으로 Skip-Gram의 성능이 CBoW의 성능보다 좋음
  • word2vec의 장점과 단점
    • 장점
      • 단어 간의 유사도 측정 및 관계 파악이 용이함
      • 벡터 연산을 통한 추론이 가능함 (ex. 한국 - 서울 + 도쿄 = ?)
    • 단점
      • 연산량 많음
      • 단어의 subword information 무시 (ex. 서울 vs 서울시 vs 고양시)
      • Out Of Vocabulary (OOV)에서는 적용이 불가능
      → 이러한 단점을 해결하기 위해 hirarchical softmax / negative sampling / FastText 등이 등장

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)\)
  • 학습 과정
    1. Tokenization
    2. One-Hot Encoding
    3. One-Hot vector * Embedding matrix → Embedding vector
    4. Embedding vector * Score matrix → Score vector
    5. Softmax function을 통해 Score vector을 확률값으로 나타냄
    6. 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)\)

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)\)
  • 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)\)

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

댓글