본 논문은 2015년 발표된 논문으로,
Machine translation 분야에서 Bahdanau Attention을 활용한 NMT(Neural machine translation) 모델의 성공에도 불구하고, attention을 더 효율적으로 활용할 수 있는 NMT 모델에 대한 연구가 부족함을 지적하며 시작합니다.
1.Neural Machine translation
Machine translation은 가변적인 input sequence에 대하여 output sequence로 translation 하는 고수준의 nlp task 중 하나입니다.
확률적인 관점에서 설명드리면,
input sentence \(x=(x_1,...,x_n)\)와 output sequence \(y=(y_1,...,y_m)\)에 대한 조건부 확률 \(p(y|x)\)를 구하는 과정이 됩니다.
그리고 이러한 조건부 확률 분포를 학습하기 위해 parameterized model이 사용되는데,
특히 인공 신경망을 parameterized model로 차용한 구조를 Neural Machine translation model(NMT) 라고 합니다.
NMT 모델은 기본적으로 위와 같이 encoder(blue) & decoder(red) 구조로 이루어져 있습니다.
encoder는 input sequence \(x=(x_1,...,x_n)\)로 representation \(s\)를 계산하고,
decoder는 representation \(s\)를 통하여 \(y=(y_1,...,y_m)\)를 계산합니다.
처음 제안된 NMT 모델은 encoder와 decoder에 각각 RNN을 사용하였습니다. 하지만 RNN의 고질적 문제인 long term dependency가 있었고, 이후에 발표된 LSTM을 사용한 NMT 모델이 처음으로 statistical machine translation model(SMT)의 성능을 뛰어 넘어 NMT의 시대를 본격적으로 열게 됩니다.
RNN,LSTM Seq2Seq machine translation 구조에 대한 자세한 설명은 아래 리뷰를 참고 부탁드립니다.
2.Attention mechanism
기존 NMT의 Decoder는 conditional probability를 구하기 위해 각각 단어에 대한 softmax probability를 사용합니다.
이는 word \(y_j\)가 decoding 될 확률을 의미합니다.
그리고 \(y_j\)의 softmax decoding probability를 구하기 위해 사용되는 hidden state \(h_j\)는 이전 hidden state \(h_{j-1}\),representation vector \(s\)를 통해 얻은 hidden state 입니다. \(f\)에는 RNN,LSTM, 혹은 GRU가 사용될 수 있습니다.
기존의 NMT 구조에서 Encoder를 통해 얻은 epresentation vector \(s\)는 그저 고정된 길이의 벡터로서, decoder의 첫 hidden state를 초기화 하기 위해서만 사용됩니다.
하지만 긴 문장을 고정된 길이의 벡터로 표현하는 것은 쉬운 일이 아닐 것 입니다. 따라서 고정된 길이의 벡터 \(s\)를 사용하는 방법은 긴 문장을 Input sequence로 하였을 때, long term dependency 문제를 가중시키게 됩니다.
그래서 제안된 방법이 바로 Attention mechanism 입니다.
Attention mechanism은 고정된 길이의 벡터 형태 \(s\)를 사용하지 않습니다.
대신, Decoder가 각각의 target word \(y_t\)마다 input sequence \(x=(x_1,...,x_T)\)의 중요한 부분을 탐색하여 선택적으로 반영합니다.
그러기 위해 Attention mechansim은 encoder의 모든 hidden state 집합 \((h_1,...,h_{T_x})\)를 \(s\)로서 사용합니다.
논문이 나왔을 당시, input sequence의 상대적 중요성을 학습하는 Attention 방법에는 Neural network alignment model을 사용하는 Bahdanau Attention이 사용되고 있었습니다.
Bahdanau Attention에 대한 자세한 설명은 아래 리뷰를 참고 부탁드립니다.
3.Attention mechanism(by Luong)
저자는 기존의 Bahdanau Attention 방법보다 효율적이고 강력하게 Attention을 적용할 수 있는
두가지 Attention model Global Attention, Soft Attention을 소개합니다.
두 모델은 기본적인 틀은 동일합니다.
Decoder가 Timestep t에서 LSTM의 hiddent state \(h_t\)와 attention 정보를 가지고 있는 context vector \(c_t\)를 통해 softmax probability \(y_t\)를 예측합니다.
차이점은 input sequence에 대한 alignment 방법에 있습니다.
alignment는 간단하게 하나의 decoder output에 대한 input sequence 각 position이 매칭되는 정도로 생각하시면 편할것 같습니다.
Global Attention
Global Attention은 input sequence의 모든 position을 고려하여 output을 예측합니다.
가변길이의 alignment vector \(a_t\)는 모든 position에 대한 중요도 정보를 담고 있습니다. 따라서 \(a_t\)의 길이는 항상 input sequence의 길이와 같습니다. 아래 식의 \(a_t(s)\) 는 decoder의 t번째 target과 input sequence의 s 번째 단어 사이의 alignment weight을 의미합니다.
alignment weight은 \(h_t\)와 \(\bar{h_s}\)사이 score의 softmax probability를 통해 계산되는데,
score는 아래 세가지 content based 방법과 한가지 location based 방법 중 하나로 계산할 수 있습니다.
마지막으로 계산한 alignment weight을 가중치로 하여 \(h_s\)를 가중합 하면 \(h_t\)의 context vector \(c_t\)를 얻을 수 있습니다.
본 논문에서 제안하는 방법은 Bahdanau Attention에 비해서 크게 두가지의 개선점이 있습니다.
첫번째로는 bi-directional RNN을 사용하지 않고, LSTM의 top layer의 hidden state만을 사용하여 복잡성을 덜어냈습니다. Attention을 학습하기 위해 신경망과 같은 부가적인 alignment model을 사용하지 않고 그대로의 hidden state를 활용했다는 점 또한Luong Attention의 simplicity에 힘을 더해줍니다.
두번째로는 Bahdanau Attention이 step \(t\)에서 이전 hidden state \(h_{t-1}\) 를 사용한 것과는 다르게, Luong Attention은 매 decoder step에서 \(h_t\)를 사용합니다.
Bahdanau Attention
$$h_{t-1} \rightarrow a_t \rightarrow c_t \rightarrow h_t$$
Luong Attention
$$h_t \rightarrow a_t \rightarrow c_t \rightarrow \hat{h_t}$$
이는 보다 generalize된 결과를 얻을 수 있게 합니다.
Local Attention
global attention은 모든 attention을 계산하기 때문에 상대적으로 계산량이 크고, 비 효율적일수 있습니다. 특히 문서와 문단같이 긴 Sequence에서 모든 position을 고려한다면 그 계산량은 매우 클 것입니다.
이를 개선하기 위해 Local Attention은 input sequence의 일부 position 만을 고려합니다.
time t에서 local attention이 고려하는 aligned position은 \(p_t\)로 표현됩니다.
local attention은 \(p_t\)를 기준으로 \([p_t-D,p_t+D]\)안에 있는 input sequence의 postion에 대하여 alignment score를 구하게 됩니다.
따라서 alignment vector 는 global attention과 다르게 \(\mathbb{R}^{2D+1}\)의 고정길이 벡터입니다.
\(p_t\)를 정하는 방법도 두가지가 존재합니다.
1.Monotonic alignment(local-m)는 input과 target이 monotonic하게 연관되어 있다는 가정하에 \(p_t=t\)로 지정합니다.
2.Predictive alignment(local-p)는 \(p_t\)를 학습할 수 있는 파라미터를 사용해 \(p_t\)를 예측합니다.
\(W_p\)와 \(v_p\)가 학습가능한 파라미터이며, S는 문장의 길이입니다.
따라서 sigmoid함수의 결과로 \(p_t \in [0,S]\)를 얻을 수 있습니다.
\(h_t\)와 \(\bar{h_s}\)사이의 alignment score를 구하는 방법은 동일하게 content based 혹은 location based 방법들이 사용될 수 있습니다.
하지만 local attention의 alignment weight \(a_t(s)\)를 구하는 과정에서는 한가지 과정이 추가됩니다.
input sequence \([p_t-D,p_t+D]\)의 position s와 가까운 position 일수록 gaussian distribution을 따르는 중요도가 발생한다는 재미있는 가정 하에, \(exp(-{(s-p_t)^2 \over 2{\sigma}^2})\)를 곱해 최종적인 alignment weight을 구하게 됩니다.
Input-feeding Approach
일반적인 machine translation model은 output sequence가 input sequence의 어느 단어를 번역한것인지 tracking을 하며 번역을 진행합니다.
하지만 Attention model은 이러한 tracking 없이 독립적인 attentional decision이 발생합니다.
따라서 저자들은 지금까지의 output이 input의 어느 부분에 집중하고 있는지를 모델에 학습시켜 주기 위한 방법으로 attention vector \(\hat{h_t}\)을 다음 decoder의 input에 추가하는 input-feeding Approach를 사용했습니다.
이러한 방법을 통하여 의도와 같이 이전 alignment를 기억하고, 수직,수평으로 동시에 학습하는 Attention model이 최종적으로 완성되었습니다.
4.results
실험은 English to German translation dataset인 WMT dataset이 사용되었습니다.
result 1.
첫번째 실험은 English-German, German-English translation 결과입니다.
비교지표로는 BLEU score가 사용되었습니다. BLEU score에 대한 설명은 아래 글을 참고 부탁드립니다.
Base model은 Bahdanau Attention model을 의미하는데,
reversed-order input, dropout, global attention을 함께 사용하였을 때 기존의 Attention 방법보다 좋은 성능을 보였습니다.
reversed-order input은 학습시에
\(a,b,c\) 각각에 대응하는 translation이 \(\alpha,\beta,\gamma\)일 때,
$$(a,b,c) \rightarrow (\alpha,\beta,\gamma)$$
$$(c,b,a) \rightarrow (\alpha,\beta,\gamma)$$
의 형태로 input의 순서를 뒤집는 것을 의미합니다.
더하여 input-feeding과 predict alignments, 앙상블 등을 적용하였을 때 non-attentional baseline에 비해 5.0 높은 BLEU score를 얻어 SOTA를 달성하였습니다.
German-English의 경우에는 phrase-based의 SOTA모델에 미치지 못했지만, 제안한 방법이 충분히 성능을 올린다는 것을 보여줬습니다.
result 2.
두번 째 실험은 input sequence 길이에 따른 성능 변화입니다. 역시 BLEU score가 사용 되었습니다.
Attentional method가 long sequence에서도 충분히 안정적인 성능을 보였음을 확인할 수 있습니다.
result 3.
제안된 방법론 조합에 따른 결과입니다.
local attention, predictive alignment, general score 조합이 가장 좋은 결과를 가져왔으며,
global attention의 경우 dot product score와 함께 사용하였을 때 효과가 좋았습니다.
result 4.
실제 alignment와 학습된 alignment를 비교하는 AER(alignment error rate)를 모델별로 비교한 결과입니다.
높은 AER이 양질의 translation을 의미하진 않지만, local attention이 global attention보다 좋은 결과를 보였습니다.
result 5.
실제 machine translation을 진행한 결과 샘플입니다.
마무리
본 논문은 간단하고 효율적인 Attention mechansim인 Global,Local Attention을 제안하였습니다.
또한 input-feeding Approach와 다양한 content based alignment function을 활용하여 Machine translation에서 SOTA를 달성하였습니다.
Luong attention은 현재 NLP에서 빠질 수 없는 구조로서 사용되고 있습니다. Luong Attention에 대해 공부해본 적은 여러번 있지만, 논문을 직접 읽으며 리뷰한 것은 처음입니다. 본 논문은 다양한 구조와 방법론을 제안하는 동시에 다각면 실험을 통해 검증을 진행하였습니다.
정말 잘 쓰여진 논문임이 느껴졌습니다. 실험 또한 이전에 읽었던 machine translation 논문에서 진행했던 대부분의 과정이 포함되어 있었습니다. 여러번 읽으며 배울 부분이 정말 많은 논문 같습니다.