대화의 단계
화자는 청자가 이해할 수 있는 방법으로 이쁘게 인코딩
청자는 본인 지식을 바탕으로 디코딩
대화의 단계
Encoder는 Decoder가 이해할 수 있는 방법으로 인코딩
Decoder는 본인 지식을 바탕으로 디코딩
Word2vec (word to vector) 알고리즘: 자연어 (특히 단어)의 의미를 벡터 공간에 임베딩
한 단어의 주변 단어들을 통해 그 단어의 의미를 파악한다.
Word2vec 알고리즘은 주변부의 단어를 예측하는 방식으로 학습한다.
(Skip-gram 방식)
단어에 대한 dense vector를 얻을 수 있다.
FastText는 단어를 n-gram으로 분리를 한 후, 모든 n-gram vector를 합산한 후 평균을 통해 단어 벡터를 획득한다.
오탈자, OOV, 등장 회수가 적은 학습 단어에 대해서 강세
Word2Vec이나 FastText와 같은 word embedding 방식은 동형어, 다의어 등에 대해선 embedding 성능이 좋지 못하다는 단점이 있다.
(뜻이 여러개인 경우 그 모든 의미를 가지려하기 때문에 이도저도 아닌 벡터값을 갖는다.)
주변 단어를 통해 학습이 이루어지기 때문에, '문맥'을 고려할 수 없다.
'자연어'의 법칙을 컴퓨터로 모사한 모델 → 언어 '모델'
마코프 체인 모델 (Markov Chain Model)
RNN은 히든 노드가 방향을 가진 엣지로 연결돼 순환구조를 이룬다.
(directed cycle)
마지막 출력은 앞선 단어들의 '문맥' 을 고려해서 만들어진 최종 출력 vector → Context vector
출력된 context vector 값에 대해 classification layer를 붙이면 문장 분류를 위한 신경망 모델
Encoder layer: RNN구조를 통해 Context vector 를 획득
Decoder layer: 획득된 Context vector를 입력으로 출력을 예측
RNN 구조의 문제점
하지만 여전히 RNN이 순차적으로 연산이 이뤄짐에 따라 연산 속도가 느리다.
Transformer
현재 쓰이는 BERT, GPT 등은 모두 Transformer 기반의 모델이다.