Word2Vec
, GloVe
와 같은 임베딩 방법이 있다.LSTM
, GRU
)은 임베딩 과정을 거쳐 벡터로 표현된 단어를 입력 데이터로 받는다.attention
, Transformer
를 통해 이루어졌으며 BERT
, GPT-3
와 같은 대용량 모델은 self-supervised 학습을 하기 때문에 별도의 라벨링이 필요하지 않다.Step 1. 입력 문장으로부터 단어 집합(vocabulary) 만들기
입력 문장을 토큰화해 중복되는 토큰 없이 단어 집합을 만든다. 영어는 단어마다 띄어쓰기를 하기 때문에 위 예시에서는 띄어쓰기를 기준으로 토큰화를 수행한다.
Step 2. 단어 집합 안의 각 단어를 one-hot 벡터로 만들기
단어 집합 안의 각 단어에 one-hot encoding을 수행해 one-hot vector로 만든다. one-hot vector는 해당 단어가 존재하면 1, 아니면 0으로 표현하며 각 단어의 one-hot vector는 단어 집합의 크기와 동일한 차원을 가진다. 위 예시에서는 ****vocab에 단어 8개가 존재하기 때문에 각 단어는 8차원 one-hot vector가 된다. 모든 단어간의 거리는 $\sqrt2$, 코사인 유사도는 0으로 동일하다. 단어 집합 안의 단어들은 categorical variable(범주형 변수)로 볼 수 있다.
문장/문서에 적용하기
각 단어의 one-hot vector값을 더해 해당 단어를 포함하는 문장을 one-hot vector로 표현할 수 있다.