이전 글 Word Embedding에서 동시에 출현하는 단어들이 비슷한 Embedding을 갖도록 학습이 되는 것이 목표라고 이야기를 했었습니다. 하지만 Pre-trained 된 Embedding 벡터를 활용하여 썼을 때 end-to-end 방식보다 성능이 떨어진다고 언급했었습니다. Skip-gram과 같은 Word Embedding 방식들은 단어들이 바뀌다고 해서 문장의 Word Embedding값들이 바뀌는 것이 아닙니다. 해당 Corpus 내의 데이터 셋 내에서는 Global 하게 고정된 것입니다. 정말 간단하게 이야기하면 '배'라는 단어는 3가지 뜻을 가질 수 있습니다. 과일의 배, 바다에 떠다니는 배, 사람 신체의 배 이렇게 동음이의어처럼 이런 경우들은 전부 고정된 임베딩 벡터라는 것이 큰 문제입니다.
하지만 Pre-trained Language Model의 포문을 연 ELMo는 Context를 기반으로 Embedding을 학습합니다. (Dynamic Context Vector, Contextualized Word Representations 라고도 부릅니다.) 양방향(엄밀히 말하면 아니지만 여기서는 편의상으로 양방향이라고 표현을 하겠습니다.) Context 주변 문장과 단어 앞뒤를 다 보고 Embedding을 학습하기 때문에 Skip-gram과 같은 방식과 다릅니다. 이 것을 학습해서 Word embedding으로 사용하면 Down Stream Task에 작동이 잘 됩니다.
간단히 정리하면
Word2vec을 바탕으로 Downstream Task 적용을 하면 효과가 적고, 코퍼스 전체에 따라 단어별 Unique한 Embedding이 결정이 되기에 정적인 Embedding이지만, ELMo는 양방향 Context를 고려해 의미를 결정하기에 문장에 따라 단어의 Embedding이 바뀝니다. 즉, Dynamic Context Embedding이라 할 수 있다. 다음 글에서는 Attention과 Transformer 관련된 글로 찾아뵙겠습니다.
'AI > NLP' 카테고리의 다른 글
Pretrained Language Model - 8. Transformer (0) | 2021.10.15 |
---|---|
Pretrained Language Model - 7. Attention (0) | 2021.10.09 |
Pretrained Language Model - 5. Word Embedding (0) | 2021.09.23 |
Pretrained Language Model - 4. Downstream Task (0) | 2021.09.17 |
Pretrained Language Model - 3. PLM (0) | 2021.09.14 |