본문 바로가기

오늘의 코딩/머신러닝,Deep Learning

[NLP] 단어임베딩 정리

# 4.21. 1차 수정

단어임베딩

(개요)

1. 신경망은 비선형적 차원 축소를 통해 특징을 효율적으로 추출할 수 있다.

2. 그러나 비선형적 차원 축소는 계산 비용이 매우 비싸고 최적화가 어렵다.

3.비선형적 방법을 이용하지 않고서도 성능이 좋은 단어임베딩을 구현한 알고리즘이 word2vec / GloVe

 

알고리즘 종류 : word2vec (skip-gram&CBOW) / GloVe

Word2Vec

CBOW : 주변에 나타나는 단어들을 원핫인코딩된 벡터로 입력받아 해당 단어를 예측

skip-gram : 대상 단어를 입력받아 주변에 나타나는 단어를 예측하는 네트워크를 구성해 단어 임베딩 벡터를 학습 (분류문제-softmax사용)

Negative Sampling :  전체 단어 집합에 대하여 임베딩을 조정하는 대신, 일부 단어 집합에 대해서 연산함으로써 계산효율성을 높인 방법.

방법 :: (1) 주변 단어를 가져온다 (2) 랜덤으로 선택된 주변 단어가 아닌 상관 없는 단어를 일부 가져온다. (3) 주변 단어를 pos로 랜덤 선택 단어를 neg로 두고 이진분류 수행.

 

출처: PyTorch로 시작하는 딥 러닝 입문 09.03. 워드투벡터(Word2Vec)

Word2Vec은 딥 러닝 모델(Deep Learning Model)이 아니다.

(1) Word2Vec는 입력층과 출력층 사이에 하나의 은닉층만이 존재 -얕은신경망(Shallow Neural Network)

(2) Word2Vec의 은닉층[투사층(projection layer)]은 활성화 함수 대신 룩업 테이블이라는 연산을 담당하는 층이다. 

 

 

GloVe

GloVe : 대상 단어에 대하여 코퍼스에 함께 나타날 단어별 출현 빈도 예측 (회귀문제-MSE사용)

목적: '임베딩 된 중심 단어와 주변 단어 벡터의 내적이 전체 코퍼스에서의 동시 등장 확률이 되도록 만드는 것'

 

 

 

출처)

PyTorch로 시작하는 딥 러닝 입문 (링크)