보통 자연어 처리에서 인풋되는 데이터는 텍스트인데 텍스트를 숫자로 표현하는 과정을 인코딩이라고 함
Distribution Representation
- 분포가설에 기반하여 주변 단어 분포를 기준으로 단어의 벡터 표현이 결정됨=> 분산표현
원핫인코딩
- 범주형 변수를 벡터로 나타내는 방법
- 단점: 단어간 유사도를 구할 수 없음
Embedding
- 원핫인코딩의 단점을 해결
- 단어들 고정길이의 벡터 즉, 차원이 일정한 벡터로 나타내기 때문에 '임베딩'이라는 이름이 붙었음
- 즉, 벡터가 아닌것을 고정 길이의 벡터로 나타내기
- 원핫 인코딩 보다 차원이 저차원임
Word2vec
- 특정단어 양옆에 있는 두단어의 관계를 활용하기 때문에 분포가설을 잘 방영
- 은닉층이 하나여서 딥러닝이라고 하기 어려움
CBow
- 주변 단어에 대한 정보를 기반으로 중심단어의 정보를 예측하는 모델인지
skip-gram
- 중심단어의 정보를 기반으로 주변 단어의 정보를 에측하는 모델인지
- 역전파 과제에서 훨씬 더 많은 학습이 일어나기 때문에 성능이 더 좋다
- 단점: 계산량이 많아 리소스가 크다
word2vec 의 구조
입력층: word2vec 의입력은 원핫인코딩된 단어 벡터
은닉층: 임베딩된 벡터의 차원 수 만큼의 노드로 구성된 은닉층이 1개인 신경망, 선형이라 은닉층에서 활성화 함수 사용하지 않음
출력층: 단어 개수 만큼의 노드로 이루어져 있으며 활성화 함수로 소프트 맥스를 사용
word2vec을 통해 얻은 임베딩 벡터는 단어간의 의미적, 문법적 관계를 잘 나타냄
단점: 말뭉치에서 없는 단어를 임베딩 벡터를 생성 할 수 없음
gensim 패키지
- word2vec으로 사전학습된 임베딩 벡터를 쉽게 사용해 볼수 있는 패키지