우노
[DL] One-Hot Vector, Word Embedding 본문
- NLP에서 단어를 표현하는 방법으로는 One-Hot Vector와 Word Embedding이 있다.
- One-Hot Vector와 Word Embedding에 대해서 알아보자.
One-Hot Vector
One-Hot Vector는 단어를 사전 개수 만큼의 차원을 가지는 Vector로 표현하는 것이다.
예를 들어, 사전에 총 10000개의 단어가 있고, Man이라는 단어가 사전의 5391번째 index에 존재한다면
Man이라는 단어를, 5391번째 index만 1이고 나머지는 0인 10000차원 Vector로 표현하는 것이다.
단점
- 여러 단어의 유사성을 표현해줄 수 있는 방법이 없다.
- 예를 들어, 위 그림처럼 Man과 Woman은 단순히 사전의 index에 따른 One-hot Vector로 표현되기 때문에, 두 단어의 관계성을 표현해줄 방법이 없다.
- 또한, 사전의 단어 개수가 증가하는 경우, One-Hot Vector의 크기가 지나치게 커진다는 단점을 가지고 있다.
따라서, 단어의 유사성을 파악할 수 있고, 저차원을 가지는 Vector를 만드는 방법이 Word Embedding이다.
Word Embedding
- Word Embedding은, 단어를 특징을 가지는 N차원 Vector로 표현하는 것이다.
- 위 그림에서는, 각 단어를 4개의 특징(Gender, Royal, Age, Food)을 가지는 Embedding Vector로 표현하고 있다.
- 실제론 이보다 고차원의 특징이 사용된다.
- 위 그림의 Man, Woman의 Embedding Vector는 유사한 특징을 가지는 것을 알 수 있는데,
- 이처럼 Word Embedding을 사용하게 되면, 단어의 관계성을 알아낼 수 있다.
One-Hot Vector와 Word Embedding 비교
차원 개수
- One-Hot Vector : [0,0,0,0,0,1,0,...,0] → 10000차원(사전개수)
- Word Embedding : [1, 0.3, 0.5, 0.7, ..., 0.5] → 300차원(특징)
Spare/Dense
- One-Hot Vector : Sparse Representation
- Vector의 대부분이 0으로 표현 된 희소 벡터이다.
- 고차원으로 이루어져있다.
- 이는 공간적 낭비, 유사성 발견 불가의 단점이 있다.
- Word Embedding : Dense Representation
- Vector는 특징을 표현하는 실수값으로 채워진 고밀도 벡터이다.
- 저차원으로 이루어져있다.
- One-Hot Vector : Sparse Representation
Local/Distributed
- One-Hot Vector : Local Representation
- Vector 일부분만 단어를 표현한다.
- Word Embedding : Distributed Representation
- Vector 전체에 단어의 의미를 표현한다.
- One-Hot Vector : Local Representation
t-SNE 알고리즘
- Word Embedding 시 단어가 300차원의 특징을 가지고 있다면, 이는 해석하기 어렵다.
- 하지만 300차원의 특징 공간을 2차원 공간에 투영함으로써 시각화가 가능하다.
- 이 작업을 위해 사용되는 알고리즘이 t-SNE 알고리즘이다.
Properties of Word Embeddings
Word Embedding Vector에서 Man과 Woman을 구분할 수 있는 특성이 무엇인지 알아보자.
위 그림에서, 각 단어의 Embedding Vector를 e라고 표기한다면,
e_man - e_woman은 [-2, -0.01, 0.01, 0.08 ] 이며, 대략적으로 [ -2, 0, 0, 0 ] 로 표현할 수 있다.
이를 통해, Man과 Woman을 구분할 수 있는 특성은 Gender라는 것을 알 수 있다.
또한, e_king - e_queen 도 대략적으로 [-2, 0, 0, 0] 로 표현할 수 있으므로,
King과 Queen을 구분할 수 있는 특성 또한 Gender라는 것을 알 수 있다.
따라서, 만약 알고리즘에게 "Man과 Woman이 유사하다면, King은 무엇과 유사할까?"라고 물어본다면,
알고리즘은 아래 공식을 사용해 적합한 embedding vector를 찾아낸다.
위 공식은 아래와 동일하다.
따라서, 알고리즘은 [e_king - e_man + e_woman]와 유사한 embedding vector를 찾게 된다.
embedding vector [e_w] 와 [e_king - e_man + e_woman] 의 유사도는 일반적으로 Cosine similarity를 통해 구한다.
- Cosine similarity 외에도 유클리드 거리 계산 방법 등이 있다.
Embedding Matrix
Embedding Matrix는 Word embedding의 학습 과정에서 배우게 되는 Matrix 이다.
Word embedding시 사용되는 Embedding Matrix는 아래 그림과 같은 구조를 가지고 있으며, 행과 열의 의미는 다음과 같다고 가정해보자.
- 열 : 사전에 있는 10000개의 단어
- 행 : 각 단어가 가진 300개의 특징
또한, 우리는 orange라는 단어를 Word Embedding 하고 싶으며, orange의 One-hot Vector는 아래 그림과 같이 같이 표현된다고 가정해보자.
- orange는 사전의 6257번째 index를 가지고 있다.
이 때, Embedding Matrix(300, 10000)와 orange의 One-hot Vector(10000,1)를 내적하면
orange는 특성을 표현하는 300차원의 Embedding Vector(300,1)로 바뀌게 된다.
이처럼, Word Embedding은 Eebedding Matrix와 단어의 One-hot Vector를 통해 진행되므로
Eebedding Matrix가 단어의 특성을 표현해주도록 학습하는 것이 목표이다.
'AI > Deep Learning' 카테고리의 다른 글
[DL] Autoencoder (오토인코더) (0) | 2021.03.03 |
---|---|
[DL] Word2Vec, CBOW, Skip-Gram, Negative Sampling (3) | 2021.02.18 |
[DL] RNN, LSTM, GRU 란? (5) | 2021.02.16 |
[DL] Sequence Model이란? (3) | 2021.02.15 |
[DL] Neural Style Transfer (1) | 2021.02.10 |