본문 바로가기

미분류

Word Embedding이란?

딥러닝을 활용한 자연어 처리가 가능한 것은, 자연어를 숫자로 바꿀 수 있기 때문이다.

그렇다면 자연어를 어떻게 숫자로 바꾸는걸까?

 

첫 단계는 토큰화 단계이다.

"나는 밥을 먹었다" 라는 문장을 분리한다면,

"나는", "밥을", "먹었다"와 같이 분리할 수 있다.

그리고 각각에 숫자 1, 2, 3을 할당해주면 된다.

 

그러나 토큰은 수치형 데이터가 아니고 범주형 데이터이다.

이를 딥러닝 모델에 인식시키는 대표적인 방법이 원-핫 인코딩이다.

1: [1, 0, 0]

2: [0, 1, 0]

3: [0, 0, 1]

이와 같이 할당해주는 것이다.

 

하지만 여기서도 문제가 발생하는데,

현재는 단어 데이터가 3종류 밖에 없지만,

실제는 하나의 언어 단어 수는 몇만개는 쉽게 넘어갈 것이다.

위에서 보듯 원-핫 인코딩은 카테고리화를 위해 엄청난 수의 더미 데이터를 양산한다.

즉 0의 수가 무궁무진하게 늘어날 것이고, 벡터의 차원 수도 엄청나게 커지는 것이다.

 

이를 해결하는 것이 임베딩이다.

데이터의 차원 수를 줄여주면서 딥러닝이 학습하기 좋은 형태가 되는 것이다.

단어 사전을 숫자화하면서, 규모를 작게 만들어준다고 생각하면 된다.

 

< ref. >

https://medium.com/analytics-vidhya/understanding-embedding-layer-in-keras-bbe3ff1327ce

 

Understanding Embedding Layer in Keras

In deep learning, embedding layer sounds like an enigma until you get the hold of it. Since embedding layer is an essential part of neural…

medium.com

https://wikidocs.net/22647

 

02-08 원-핫 인코딩(One-Hot Encoding)

컴퓨터 또는 기계는 문자보다는 숫자를 더 잘 처리 할 수 있습니다. 이를 위해 자연어 처리에서는 문자를 숫자로 바꾸는 여러가지 기법들이 있습니다. 원-핫 인코딩(One-Hot E…

wikidocs.net