본문 바로가기
Deep Learning/자연어처리

Sparse Representation, Dense Representation

by 대소기 2021. 12. 27.

Word Embedding

* word embedding은 단어를 벡터로 표현하는 방법이다. 대표적인 방법으로는 LSA, Word2Vec, FastText, Glove등이 있다.

 

Sparse Representation(희소 표현)

* sparse representation은 단어를 sparse vector로 표현하는 방식을 뜻한다. sparse vector는 vector의 대부분이 0으로 이뤄진 vector를 뜻하며, 우리가 자주 사용했던 one-hot encoding의 결과 vector가 바로 이 sparse vector라고 할 수 있다. 

* sparse vector는 대부분이 0으로 이뤄 있기 때문에 공간적인 낭비가 심하다. 예를 들어 corpus에 단어가 10,000개가 있다고 가정해보자. 단어 벡터가 one-hot encoding되어 sparse vector로 표현될 때 9999개의 값이 0임에도 불구하고 10,000차원의 vector를 사용해야 한다는 사실이 비효율적이라고 생각되지 않는가? 그리고 sparse representation은 단어의 의미를 나타내지 못한다는 단점도 존재한다. 이러한 비효율성을 개선하기 위해 word embedding에서는 sparse vector를 다음에 설명할 dense vector로 변환하여 사용하게 된다.

 

Dense Representation(밀집 표현)

* Dense Representation은 sparse vector를 더 작은 차원의 vector(=Dense Vector)로 변환하는 방법을 뜻한다. 위에서 설명했듯이 10,000차원의 sparse vector(one-hot vector)가 있다면, 이를 사용자가 설정한 차원의 vector로 변환한다. NNLM 포스팅에서 설명했듯이 lookup table이라는 weight matrix를 곱함으로서 사용자가 설정한 차원의 vector로 변환될 수 있다. 참고를 위해 NNLM 포스팅에서 살펴봤던 위 자료를 보자.

 

 

'Deep Learning > 자연어처리' 카테고리의 다른 글

Transformer  (0) 2022.02.20
다양한 단어의 표현방법  (0) 2022.01.27
RNN을 이용한 디코더-인코더 - Seq2Seq  (0) 2021.12.23
글자 단위 RNN(Char RNN)  (0) 2021.12.18
LSTM을 사용하여 텍스트 생성하기  (0) 2021.12.18