Introduction
- count에 기반한 통계적 접근을 사용한 SLM의 일종
- 앞서 다룬 SLM 모델과 달리 이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려하는 접근 방식
- 이전에 등장한 모든 단어를 고려한다면 무엇이 문제일까? 생각하고 넘어가보도록 하자!
- 일부 단어를 몇 개 보느냐를 결정하는 것이 n-gram에서 n!
Corpus에서 카운트하지 못하는 경우의 감소
- SLM의 한계는 훈련 코퍼스에 확률을 계산하고 싶은 문장이나 단어가 없을 수 있다는 점
- 또한, 확률을 계산하고 싶은 문장이 길어질수록 갖고 있는 코퍼스에서 그 문장이 존재하지 않을 가능성이 높다. 즉, 카운트할 수 없을 가능성이 높다
- 따라서 참고하는 단어들을 줄이면 카운트를 할 수 있을 가능성을 높일 수 있다.
$$ P(is|An\;Adorable\;little\;boy)\approx P(is|Little\;boy) $$
- 훈련 코퍼스에 좌변의 시퀀스가 나올 확률보다 우변의 little boy is 라는 더 짧은 시퀀스가 존재할 가능성이 더 높다.
- 즉, 단어의 확률을 구하고자 기준 단어의 앞 단어를 전부 포함해서 카운트하는 것이 아니라, 앞 단어 중 임의의 개수만 포함해서 카운트하여 근사하는 원리
N-gram
- n = 1 : unigram
- n = 2 : bigram
- n = 3 : trigram
- n-gram을 통한 언어 모델에서는 다음에 나올 단어의 예측은 오직 n-1개의 단어에만 의존한다.

- 만약 훈련 코퍼스에서 boy is spreading이 1000번 등장했다고 하자. 그리고 boy is spreading insults가 500번, boy is spreading smiles가 200번 등장했다면 insults가 등장할 확률을 50%, smilies가 등장할 확률은 20%이다. 확률적 선택에 따라 우리는 insults가 더 맞다고 판단하게 된다.
N-gram Language Model의 한계
- 위 예시를 보면 boy is spreading만 고려했을 뿐 An adorable boy를 고려하지 못했다.
- ‘작고 사랑스러운’ 수식어를 모두 고려하여 다음 말을 예측하였다면 insults(모욕을 퍼트리다) 보다는 smiles가 자연스럽다.
- 즉, 전체 문장 시퀀스를 고려한 언어 모델보다는 정확도가 떨어질 수 밖에 없다.
Sparsity Problem(희소 문제)
- 문장에 존재하는 앞에 나온 단어를 모두 보는 것보다 일부 단어를 보는 것으로 현실적으로 코퍼스에서 카운트 할 수 있는 확률을 높일 수 있었지만, n-gram도 여전히 희소 문제가 존재한다.
N을 선택하는 것은 Trade-off 문제
- n을 1보다는 2를 선택하는 것이 대부분의 경우에서 언어 모델의 성능을 높일 수 있다. 가령 spreading만 보는 것보다는 is spreading을 보고 다음 단어를 예측하는 것이 더 정확하다.
- 단, N을 너무 크게 선택하면 실제 훈련 코퍼스에서 해당 n-gram을 카운트할 수 있는 확률은 적어지므로 희소 문제는 점점 심각해진다.
- n을 작게하면 훈련 코퍼스에서 카운트는 잘 되겠지만 근사의 정확도는 현실의 확률분포와 멀어집니다.
- 즉, N을 선택하는 것은 정확도와 희소 문제 사이의 trade-off관계에서 잘 선택해야 하는 것이 중요하다.
- 단, n은 최대 5를 넘게 잡아서는 안 됨. (권장사항)
Domain에 맞는 코퍼스의 수집
- 우리는 딥러닝에서 데이터 수집이 어렵다는 것을 익히 잘 알고 있을 것이다.
- n-gram을 이용한 Language Model에서도 마찬가지이다.
- 어떤 분야인지, 어떤 어플리케이션인지에 따라서 특정 단어들의 확률 분포른 당연히 다르다.
- 훈련에 사용된 도메인 코퍼스가 무엇이냐에 따라서 성능이 비약적으로 달라진다.
- 이 점을 잘 고려하여 코퍼스를 잘 수집하자!
한계 극복
- N-gram LM의 한계를 극복한 인공 신경망을 이용한 언어 모델을 이후에 다뤄보도록 하겠다.
- NNLM으로 불리는 Feed forward Neural Network LM.
'ALL About NLP & LLM' 카테고리의 다른 글
| Neural Network Language Model (0) | 2025.03.04 |
|---|