Language Modeling

2019. 12. 4. 14:34nlp

반응형

Language Model(=LM) : 문장 또는 단어의 연쇄의 확률을 계산하는 것

 

1) Chain Rule

 

 

2) Markov Assumption 

 

w_i 이전의 모든 단어가 아니라 이전의 k개 단어만으로 확률 계산하기

 

(ex) Unigram Model 

 

 

(ex2) Bigram Model 

 

 

Bigram의 Maximum Likelihood Estimate 

 

 

이러한 LM의 문제점

1) 언어는 long distance dependency : 한 단어로부터 엄청 멀리 있는 단어에게도 영향을 받는다 

2) 일반화 능력이 부족하다 : training data와 test data에 쓰이는 단어들이 같아야만 성능 좋음, 유의어  고려 못 함 

 

이에 대한 해결 방법

1) Add-one (Laplace) Smoothing : 모든 단어를 한 번 더 본 셈 친다 

 

 

위의 수식처럼 나타내면 MLE(Maximum Likelihood Estimate)에서 분모, 분자 둘 다 바꿔야 한다. 그러나 c* 꼴로 분자만 바꾸면 분모는 MLE 그대로 count(W_i-1) 를 쓸 수 있다.

 

* N-gram처럼 0이 너무 많은 분야에선 쓰이지 않음. text-classification에선 쓰인다. 

 

2) Back-off : trigram으로 확률 계산 → trigram 없으면 bigram으로 대신 → bigram도 없으면 unigram으로 대신 

 

3) Interpolation : unigram + bigram + trigram 모두 찔끔씩 사용 

 

*lambda는 hyper-parameter의 일종. 이러한 hyper-parameter의 값을 정하기 위해서 cross-validation을 한다. cross-validation은 training set을 n개로 쪼개고 첫 번째 덩어리만 빼고 트레이닝, 두 번째 덩어리만 빼고 트레이닝, ... n번째 덩어리만 빼고 트레이닝 하는 방법이다. 

 

Language Model의 성능 측정하기

1) Extrinsic Evalutaion : 두 모델의 정확도 비교하기 → 시간 너무 오래 걸림 :(

2) Intrinsic Evaluation : 모델의 혼잡도(perplexity) 측정하기 (혼잡도 낮을수록 확률 높은 것 ∴혼잡도 낮은 모델이 좋은 모델)

 

PP(W)는 특정 단어 연쇄의 혼잡도 

※ 출처

1) 글 버전

2) PPT 버전 

반응형

'nlp' 카테고리의 다른 글

Vector Semantics  (0) 2019.12.04
Naive Bayes and Text Classification  (0) 2019.12.04
Minimum Edit Distance  (0) 2019.12.04
정규표현식 정리  (0) 2019.12.04
넷플릭스/네이버 시놉시스 어휘 단계 분석하기  (0) 2019.11.11