Spicy Tuna Sushi
본문 바로가기
부스트캠프 AI Tech

Word Embedding: Word2Vec, GloVe

by 말린malin 2022. 10. 11.

<Word Embedding>

- 단어를 특정 차원으로 이루어진 공간 상의 한 점, 그 점으로 이루어진 벡터로 변환

- 'cat' and 'kitty' are similar words, so they have similar vector representations-short
distance

- 의미상으로 비슷한 단어들을 좌표 공간 상에 비슷한 위치에 mapping되도록 함으로써 단어간 의미상 유사도를 잘 반영한 벡터표현을 nlp 알고리즘에 내어주는 역할을 함

 

<Word2Vec>

Assumption: words in similar context will have similar meanings

The cat purrs.
The cat hunts mice.

 

ex) I study math

슬라이딩 윈도우를 이용하여 중심 단어와 주변 단어의 쌍을 구성하여 학습 데이터를 만듦

(I, study) (study, I) (study, math)...

- 거리가 최대한 가깝게 하는 softmax를 적용함으로써 W1, W2 학습 진행

- one hot 벡터 특성상 0이 아닌 컬럼을 뽑아오는 과정=임베딩 레이어

 

- 내적 연산을 벡터들 간 유사도를 나타내는 것으로 생각한다면,

입력 단어의 W1, 출력 단어의 W2간의 내적 기반한 유사도가 최대한 커지도록

다른 단어들의 W2 상 벡터들의 내적 기반한 유사도는 최대한 작도록

W1, W2 조정

 

<GloVe>

- 각 입력 및 출력 쌍들에 대해서 학습 데이터에서 두 단어가 한 윈도우 내에서 동시에 총 몇 번 등장했는지 사전에 계산(P ij)

입력어-출력어 내적값(Ui,Vj)가 잘 fitting될 수 있도록 함

 

<실습>

 

<Word2Vec>
1. 주어진 단어들을 word2vec 모델에 들어갈 수 있는 형태로 만듦
2. CBOW, Skip-gram 모델을 각각 구현
3. 모델을 실제로 학습해보고 결과 확인

 

-데이터를 확인하고 Word2Vec 형식에 맞게 전처리

 

- 모델 구현

self.embedding: vocab_size 크기의 one-hot vector를 특정 크기의 dim 차원으로 embedding 시키는 layer
self.linear: 변환된 embedding vector를 다시 원래 vocab_size로 바꾸는 layer

 

- 고차원의 벡터들을 시각화할 때,  t-SNE는 학습을 통하여 차원 축소를 할 때, 가까운 벡터는 더 가깝게 먼 벡터는 더 멀게 배치함

 

<다국어 임베딩>
- LaBSE 모델을 사용해 문장 임베딩(Sentence Embeddings)을 획득, 한국어-영어 문장 간 유사도 산출

- Google AI에서 개발한 다국어 임베딩 모델로, LaBSE를 사용하면 모델이 지원하는 109개 언어에 대해 문장 임베딩을 획득할 수 있음
- Pre-trained LM (BERT) 사용

- Source Text와 Target Text를 모델에 별도로 입력하는 dual-encoder 형태로 구성

 

LaBSE 학습 (in-batch negative sampling)
LaBSE는 in-batch negative sampling을 적용하여 학습함. Batch 단위로 N개의 Source Text과 Target Text를 각각 12-Layer Transformer Embedding Network에 입력하여 (N X dim) 의 Source Embeddings와 (N X dim) 의 Target E mbeddings을 얻었을 때, Source 문장들과 Target 문장들 간의 유사도 matrix는 Source Embeddings와 Target Embeddings의 matrix multiplication을 통해 구할 수 있음

이 때 데이터로서 N개의 병렬 문장 쌍을 사용한다면, 각 문장들은 batch 내에서 1개의 true translation을, N-1개의 negative translation을 가지게 됨. 따라서, 우리는 문장 간 유사도 matrix에서 대각 성분들의 값이 높아지도록 학습하게 됨.

 

'부스트캠프 AI Tech' 카테고리의 다른 글

Seq2Seq  (0) 2022.10.23
RNN, LSTM, GRU  (0) 2022.10.12
22-10-11 깃헙특강  (0) 2022.10.11
Bag-of-Words, NaiveBayes Classifier  (0) 2022.10.11
Transformer  (0) 2022.10.09

댓글