AI/논문 리뷰

[논문 리뷰] Effective Approaches to Attention-based Neural Machine Translation

sangwonYoon 2023. 5. 5. 18:13

논문이 다루는 Task

Task: Neural Machine Translation

  • Input: English 또는 German 문장
    • (batch_size, max_len)
  • Output: German 또는 English 문장
    • (batch_size, max_len)

 

기존 연구 한계

  • Hard Alignment를 이용한 NMT 모델링
    • Hard Alignment에 대한 labeling이 별도로 필요했다.
    • Alignment를 예측 하는 모델, target를 생성하는 모델을 별도로 학습시켜야 했다.
  • Sequence to Sequence learning with neural networks (Sutskever et al. 2014)
    • Encoder와 Decoder 간에 병목 현상이 발생한다.

 

제안 방법론

Global Attention

Global attention의 구조

모든 입력에 대한 attention을 고려하는 방식이다.

align vector $a_t$는 입력 sequence의 time step의 개수와 같은 길이를 갖는데, 인코더의 최상단 layer에서 생성된 hidden state($\bar{h}_s$)와 time $t$에 해당하는 디코더의 hidden state($h_t$)를 score 함수의 인자로 넣어 얻은 벡터를 softmax 함수에 넣어 얻는다. 이러한 방식으로 얻은 $a_t$는 source의 각 time step의 hidden state 정보와 $t$에 해당하는 hidden state 정보가 얼마나 유사한지를 나타내며, 각 time step에서 생성된 hidden state를 얼마의 비중으로 고려할 것인지 결정한다.

모든 source의 hidden state를 $a_t$를 가중치로 이용한 가중 평균을 구해 문맥 벡터인 $c_t$를 얻고 이를 $t$에 해당하는 hidden state와 이어붙인 뒤, 결과 값을 얻는 방식이다.

모든 source와의 관계를 계산 후 문맥 벡터를 생성하기 때문에 결과에 대한 정확도가 높을 수 있지만, 입력 문장이 길어질 경우, 계산량이 매우 커질 수 있다는 문제가 있다.

 

Local Attention

Local attention의 구조

Global Attention에서 긴 입력 문장이 주어졌을 때, 계산량 문제를 극복하기 위해 제안된 방법론으로 source와의 관계를 고려하는 것이 아닌, 현재 time $t$의 결과와 가장 연관성이 높을만한 위치 $p_t$의 주변 source의 hidden vector와의 연산을 진행한다.

Global Attention과 달리, Local Attention에서의 align vector $a_t$는 크기가 2D+1로 고정적이다. 이때 D는 $p_t$ 주변으로 몇개의 time step을 참조할 것인지 결정하고, 이 값은 경험적으로 결정된다.

$p_t$를 구하는 방법에는 두가지가 있다.

첫번째는 Monotonic alignment 방식으로, 입력과 출력이 단조로운 방식으로 정렬되어 있을 것(비슷한 위치에 비슷한 의미가 있을 것)이라고 추측하여, $p_t$ = $t$로 구하는 방식이다.

두번째는 Predictive alignment 방식으로, 아래와 같은 수식으로 $p_t$를 구한다.

$$p_t = S \cdot sigmoid(v_p^Ttanh(W_ph_t))$$

이후, $p_t$를 중심으로 가까운 위치의 hidden state의 비중을 높이고, 멀리 위치한 hidden state의 비중을 낮추기 위해 $p_t$를 평균으로 하는 정규 분포를 곱하여 $a_t$를 계산한다.

$$a_t(s) = align(h_t, \bar{h}_s)exp\left(-\frac{(s-p_t)^2}{2\sigma^2} \right)$$

 

Input-Feeding Approach

Input Feeding

디코더에서 attention layer를 통과해 나온 결과물인 Attentional vector를 다음 time step의 input과 이어 붙이는 방식이다.

이전 time step의 Attentional vector를 고려하기 때문에 이전 time step에서 어떤 방식으로 source를 고려했는지에 대한 정보를 보존할 수 있고, 수평적, 수직적으로 더 깊은 네트워크를 형성할 수 있다는 장점이 있다.

 

Contribution

  • seq2seq 구조의 information bottlneck problem을 해소했다.
    • encoder 정보에 decoder가 직접 접근할 수 있도록 attention mechanism 적용했다.
  • attention의 비용을 감소하기 위해 local attention 제안했다.
  • drop-out이나 reversed setentence의 테크닉을 적용하여 추가적 성능을 개선했다.
  • 이전 Seq2Seq with attention (Bahdanau et al. 2015)에서 제시했던 concat product 외에 다양한 alignment function들을 제안했다.

 

실험 및 결과

Dataset

  • WMT’14 Dataset
    • 450만개의 문장쌍, 1억 1600만 영어 단어와 1억 1000만개의 독일 단어가 포함되어 있다.

Baseline

  • non-attentional model
    • attention 기법을 적용하지 않은 LSTM 모델이다.

 

결과

위 표는 WMT’14 영어-독일어 번역 task에서 모델 별 ppl과 BLEU 점수를 보여준다.

predictive alignment를 적용한 local attention과 input-feeding, unknown replacement를 적용한 모델이 source reversing, dropout과 같은 널리 알려진 기법을 적용한 non-attentional 모델에 비해 6.9점 높은 BLEU 점수를 받으면서 성능을 입증했다.

서로 다른 세팅을 갖는 8개의 모델을 앙상블한 결과 23점의 BLEU 점수를 받으며 새로운 SOTA를 달성했다.

 

WMT’15 영어-독일어 번역 task에서도 상대적으로 적은 양의 WMT’14의 데이터 셋으로 훈련 시킨 모델로 SOTA를 달성하며 일반화가 잘 된 모델임을 입증했다.

 

Analysis

학습이 진행될수록 attentional 모델이 non-attentional 모델에 비해 낮은 test cost를 갖는다는 것을 확인할 수 있다.

attentional 모델이 non-attentional 모델에 비해 길이가 긴 문장을 잘 번역하는 것을 확인할 수 있다.

src : 원본 문장, ref : 사람이 번역한 문장, best : 본 연구에서 제안한 모델, base : non-attentional 모델 / 올바른 번역은 파란 글씨로, 잘못된 번역은 빨간 글씨로 나타냈다.

non-attentional 모델(base)에 비해 본 연구에서 제안한 모델(best)은 아래와 같은 요소들을 매끄럽게 번역했다.

  • 이름과 같은 고유명사
    • ex) Miranda Kerr, Roger Dow
  • 이중 부정문
    • ex) not incompatible
  • 긴 문장

(좌 상단) global attention, (우 상단) local-m attention, (좌 하단) local-p attention, (우 하단) gold

위 그림은 모델 별 alignment, 즉 attention의 비중을 시각화한 것이다. local attention model이 global attention model보다 alignment를 잘 잡아낸다는 것을 확인할 수 있다.

 

참고

https://arxiv.org/abs/1508.04025 (논문)

 

*본 템플릿은 DSBA 연구실 이유경 박사과정의 템플릿을 토대로 하고 있습니다.