deep learning

Embedding OutLine

문과 열등생 2024. 2. 29. 13:15

Embedding (or Embedding Vector)

   : 텍스트 데이터를 고정된 크기의 밀집 벡터로 변환하는 기술로, 텍스트 데이터의 의미적, 문맥적 정보를 벡터 공간에 표현하는 것으로, embedding들 간의 거리 계산을 통해 이들 간의 의미적 관계를 파악할 수 있다.

   : Embedding의 종류는 다음과 같다.

    1. Vectorization에 신경망을 사용하지 않을 경우
      1. 단어에 대한 벡터 표현 : One-Hot Encoding
      2. 문서에 대한 벡터 표현 : Document Term Matrix, TF-IDF
    2. Vectorization에 신경망을 사용하는 경우 (Learned Embedding)
      1. 단어에 대한 벡터 표현 방법 : 워드 임베딩 (Word2Vec, GloVe, FastText, Embedding Layer)
      2. 문서에 대한 벡터 표현 방법 : Doc2Vec, Sent2Vec
    3. 문맥을 고려한 벡터 표현 방법 : ELMo, BERT, GPT, T5 등
      • Pre-Trained Language Model의 시대

 

   원핫 인코딩을 활용하여 텍스트 데이터를 sparse matrix로 표현하게 되면, 맥락 정보를 표현하지 못하고 고차원으로 인한 공간적 낭비와 차원의 저주 문제를 유발할 수 있다는 점에서, Word Embedding 방식이 고안되었다. Word Embedding은 Dense Representation의 일종으로, 텍스트 데이터를 저차원의 밀집 벡터로 변환함과 동시에, 텍스트 데이터의 맥락 정보를 효과적으로 표현하는 방법이다.

  • Sparse Representation : Sparse Vector는 맥락 정보를 표현하지 못하며, 고차원으로 인한 공간적 낭비와 차원의 저주 유발
  • Dense Representation : 벡터의 차원을 단어 집합의 크기로 상정하지 않고, 사용자가 직접 밀집 표현의 차원을 설정하고, 이 값으로 모든 벡터 표현의 차원을 맞춤
  • Distributed Representation : 단어의 의미를 다차원의 공간에 벡터화 하는 방법으로, 분산 표현을 통해 단어 간 의미적 유사성을 벡터화하는 작업을 word embeddingd-이라고 하고, word embedding을 통해 표현된 벡터를 embedding vector라고 한다. (★ MLE!)
    • 결국 분산 표현은 희소 표현의 한계를 극복하기 위한 대안으로 등장한 개념
    • 비슷한 분포를 갖고 있다면 비슷한 모양을 갖고 있다고 추론할 수 있듯이, ‘비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 갖는다’는 가정에서 출발 (분포 가설)
    • 단어의 의미를 여러 차원에 분산하여 표현하는 것으로, 이를 통해 원핫인코딩 방식과는 달리 단어 벡터 간 유의미한 유사도를 파악 가능 (맥락 파악)
    1.  
sliding window : 윈도우를 움직여서 주변 단어와 중심 단어의 선택을 변경해가며 학습을 위한 데이터셋을 만드는 방법