새소식

딥러닝/자연어 처리

[WordEmbedding] Embedding Layer

  • -
  • Skip-gram등을 통해 계산하여 fix된 Word Embedding Vector를 네트워크에 넣어주게 되면 해당 알고리즘의 objective에 최적화된 representation을 넣어주는 것이지 기계번역 같은 task에 최적화된 representation을 넣어주는 것이 아니게 된다.
  • 또한 딥러닝은 end-to-end solution을 만드는 것이므로 단어 임베딩이 최종 목표인 경우는 거의 없다. 따라서 Word embedding vector을 활용하여 서비스를 만드는 일은 거의 없다.
  • 따라서 One-hot Vector 자체를(단어 자체를) Embedding Layer에 input으로 넣어주어 task에 맞는 dense rerpesentation으로 변환한다.

 

즉, N개의 단어가 있다면 N+@ 차원의 벡터가 네트워크의 입력이 되어 Embedding layer에 거치게 된다.

 

 

 

그런데 Embedding layer는 linear layer이고 다음 Layer 사이에 Non-linearity가 없기 때문에 Linear + Linear = Linear로 Embedding layer를 사용하는 것에 의미가 있는 것일까 라고 생각할 수 있다.

그러나 실제로는 one-hot vector의 index값을 입력으로 넣어주어 index에 해당하는 row만 가져오도록하는 계산의 효율성을 높여주기 위해서이다.

 

 

728x90
Contents