학습내용
- 인공 신경망 이전에 어떻게 이 문제를 해결했는지 살펴보는 시간입니다.
- n-gram이란 주어진 텍스트 샘플의 연속적인 n 개 항목을 뜻합니다.
- n-gram probability:
- 주어진 N 개의 토큰에 대하여, 토큰 x 가 나올 수 있는 확률은 이전 N개의 토큰과 토큰 x 의 결합확률을 이전 N개의 토큰들과 등장 할 수 있는 모든 토큰들의 결합확률 합으로 나눈 것입니다.
- n-gram probability 의 최대우도추정(Maximum Likelihood Estimation) 과정을 거칩니다. 확률을 추정하는 과정을 등장횟수로 대체하여 계산합니다.
- 하지만 이 방법은 두 가지 문제점이 존재합니다.
- 데이터 희소성(data sparsity) 문제: 데이터가 희소할 경우 일반화가 어렵습니다.
- 처음 보는 단어가 등장하면, 이전에 데이터에 존재 하지 않았기 때문에 확률이 0이 됩니다.
- 장기의존성(long-term dependencies)을 캡쳐할 수 없습니다.
- n 개의 토큰만 조회하기 때문에, 긴 문장에 대한 다음 토큰은 추론이 불가능 합니다.
- 데이터 희소성(data sparsity) 문제: 데이터가 희소할 경우 일반화가 어렵습니다.
- 장기 의존성 문제를 해결하기 위해 조금더 떨어진 토큰간의 상관 관계를 보려면 n 을 늘려야하는데, 그러면 데이터 희소성 문제가 발생합니다.
- 해결방법:
- 데이터 희소성 문제: 셀수가 없기 때문에 문제가 되는 것입니다.
- Smoothing: 작은 상수 항을 더해주는 방법 입니다.
- Back off: Count 가 0이 나올시에 측정하는 n을 하나씩 줄여서 다시 Count합니다.
- 장기의존성 문제
- n-gram probability 방식으로 해결 할 수가 없습니다.
- 데이터 희소성 문제: 셀수가 없기 때문에 문제가 되는 것입니다.
- 직접 구현하지 않고 KenLM 패키지를 사용하는 것이 좋습니다.
- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : N-Gram Language Models - 조경현교수
'IT 와 Social 이야기 > NLP 자연어처리' 카테고리의 다른 글
[edwith] 딥러닝을 이용한 자연어 처리 : Long Term Dependency - 조경현교수 (0) | 2021.03.18 |
---|---|
[edwith] 딥러닝을 이용한 자연어 처리 : Neural N-Gram Language Model - 조경현교수 (0) | 2021.03.18 |
[edwith] 딥러닝을 이용한 자연어 처리 : Autoregressive language Modeling - 조경현교수 (0) | 2021.03.18 |
[edwith] 딥러닝을 이용한 자연어 처리 : Neural Language Models - Overview - Language Modeling - 조경현교수 (0) | 2021.03.18 |
[D2] 음향 상황인식과 교사-학생 학습의 적용 - 허희수님 (0) | 2021.03.17 |