Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

자연어처리를 위한 word embedding 본문

Computing Tech. Diary/Artificial Intelligence

자연어처리를 위한 word embedding

똘키아빠 2022. 5. 2. 11:16
RNN과 트랜스포머를 통해 일반 자연어처리를 위한 딥러닝을 소개했습니다. 현재 DNN은 많은 분야에 적용되어 영상, 음향, 문자 등 다양한 형태의 데이터를 입력으로 처리하고 있습니다. 영상데이터는 각 픽셀 값을 레벨로 표현하고, 음성을 포함한 음향데이타는 시간도메인 또는 주파수도메인에서의 레벨로 표현하여 DNN에 입력값으로 표현하고 있습니다. 
 

 

워드임베딩(Word Embedding)은 단어에서 알 수 있듯이 text형태로 존재하는 문장을 처리하기 위한 DNN의 입력방법입니다. 이번 글에서는 문장을 입력으로 처리하기 위한 워드임베딩 방법에 대해 소개하고자 합니다.  워드임베딩은 결론적으로 말하면 단어를 특정한 벡터로 표현하는 방법입니다. 

 

컴퓨터로 언어를 처리하기 위해서 문장의 최소단위인 문자 하나하나는 다양한 코드로 표현됩니다. 이러한 코드중에는 여러분들이 모두 잘 알고 계시는 ASCII, UTF16 등등이 있습니다. 이렇게 문자를 코드로 변환하는 것을 encoding이라고 합니다. 이러한 문자들이 연결되어 특정 단어의 의미를 같습니다. 각각의 단어를 DNN에서 처리하기 위해서 역시 encoding을 해야 합니다.

 

이러한 단어를 코드화하는 것은 각 단어마다 숫자값을 부여하여 처리하는 가장 간단한 방법이 있으나, 가장 일반적으로 one-hot encoding이라는 방법을 사용합니다. 예를 들어, “I love you”라는 문장을 처리할 때, 각 단어와 대응되는 정수로 변환한다면 아래와 같이 encoding을 할 수 있습니다. 

 

 

one-hot encoding은 문장 전체 단어의 수만큼의 원소를 갖는 벡터를 구성하여,  해당 하는 단어의 원소에 1의 값을 부여하고, 나머지는 0으로 채우는 아래와 같은 벡터를 구성하는 것입니다.  

 

 

이러한 encoding 방법 들은 단어의 수가 증가하면 해당 크기도 늘어나며 해당 단어의 어떤 의미 또는 개념을 부여하지 않기 때문에 좀 더 의미를 부여할 수 있는 워드임베딩이라는 방법을 사용합니다. 이러한 워드임베딩은 단어와 단어간의 유사도, 즉 의미적인 상관관계를 갖지만 벡터의 크기는 고정된 형태로 구성하는 방법을 의미합니다.

 

 

위 그림에서 단어들이 7차원의 벡터로 표현되고 각 차원은 어떤 의미를 갖는 실수 값을 갖도록 구성합니다. 이렇게 구성된 단어의 임베딩벡터를 2차원으로 차원을 감소하여 표현하면 오른쪽처럼  떨어진 거리만큼의 유사도가 있음을 알 수 있습니다. 예를 들어 man과 women의 벡터의 차는 king과 queen의 차이와 유사하며 그 방향도 유사한 것을 알 수 있습니다. 가장 대표적이고 널리 알려진 워드임베딩 방법으로는구글에서 발표한 word2vec이라는 것이 있습니다. 

'Computing Tech. Diary > Artificial Intelligence' 카테고리의 다른 글

Deep Metric Learning  (0) 2022.05.02
DNN의 또 다른 형태, GNN  (0) 2022.05.02
Transformer  (0) 2022.05.02
Semi-Supervised Learning  (0) 2022.05.02
Self-Supervised Learning  (0) 2022.05.02
Comments