본문 바로가기
Data Science/NLP

Language Modeling

by 루크 Luke 2022. 3. 30.
반응형
  • 언어 모델링(Language Modeling)
    • Input: 하나의 문장
    • Output:  Input 문장에 대한 확률

 

 

  • 텍스트 분류 문제와 달리, 비지도학습입니다.
  • 하지만, 순서가 있는 지도학습으로 문제를 바꿔서 풀 수 있습니다.

 

  • Autoregressive language modelling (자기회귀 언어 모델링)
    • Sequence 가 주어졌을 때 이 문장에게 점수를 부여 하는 방법입니다.
    • 이전 토큰이 나왔을때 다음 토큰이 나올 확률을 계산하는 작업과 동일합니다.
    • 이렇게 정의 하면서 비지도학습 문제를 지도학습으로 푸는 문제로 변하게 됩니다.
    • 즉, 이전에 공부했던 텍스트 분류 문제와 같아지는데, input 은 이전에 나온 토큰, output은 다음에 나올 토큰을 예측 하는 것입니다.
  • 또한, 문장에 점수(Score)를 부여하는 방식은 인간이 말하는 사고 방식과 동일합니다.
    • 점수는 음의 최대 우도(negative log likelihood)로 측정합니다.

 

N-Gram Language Models

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

  • n-gram probability 의 최대우도추정(Maximum Likelihood Estimation) 과정을 거칩니다. 확률을 추정하는 과정을 등장횟수로 대체하여 계산합니다.
    1. 어떤 n-gram (xN​,xN+1​,⋯,x−1​,x) 의 등장 횟수를 셉니다. 이를  c(xN​,xN+1​,⋯,x−1​,x)  라고 하겠습니다. 
    2. 주어진 n-gram 에서 나올 수 있는 모든 경우의 수 (xN​,xN+1​,⋯,x−1​,?) 의 등장 횟수를 셉니다. 
    3. 따라서 등장 확률은 p(x∣xN​,xN+1​,⋯,x−1​)=x​∈V​c(xN​,xN+1​,⋯,x−1​,x​)c(xN​,xN+1​,⋯,x−1​,x)​ 입니다.

 

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

 

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

 

 

본 내용은 부스트코스 조경현 교수의 딥러닝을 이용한 자연어 처리 수업 내용입니다.

반응형

댓글