누누와데이터

[논문 리뷰] Character-Aware Neural Language Models 본문

자연어처리 논문

[논문 리뷰] Character-Aware Neural Language Models

happynunu 2022. 1. 22. 17:39

1. Introduction

일반적인 NLM 의 특징과 단점

언어 모델은 단어들에 대한 시퀀스를 확률 분포로 나타낸 것이다.
그리고 전통적인 방법은 (1) n마르코프 가정과 (2) counting subsequent smoothing에 대한 n-gram 확률 추정을 나타낸다.
Neural language modeln-gram 데이터의 sparsity 문제를 단어에 대한 매개변수화를 통해 임베딩 벡터를 표현함으로써 해결한다.
NLMcount-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

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 ] 나타낼 수 있다. 여기서 lword k의 길이이다
단어를 구성하는 각각의 character embeddingconcatenate 하여 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)공식 설명

character embedding의 Convolution 연산

filter H의 크기는 d x w이다   w는 필터의  크기를 나타낸다.
(5)식은 f^k i번째 요소를 나타낸 것이다.
feature map의 크기는 feature map의 크기는 단어길이-w+1이다. 
<A,B>AB.T의 행렬 내적을 뜻한다.

 

Max-over-time pooling layer

 

max pooling

주어진 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 layerLSTM memory cell과 유사하게 input의 몇몇 값들을 다음 계층으로 direct하게 보내준다.

 

Highway network연산은 (7)multilayer perceptron를 발전시킨 (8) 형태이다.
ttransform gate라고 불린다.  tnetwork에서 변경할 값들의 비율을 나타낸다.
(1-t)carry gate라고 불린다. 이는 network를 통해 변경하지 않고 다음 계층으로 바로 전달하고자 하는 값들의 비율을 나타낸다.
• t 수식의 outpu0~1 사이 벡터 값이므로, 해당 값만큼만 transform하고 나머지는 directly carry한다.

3. Experimental Setup

(1) PPL (perplexity)

언어 모델에 대한 평가는 (9)PPL식을 사용해서 이뤄진다.

• ppL은 perplexity의 약자로써, 언어모델을 평가하기 위한 지표이며, 평균적으로 몇개의 선택지를 갖고 예측을 고민하는지에 대한 수치를 보여준다. 따라서 PPL이 낮을 수록 언어모델의 성능이 좋음을 나타낸다.

해당 수식은 bigram일때 사용하는 PPL이다.

• 기본적으로 다음 단어에 대해서 예측할 수 있는지를 바탕으로 loss함수를 구성하고 (4)의식은 cross entropy함수와 같다고 생각하면 된다. 그리고 이에 exp()를 적용하였다, 

 

(2) Dataset 설정 및 전처리

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 데이터에는  epochs25로 주고 Arabic 데이터에는 epochs30으로 설정한다.
LSTMhidden layer에는 keep_prop=0.5를 가지는 dropou를 설정하고 활성화 함수로 softmax 함수를 적용한다.
정규화를 할 때, 기울기의 norm5아래로 설정하고, 기울기의 L2 norm5를 초과하면, 업데이트 하기전에 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를 적용하니 표면적 의미만으로 단어를 파악하기보다는 의미적인 속성도 고려해서 파악한다.
하지만 hishhs와 비슷하게 인식하는 문제도 있었다
looooook과 같은 단어를 정확하게 look과 비슷하게 인지한다 이는 단어 노이징이나 철자 오류같은 문제를 잘 해결 할 수 있을 것이다.

(2) Learned Character N-gram Representations

CharCNN의 각각의 필터들은 특정 charactern-grams를 감지하는 것 처럼 학습을 진행한다.
모델이 어떠한 char n-gram 학습하는지 살펴보니, n-gram들이 대체로 valid morpheme를 가리키는 것이 아니였음
Model이 어떠한 char n-gram을 학습하는지 알아보기 위해, 모든 char n-gramPCA로 나타내 보자 

char n-gram PCA의 그림을 접두사(빨간색), 접미사(파란색), 하이픈연결(주황색), 기타항목(회색)으로 구분 지을 수 있었다.

char n-gram PCA
 

(3) Highway Layers

Highway layers가 좋은 이유는 개별 filte에서 추출한 특징들을 적절하게 조합해서 상호간의 조합을 계산해주기 때문이다.
위의 그림을 보면 layer1~2개 정도를 놓는 것이 좋으면 그 이상의 개수는 성능 향상에는 도움이 되지 않는다.(dataset의 크기 때문일 수도 있다)
하지만 word embeddinginput으로 사용하는 모델에는 highway network를 추가하는 것이 크게 도움되지 않았다.
Comments