NLP의 기초 작업 '단어 임베딩' 알아보기
이수린
lsrwhite@naver.com | 2021-05-04 15:53:20
NLP(Natural language processing)는 말 그대로 사람의 언어를 컴퓨터로 처리하는 과정을 말한다. 그런데, 인간의 언어를 처리하기엔 컴퓨터라는 기계의 원리가 너무 단순하다. 따라서 인간의 언어를 컴퓨터가 알아볼 수 있는 형태(주로 벡터, 텐서 형태)로 비꾸어 주는 과정이 필요하다. 여기에서 가장 기초적인 단계가 단어 임베딩(word embedding)이다.
컴퓨터가 단어의 의미를 ‘정량적으로’ 계산할 수 있게 바꿔주는 것
‘고양이’, ‘강아지’, ‘엄마’, ‘아빠’와 같은 단어를 줬을 때, 인간은 ‘고양이’와 ‘강아지’가 의미상으로 가깝고 ‘엄마’, ‘아빠’가 의미상 가깝다는 것을 쉽게 알 수 있을 것이다. 컴퓨터가 비슷한 일을 수행하기 위해서는 각 단어의 의미를 수치로 표현해야 한다. 따라서 단어 임베딩을 활용해, 단어의 의미를 벡터 공간에 나타낸다.
단어 임베딩의 대표적인 방식으로는 Word2Vec이 있다. 이 모델은 데이터에서 대상 단어와 문맥 단어를 추출해, 한 단어가 주로 함께 사용되는 표현(문맥)을 분석하여 벡터로 나타낸다.
만약, ‘철수네 엄마가 철수에게 조심하라고 말했어요’와 같은 문장을 분석한다면, ‘엄마’라는 단어는 ‘철수’라는 이름 등과 같이 많이 사용되는 것을 볼 수 있다. 벡터 공간에서 개별 단어는 문맥 단어와 가깝고, 문맥이 아닌 단어와는 멀게 표상된다.
이렇게 표상된 벡터를 통해 의미 연산을 수행할 수도 있다. 예를 들어, Word2Vec 한국어 모델에서 ‘아빠’-‘엄마’ ’할아버지’의 연산을 수행하면, ‘할머니’라는 단어를 출력해준다. 단어 임베딩은 이와 같은 과정을 거쳐 사람의 언어를 컴퓨터가 연산할 수 있도록 도와준다.
[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]