Token은 특정 문서에서 연속된 문자들 중 의미 있는 단위다. Tokenization은 언어 입력을 토큰과 같은 작은 단위로 나누는 과정이다.
일반적으로 공백, 구두점을 기준으로 분리하며, 각 단어는 고유 ID로 매핑된다. 'dog', 'dogs'와 같이 매우 유사한 단어도 서로 다른 ID를 가지며, Vocabulary 크기가 지나치게 커질 수 있다. Vocabulary 크기를 제한하였을 때 Vocabulary에 포함되지 못한 단어 (Out of Vocab)은 "unknown" 토큰 ID로 매핑되며, 이는 정보 손실을 초래할 수 있다.
토큰 수가 적으며 Out of Vocab 문제가 줄어든다. 그러나 각 문자는 많은 정보를 담지 못하며, 각 단어가 매우 긴 시퀀스로 표현될 수 있다.
단어 수준과 문자 수준 토큰화의 중간 지점이다.
0과 1로 이루어진 크기 (: Vocabulary 크기)의 One-Hot Vector로 표현한다. One-Hot vector는 sparse하고 크기가 크며, 서로 다른 두 One-Hot vector의 Inner Product는 0이다.
단어의 특성에 대한 정보나 단어 간 유사성을 제공하지 못한다.
단어의 의미는 그 단어가 나타나는 문맥에 의해 정의된다. 즉, 비슷한 문맥에서 쓰이는 단어들은 의미도 비슷하다. 언어학적으로 단어의 의미를 그 분포, 즉 주변 문맥을 기반으로 분석할 수 있음을 시사한다.
함께 출현한 단어로 이루어진 Train data를 구성하고, 주변 단어와 타겟 단어 간의 분류 문제로 정의한 후 학습한다. 신경망을 기반으로 주변 단어들과의 관계를 임베딩 공간에 투영한다.
행렬 분해를 기반으로 단어 임베딩을 학습한다.
Word2Vec의 확장 버전으로, 단어를 subword 단위로 분해해 임베딩한다.