1. Character-Aware Neural Language Models
Yoon Kim, Yacine Jernite, David Sontag, Alexander M. Rush
AAAI 2016, pp.2741-2749
https://arxiv.org/pdf/1508.06615.pdf
국민대학교 자연어처리연구실 남규현
Natural Language Processing Lab. @Kookmin University
2. Natural Language Processing Lab. @Kookmin University
빠르게 이해하는 3줄 요약
• 문자 단위 입력의 Language Model
• 모델 파라미터 60% 감소
• 형태학적으로 풍부한 언어에서 우수한 성능
4. Natural Language Processing Lab. @Kookmin University
Language Model
- 𝑃 집에 가고 싶다 . = 0.001
- 𝑃 싶다 . 집에 가고 = 0.0000000001
• 문자열에 대한 확률 분포
• 계산 방법
- 𝑤𝑖는 𝑖 번째 단어 라고 할 때,
- 𝑃 𝑊 = 𝑃 𝑤1, 𝑤2, … , 𝑤 𝑛 = 𝑃 𝑤1 𝑃 𝑤2 𝑤1 … 𝑃 𝑤 𝑛 𝑤1 𝑤2 … 𝑤 𝑛−1
- 각각의 확률은 말뭉치에서 빈도수를 기반으로 계산
- 𝑝 𝑤𝑖 𝑤1:𝑖−1 =
𝐶𝑜𝑢𝑛𝑡 𝑤1:𝑖−1
𝐶𝑜𝑢𝑛𝑡(𝑤1:𝑖)
- 𝑝 갔다 . 나는 밥을 먹고 신발을 신고 문을 열어 … 학교에
=
𝐶𝑜𝑢𝑛𝑡(나는 밥을 먹고 신발을 신고 문을 열어 … 학교에)
𝐶𝑜𝑢𝑛𝑡(나는 밥을 먹고 신발을 신고 문을 열어 … 학교에 갔다.)
- 빈도수가 측정이 되나…? -> n-gram language model !
5. Natural Language Processing Lab. @Kookmin University
Language Model (cont’)
- 일반 Language Model 의 빈도수 측정 한계
- 신경망의 도입
- 모든 단어들을 벡터로 만들자
- 이 벡터들은 학습 도중 학습이 되게 하자
- 입력의 파라미터화 (word embedding)
- 𝑃 𝑤 𝑛 𝑤1 𝑤2 … 𝑤 𝑛−1 = 𝑃(𝑤 𝑛|𝑁𝑁 𝑤1, 𝑤2, … , 𝑤 𝑛−1 )
- 문제점
- 단어의 개수만큼 벡터를 만들어야 함!
- eventful, eventfully, uneventful, uneventfully …
- 교착어인 한국어는 하나의 어근에 대해 수많은 단어들이 존재
• Neural Language Model
단어 벡터 (dim = 5)
학교 ( 0.1, 0.35, 0.3, 0.2, 0.05)
집 ( 0.7, 0.01, 0.09, 0.1, 0.1)
Calientacabezas1) ( 0.2, 0.1, 0.2, 0.3, 0.2)
1) [스페인어] 강의를 알아듣지 못하면서 듣고 있는 학생
6. Natural Language Processing Lab. @Kookmin University
Word Embedding 의 어려움
https://hangulsoup.com/tools/conjugation-table.php?word=%ED%95%98%EB%8B%A4
7. Natural Language Processing Lab. @Kookmin University
제안과 결과
- 단어들을 임베딩 하는 것보다 훨씬 파라미터가 적어짐 ( |word| >> |char| )
• 문자를 임베딩하자
- 단어의 Sub word 정보를 CNN이 학습하게 됨
- 형태소 분석 전처리가 불필요해짐
• 문자들에 CNN을 적용하자
- 60%적은 파라미터로 !
- 영어에서, 타 모델들과 비슷한 성적
- 형태학적으로 풍부한 언어들에서 더 좋은 성적
• 결과
8. Natural Language Processing Lab. @Kookmin University
Model
- P(is | … moment the absurdity) = ?
• Problem example
- Char embedding
- CNN
- Convolution
- Max pooling
- Highway network
- RNN
- Softmax
• Structure
9. Natural Language Processing Lab. @Kookmin University
Model (cont’)
- 단어의 각 음절을 임베딩함
- 임베딩한 음절끼리 concat !
• Char Embedding
a b s u r d i t y
vocab
…
10. Natural Language Processing Lab. @Kookmin University
Model (cont’)
- Char Embedding 결과를 서로 다른 필터로 convolution
- 각 필터는 음절 n-gram 특징을 추출하는 효과를 가짐
- 노란색 필터 : tri-gram
- 파란색 필터 : bi-gram
- 빨간색 필터 : four-gram
• Convolution
- 필터의 n-gram 정보를 선별함
• Max pooling
11. Natural Language Processing Lab. @Kookmin University
Model (cont’)
- 2015, Srivastava et al. 제안2)
- 𝑦 = 𝐻 𝑥, 𝑊𝐻 ∙ 𝑇 𝑥, 𝑊𝑇 + 𝑥 ∙ 𝐶 𝑥, 𝑊𝐶
= 𝐻 𝑥, 𝑊𝐻 ∙ 𝑇 𝑥, 𝑊𝑇 + 𝑥 ∙ 1 − 𝑇 𝑥, 𝑊𝑇
= ቊ
𝑥, 𝑖𝑓 𝑇 𝑥, 𝑊𝑇 = 0
𝐻 𝑥, 𝑊𝐻 , 𝑖𝑓 𝑇 𝑥, 𝑊𝑇 = 1
- Transform gate, Carry gate 추가
• Highway Network
2) https://arxiv.org/pdf/1505.00387.pdf
- 목적 : 선형 연산과 활성화 연산을 우회하는 경로도 제공하자.
- 효과 : 깊은 신경망의 빠른 학습과 성능 증가
12. Natural Language Processing Lab. @Kookmin University
Model (cont’)
- RNN의 고질적 문제점 Vanishing Gradient
- LSTM 사용
- 입력은 char level 이지만, 예측은 word level로 !
- 학습은 sequence의 NLL을 최소화 하는 방식으로 !
- 𝑁𝐿𝐿 = − σ 𝑡=1
𝑇
𝑙𝑜𝑔𝑃(𝑤𝑡|𝑤1:𝑡−1)
• RNN
13. Natural Language Processing Lab. @Kookmin University
Corpus
• Annotation
- 𝒱 : unique한 단어의 개수
- 𝒞 : unique한 음절의 개수
- 𝑇 : 단어의 총 개수
• 출처
- English : Penn Treebank
- Arabic : News-Commentary corpus
- 나머지 : ACL 2013 Workshop on Machine Translation
• 학습
- Penn Treebank로 최적의 파라미터 탐색
- 그 후, 나머지 말뭉치에 대해서 학습 진행
- Small, Large 말뭉치에 대해 성능 평가
14. Natural Language Processing Lab. @Kookmin University
학습
• 최적화
- Epoch
- Non-Arabic : 25
- Arabic : 30
- Batch
- Data-S : 20
- Data-L : 100
- Time step : 35
- SGD, learning rate = 1
- 복잡도 차이가 별로 없다면 lr = lr/2
- Parameter initialize : uniform distribution
- Dropout : 0.5
- L2 Norm
- hierarchical softmax
15. Natural Language Processing Lab. @Kookmin University
학습 (cont’)
• 하이퍼 파라미터
- 𝑑 : 음절 임베딩 크기
- 𝑤 : CNN 필터 넓이
- ℎ : CNN 필터 개수
- 𝑓, 𝑔 : 비선형 함수
- 𝑙 : 레이어 개수
- 𝑚 : RNN 히든 크기
16. Natural Language Processing Lab. @Kookmin University
성능 측정 지표
- 언어 모델의 복잡도 𝑃𝑃𝐿 = 𝑒𝑥𝑝
𝑁𝐿𝐿
𝑇
- 𝑃𝑃𝐿 = 𝑒𝑥𝑝
𝑁𝐿𝐿
𝑇
= exp −
σ 𝑡=1
𝑇 𝑙𝑜𝑔𝑃 𝑤𝑡 𝑤1:𝑡−1
T
= exp −
𝑙𝑜𝑔𝑃 𝑤1 𝑃 𝑤2 𝑤1 … 𝑝 𝑤 𝑛 𝑤1 … 𝑤 𝑛−1
T
= exp −
𝑙𝑜𝑔𝑃 𝑊
𝑇
= exp log 𝑃 𝑊 −
1
𝑇 = 𝑃 𝑊 −
1
𝑇
=
1
𝑇
𝑃 𝑊
- 좋은 문장 = 문장의 확률이 높음 = PPL이 낮음
PPL 이 낮을 수록 좋은 언어 모델이라 할 수 있음
• PPL (perplexity)
17. Natural Language Processing Lab. @Kookmin University
결과
- (그림 상단) 단어와 음절 단위로 평가
- Char
- Small : 300 hidden
- Large : 650 hidden
- Word
- Small : 200 hidden, word embedding
- Large : 650 hidden, word embedding
- (그림 하단) (state-of-art) Zaremba et al. 2014
와 비슷한 성능을 냄
• English
21. Natural Language Processing Lab. @Kookmin University
논의거리 (cont’)
• Highway Layers
- Highway Network가 CNN과 적합하다고 가정하여 실험을 진행하였음
- 1, 2층의 Highway 계층은 좋지만, 그 이상은 성능 향상 X
- Pooling 하기전 CNN 층수 증가도 성능 향상 X
- 단어 임베딩 을 했을때도 성능 향상 X
22. Natural Language Processing Lab. @Kookmin University
논의거리 (cont’)
• Effect of corpus/vocab size
- Word model -> Char model : PPL 감소량 테이블
- 모든 경우 Char model이 더 뛰어났음
23. Natural Language Processing Lab. @Kookmin University
논의거리 (cont’)
• Further Observations
- Word Embedding 과 Char Embedding 의 조합은 더 나쁜 성능을 보임
- Concat, tensor product, average, adaptive weighting
- 당연하지만, Convolution 연산을 거치기 때문에 그냥 word embedding 모델보다 속도가 느림
24. Natural Language Processing Lab. @Kookmin University
결론
• 글자 레벨의 언어 모델을 제안
- 더 적은 파라미터를 사용
- 더 나은 결과를 도출해냄
• 글자 단위여도 충분히 의미적, 형태적 특징을 학습 가능
• 향후 연구로 기계 번역 같은 다른 분야에도 적용해 볼 것