본문 바로가기
AI

자연어처리 : 언어모델 : 통계적 언어모델

by 월곡동로봇팔 2020. 3. 5.

정의

통계적 언어모델은 통계적인 접근 방법으로 어떻게 언어를 모델링하는지를 정한다.

 

1. 조건부 확률

조건부 확률은 두 확률 P(A),P(B)에 대해서 아래와 같은 관계를 갖습니다.

p(B|A)=P(A,B)/P(A)

P(A,B)=P(A)P(B|A)

2020/01/18 - [machine_learning/statistics] - Statistics : 5-5 : 조건부확률

 

Statistics : 5-5 : 조건부확률

조건부확률 목적, 언제 쓸까? > 두 개 이상의 사건이 있을 때, 한 사건의 결과가 다른 사건의 확률에 영향을 미치는 경우!! 정의 > 어떤 사건 B가 있을 때, B사건중 A 사건이 일어날 확률을 조건부확률이라고 말하..

mambo-coding-note.tistory.com

더 많은 확률에 대해서 일반화해보자.

4개의 확률이 조건부 확률의 관계를 가질 때, 아래와 같이 표현할 수 있다. P(A,B,C,D)=P(A)P(B|A)P(C|A,B)P(D|A,B,C)

이를 조건부 확률의 연쇄 법칙(chain rule)이라고 한다. 이제는 4개가 아닌 n개에 대해서 일반화를 해보자.

P(x1,x2,x3...xn)=P(x1)P(x2|x1)P(x3|x1,x2)...P(xn|x1...xn1) = ∏ (i=1,n) P(wn|w1,...,wn−1) 

2. 문장에 대한 확률

문장 'An adorable little boy is spreading smiles'의 확률 P(An adorable little boy is spreading smiles)P(An adorable little boy is spreading smiles)를 식으로 표현해보자.

 

각 단어는 문맥이라는 서로의 관계로 이루어져있고, 이전 단어의 영향을 받아서 문장이 만들어진다.

따라서 문장의 확률을 구하고자 이전 단어의 영향을 고려하는 조건부 확률을 사용할 예정이다.

앞서서 배운 chain rule을 적용하면 문장이 문맥이라는 조건에 영향을 받는 조건부확률을 사용할 수 있다.

P(w1,w2,w3,w4,w5,...wn)=n=1nP(wn|w1,...,wn1)

위의 문장에 해당 식을 적용해보면 다음과 같다.

P(An adorable little boy is spreading smiles)=
P(An)×P(adorable|An)×P(little|An adorable)×P(boy|An adorable little)×P(is|An adorable little boy)
×P(spreading|An adorable little boy is)×P(smiles|An adorable little boy is spreading)

문장의 확률을 구하기 위해서 각 단어에 대한 예측 확률들을 곱한다.


3. 카운트 기반의 접근

위에서 문장에 대한 확률을 구할 때, "카운트 기반"하에 확률을 계산한 조건부확률로 이용한다.

 

An adorable little boy가 나왔을 때, is가 나올 확률인 P(is|An adorable little boy)를 구해보자

 

P(is|An adorable little boy)=count(An adorable little boy is)/count(An adorable little boy 

예를 들어 기계가 학습한 코퍼스 데이터에서 An adorable little boy가 100번 등장했는데 그 다음에 is가 등장한 경우는 30번이라고 하자. 이 경우 P(is|An adorable little boy)는 0.3 이다.

 

이런식으로 조건부확률을 구할 때는 count 기반으로 한다.

 

cf) 위의 연속적으로 조건부확률을 구하는 structure는 RNN에 들어있다.


4. 카운트 기반 접근의 한계 : 희소성 문제

충분한 data가 없어서 오류를 범할 수도 있다.

이를 완화하는 방법은 n-gram, smooding, Back-Off

 

이러한 한계들로 인해 언어 모델의 트렌드는 통계적 언어 모델에서 인공 신경망 언어 모델로 넘어가게 된다.

댓글