언어모델이란 단어 시퀀스(문장)에 확률을 할당하는 모델을 말하며, 오늘은 통계에 기반한 전통적인 언어 모델에 대해서 학습하였음
- 언어모델이란?
- 언어모델은 단어 시퀀스에 확률을 할당하는 일을 하는 모델로, 이전 단어들이 주어졌을 때 다음 단어를 예측하는 방식으로 가장 많이 활용됨
- 통계적 언어모델에서 확률 - 카운트 기반의 접근
- 문장의 확률을 구할 때 카운트에 기반하여 계산이 가능함
- 예를 들어, An adorable little boy가 나왔을 때, is가 나올 확률은 아래와 같이 계산이 가능함
P(isㅣAn adorable little boy) = count(An adorable little boy is)/count(An adorable little boy)
기계가 학습한 코퍼스 데이터에서 An adorable little boy가 100번 등장했는데 그 다음에 is가 등장한 경우가 30번이라면 P(isㅣAn adorable little boy)는 30%임
- 이와 같이 카운트에 기반하여 확률을 구할 떄 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못하는 희소 문제(sparsity problem)가 발생할 수 있으며, 이 문제를 완화하는 방법으로 n-gram 언어 모델을 활용할 수 있음
- N-gram 언어모델
- n-gram 언어 모델의 경우 이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려하는 접근 방법임
- 이때, 고려하는 단어 수가 n-gram의 n을 의미함
- 위의 예에서 P(isㅣAn adorable little boy)을 구하려고 할 때 An adorable little boy is가 코퍼스에 나타난 횟수가 많지 않을 수 있어 대신하여 P(isㅣboy) , P(isㅣlittle boy) 등을 구하는 것을 고려해 볼 수 있음
- 한국어에서의 언어모델
- 한국어는 영어와 같은 다른 언어에 비해 언어 모델로 다음 단어를 예측하는 것이 쉽지 않음
- 그 이유는 한국어는 교착어(조사가 있으며, '그녀'라는 단어 하나만 해도 그녀가, 그녀를, 그녀의, 그녀와, 그녀로, 그녀께서, 그녀처럼 등과 같이 다양한 경우가 존재함)이며, 어순이 중요하지 않고 띄어쓰기가 제대로 지켜지지 않기 때문임
- 언어모델의 평가방법 - Perplexity
- perplexity(PPL)는 언어모델을 평가하는 지표로 '헷갈리는 정도'를 의미하고, 그 값이 작을수록 언어모델의 성능이 좋다는 것을 의미함
- PPL은 선택할 수 있는 가능한 경우의 수를 의미하는 분기 계수(branching factor)임
- PPL이 10이라는 것은 언어 모델이 다음 단어를 예측하는 모든 시점마다 평균 10개의 단어를 가지고 어떤 것이 정답인지 고민하고 있다고 볼 수 있음
출처: 유원준/안상준, 딥러닝을 이용한 자연어 처리 입문-1권, p121-p139.
'자연어 처리' 카테고리의 다른 글
[딥러닝을 이용한 자연어 처리 입문] 벡터의 유사도 (0) | 2023.04.06 |
---|---|
[딥러닝을 이용한 자연어 처리 입문] 카운트 기반의 언어 모델 (0) | 2023.03.20 |
[딥러닝을 이용한 자연어 처리 입문] 패딩과 원-핫인코딩 (0) | 2023.02.27 |
[딥러닝을 이용한 자연어 처리 입문] 정규 표현식 (0) | 2023.02.25 |
[딥러닝을 이용한 자연어 처리 입문] 토큰화 및 전처리 (0) | 2023.02.19 |