반응형
- Submit: Yoon Kim, AAAI (2016)
- Paper : https://arxiv.org/pdf/1508.06615.pdf
1. Abstract
- CNN, highway network, LSTM, RNN-LM을 사용했다.
- 60%적은 파라미터를 사용해도 높은 성능을 낸다
- 형태소가 많은 언어에서 유리하다 (아랍어, 체코어, 프랑스어..)
- character inputs는 언어모델링에 충분하다
2. Conclusion
- character level의 인풋만을 넣는 모델을 소개했다
- 매개변수가 적음에도 불구하고 이 모델은 인풋 레이어에서 단어/형태소 임베딩을 이용하는 기존 모델보다 우수
- 모델에 단어 임베딩이 꼭 필요한지에 대한 의문을 제기했다
3. Introduction
- 배경지식
- 언어 모델은 확률 분포로 공식화된다 : n번째 markov연산, n-gram 확률 추정이 있다.
- count-based 모델은 훈련시키기 쉽지만 n-gram 확률은 data sparsity로 인해 추정하기 힘들 수가 있다.
- 워드 임베딩으로 통해 비슷한 의미를 가진 단어는 가까이에 임베딩된다
- NLM은 형태소와 같은 subword에 약하다. 희귀한 단어들은 잘못 추정될 수도 있다. -> 혼란 야기
- 형태소가 많아 길게 연관되어 있는 단어에서 문제가 일어날 수 있다.
- 논문에선
- subword를 아우르는 character level CNN을 제안. 이 output은 RNN-LM의 인풋으로 사용
- 이 모델에서는 전처리에서 형태소 태깅을 필요로 하지 않는다. 인풋 레이어에서 워드 임베딩을 사용하지 않음
- 즉, 이 모델에서는 이전의 NLM보다 훨씬 적은 파라미터를 필요로 한다
- 결과적으로 60%적은 파라미터임에도 불구하고 SOTA수준 결과 얻음. 형태소 풍부한 언어에서 효과적
4. Method
- 모델
- tokenize한 후, 임베딩 된 하나의 단어를 가지고 matrix를 만든다
- 다중필터 적용. 여기서 h={2,3,4}. 총 3+4+5개의 필터
- highway network를 얻기 위해 max pooling
- output을 multi layer LSTM의 input으로 넣는다.
- softmax를 적용하여 다음 단어에 대한 분포를 얻는다
- loss func으로 cross entropy를 사용하여 다음 단어에 대한 분포 예측과 실제 결과를 최소화
(a) RNN
- hidden state ht와 함께 모든 것을 기록할 수 있다
- vanilla RNN으로 긴 기간을 학습하는건 vanishing/exploding gradients때문에 어렵다
(b) LSTM
- 위의 문제는 LSTM의 memory cells에서 많이 완화
- LSTM에서는 multiple layers로 확장이 쉽다
(c) RNN-LM
- NLL(negative log-likelihood)를 최소화
(d) Character-level conv neural network
- input
- character-level cnn의 output이 이 모델의 input
- word k = [c1, c2, .. , cl]
- conv
- 단어 k의 i번째 char를 nonlinear f에 통과
- 필터는 보통 100~1000개
- 필터는 n-gram역할
- activation func : tanh
- pooling
- 주어진 필터에서 가장 중요한 특징을 캐치
(e) highway network
- word embedding xk를 RNN-LM을 통해 yk로 대체. 멀티레이어 perceptron으로 모델에 넣어봤지만 안좋은 결과를 얻음
- 그것을 highway network에서 해결
- highway layer는 일부 input을 output에 직접 전달(carry)함으로써 deep network트레이닝을 한다 (단점보완)
3. Experiment
- perplexity로 모델 성능 측정
- 데이터
- 다양한 언어와 사이즈를 데이터로 사용
- PTB(Penn Treebank English data)로 선택적 하이퍼파라미터 튜닝
- 이것을 형태학적인 언어에 적용 (체코, 독일어..)
- 아랍어가 아닌 것들은 ACL workshop번역기에서 사용
- small data : 1m개의 토큰
- large data : PTB의 단어수보다 많은 영어 데이터
- 1개만 나온 단어는 로 대체. 그래서 모든 단어 활용~ 하는게 좋지만 여기선 안쓴다. 비교위해!
- 다양한 언어와 사이즈를 데이터로 사용
- optimization
- SGD : stochastic gradient descent 사용
- SGD쓰면서 35단계의 backpropagation. learning rate 1.0로 하다가 perplexity가 1.0아래로 줄지 않으면 rate 절반으로 줄인다.
- batch size: data-s(20), data-l(100)
- epoch: non-arabic(25), arabic(30)하고 validation set에서 가장 성능 높은 것을 선택
- 모델의 파라미터는 -0.05~0.05 안에서 조정
- 정규화
- dropout 0.5
- LSTM의 input - hidden 사이
- (highway - LSTM 사이에는 X)
- LSTM의 hidden - output (softmax layer)
- norm 경사 < 5
- 만약 5보다 초과한다면 L2 norm = 5를 갖도록 재정규화한다
- dropout 0.5
- softmax
- data-l
- 계층적 softmax
- 잘 트레이닝 하기 위해 데이터 V를 클러스터c개로 분할. 모두 같은 사이즈
- data-s
- 계층적 softmax 없어도 된다
- data-l
4. Results
- 훈련모델
- LSTM-char-small, LSTM-char-large
- lstm-word-small, lstm-word-large
- 60% 적은 파라미터를 써도 SOTA
- 표3보면 UNK씀에도 불구하고(패널티 있어도) 다른 것들에 비해 좋은 성능!
- word보단 morph모델, 그것보단 char모델이 더 성능 높았다 (파라미터 더 많다)
- 모든 실험에 동일한 아키텍쳐 사용 & 하이퍼파라미터 튜닝 하지 않음
5. related works
NLM, FNLM..
6. Discussion
- char-CNN의 필터가 다른 형태소를 식별하고 다른 식별된 형태소로부터 의미있는 단어 만드는 것을 기대
- 하지않음
- char-CNN에 n-gram의 문자를 넣고 그 결과를 문자 n-gram에 대응시켰다
- 접두사, 접미사, 기타, 하이픈 모두를 구분
(a) Highway layers
- CNN에 highway layer가 잘 어울림
- 1-2개의 highway layer가 좋은 성능. 근데 많을수록 좋았다. (데이터 사이즈 역시 영향 끼칠 것)
- max pooling 전 conv레이어 많은건 도움 되지 않음
- input으로 word embedding만을 사용하는 모델은 개선하지 않음
(b) further observations
- 여기서는 word embeddings + charCNN 이 성능 더 안좋았다
- 일단 여기선 굳이 word embedding이 아니더라도, character inputs만으로도 충분
- 이 모델은 문자에 대한 추가적인 conv 연산이 필요해서, word-level 모델보다 더 느리지만 이 정도는 GPU최적화로 극복 가능
- 평가 때, 이 모델은 pure word-level model과 같은 러닝타임을 가질 수 있다(charCNN output미리 계산 가능하기 때문)
- 그러나 모델 사이즈가 커지면 비용 발생
Reference
반응형
'Paper review > NLP' 카테고리의 다른 글
[논문 리뷰] Multi channel CNN for Korean Sentiment Analysis (0) | 2020.06.14 |
---|---|
토큰화 : Tokenize (0) | 2020.04.12 |
한국어 문법 짚고 넘어가기 (0) | 2020.04.12 |