Logical Scribbles

[딥러닝] 원-핫 인코딩과 워드 임베딩 본문

딥러닝/딥러닝 이론

[딥러닝] 원-핫 인코딩과 워드 임베딩

KimJake 2023. 11. 27. 19:09

이번 포스팅에서는 NLP 및 트랜스포머 등등에서 등장하는 워드 임베딩에 대해 알아보자.

 

컴퓨터가 사람처럼 단어를 보고 바로 이해할 수 있었다면 이후 등장하는 원-핫 인코딩이나 워드 임베딩은 필요하지 않았을 것이다. 하지만 컴퓨터는 숫자에 익숙한 친구이기 때문에, 우리는 친절히 단어들을 이 컴퓨터가 이해할 수 있는 언어로 바꿔주는 과정이 필수적이었다. 

 

이번 포스팅에서는 그러한 방법 두가지를 설명할 것이다. 원-핫 인코딩과 워드 임베딩이다. 핵심 내용은 워드 임베딩이 될 것이다. 4가지 키워드(희소 벡터, 밀집 벡터, 워드 임베딩, 임베딩 벡터)를 잘 이해해보자!

 

1. 원-핫 인코딩

먼저 원핫 인코딩에 대해 알아보자. 원-핫 인코딩은 multi-class classification에서 자주 등장하는 용어이다.

 

원-핫 인코딩이란 목표 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식이다. 가령 'Cat' 을 컴퓨터가 이해할 수 있도록 하기 위해서는 아래 사진의 오른쪽과 같이 cat에 해당하는 인덱스에 1의 값을 부여하고, 다른 클래스의 인덱스에는 0을 부여하여 [1,0,0,0]이라고 표현하면 된다.

원-핫 인코딩

 

하지만 인간이 사용하는 단어의 수는 위와 같이 적지 않고, 엄청나게 많다. 내가 알고 있기로 현재 존재하는 영단어의 수만 500,000개라고 하니, 전세계의 언어를 이해하기 위해서 모든 단어들에 원-핫 인코딩을 진행하면 엄청난 차원의 벡터가 생성될 것이다. 

 

예를 들어 영단어 집합에서 'Cat' 이라는 단어를 원-핫 인코딩 하기 위해서는 Cat에 해당하는 인덱스는 1이고, 나머지 499,999개의 인덱스에는 0이 들어가야하는 것이다. 

 

이러한 원-핫 인코딩 방식과 같이 표현되는 벡터를 '희소 벡터' (Sparse Vector) 라고 한다. 더 정확하게 '희소 벡터'란 벡터의 값이 대부분 0으로 표현되는 벡터이다.

 

이 희소 벡터는 엄청난 공간적 낭비를 불러 일으킬 것을 알 수 있다. 흔히 '차원의 저주' 라고도 불리는 현상이 일어날 수 있는데, 차원의 저주란 공간의 차원이 증가함에 따라 데이터의 밀도가 급격히 감소하고, 이로 인해 데이터 분석이나 머신러닝 모델의 성능에 부정적인 영향을 미치는 현상이다.

 

또한, 희소 벡터로는 단어간의 유사한 정도를 파악하지 못할 것이다. 그저 해당 단어의 인덱스에 1을 표시했을 뿐이기 때문이다.

 

2. 워드 임베딩

앞서 원-핫 인코딩이 '희소 표현' (Sparse Representation)으로 이루어진 '희소 벡터'였다면, 워드 임베딩은 '희소 표현'의 반대말인 '밀집 표현' (Dense Representation)으로 이루어진 '밀집 벡터'이다.

 

밀집 벡터는 희소 벡터와 달리 벡터 안의 모든 값이 1과 0을 포함한 실수 값으로 이루어질 수 있다. 위의 500,000차원으로 표현된 'Cat'이라는 벡터를 128차원 밀집 벡터로 줄였다고 가정해보자. 아래와 같은 벡터가 될 수 있을 것이다.

 

cat = [1.2, -0.8, 1.1 ,,,,] : 128차원

 

이렇게 단어를 밀집 벡터의 형태로 표현하는 방법을 워드 임베딩(word embedding)이라고 한다. 그리고 이 밀집 벡터를 워드 임베딩 과정을 통해 나온 결과라고 하여 임베딩 벡터(embedding vector)라고 한다.

 

워드 임베딩 방법론으로는 Word2Vec 등이 있다. 이러한 방법론들은 단어를 랜덤한 값을 가지는 밀집 벡터로 변환한 뒤에, 인공 신경망의 가중치를 학습하는 것과 같은 방식으로 단어 벡터를 학습하는 방법을 사용한다. 

 

최종적으로 학습된 단어들은 아래와 같이 고유의 벡터로 표현된다.

 

이 워드 임베딩을 통해 기존 원-핫 인코딩의 희소 벡터들의 차원의 저주를 완화시킬 수 있고, 단어 벡터들을 내적하여 유사도를 구하는 등의 작업을 할 수 있게 된다.

 

 

 

끝!