저번 시간 Transformer에 대해 다루었습니다. 조금 더 기초로 돌아가보는 시간 가지겠습니다. NLP에서 가장 근간이 되는 것은 단연 Language Model 입니다. 매우 간단하게 설명하면 토익 Part 5와 같다고 생각하시면 되는데 다음의 빈칸에 알맞은 단어를 고르면 됩니다.
우리 인간은 상당히 많은 말을 일상에서 주고받기 때문에 자연스럽게 단어와 단어사이에 무슨 단어가 들어가야할 지, 어떤 단어가 들어가야 좋은지 학습이 매우 잘 되어 있습니다. 빈칸에 들어갈 확률이 어느게 높은지 잘 학습이 되어있다는 뜻입니다.
언어모델은 위처럼 쉽게 설명하면 그렇지만 수학적으로는 "문장의 확률 분포"를 나타낸 모델이라고 정의할 수 있습니다. 이전 단어들이 주어졌을 때 다음 단어의 확률을 예측하거나, 문장의 출현 확률을 예측하는 것입니다. 즉, 궁극적으로 우리가 일상 생활에서 사용하는 General한 언어의 문장 분포를 정확하게 모델링하거나 특정 전문 도메인(의학이나 경제, 금융 등) 의 문장의 분포를 파악하기 위해 해당 Corpus를 수집해 모델링하기도 합니다. 이 모델을 만들기 위해 평생동안 제가 책이나 정보를 읽어보기도 힘든 양의 수 많은 문장들을 수집하여, 단어 사이의 출현 빈도를 세어서 확률을 계산합니다.
수학적으로는 다음 단어 등장 확률을 식으로 표현하면 아래와 같습니다.
n-1개의 단어가 나열된 상태에서 n번째 단어가 나타날 확률은 위와 같다는 뜻 입니다. 이 조건부 확률들을 바탕으로 전체 단어 Sequence W의 확률은 아래 처럼 이렇게 표현할 수 있습니다.
참고로 고등학교때 배우는 확률의 곱셈법칙 Chain Rule(딥러닝의 Backpropagation이나 고등학교때 미적분학에서의 도함수 Chain Rule과는 조금 다릅니다.)
언어에 대입하면 아래와 같이 표현할 수 있습니다.
이 Language Model의 목표는 문장의 Likelihood를 최대화 하는 것 입니다. 즉 단어가 주어졌을 때 다음 단어의 Likelihood를 최대화 하는 것과 같습니다. n-gram 모델에 대해서 손으로 미분을 해보시고 싶은 분이 계시다면 아래 글을 참고하시면 될 것 같습니다.
https://leimao.github.io/blog/Maximum-Likelihood-Estimation-Ngram/
정리하면 "문장의 확률은, 단어가 주어졌을 때 다음 단어를 예측하는 확률을 차례대로 곱한 것과 같다." 라고 할 수 있습니다. 이 과정은 Corpus의 Likelihood를 최대화하는 parameter를 찾는 과정으로 요약할 수 있습니다. 이러한 가정을 바탕으로 우리가 Pretrain을 실시하는 것입니다.
'AI > NLP' 카테고리의 다른 글
Pretrained Language Model - 11. GPT (0) | 2021.10.31 |
---|---|
Pretrained Language Model - 10. Tokenization (0) | 2021.10.31 |
Pretrained Language Model - 8. Transformer (0) | 2021.10.15 |
Pretrained Language Model - 7. Attention (0) | 2021.10.09 |
Pretrained Language Model - 6. ELMo (0) | 2021.10.02 |