Embedding
비정형화된 텍스트를 숫자로 바꿔줌으로써 사람의 언어를 컴퓨터 언어로 번역하는 것을 의미합니다. 자연어처리 분야에서 텍스트 데이터를 처리하는 가장 작은 단위는 단어였으며, 이는 일반적으로 단위 벡터(one-hot vector)로 표현됩니다. 이처럼 임베딩은 텍스트를 단순하게 표현할 수 있어 다양한 통계적 자연어 처리 기법에 적용되었고 좋은 성과를 보이고 있습니다.
임베딩의 표현 방법에는 (1) 단어를 희소 표현(Sparse Representation)으로 변환하는 방법과 (2) 단어를 밀집 표현(Dense Representation)으로 변환하는 방법이 있습니다:
‘나는 임베딩 공부를 하고 있다’라는 문장의 희소 표현(좌)과 밀집 표현(우)
(1) 희소 표현 희소 표현은 원-핫 인코딩(one-hot encoding)을 통해 나온 원-핫 벡터처럼 벡터 또는 행렬(matrix)의 대부분 값이 0으로 표현되는 방법입니다. 표현하고자 하는 단어를 간단하게 나타낼 수 있다는 장점이 있으나, 데이터의 규모가 매우 커져서 데이터 셋에 등장하는 단어의 종류가 기하급수적으로 증가할 경우 단위 벡터의 크기가 지나치게 커진다는 단점이 있습니다. 공간적 낭비를 불러일으키는 것 외에도 단어 간의 의미적, 구문적 유사도를 평가할 수 없다는 단점을 지닙니다.
(2) 밀집 표현
밀집 표현은 벡터의 차원을 단어의 집합 크기로 상정하지 않습니다. 오히려 사용자가 설정한 값으로 모든 단어의 벡터 표현 차원을 맞춰 각 벡터 값이 0과 1이 아닌 실수 값으로 표현합니다. 따라서 밀집 표현은 저차원에서 단어의 의미를 여러 차원 공간에 분산하여 표현하기 때문에 단어 간 유사도를 계산할 수 있습니다. 단어를 밀집 벡터의 형태로 표현하는 방법을 ’워드 임베딩(Word Embedding)’이라고 하며, 그 결과를 ’임베딩 벡터(embedding vector)’라고 합니다.
두 표현 방법의 차이점 비교 (출처 : 딥러닝을 이용한 자연어 처리 입문)