학습내용
- 신경망을 이용한 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 의 단점을 보완했습니다.
- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : Long Term Dependency - 조경현교수