본문 바로가기
Data Science/NLP

Neural N-Gram Language Model

by 루크 Luke 2022. 3. 30.
반응형
  • Neural N-Gram Language Model
    • 신경망을 사용함으로서 데이터 희소성(data sparsity) 문제를 해결 할 수 있습니다.
  • 기존의 카운트 기반 모델 보다 훈련 데이터에서 나오지 않았었던 N-gram 을 계산 할 수가 있었습니다.
  • 어떻게 이것이 가능할까요? 그전에 데이터 희소성(data sparsity) 문제가 생기는 이유를 살펴봐야합니다.
    • 간단한 대답은 토큰들이 훈련시에는 생기지 않지만, 테스트시에 만 생기기 때문입니다.
    • 조금더 깊은 대답은 이산 공간(discrete space) 에서 카운트하여 토큰들의 유사도 측정이 불가능 하기 때문입니다.
    • 하지만 신경망에서는 토큰을 연속 벡터 공간(continuous vector space) 에 매핑(mapping) 시킵니다. 나오지 않았던 단어들도 유사도를 계산을 통해 연속 벡터 공간에서 의미가 있는 분포를 찾을 수 있게 됩니다. 이러한 학습을 통해 데이터 희소성 문제를 해결 할 수 있습니다.

 

  • 신경망을 이용한 n-gram 모델이 장기의존성 문제를 해결하지 못한 이유는 단순히 n-gram 을 보기 때문입니다.
    • 신경망을 사용하여 데이터 희소성 문제는 없어졌지만, 단순하게 n 을 늘리게 되면 네트워크 규모가 커져 학습해야할 매개변수가 많아지고, 이에 따른 데이터도 많이 필요하게 됩니다.
  • 해결방법 1: Convolution Language Model
    • Dilated convolution 을 사용하면 커버할 수 있는 토큰의 범위가 넓어집니다.
    • 다만 텍스트 분류때 처럼 쓰기에는 문제가 있습니다. 현재까지의 토큰을 보고 미래의 토큰을 예측하는 것인데, 아무 제약없이 사용하게 된다면, 미래의 토큰을 보고 미래의 토큰을 예측해버리게 됩니다. 이는 더 이상 언어 모델링이 아니게 됩니다.
    • 따라서 매번 예측할 때, 전에 나왔던 토큰들만 사용하도록, 미래의 토큰을 mask out 시킵니다.
    • Causal sentence representation
      • Convolution Language Model에서 보았듯이, 미래의 토큰을 보지 않고 예측하기 위해 mask out 하는 과정을 거쳤습니다.
      • 미래의 토큰을 보지 않고 다음 토큰을 예측하는 과정을 인과관계에 따른 문장표현(Causal sentence representation) 이라고 합니다.
      • 이는 인과관계에 따른 문장표현만 지킨다면 문맥을 무한대로 확장가능하다고 볼 수 있습니다.
  •  
  • 해결방법 2: CBoW
    • CBoW 방법이 잘 안되는 이유는 토큰들 간의 순서를 무시하기 때문입니다. 언어 모델링에서 문장은 의미 뿐만 아니라 문장의 구조도 중요합니다.
  • 해결방법 3: Recurrent Language Model
    • 장점: 실시간 처리(시간에 따른 문장 처리)
    • 단점: 모든 문맥 내용을 하나의 고정된 벡터에 압축시켜서 학습시켜야 합니다.
    • 응용:
      • 자동완성(autocomplete) & 키워드 추천(keyword suggestion)
      • scoring partial hypotheses in generation

 

  • 해결방법 4: Recurrent Memory Networks
    • RNN과 Self Attention 방법을 결합하여 Recurrent Language Model 의 단점을 보완했습니다.

 

 

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

반응형

댓글