카테고리 없음

[NLP] Unigram, N-gram 언어 모델이란??

히또아빠 2023. 11. 15. 17:09

 

현재 다양한 언어 모델이 개발되고 발전되어 왔는데, 처음에는 단순한 구조에서 출발해 점차 복잡한 모델로 확장하게 됐다. 그 중에서 가장 간단한 Unigram, Ngram 모델을 살펴보려고 한다.

1.개념:

N-gram 모델은 텍스트에서 나타나는 연속된 N개(Unigram은 1개)의 아이템(일반적으로 단어)에 대한 확률 분포를 모델링하는 통계적 언어 모델입니다. 이 모델은 특정 시퀀스에서 다음 아이템이 나타날 확률을 추정하여 문장의 일관성을 평가하고, 자연어 처리 등 다양한 응용 분야에서 활용됩니다.

1-1.Uni-gram 모델

가장 단순한 언어 모델로 Unimodel을 수식으로 표현하면 다음과 같다.
$$P_{uni}(w_{1},w_{2}, ... , w_{n}) = P(w_{1})P(w_{2})...P(w_{n})$$
전체 문장에서 각 단어가 몇 번씩 등장했는지 조사하여 독립적으로 확률을 계산하는 방식이다. 확률 추정과 계산이 쉽기 때문에 노이즈 데이터를 처리하는데 활용할 수 있다. 그러나 각 단어들을 독립적으로 보기 때문에 순서를 고려하지 않는 제일 단순한 모델이다.

1-2.N-gram 모델

$N=2$인 경우의 N-gram 모델은 다음과 같다.
$$P_{2}(w_{1},w_{2}, ... , w_{n}) = P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{2})...P(w_{n}|w_{n-1})$$
Unigram 모델과는 달리 이전 단어를 고려하여 다음 단어를 예측하는 조건부 확률을 계산하는 모델이다. 다음단어를 예측하기 위해 이전의 $n-1$개의 단어를 활용한다. 예를들어, 2-gram 모델에서는 '가' 다음에 '나'가 나올 확률을 계산하기 위해서는 전체 말뭉치에서 '가'가 등장하는 빈도를세고, '가나'의 빈도를 세서 그 비율인 조건부 확률을 구하게 된다.

2.종류:

Unigram (1-gram): 단어 하나의 등장 확률만을 고려하는 모델
Bigram (2-gram): 각 단어가 바로 이전 단어에만 의존하는 모델
Trigram (3-gram): 각 단어가 바로 이전 두 단어에 의존하는 모델
N-gram (일반적으로 4-gram 이상): N개의 연속적인 단어에 의존하는 모델로, 문맥을 더욱 포괄적으로 고려

3.예시:

문장: "I love natural language processing."
Bigram 모델: (I love), (love natural), (natural language), (language processing)
Trigram 모델: (I love natural), (love natural language), (natural language processing)

4.한계점:

한계된 문맥 고려: 모델이 N개의 아이템만 고려하므로, 더 넓은 문맥을 이해하지 못할 수 있다.(그래서 이후 문맥을 고려한 RNN 계열이 나오게 된다.) 물론, 문맥 고려를 위해 $N$을 키울순 있지만 학습시 조사해야 하는 단어의 조합 쌍이 많아진다. 단어 갯수가 $W$개 일때, $(W)^{n}$ 조합의 빈도를 전부 셀수도 있어 모델의 리소스상 효율성을 위해 보통 2 ~ 6으로 $N$을 선택한다.

 

희소성 문제: 특정 조합이 훈련 데이터에 적게 나타나면 모델이 정확한 확률을 추정하기 어려워진다. 즉, 학습 단어열에 등장하지 않은 단어열에 대해서는 확률값 계산이 어렵다. '가나' 다음에 '다'가 나오는 확률을 계산하고 싶어 '가나'와 '가나다'의 확률 계산하고 싶은데 모델이 '가나', '가나다'를 학습한 적이 없으면 0의 확률값을 내뱉게 된다.

 

길이 제한: N-gram의 길이는 고정되어 있어서 긴 문장의 일관성을 평가하는 데 한계가 있다.
N-gram 모델은 간단하고 효율적이지만 이러한 한계점들을 가지고 있어, 보다 복잡한 언어 모델링을 위해 신경망 기반의 모델이나 최근에 제안된 다양한 아키텍처들이 활용되고 있습니다.

5.참고

https://wikidocs.net/21692

https://bab2min.tistory.com/666

300x250
반응형