호돌찌의 AI 연구소
article thumbnail

저번 시간 Transformer에 대해 다루었습니다. 조금 더 기초로 돌아가보는 시간 가지겠습니다. NLP에서 가장 근간이 되는 것은 단연 Language Model 입니다. 매우 간단하게 설명하면 토익 Part 5와 같다고 생각하시면 되는데 다음의 빈칸에 알맞은 단어를 고르면 됩니다. 

 

https://www.starteacher.co.kr/testenglish/community/info/articles/82

 

우리 인간은 상당히 많은 말을 일상에서 주고받기 때문에 자연스럽게 단어와 단어사이에 무슨 단어가 들어가야할 지, 어떤 단어가 들어가야 좋은지 학습이 매우 잘 되어 있습니다. 빈칸에 들어갈 확률이 어느게 높은지 잘 학습이 되어있다는 뜻입니다. 

 

언어모델은 위처럼 쉽게 설명하면 그렇지만 수학적으로는 "문장의 확률 분포"를 나타낸 모델이라고 정의할 수 있습니다. 이전 단어들이 주어졌을 때 다음 단어의 확률을 예측하거나, 문장의 출현 확률을 예측하는 것입니다. 즉, 궁극적으로 우리가 일상 생활에서 사용하는 General한 언어의 문장 분포를 정확하게 모델링하거나 특정 전문 도메인(의학이나 경제, 금융 등) 의 문장의 분포를 파악하기 위해 해당 Corpus를 수집해 모델링하기도 합니다. 이 모델을 만들기 위해 평생동안 제가 책이나 정보를 읽어보기도 힘든 양의 수 많은 문장들을 수집하여, 단어 사이의 출현 빈도를 세어서 확률을 계산합니다. 

 

수학적으로는 다음 단어 등장 확률을 식으로 표현하면 아래와 같습니다. 

 

 

n-1개의 단어가 나열된 상태에서 n번째 단어가 나타날 확률은 위와 같다는 뜻 입니다. 이 조건부 확률들을 바탕으로 전체 단어 Sequence W의 확률은 아래 처럼 이렇게 표현할 수 있습니다. 

 

 

참고로 고등학교때 배우는 확률의 곱셈법칙 Chain Rule(딥러닝의 Backpropagation이나 고등학교때 미적분학에서의 도함수 Chain Rule과는 조금 다릅니다.)

 

https://en.wikipedia.org/wiki/Chain_rule_(probability)

 

언어에 대입하면 아래와 같이 표현할 수 있습니다. 

 

https://www.usna.edu/Users/cs/nchamber/courses/nlp/f17/slides/set3-LMs.pdf

 

이 Language Model의 목표는 문장의 Likelihood를 최대화 하는 것 입니다. 즉 단어가 주어졌을 때 다음 단어의 Likelihood를 최대화 하는 것과 같습니다. n-gram 모델에 대해서 손으로 미분을 해보시고 싶은 분이 계시다면 아래 글을 참고하시면 될 것 같습니다. 

 

https://leimao.github.io/blog/Maximum-Likelihood-Estimation-Ngram/

 

Maximum Likelihood Estimation of N-Gram Model Parameters

Hello Underworld.

leimao.github.io

 

정리하면 "문장의 확률은, 단어가 주어졌을 때 다음 단어를 예측하는 확률을 차례대로 곱한 것과 같다." 라고 할 수 있습니다. 이 과정은 Corpus의 Likelihood를 최대화하는 parameter를 찾는 과정으로 요약할 수 있습니다. 이러한 가정을 바탕으로 우리가 Pretrain을 실시하는 것입니다. 

profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!