SILVERCitYz

(part 1) A Bit of Progress in Natural Modeling by J GoodMan(2001) 본문

PAPERS

(part 1) A Bit of Progress in Natural Modeling by J GoodMan(2001)

silvercityz 2020. 4. 9. 21:17

자연어 처리 기법이 어떤 식으로 발전했는지 N-grams, Clustering, Caching, Smoothing, Skipping models, sentence-mixture 모델 등에 대해 이야기하면서 간략하게 알려주는 논문이다. 2001년에 나온 논문이라 SOTA 기법들에 대한 내용은 없지만, 전체적인 흐름을 읽기엔 좋을 듯 하다. 73쪽의 방대한 분량이라 파트를 몇 개 나눠서 정리하려 한다.

 

자연어 모델은 보통 시작을 전에 있던 단어 배열의 확률을 가지고 타겟 단어의 확률을 예측하는 것이 기본이다.

 

수식으로 표현하면,

 

P(w_1w_2...w_i) = P(w1)P(w_2|w_1)P(w3|w_1w_2) ...P(wi|w_1w_2...w_i-1)

 

이렇게 정리되는데, P(w1)이나 P(w_2|w_1)과 같은 값은 구하기 쉽지만, P(wi|w_1w_2...w_i-1)과 같이 연속되는 값은 구하기 거의 불가능하다. 

 

그래서 n-gram assumption으로 보통 문장 길이 전체보다 짧은 n개의 연속적 단어들의 등장확률로 조건부 확률을 계산한다. 하지만, n-gram을 사용해도 여전히 데이터에서 희소성 문제는 일어날 수 있다. 우리가 원하는 바는 주어진 데이터를 가지고, 전반적인 케이스(보통 사람이 글을 읽을 때 내리는 사고회로)의 예측을 모델이 할 수 있도록 하는 것이다. 예를 들어 'party on Tuesday'라는 시퀀스를 살펴보자. 이 시퀀스가 가지는 의미를 떠나서 문법적으로 봤을 때, P('Tuesday' | 'party on')은 다른 랜덤한 단어가 나올 확률보다 분명히 높을 것이다. 그런데 단지 데이터에 'party on Tuesday'가 출현한 횟수가 0번이라는 이유만으로 P('Tuesday'|'party on') = P('fish'|'party on')=0으로 같아지는 일이 발생한다. 이를 해결하기 위한 방법은 여러가지 접근법이 있지만, 그 중 하나로 'Smoothing'이 있다.

 

 

 

Comments