임베딩
1. 임베딩이란?
임베딩이란 위와 같이 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터로 바꾼 결과 혹은 그 과정 전체를 의미합니다.
임베딩의 가장 간단한 형태는 단어의 빈도를 그대로 벡터로 사용하는 것입니다.
문서 A, B, C에 단어 i, j, k가 나타나는 빈도를 표를 통해 알아보겠습니다.
이러한 표를 단어-문서 행렬이라고 부릅니다.
문서 A의 임베딩은 [0,1,1]T 이고 단어 i의 임베딩은 [0,3,5] 입니다.
이 표를 통해 몇 가지를 추정해 볼 수 있습니다.
문서 B와 문서 C의 단어 빈도를 살펴봤을 때 매우 유사한 것을 보면 문서 B와 문서 C는 비슷한 내용의 문서라고 추정해 볼 수 있습니다.
또한, 단어 j와 단어 k는 같이 등장한 것을 보면 단어 j와 단어 k 간의 의미 차이가 단어 j와 단어 i 간의 의미 차이보다 작을 것이라고 추정해볼 수 있습니다.
즉, 이처럼 임베딩이란 단어나 문장, 문서를 벡터로 변환시킨 값이나 그 과정을 말하며
이렇게 변환시킨 벡터 값에 의미와 정보를 손실없이 잘 담아낼수록 좋은 임베딩이라 할 수 있고, 임베딩의 방법은 여러 가지가 존재합니다.
이에 대해서는 추후에 자세히 알아보도록 하겠습니다.
2. 임베딩의 역할
2-1. 단어/문장 간 관련도 계산
위의 단어-문서 행렬은 가장 단순한 형태의 임베딩이며 현업에서는 이보다 복잡한 형태의 임베딩을 사용합니다.
대표적인 예시로 구글에서 발표한 Word2Vec 기법이 있습니다.
이를 통해 단어들을 벡터로 바꿀 수 있습니다.
Word2Vec 임베딩을 통해 단어 벡터는 위의 단어-문서 행렬보다 다양한 숫자를 가집니다.
“희망”이라는 단어를 Word2Vec 기법을 통해 임베딩하게 되면