1. Introduction
일반적인 NLM 의 특징과 단점
• 언어 모델은 단어들에 대한 시퀀스를 확률 분포로 나타낸 것이다.
• 그리고 전통적인 방법은 (1) n차 마르코프 가정과 (2) counting과 subsequent smoothing에 대한 n-gram 확률 추정을 나타낸다.
• Neural language model은 n-gram 데이터의 sparsity 문제를 단어에 대한 매개변수화를 통해 임베딩 벡터를 표현함으로써 해결한다.
• NLM이 count-based 방법보다 앞선 성능을 보여주지만, 이러한 모델에도 단점이 있다 .
- 예컨대, NLM은 eventful, eventfully, uneventful, and uneventfully 와 같은 단어들이 벡터 공간에서 서로 구조적으로 연관된 임베딩인 것을 보여주지 못한다.
- 이 중에서 드물게 등장하는 단어의 임베딩은 잘 예측되지 않아, perplexity가 높아지는 문제가 발생한다.
- 즉 이러한 문제는 형태학적으로 의미가 많은 데 rare word이거나 word distribution이 길거나, social media에서 사용되는 단어처럼 형태적인 변동이 큰 어휘일 때 심화된다.
문제해결
• 이러한 문제를 해결하기 위해서, char-level CNN를 통해 sub-word information 를 활용할 수 있는 새로운 언어모델을 제안한다.
• 이 모델은 character 단위의 CNN을 활용하며, CNN의 결과가 RNN 언어 모델(LSTM)의 입력값으로 사용된다.
• 하위 정보를 얻기 위해 형태소 분석 전처리를 사용하는 다른 모델들과 다르게 전처리 단계에서, 형태학적인 태깅을 요구하지 않는다.
•NLM에서 단어 임베딩에 대한 파라미터가 대부분인데 이를 고려한다면 우리의 모델은 상당히 적은 양의 파라미터를 활용해서 학습이 가능하다.
Contribution
•영어 성능에 관해서, Penn Tree bank에서 60% 더 적은 파라미터로 state-of-the-art 성능을 기록한다.
•형태학적으로 의미가 풍부한 언어들에서 (Arabic, Czech, French, German, Spanish, and Russian) 기본적인 baseline 모델보다 더 적은 파라미터로 압도적인 성능을 나타낸다.
2. Model
Concatenation of character embeddings
C : the vocabulary of characters,
d : the dimensionality of character embeddings
Q : Q는 d x |C| 차원을 가지는 character embedding 행렬이다.
• Word k 에 대하여, a sequence of characters [c_1, . . . , c_l ]로 나타낼 수 있다. 여기서 l은 word k의 길이이다
• 단어를 구성하는 각각의 character embedding을 concatenate 하여 Matrix character embedding를 구성
Convolution layer with multiple filters of different widths
(1)개념 설명
• Matrix character embedding에 다양한 크기의 filter를 적용하여 다양한 feature map들을 획득
• Filter는 본질적으로 charcter의 “n-gram”를 뽑아 낸다.
• 이 때, n-gram의 크기는 filter 크기와 같다.
• 단어 “k”의 feature vector를 많이 추출하기 위해 다양한 크기의 filter를 여러 개 사용
(2)공식 설명
• filter H의 크기는 d x w이다 w는 필터의 크기를 나타낸다.
• (5)식은 f^k 의 i번째 요소를 나타낸 것이다.
• feature map의 크기는 feature map의 크기는 단어길이-w+1이다.
• <A,B>는 A와 B.T의 행렬 내적을 뜻한다.
Max-over-time pooling layer
• 주어진 filter 연산에서 가장 큰 값을 추출하는 것이다.
• 단어 k에 대하여, 다양한 filters(H_1,H_2. . . ,H_h )를 h개만큼 적용하고 max pooling를 해서 h개 만큼의 y값을 얻을 수 있다. 일반적으로 h의 크기는 100 or 1000이다
Highway network
•입력되기 전에 y^k에 대하여 Highway network를 거쳐 LSTM으로 보내어 성능을 개선.
• Highway layer는 LSTM memory cell과 유사하게 input의 몇몇 값들을 다음 계층으로 direct하게 보내준다.
• Highway network연산은 (7)의 multilayer perceptron를 발전시킨 (8)의 형태이다.
• t는 transform gate라고 불린다. 즉 t는 network에서 변경할 값들의 비율을 나타낸다.
• (1-t)는 carry gate라고 불린다. 이는 network를 통해 변경하지 않고 다음 계층으로 바로 전달하고자 하는 값들의 비율을 나타낸다.
• t 수식의 outpu은 0~1 사이 벡터 값이므로, 해당 값만큼만 transform하고 나머지는 directly carry한다.
3. Experimental Setup
(1) PPL (perplexity)
• 언어 모델에 대한 평가는 (9)의 PPL식을 사용해서 이뤄진다.
• ppL은 perplexity의 약자로써, 언어모델을 평가하기 위한 지표이며, 평균적으로 몇개의 선택지를 갖고 예측을 고민하는지에 대한 수치를 보여준다. 따라서 PPL이 낮을 수록 언어모델의 성능이 좋음을 나타낸다.
• 해당 수식은 bigram일때 사용하는 PPL이다.
• 기본적으로 다음 단어에 대해서 예측할 수 있는지를 바탕으로 loss함수를 구성하고 (4)의식은 cross entropy함수와 같다고 생각하면 된다. 그리고 이에 exp()를 적용하였다,
(2) Dataset 설정 및 전처리
• 언어 당 1m 개의 token를 가지는 small dataset과 그 이상의 large dataset이 있고 두 dataset에 대하여 학습 진행.
• Dataset에서는 singleton words만 <UNK>로 대체하였기 때문에, 거의 모든 vocab를 효과적으로 활용하였음.
• Character-level model은 사실 OOV(Out-Of-Vocabulary) token의 표면적 형태를 활용할 수 있음
• 그러나 이전 연구들과의 확실한 비교를 위해 이러한 장점을 채택하지 않고 <UNK> 토큰을 그대로 사용
4. Optimization
• 모델의 초기 parameter들은 [-0.05, 0.05]의 연속 균등 분포로 초기화
• non-Arabic 데이터에는 epochs를 25로 주고 Arabic 데이터에는 epochs를 30으로 설정한다.
• LSTM의 hidden layer에는 keep_prop=0.5를 가지는 dropou를 설정하고 활성화 함수로 softmax 함수를 적용한다.
• 정규화를 할 때, 기울기의 norm을 5아래로 설정하고, 기울기의 L2 norm이 5를 초과하면, 업데이트 하기전에 5로 설정한다. => 이는 gradient exploding를 발생하는 것을 방지
• DATA-L 처럼 word vocabulary size가 큰 경우에는 일반적인 softmax대신에, hierarchical softmax를 사용한다.
5. Results
• sota모델에 성능이 근접하면서 이보다 파라미터 수를 60%정도 줄일 수 있다.
• 이는 우리의 char 모델이 OOV단어에 대해서도 <unk>로 처리한 것에 대해서 페널티 조건이 있음에도 불구하고 이뤄낸 결과이다.
6. Discussion
(1) Learned Word Representations
•Hiway layer를 적용하니 표면적 의미만으로 단어를 파악하기보다는 의미적인 속성도 고려해서 파악한다.
•하지만 his를 hhs와 비슷하게 인식하는 문제도 있었다
•looooook과 같은 단어를 정확하게 look과 비슷하게 인지한다 이는 단어 노이징이나 철자 오류같은 문제를 잘 해결 할 수 있을 것이다.
(2) Learned Character N-gram Representations
•CharCNN의 각각의 필터들은 특정 character의 n-grams를 감지하는 것 처럼 학습을 진행한다.
•모델이 어떠한 char n-gram를 학습하는지 살펴보니, n-gram들이 대체로 valid morpheme를 가리키는 것이 아니였음
•Model이 어떠한 char n-gram을 학습하는지 알아보기 위해, 모든 char n-gram을 PCA로 나타내 보자
char n-gram PCA의 그림을 접두사(빨간색), 접미사(파란색), 하이픈연결(주황색), 기타항목(회색)으로 구분 지을 수 있었다.
(3) Highway Layers
•Highway layers가 좋은 이유는 개별 filte에서 추출한 특징들을 적절하게 조합해서 상호간의 조합을 계산해주기 때문이다.
•위의 그림을 보면 layer는 1~2개 정도를 놓는 것이 좋으면 그 이상의 개수는 성능 향상에는 도움이 되지 않는다.(dataset의 크기 때문일 수도 있다)
•하지만 word embedding을 input으로 사용하는 모델에는 highway network를 추가하는 것이 크게 도움되지 않았다.