Python/NLP

워드 임베딩이란

티권 2023. 3. 20. 21:22

희소 표현(Sparse Representation)

- 벡터 또는 행렬의 값이 대부분 0으로 표현되는 방법

- 예를들어 원-핫 벡터는 희소 벡터, DTM은 희소 행렬

- 고차원에 각 차원이 분리된 표현 방법

- 문제점

  - 단어의 개수가 늘어나면 벡터의 차원이 한없이 커짐

  - 원-핫벡터에서는 갖고 있는 코퍼스에 단어가 10000개면 벡터 차원 10000이어야함

  - 공간적 낭비

  - 단어의 의미를 표현하지 못함

  - 단어 벡터간 유의미한 유사성을 표현할 수 없음 -> 대안 : 분산표현

 

 

분산 표현(Distributed Representation)

- 가정 : 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다.

  ex) 강아지는 귀엽다, 예쁘다, 애교 등의 단어와 주로 함께 등장. 이 단어들은 유사한 벡터값을 가짐.

- 단어의 의미를 다차원 공간에 벡터화하는 방법

- 단어의 의미를 여러 저차원에다가 분산하여 표현

 

 

밀집 표현(Dense Representation)

- 벡터의 차원은 단어 집합의 크기가 아님

- 사용자가 설정한 값으로 모든 단어의 벡터 표현의 차원을 맞춤

- 0고 1만 가진 값이 아니라 실수값을 가지게 됨

 

 

워드 임베딩(Word Embedding)

- 단어를 밀집 벡터의 형태로 표현하는 방법

- 이 밀집 벡터를 임베딩 벡터(embedding vector)라고 함

- 방법론

  - LSA

  - Word2Vec

  - FastText

  - Glove