오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-23 00:00
관리 메뉴

우노

[DL] One-Hot Vector, Word Embedding 본문

AI/Deep Learning

[DL] One-Hot Vector, Word Embedding

운호(Noah) 2021. 2. 17. 12:42
  • 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는 특징을 표현하는 실수값으로 채워진 고밀도 벡터이다.
      • 저차원으로 이루어져있다.
  • Local/Distributed

    • One-Hot Vector : Local Representation
      • Vector 일부분만 단어를 표현한다.
    • Word Embedding : Distributed Representation
      • Vector 전체에 단어의 의미를 표현한다.

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
Comments