본문 바로가기

딥러닝/[딥 러닝을 이용한 자연어 처리 입문]딥러닝

워드 임베딩(Word Embedding)

워드 임베딩(Word Embedding)은 단어를 벡터로 표현하는 방법으로, 단어를 밀집 표현으로 변환합니다. 

 

1. 희소 표현(Sparse Representation)

 

원-핫 인코딩을 통해서 나온 원-핫 벡터들은 표현하고자 하는 단어의 인덱스의 값만 1이고, 나머지 인덱스에는 전부 0으로 표현되는 벡터 표현 방법이었습니다.

이렇게 벡터 또는 행렬(matrix)의 값이 대부분이 0으로 표현되는 방법을 희소 표현(sparse representation)이라고 합니다.

원-핫 벡터는 희소 벡터(sparse vector)입니다.

원-핫 인코딩을 통해 얻어진 벡터는 대부분의 원소가 0으로 표현되기 때문에 희소 벡터라고 부릅니다.
이러한 희소 표현은 메모리 공간을 많이 차지하게 되는 문제가 있습니다.
이에 대한 대안으로 밀집 벡터(dense vector)를 사용하기도 합니다.
밀집 벡터는 대부분의 원소가 0이 아닌 값으로 채워져 있어 메모리 공간을 더 효율적으로 사용할 수 있습니다.
대표적인 밀집 벡터 표현 방법으로는 Word2Vec, GloVe 등이 있습니다.

 

이러한 희소 벡터의 문제점은 단어의 개수가 늘어나면 벡터의 차원이 한없이 커진다는 점입니다.

이러한 벡터 표현은 공간적 낭비를 불러일으킵니다.

 

2. 밀집 표현(Dense Representation)

 

밀집 표현은 사용자가 설정한 값으로 모든 단어의 벡터 표현의 차원을 맞춥니다.

또한, 이 과정에서 더 이상 0과 1만 가진 값이 아니라 실수값을 가지게 됩니다.

이 경우 벡터의 차원이 조밀해졌다고 하여 밀집 벡터(dense vector)라고 합니다.

 

3. 워드 임베딩(Word Embedding)

 

단어를 밀집 벡터(dense vector)의 형태로 표현하는 방법을 워드 임베딩(word embedding)이라고 합니다.

그리고 이 밀집 벡터를 워드 임베딩 과정을 통해 나온 결과라고 하여 임베딩 벡터(embedding vector)라고도 합니다.

워드 임베딩 방법론으로는 LSA, Word2Vec, FastText, Glove 등이 있습니다.

케라스에서 제공하는 도구인 Embedding()는 단어를 랜덤한 값을 가지는 밀집 벡터로 변환한 뒤에, 인공 신경망의 가중치를 학습합니다. 

Embedding()은 인공 신경망이 학습하는 과정에서 입력된 단어를 밀집 벡터(dense vector)로 변환하는 역할을 합니다.
이때, 이 밀집 벡터는 해당 단어와 유사한 단어들이 비슷한 벡터값을 가지도록 학습되며, 이를 통해 단어 간의 유사도를 계산할 수 있습니다.
이러한 방식은 단어의 희소 표현(sparse representation)을 밀집 표현(dense representation)으로 변환해주는 장점이 있습니다.