Effective Approaches to Attention-based Neural Machine Translation(EMNLP 2015)
0. Abstract
- `Attention` mehanism은 번역 과정에서 source sentence를 선택적으로 focusing 하는 방식으로 NMT(Neural Machine Translation)를 개선시키는 데 사용됨
- 그러나 NMT 분야에서 더욱 효율적으로 attention을 사용하는 architecture를 탐색하는 작업은 거의 없었음
- 2개의 간단하고 효과적인 Attention Mechanism을 제시
- 항상 모든 source word를 활용하는 `global` attentional model
- 한 번에 source word의 subset만 활용하는 `local` attentional model
- 영어를 독일어로 번역하는 WMT translation task를 통해 효과를 입증
- `Local Attention`은 Dropout과 같은 알려진 기술들을 결합한 non-attentional 시스템보다 5.0 BLEU point를 더 얻음
- `BLEU` score는 기계 번역 결과가 사람이 직접 번역한 결과와 얼마나 유사한지 비교하여 번역 성능을 측정하는 방법
- 각기 다른 attention architecture를 앙상블한 모델은 WMT'15 English to German translation task에서 25.9 BLEU point를 얻으며 SOTA를 달성
1. Introduction
- `Neural Machine Translation(NMT)`는 최소한의 domain knowledge를 요구하고 개념적으로 간단하며, English to French, English to German 등 large-scale translation task에서 SOTA를 달성
- NMT model(Luong et al.(2015))은 문장의 끝을 나타내는 기호인 <eos>에 다다를 때까지 모든 source word를 모두 읽고, 그다음 한 번에 한 단어를 생성
- NMT는 종종 end-to-end 방식으로 훈련된 거대한 Neural Network이며 매우 긴 word sequence에 대해 잘 일반화할 수 있는 능력을 갖춤
- 이는 모델이 거대한 phrase table과 language model를 저장할 필요가 없음을 의미하며, NMT는 작은 메모리 공간을 차지
- NMT decoder는 standard MT의 복잡한 decoder에 비해 구현이 쉬움
- NMT에 다른 Attention mechanism을 적용한 연구는 없었으며, 이에 본 논문은 두 가지의 attention-based model을 제안
- `global` model은 `Bahdanau Attention`과 유사하지만, 더욱 단순한 architecture
- `local` model은 global model 혹은 soft attention보다 계산 비용이 저렴하며, hard attention과 다르게 거의 모든 지점에서 미분 가능하여 구현 및 훈련이 더 쉬움
2. Neural Machine Translation
- NMT는 (x1, ··· , xn)의 source sentence를 target sentence (y1, ··· , ym)으로 번역하는 조건부 확률 p(y|x)를 직접 모델링
- NMT는 2가지로 구성
- `encoder` : 각 source sentence에 대한 `representation`, 즉 이들을 대표하는 s를 계산
- `decoder` : 한 time에 하나의 target word를 생성하고, 조건부 확률을 다음과 같이 분해
- y : target sentence, x : source sentence, s : representation of source sentence
- 해당 시점 j의 이전 target token들과 source sentence들의 정보를 통해 해당 시점 j의 target token의 확률을 계산
- 이 값들을 모두 합하여 최종 target sentence를 도출
- decoder가 각 target token을 생성하는 확률을 좀 더 자세히 다음과 같이 표현
- g : output을 vocabulary-sized의 vector로 변환하는 함수
- h_j : RNN의 hidden unit
- f : 이전 hidden state를 통해 현재의 hidden state를 계산하며, 이는 `vanilla RNN`, `GRU`, `LSTM` 모두 가능
- 기존 연구들에서 source representation을 나타내는 s는 decoder의 hidden state를 초기화하는 데에만 한 번 쓰임
- 본 논문에선 번역 전체 과정에서 이 s를 활용하며 이러한 방식을 attention mechanism이라고 함
- stacking LSTM architecture를 사용하여 NMT system을 구성
3. Attention-based Models
- 두 모델의 공통점은 Decoding 과정의 각 time step t에서 stacking LSTM의 이전 hidden state를 input으로 활용
- 이후에는 현재의 target token을 예측하는 데 도움을 주는 source token들간의 relevant를 포함하는 context vector를 도출하는 것이 목적(attention score)
- 두 모델은 context vector를 도출하는 방식이 다르지만, 이후 단계들은 동일
- attentional hidden state를 생성하기 위해 target hidden state h_t와 context vector c_t를 concatenate 하고, softmax 함수를 통해 예측 분포를 생성
3.1 Global Attention
- Encoder의 모든 source sentence를 활용하여 Decoder에서의 Cotext vector를 생성
- Decoder의 target hidden state h_t와 입력 token 각각의 hidden state 간의 attention score를 계산하여 a_t 생성
- alignment vector a_t의 크기는 입력 token의 time step의 개수와 동일
- 여기서 score는 content-based function이며 3가지 방법 존재 → `dot`, `general`, `concat`
- alignment vector를 가중치로 활용하여 모든 source hidden state들의 weighted average를 통해 context vector 생성
- Global model은 기존에 Bahdnau Attention과 비교했을 때 다음과 같은 차이점 존재
- Encoder와 Decoder 모두 단순히 이전 time step의 hidden states를 사용
- Bahdnau Attention의 경우 양방향 Encoder에서의 forward와 backward scource hidden states의 concatenation과 non-stacking 단방향 Decoder의 target hidden states를 사용
- 계산 경로가 훨씬 단순
- 하나의 alignment function(concat)만 사용한 Bahdnau Attention에 비해 총 3가지의 alignment 대안을 제시하였고, 이 대안이 더 높은 성능을 보인다는 것을 확인
- Encoder와 Decoder 모두 단순히 이전 time step의 hidden states를 사용
3.2 Local Attention
- Global Model은 하나의 target word를 위해 각 source words를 모두 확인해야하는 단점이 존재하는데, 이는 비용이 많이 들고 paragraphs, documents와 같은 긴 sequence를 번역하는 데 비실용적일 수 있음
- Local Model은 선택적으로 context의 small window에 집중
- soft attention에서 비싼 계산 비용을 피하고, hard attention보다 훈련이 쉬움
- 각 time step의 target word에 대한 aligned position p_t 생성
- [p_t - D, p_t + D]에 해당하는 source word의 hidden state만을 이용해 weighted average를 통한 context vector 계산
- D는 경험적으로 선택
- global model과 다르게 alignment vector a_t는 차원이 고정되어 있지 않음(D에 따라 변화)
- `Monotonic alignment(local-m)` : source와 target sequence들이 monotically aligned 되었다고 가정하여 p_t = t로 설정하여 alignment vector a_t는 Eq. (7)과 동일
- 현재 번역하고 있는 target sequence의 t번째 단어가 source sequence의 t번째 단어와 대응된다고 가정
- `Predictive alignment(local-p)` : monotically aligned 대신 aligned position을 모델이 Eq. (9)와 같이 예측
- v_p, W_p : position을 예측할 때 학습되어질 모델 파라미터
- S : source sentence의 길이(input sentence)
- `sigmoid` 함수로 인해 p_t의 크기는 [0, S]
- p_t를 중심으로 가우시안 분포를 배치하여 Eq. (10)과 같은 alignment weights 정의
- align function은 Eq. (7)과 동일
- 표준편차는 경험적으로 D/2로 설정
- p_t는 실수이며, s는 p_t를 중심으로 한 window 내의 정수
3.3 Input-feeding Approach
- global 및 local model에서 attentional decision이 독립적으로 결정되는데, 이는 최선의 방법이 아님
- standard MT에선 번역 프로세스 중에 어떤 source word가 번역되었는지 추적하기 위해 coverage set가 종종 유지됨
- attentional NMT 방법론들도 과거 alignment information을 고려하여 alignment에 대한 결정을 공동으로 내림
- 이를 해결하기 위해 attentional vector h_t를 다음 time step에서 input과 함께 concatenate 하는 `input-feeding`을 제시
- 모델이 이전 time step에서 입력 문장과 출력 문장 간의 대응 관계를 학습하는 alignment choice를 완전히 이해
- 수평 및 수직으로 매우 깊은 네트워크를 생성
- Input-feeding은 non-attentional model인 일반적인 stacking recurrent 아키텍쳐들에도 적용이 가능
- Xu et al., (2015)는 training objective에 추가적인 제약을 추가하여 모델이 캡션 생성 프로세스에서 이미지의 모든 부분에 동일한 attention을 수행하도록 하는 `doubly attentional` 방식을 제안
- 이러한 제약은 NMT의 coverage set을 확인하는 데에도 더욱 유용
- 그러나 input-feeding 방식을 선택한 이유는 모델이 적합하다고 판단하는 attentional constraint를 결정하는데 유연성을 제공하기 때문
4. Experiments
- 영어와 독일어 간 양방향 WMT 번역 작업에 대한 모델의 효율성을 평가
- newstest2013(3000 sentences)를 하이퍼파라미터를 선택하기 위해 development set로 사용
4.1 Training Details
- 모든 모델은 450만 개의 sentences pair(116M 영단어, 110M 독일어 단어)로 구성된 WMT'14 training data로 훈련
- vocabulary는 두 언어 모두 가장 빈번하게 사용되는 단어 5만개로 제한
- 이 vocabulary에 없는 단어는 <unk> 토큰으로 변환
- 50단어를 초과하는 문장 pair를 필터링하고, 진행 과정에 mini-batch를 섞어 학습
- stacking LSTM 모델은 각 1,000개의 cell로 구성된 4개의 layer와 1000차원의 임베딩으로 구성
- NMT 훈련 세팅
- 파라미터는 균등하게 [-0.1, 0.1]로 초기화
- SGD, 10 epoch
- learning rate : 1 → 5 epoch 이후 매 epoch 마다 learning rate를 반으로 감소
- mini-batch size : 128
- 정규화된 gradient는 norm이 5를 초과할 때마다 rescaled
- 추가적으로 p = 0.2의 Dropout 수행
- Dropout 모델은 12 epoch로 훈련하며 8 epoch 이후 learning rate를 반으로 감소
- local attention model의 window size는 D = 10
- Tesla K40 하나의 GPU 사용
- 초당 1,000개의 target word의 속도
- 7-10일 동안 훈련
4.2 English-German Results
- 영어 - 독일어 번역 결과
- Winning WMT'14 system(20.7 BLEU) : phrase-based 시스템으로 거대한 단일 언어 텍스트인 Common Crawl corpus로 학습된 언어 모델
- RNNsearch(16.5 BLEU) : 이 language pair로 실험한 유일한 End-to-End system 연구로, 현재 SOTA 시스템
- RNNsearch + unk replace(19.0 BLEU, +2.5)
- RNNsearch + unk replace + large vocab + ensemble 8 models(21.6 BLEU, +2.6)
- Base : non-attentional model(11.3 BLEU)
- Base + reverse(12.6 BLEU, +1.3)
- Base + reverse + dropout(14.0 BLEU, + 1.4)
- global model : Base + reverse + dropout + global attention(16.8 BLEU, +2.8)
- global model + feed input(18.1 BLEU , + 1.3)
- local model : Base + reverse + dropout + local attention(local-p) + feed input(19.0 BLEU, + 0.9)
- local model + unk replace(20.9 BLEU, +1.9)
- Ensemble 8 models + unk replace(23.0 BLEU, +2.1)
- 기존에 알려진 source reversing, dropout을 적용시킨 non-attentional model보다 local attention을 적용시켰을 때 5.0 BLEU 포인트를 더 얻음
- `perplexity`가 번역 품질과 강하게 연관됨을 확인
- perplexity는 줄여서 PPL이라고도 하며, 언어 모델을 평가하는 지표로 문장의 길이로 정규화 문장 확률의 역수
- 낮을수록 언어 모델의 성능이 좋음을 나타냄
- perplexity는 줄여서 PPL이라고도 하며, 언어 모델을 평가하는 지표로 문장의 길이로 정규화 문장 확률의 역수
- (Luong et al., 2015)와 (Jean et al., 2015) 연구에서 제시된 unknown replacement도 +1.9 BLEU의 성능 향상을 이루어냄
- 다른 종류의 attention을 적용하고, dropout을 적용 혹은 적용하지 않는 등 총 8개의 모델을 앙상블해 23.0 BLEU의 SOTA 달성
- WMT'14 Dataset을 통해 훈련된 모델의 test 성능을 확인해 보기 위해 WMT'15 Dataset을 통해 일반화 성능을 확인
- 가장 성능이 좋았던 NMT + 5-gram LM reranker 모델보다 1.0 높은 BLEU point를 획득
4.3 German-English Results
- SOTA를 달성하진 못했지만, Base 모델에 global attention + dropout + input-feeding + unk를 추가해 성능 개선
5. Analysis
5.1 Learning Curves
- non-attentional model과 attentional model의 Test cost 차이 확인
- input-feeding과 local attention model 또한 Test cost를 줄이는 데 많은 기여
- dropout을 적용한 non-attentional model은 dropout을 적용하지 않은 model보다 학습은 조금 더 느리지만, 시간이 지나고 test error를 줄이는데 더 robust 해짐
5.2 Effects of Translating Long Sentences
- 비슷한 길이의 문장을 그룹으로 묶어 그룹당 BLEU 점수를 계산하는 방법(Bahdanau et al., (2015)) 활용
- 본 논문의 방법론이 non-attentional model과 비교했을 때 문장의 길이가 늘어나도 성능이 떨어지지 않으며 더 효과적
5.3 Choices of Attentional Architectures
- 여러 attention model(global, local-m, local-p)과 alignment function(location, dot, general, concat)을 실험
- location-based function은 좋은 alignment를 잘 학습하지 못함
- content-based function에서는 `concat`이 좋은 성능을 보여주지 못했으며, 원인은 더 분석해봐야 함
- global attention에선 `dot` 함수가, local attention에선 `general` 함수가 좋은 성능을 보임
- 모델의 경우 predictive alignment를 사용하는 local attention(local-p) 모델이 PPL 및 BLEU 모두 가장 성능이 좋음
5.4 Alignment Quality
- `Alignment Error Rate(AER)`를 통해 alignment quality를 평가
- AER은 번역 모델이 생성한 alignment와 사람이 만든 정답 alignment 간의 오차를 측정하는 데 사용되는 지표
- AER은 0과 1 사이의 값을 가지며, 0에 가까울수록 더 정확한 alignment를 생성한 것을 의미
- local attention model이 모든 global attention model보다 더 낮은 AER을 보임
- 가장 성능이 좋았던 ensemble 모델도 local-m model보다 더 나은 AER score를 보이지는 못함
- AER과 translation score는 그리 큰 상관이 없다는 사실을 입증
5.5 Sample Translation
6. Conclusion
- 본 논문에선 2개의 간단하고 효과적인 attentional mechanism을 제안
- 항상 모든 source sentence를 활용하는 global approach
- 한 time에 source sentence의 일부만 처리하는 local approach
- English-German, German-English task를 통해 본 논문에서 제시하는 model의 성능을 실험
- 본 논문의 local attention model은 이미 알려진 dropout과 같은 기술들을 적용시킨 non-attentional model보다 5.0 BLEU 이상의 point를 더 획득
- 본 논문의 ensemble model은 WMT'14와 WMT'15 모두에서 SOTA를 달성
- 다양한 alignment function을 비교하고, 어떤 함수가 어떤 attentional model에 적합한지 확인
- attentional-based NMT model이 이름 번역 혹은 긴 문장을 다루는 등의 많은 경우에 non-attentional model보다 우수한 것을 확인
Comment
본 논문은 Attention을 NMT에 도입한 이후, 효율적인 활용을 위한 `global` 및 `local` 두 가지 모델을 제시한다. 두 가지 모델의 가장 큰 특징은 context vector를 구성하는 과정에 있다. context vector를 구성하는 데 있어 global 모델의 경우 source sentence의 모든 token을 고려하여 alignment score를 계산한다. 이는 기존에 Bahdanau et al., (2015)에서 제시하는 Attention model과 유사한 점이 있지만, alignment score를 계산하는 과정이 단순해지고, 3가지의 방법(dot, concat, general)을 제시하며 차이점을 두었다.
또한 local model의 경우 context vector를 구성하는 데 있어 source sentence 중 aligned position을 나타내는 p_t의 small window에 해당하는 hidden state만을 활용한다. 여기서 p_t를 결정하는 방식에 따라 다시 `local-m`, `local-p` 모델로 나뉘는데, local-m 모델은 p_t를 t로 설정하여 source sentence를 선택하고, local-p 모델은 aligned position을 모델이 예측하여 source sentence를 선택하여 context vector를 구성한다.
추가적으로 global/local 모델은 모두 `input-feeding` 방식을 적용한다. 이는 각 time step마다 output을 생성하기 전 context vector와 해당 time step의 hidden state를 concatenate 하는 것을 의미한다. 이를 통해 다음 time step에서의 모델에게 이전 time step에서의 alignment decision을 알려 이를 이해할 수 있게 할 수 있으며, 네트워크를 수직-수평적으로 더 깊게 구성할 수 있다.
Reference
[1] https://wikidocs.net/31695