NMT 시스템은 source sentence(x_1, ,,, , x_n)를 target sentence(y_1, ,,, , y_n)로 변환하는
조건부 확률(p(y|x))을 적용한 Neural Network이다.
NMT 기본 형태는 Encoder와 Decoder로 구성되어있다.
최근 NMT 모델은 Decoder 분해 과정 모델링에 RNN 구조를 주로 사용했지만,
이는 Encoder의 representation을 계산하는 방법과는 다르다.
Decoder가 y_j를 산출하는 확률을 아래와 같이 표현할 수 있다.
g( ) : argument의 vocabulary-size 벡터를 출력하는 변환 함수
f( ) : 이전 hidden state를 parameter로 받아 현재 hidden state를 계산하는 함수
f( )는 vanilla RNN, GRU unit이나 LSTM의 unit으로 사용된다.
h_j : RNN hidden unit
결론 : target word y_j에 대한 조건부 확률을
현재 hidden state의 vocabulary-size 벡터를 softmax를 통해 예측 분포 형태로 표현한다.
[Bahdanau et al., 2015; Jean et al., 2015]에 이어서 본 논문에서 제시하는 representation s는
Decoder의 hidden state 초기화를 위해 사용되거나,
번역 과정 전체가 반영된 source hidden state의 한 set를 의미했다.
이러한 방법들은 attention mechanism으로 칭한다.
본 연구에서는 NMT 시스템을 위해 아래 그림과 같이 stacking LSTM 구조를 활용하고,
LSTM의 unit은 [Zaremba et al., 2015]에서 정의한 unit을 사용한다.
해당 학습의 objective(목적함수)는 아래와 같고, 변환 과정에 대한 조건부 확률의 합이 최적화 대상이 된다.
크게 global attention(all source)와 local attention(only a few source)로 나뉘는데, Decoding 과정 중 stacking LSTM의 top layer에서 input으로 hidden state h_t가 필요하다는 것은 동일하다.
이후에 현재 target word y_t 예측을 돕기 위해
source 정보가 포함된 context vector c_t를 도출하는 것이 목표이다.
global attention인지 local attention인지에 따라 context vector c_t를 도출하는 방법이 다르지만, 이후 과정은 동일하다.
아래는 hidden state h_t와 context_vector c_t를 concatenation하여 두 vector 정보를 결합한 layer(concatenation layer)를 활용해 아래와 같이 attentional hidden state(attentional vector) ˜h_t를 구할 수 있다.
아래 3.1절과 3.2절에서 context vector c_t를 계산하는 방법에 대해 자세히 설명한다.
Encoder의 모든 hidden state를 반영하여 c_t를 산출하는 접근방법이다.
alignment vector a_t는 다양한 길이로 존재하는데, 이 때 size는 source side의 time step 개수와 동일하다.
attention-based model 구축 초기, location-based function을 통해 alignment vector(alignment score) a_t를 산출하였다. (source hidden state ¯h_s 없이 target hidden state h_t만을 사용)
아래 alignment vector a_t는 content-based function이며, 현재 target hidden state h_t와 각각 source hidden state ¯h_s(¯h_s’) vector를 비교하여 산출한다.
- dot : source hidden state와 target hidden state의 내적
- general : source hidden state에 W_a를 곱한 뒤 target hidden state 와 내적
- concat : 두 벡터(source hidden state와 target hidden state)를 concat한 뒤, W_a를 곱하고, activate function(tanh)을 거친 뒤, v_a vector와 내적
alignment vector a_t를 통해 산출한 context_vector c_t는 모든 source hidden state를 고려하여 가중 평균을 계산한다.
[Bahdanau et al., 2015] 와의 차이점 (더 단순하고 일반화된 방법을 사용하였다.)
1) Encoder와 Decoder 둘 다 LSTM top layer의 hidden state를 사용한다. (Figure 2 참고)
Bahdanau : bi-directional encoder의 forward & backward source hidden state 결합체와
non-stacking uni-directional decoder의 target hidden state를 사용하였다.
2) 계산 경로가 더 간단하다. (Figure 2 참고 : h_t → a_t → c_t → ˜h_t)
Bahdanau : 이전 hidden state로 부터 현재 h_t를 산출한다. (h_t−1 → a_t → c_t → h_t)
3) 다양한 alignment function를 통한 실험을 진행했다.
Bahdanau : alignment function으로 concat만을 사용하여 실험을 진행했다.
global attention은 모든 source word를 사용하기 때문에 long sequence translation에서 많은 비용이 필요하다.
각 target word가 모든 source word를 반영하는 global attention의 단점을 보완하기 위해 source words 일부 만을 집중해서 선택하는 방법이다.
image caption generation 관련 논문인 [Xu et al. 2015]에서 제안한 soft와 hard attentional models 사이의 tradeoff를 반영했다.
해당 논문에서 제시하는 local attention은 context의 small window에 선택적으로 집중하고, 미분이 가능하다.
자세한 과정은 아래와 같다.
이 때, global attention과 다르게, local의 alignment vector a_t는 차원이 고정되어있다. (예 : 2D+1 차원 등)
aligned position은 두 가지 방법에 의해 결정된다.
model을 통해 aligned position p_t를 예측한다.
global의 alignment vector a_t를 구하는 식에
p_t를 중심으로 한 Gaussian 분포를 곱하여,
p_t와 가까울수록 alignment score에 높은 가중치를 부여한다.
- σ : 표준편차이며, D/2와 같이 경험적으로 값을 부여한다.
- s : “p_t를 중심으로 한 window” 내의 정수 값이다.
[Gregor et al., 2015]에서 제안한 selective attention과 매우 유사하지만, 더 단순하다.
비교 대상
Table 1은 newstest2014에서 다양한 시스템의 perplexities(ppl), tokenized BLEU score 이다.
BLEU 향상 요인
1) reserve(source sentence의 확보) ➡️ +1.3 BLEU
2) + dropout ➡️ +1.4 BLEU
3) + global attention (location) ➡️ +2.8 BLEU
이 때 16.8 BLEU로 RNNsearch(16.5 BLEU)보다 더 좋은 성능을 보였다.
4) + input-feeding ➡️ +1.3 BLEU
5) global → local-p (predictive alignments) ➡️ +0.9 BLEU
최종적으로 attention(local-p, input-feeding) 적용 이후, +5.0 BLEU 달성했다.
6) + unk replace ➡️ +1.9 BLEU
이전 논문에서 제시된 기법이다. (Luong et al., 2015; Jean et al., 2015)
7) + Ensemble 8 models ➡️ +2.1 BLEU
다양한 초기조건을 가진 8개의 모델 (dropout 유무, global/local attention 등) 을 앙상블한 모델이 성능 향상을 보였다.
해당 모델을 본 논문에서 best model로 선정하였다.
결론적으로 기존보다 SOTA보다 1.4 BLEU 큰 23.0 BLEU를 보이며, 새로운 SOTA를 달성하였다.
아래는 best model을 WMT’15 데이터로 학습시킨 결과이다.
WMT’15 데이터로 비슷한 형태의 독일어 → 영어 번역 실험을 진행하였다.
해당 task에서 24.9 BLEU로 SOTA를 달성하지 못했지만, 아래와 같은 성능 향상을 보였다.
attention 개념을 NMT 분야에 적용시켜 성능을 대폭 향상시킨 모델이다. 특히, 크게 global attention과 local attention 두 가지 방법론을 제시했는데, global attention은 기존 NMT 분야에서 좋은 성능을 보이던 방법론에서 착안하였고, local attention은 image caption generation이라는 타 분야에서 활용된 방법론에서 착안하였다. 새롭게 접하는 방법론을 다른 분야에 적용이 가능한가?에 대한 시각이 필요하다는 것을 배울 수 있었다. 이러한 시각은 추후 연구 주제를 탐색하는데, 긍정적인 영향을 줄 수 있을 것이라 생각한다.
Alignment Quality를 파악하는 평가지표로 Alignment Error Rate(AER)을 사용하였다. 해당 논문에서는 BLEU score와 AER 결과가 비례하지 않음을 보며, 두 값 사이의 상관관계가 없다는 의견을 제시하였다. 해당 논문에서 제시한 모델이 translation을 하는 과정에서 alignment이 포함되어있기 때문에 일반적으로 alignment quality가 translation score에도 영향을 줄 수 있다고 생각한다. 하지만 해당 논문에서는 상관관계가 없다는 결론이 모델의 결과로만 제시된 측면이 아쉬웠다. alignment quality를 측정하는 다른 평가지표가 존재한다면, 그것에 대한 추가 검증을 통해 해당 결론에 대한 이해를 높일 수 있다고 생각한다.