[NLP] 언어 모델 - (3) N-gram 언어 모델(N-gram Language Model)

김규리·2022년 6월 23일
0

NLP

목록 보기
13/33
post-thumbnail

1. 코퍼스에서 카운트하지 못하는 경우의 감소

SLM의 한계: 훈련 코퍼스에 확률을 계산하고 싶은 문장이나 단어가 없음
ㄴ 해결 방법: P(is|An adorable little boy) -> P(is|little boy)로 변경
ㄴ 갖고 있는 코퍼스에서 해당 단어의 시퀀스를 카운트할 확률이 높아짐

2. N-gram

n-gram: n개의 연속적인 단어 나열
ㄴ 갖고 있는 코퍼스에서 n개의 단어 뭉치 단위로 끊어서 이를 하나의 토큰으로 간주

  • n이 1일 때는 유니그램(unigram), 2일 때는 바이그램(bigram), 3일 때는 트라이그램(trigram)이라고 명명하고 n이 4 이상일 때는 gram 앞에 그대로 숫자를 붙여서 명명

  • 다음에 나올 단어의 예측: 오직 n-1개의 단어에만 의존
    ex. spreading 다음에 올 단어 예측
    An adorable little boy is spreading ?

3. N-gram Language Model의 한계

의도하고 싶은 대로 문장을 끝맺음하지 못하는 경우가 생김
전체 문장을 고려한 언어 모델보다는 정확도가 떨어질 수밖에 없음

(1) 희소 문제(Sparsity Problem)

(2) n을 선택하는 것은 trade-off 문제

  • n을 크게 선택하면
    장점) 언어 모델의 성능을 높일 수 있음
    단점) 희소 문제 심각, 모델 사이즈가 커짐

  • n을 작게 선택하면
    장점) 훈련 코퍼스에서 카운트가 잘 됨
    단점) 근사의 정확도는 현실의 확률분포와 멀어짐

  • 정확도를 높이려면 n은 최대 5를 넘게 잡아서는 안 된다고 권장

4. 적용 분야(Domain)에 맞는 코퍼스의 수집

훈련에 사용된 도메인 코퍼스가 무엇이냐에 따라서 성능이 비약적으로 달라짐

5. 인공 신경망을 이용한 언어 모델(Neural Network Based Language Model)

  • N-gram Language Model의 한계점을 극복하기 위해 분모, 분자에 숫자를 더해서 카운트했을 때 0이 되는 것을 방지하는 등의 여러 일반화 방법 존재
  • But 취약점 완전 해결 X -> 인공 신경망을 이용한 언어 모델 사용
profile
connecting the dots

0개의 댓글