언어 모델이란 무엇인가 — 확률의 연쇄에서 ChatGPT까지
Chain rule of probability로 언어 모델을 엄밀하게 정의하고, N-gram의 sparse data 문제부터 Kneser-Ney smoothing의 continuation count 통찰까지, NLP 기초 이론의 흐름을 추적한다.
- 01 언어 모델이란 무엇인가 — 확률의 연쇄에서 ChatGPT까지
- 02 단어의 의미는 어떻게 숫자가 되는가
- 03 Word2Vec은 왜 작동하는가 — PMI의 다른 이름
- 04 GloVe는 왜 두 패러다임의 통합인가
- 05 Tokenizer는 왜 Subword를 선택했는가
- 06 FastText에서 ELMo까지 — 임베딩은 어떻게 문맥을 얻었는가
- 07 Embedding 평가는 왜 두 가지가 필요한가
GPT, BERT, 번역기, 음성 인식기 — 겉모습은 전부 달라 보이지만 이 시스템들은 하나의 수식으로 수렴한다. . 언어 모델이란 그 를 추정하는 일이다. 그렇다면 확률론의 가장 기초적인 정리 하나에서 ChatGPT까지의 거리는 얼마나 될까?
언어 모델의 출발점 — Chain Rule
문장 의 결합 확률 를 한꺼번에 모델링하는 것은 불가능하다. vocabulary , 길이 이면 가능한 문장 수는 다.
조건부 확률의 정의 를 반복 적용하면 이 문제가 사라진다.
이산 확률 변수 의 결합 분포는 다음을 만족한다.
. 귀납적으로 이 성립하면, .
각 항 는 vocabulary 위의 categorical distribution이다. 이것이 GPT 계열의 학습 목적식 와 정확히 같다. 이론과 실제의 거리가 수식 한 줄이다.
N-gram — 무한 context를 유한으로 자르기
Chain rule은 이론적으로 정확하지만 의 conditioning context는 가 커질수록 무한히 길어진다. N-gram 모델은 history를 마지막 개 토큰으로 잘라낸다.
MLE 추정은 count ratio로 닫힌 형태가 된다.
문제는 sparse data다. Brown corpus(, )에서 4-gram coverage는 수준이다. test set trigram의 절반 이상이 훈련 데이터에 등장하지 않고, MLE는 unseen -gram에 을 부여한다. 문장 전체의 likelihood가 0이 된다.
-gram 모델의 free parameter 수는 이고, MLE가 수렴하려면 의 데이터가 필요하다. , 이면 토큰 — 지구상의 모든 텍스트를 합쳐도 부족하다. Smoothing은 선택이 아니라 필수다.
Perplexity — 언어 모델의 척도
모델의 품질을 어떻게 측정하는가? held-out likelihood는 문장 길이에 의존하므로 비교가 어렵다. perplexity는 per-token log-likelihood의 지수 변환으로 길이를 정규화한다.
직관은 “단어당 평균 branching factor”다. PPL = 100이라면 매 단어마다 100개 후보 중에서 고르는 것과 같다. uniform LM의 PPL은 정확히 이고, 완벽한 LM의 PPL은 1이다.
정보이론적으로 PPL은 cross-entropy의 지수다.
이 분해가 중요하다. 는 진짜 분포의 intrinsic uncertainty — 어떤 모델도 이 한계 아래로 내려갈 수 없다. Shannon(1951)의 추정에 따르면 영어의 entropy는 약 1.3 bit/char, 단어 단위로 약 5 bit/word이므로 PPL 하한은 근처다. GPT-3의 WikiText-103 PPL이 ~9.0이라는 숫자는 이 관점에서 읽어야 한다. 나머지 gap인 이 모델이 줄여야 할 부분이다.
Smoothing — 0을 없애는 방법들
MLE의 0 확률 문제를 해결하는 smoothing의 일반 원리는 “seen event의 mass를 약간 줄이고 unseen에 분배”다.
**Laplace(Add-1)**는 모든 count에 1을 더한다.
Dirichlet prior와 multinomial likelihood의 posterior mean이라는 깔끔한 Bayesian 해석이 있지만, 에서는 unseen -gram이 전체 mass의 99.8%를 가져간다. seen data의 정보가 사실상 사라진다.
Good-Turing은 더 정교한 통찰을 제공한다. “번 본 사건의 진짜 확률은 보다 약간 작다.”
여기서 은 정확히 번 등장한 -gram의 수다. 인 singleton의 count를 줄이고, 그 mass를 unseen에 분배한다. 이것이 absolute discount 의 직접적 동기다.
**Interpolation(Jelinek-Mercer)**은 trigram, bigram, unigram을 가중 평균한다.
는 held-out set 위 EM으로 학습한다. Brown bigram 기준으로 Laplace PPL ~1247, Add-0.01 PPL ~598, Good-Turing PPL ~350, Interpolation PPL ~280 — 순서가 있다.
Kneser-Ney — N-gram의 정점
Laplace부터 Interpolation까지 모든 smoothing이 공유하는 숨겨진 가정이 있다. “lower-order distribution은 raw unigram frequency로 추정한다.” **Kneser & Ney(1995)**는 이 가정이 틀렸음을 보였다.
Francisco는 corpus에 1000번 등장하지만 거의 항상 San 다음이다. unseen bigram *(this, Francisco)*의 backoff로 raw unigram을 쓰면 Francisco의 확률이 과대 추정된다. *“이 단어가 얼마나 자주 나타나는가”*가 아니라 *“이 단어가 얼마나 다양한 context에 나타나는가”*가 올바른 prior다.
Francisco의 unique left context는 {San} — continuation count = 1. glasses는 {eye, wine, sun, reading, ...} — continuation count = 수백. raw frequency에서는 Francisco > glasses지만, continuation probability에서는 역전된다. KN은 이 직관을 absolute discount와 결합한다.
**Modified KN(Chen & Goodman 1999)**은 를 빈도별로 분리한다. 인 singleton은 큰 discount , 인 frequent -gram은 작은 discount . 이것이 Brown corpus 기준 PPL ~210으로 모든 smoothing 방법 중 최저를 달성하는 이유다.
Smoothing sophistication의 효과는 corpus 크기에 반비례한다. Brants et al.(2007)은 200B 토큰 corpus에서 discount를 0.4로 고정한 Stupid Backoff가 Modified KN과 비슷한 BLEU를 달성하면서 메모리를 1/5로 줄임을 보였다. Small corpus에서는 KN이 압도적이고, web-scale corpus에서는 단순함이 효율적이다. corpus 크기를 먼저 파악하고 smoothing 방법을 선택해야 한다.
정리
- 언어 모델은 다. Chain rule의 직접 적용이고 GPT의 학습 목적식과 동일하다.
- Perplexity는 다. 는 줄일 수 없는 언어의 intrinsic uncertainty이고, KL 부분이 모델이 개선할 수 있는 영역이다.
- N-gram의 MLE는 unseen에 을 부여한다. corpus가 아무리 커도 부터는 sparse data가 압도적이다.
- Kneser-Ney의 핵심은 frequency가 아닌 continuation count다. “얼마나 자주”가 아니라 “얼마나 다양한 곳에”가 올바른 prior다.
NLP의 흐름 — N-gram에서 Word2Vec, RNN, Transformer로 이어지는 진화 — 은 같은 문제의 다른 해법이다. sparse count table을 dense embedding으로 교체했을 뿐, “다음 토큰의 분포를 예측한다”는 목표는 변하지 않았다.