본문 바로가기
IT 와 Social 이야기/NLP 자연어처리

[edwith] 딥러닝을 이용한 자연어 처리 : N-Gram Language Models - 조경현교수

by manga0713 2021. 3. 18.

 

 

[LECTURE] N-Gram Language Models : edwith

학습목표 신경망 이전에 사용했던 언어 모델인 n-gram 언어 모델을 학습하고, 어떤 문제점이 있는지 살펴봅니다. 핵심키워드 n-gram Language Model 최대우도추정(M... - 커넥트재단

www.edwith.org

 

학습내용

 

  • 인공 신경망 이전에 어떻게 이 문제를 해결했는지 살펴보는 시간입니다.
  • n-gram이란 주어진 텍스트 샘플의 연속적인 n 개 항목을 뜻합니다.
  • n-gram probability:
    • 주어진 N 개의 토큰에 대하여, 토큰 x 가 나올 수 있는 확률은 이전 N개의 토큰과 토큰 x 의 결합확률을 이전 N개의 토큰들과 등장 할 수 있는 모든 토큰들의 결합확률 합으로 나눈 것입니다.
  • n-gram probability 의 최대우도추정(Maximum Likelihood Estimation) 과정을 거칩니다. 확률을 추정하는 과정을 등장횟수로 대체하여 계산합니다.

 

  • 하지만 이 방법은 두 가지 문제점이 존재합니다.
    1. 데이터 희소성(data sparsity) 문제: 데이터가 희소할 경우 일반화가 어렵습니다.
      • 처음 보는 단어가 등장하면, 이전에 데이터에 존재 하지 않았기 때문에 확률이 0이 됩니다.
    2. 장기의존성(long-term dependencies)을 캡쳐할 수 없습니다.
      • n 개의 토큰만 조회하기 때문에, 긴 문장에 대한 다음 토큰은 추론이 불가능 합니다.
  • 장기 의존성 문제를 해결하기 위해 조금더 떨어진 토큰간의 상관 관계를 보려면 n 을 늘려야하는데, 그러면 데이터 희소성 문제가 발생합니다.

 

  •  해결방법:
    1. 데이터 희소성 문제: 셀수가 없기 때문에 문제가 되는 것입니다.
      • Smoothing: 작은 상수 항을 더해주는 방법 입니다. 
      • Back off: Count 가 0이 나올시에 측정하는 n을 하나씩 줄여서 다시 Count합니다.
    2. 장기의존성 문제
      • n-gram probability 방식으로 해결 할 수가 없습니다.
  • 직접 구현하지 않고 KenLM 패키지를 사용하는 것이 좋습니다.

 

- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : N-Gram Language Models - 조경현교수