논문 리뷰/Natural Language Processing

[논문 리뷰] NEURAL MACHINE TRANSLATIONBY JOINTLY LEARNING TO ALIGN AND TRANSLATE(Attention)

dhkang0428 2024. 7. 23. 10:51

 논문 링크: https://arxiv.org/pdf/1409.0473.pdf

 

2014년에 발표된 논문 "Neural Machine Translation by Jointly Learning to Align and Translate"는 기계 번역 분야에서 어텐션 메커니즘을 처음으로 제안한 논문입니다. 이 논문은 기존의 기계 번역 방법인 인코더-디코더 구조를 개선하기 위해 어텐션 메커니즘을 도입한 것으로 큰 관심을 받았습니다.

어텐션 메커니즘은 자연어 처리 분야에서의 기계 학습의 주요 기법 중 하나로 자리잡았으며, 이후 다양한 변형과 응용이 연구되었습니다.

Background

Neural Machine Translation

기존의 통계적 기계 번역과는 달리 신경망 기계 번역은 단일 대형 신경망을 구축하고 훈련시키는 목표를 가지고 있으며, 대부분 인코더-디코더 모델입니다. 인코더-디코더 모델에서 인코더는 입력 문장을 읽고 고정 길이 벡터로 인코딩하고, 디코더는 인코딩된 벡터로부터 번역을 출력하며, 인코더-디코더의 학습은 공동으로 진행됩니다.

기존 인코더-디코더 모델의 예시인 seq2seq

기존 인코더-디코더 모델의 예시인 seq2seq 모델은 모든 입력 문장 정보를 고정 길이 벡터로 압축해야 하는 문제점이 있습니다. 이는 특히 학습 코퍼스의 문장보다 긴 문장을 처리하는 데 어려움을 겪게 만듭니다.

Proposed Model

이러한 문제점을 해결하기 위해 본 논문에서는 인코더-디코더 모델에 정렬과 번역을 동시에 학습하는 모델을 제안합니다. 제안된 모델은 입력 문장에서 번역시 가장 관련성이 높은 정보가 집중된 위치를 검색합니다. 그 다음 이 위치와 이전에 생성된 모든 타겟 단어와 관련된 문맥 벡터를 기반으로 새로운 목표 단어를 예측합니다. 제안된 모델은 입력 문장을 여러 개의 벡터로 인코딩하며, 디코딩하는 과정에서 필요한 벡터들을 선택적으로 사용하는 방식을 사용하므로, 고정 길이 벡터 압축을 하지 않아도 되며, 모델이 더 긴 문장을 잘 처리할 수 있게 합니다. 또한 제안된 모델은 기존의 인코더-디코더 모델에 비해 긴 문장뿐만 아니라 어떤 길이의 문장에서도 더 좋은 번역 성능을 보입니다.

Learning to Align and Translate

확률적 관점에서 번역이란 입력 문장 x가 주어질 때, 타겟 문장 y의 조건부 확률인 p(y|x)를 최대화하는 y를 찾는 것입니다. 신경망 기계 번역에서의 번역은 병렬의 학습 코퍼스를 사용하여 입력 문장-타겟 단어의 조건부 확률을 최대화하는 파라미터를 찾는 것입니다. RNN을 기반으로 한 신경망 기계 번역은 이미 영어-프랑스어 번역 등에서 기존의 통계적 번역에 비해 좋은 결과를 보이고 있습니다.

(1) RNN ENCODER–DECODER

본 논문의 내용을 이해하기 위해서는 RNN기반 인코더-디코더(seq2seq)에 대한 사전 지식이 필요합니다.
RNN 인코더-디코더 프레임워크에서 인코더는 입력 문장(=벡터들의 시퀀스) x = (x1, · · · , xTx)를 
다음 공식과 같이 RNN을 사용하여 하나의 벡터 c로 읽어들입니다. 

 

여기서 ht는 시간 t에서의 hidden state를 나타내고, c는 hidden state들의 시퀀스에서 생상된 문맥 벡터이며, 
f와 q는 임의의 비선형 함수입니다.

디코더는 문맥 벡터 c와 이전 시간에 예측된 모든 단어들 {y1, · · · , yt−1}을 기반으로 다음에 올 단어 yt를 예측하도록 학습됩니다.
즉, 디코더는 결합 확률을 순서화된 조건부 확률로 분해하여 다음과 같이 y에 대한 확률로 정의합니다.

RNN 사용 시, 각 조건부 확률은 다음과 같이 모델링됩니다.



LEARNING TO ALIGN AND TRANSLATEEXPERIMENT SETTINGS 

본 논문에서는 인코더로 양방향 RNN을 사용하고,
인코딩 벡터를 디코딩하는 중에 입력 문장의 정보를 검색하는 디코더로 구성된 아키텍처를 제안합니다.

(1) DECODER: GENERAL DESCRIPTION(2) ENCODER: BIDIRECTIONAL RNN FOR ANNOTATING SEQUENCES

위 그림은 제안된 모델에 입력 문장(x1, x2, . . . , xT)이 주어졌을 때, 타겟 단어 yt를 생성하는 모습입니다.
제안된 모델에서는 입력 문장-타겟 단어의 조건부 확률을 다음과 같이 정의합니다.

여기서 si는 시간 i에서 디코더의 RNN hidden state로, 다음과 같이 계산됩니다.

기존 RNN 기반 인코더-디코더와는 달리 제안된 모델의 조건부 확률의 계산에는 문맥 벡터 ci가 포함됩니다. 
여기서 ci를 어텐션 값이라고 부릅니다.
문맥 벡터 ci는 다음과 같이 인코더의 RNN hidden state hi의 가중합으로 계산됩니다.

또한 위 식에서 가중치 αij는 어텐션 가중치라고 부르며 다음과 같이 계산됩니다.

가중치 αij는 다켓 단어 yi가 입력 단어 xj와 정렬되거나 번역되는 확률입니다.
위 식에서 eij = a(si−1, hj)는 정렬 모델로, 위치 j 주변의 입력과 위치 i의 출력이 얼마나 잘 일치하는지를 나타냅니다.
여기서 정렬이란, 입력 문장의 각 단어에 대해 타겟 문장의 각 단어가 어떤 정도로 중요하게 연관되는지를 나타냅니다.
eij를 어텐션 스코어라고 부릅니다.
여기서 어텐션 스코어는 손실 함수의 기울기를 역전파, 즉, 학습시킬 수 있습니다.
αij 또는 eij는 디코더의 이전 hidden state si-1에 대해 인코더의 hidden state hj의 중요성에 대한 정보를 반영합니다.
이렇게 다음 state인 si를 결정하고, 타겟 단어 yi를 생성하는데 어텐션 값, 
즉, 문맥 벡터를 활용하는 어텐션 메커니즘이 구현됩니다.
이를 통해 인코더에서 모든 정보를 고정 길이 벡터로 인코딩해야하는 기존 신경망 기계 번역의 문제점을 해결할 수 있습니다.

(2) ENCODER: BIDIRECTIONAL RNN FOR ANNOTATING SEQUENCES

 

좌측은 기본적인 RNN으로 입력 시퀀스 x를 첫 번째인 x1부터 마지막인 xt까지 순서대로 읽습니다.
그러나 제안된 모델에서는 각 단어의 hidden state가 이전 단어뿐만 아니라 다음 단어까지 요약할 수 있게 하기 위해
양방향 RNN을 사용했습니다.
우측은 양방향 RNN으로 순방향과 역방향 RNN으로 구성됩니다.
순방향 RNN은 입력 시퀀스를 x1, x2, · · · ,  xt의 순서로 읽고 순방향 hidden state ->h를 ->h1, ->h2, · · ·,  ->ht의 순서로 계산합니다.
반대로 역방향 RNN은 시퀀스를 xt, xt-1, · · · , x1의 순서로 읽고 역방향 hidden state  <--h1, -<-h2, · · ·,  <--ht를 얻습니다.
이후 각 입력 단어 xj에 대해 hj와 -hj를 연결하여 hj를 얻습니다. 
이렇게 계산한 hidden state hj에는 이전 단어들과 다음 단어들의 정보가 포함되어 어텐션 값, 즉, 문맥 벡터 cj를 계산하는 데 사용됩니다.

Experiment Settings

본 논문에서는 인코더로 양방향 RNN을 사용하고, 인코딩 벡터를 디코딩하는 중에 입력 문장의 정보를 검색하는 디코더로 구성된 아키텍처를 제안합니다. 이 모델의 인코더는 1000개의 hidden unit을 가진 순방향, 역방향 RNN이고, 디코더는 1000개의 hidden unit을 가지고 있습니다. 각 모델은 80개의 문장으로 구성된 미니배치를 사용한 SGD 알고리즘과 Adadelta를 함께 사용하여 학습을 진행합니다. 학습이 완료되면 빔 서치를 사용해 입력 문장-타겟 문장의 조건부 확률을 최대화하는 번역을 찾습니다.

 

RESULTS

(1) QUANTITATIVE RESULTS

위 표는 테스트 세트에서 계산된 학습된 모델의 bleu 점수입니다.
표에서 확인할 수 있듯이, 모든 경우에서 RNNserch가 RNN 인코더-디코더에 비해 우수한 성능을 보입니다.

위 그림은 테스트 세트에서 생성된 번역의 문장 길이에 따른 BLEU 점수입니다. 
문장 길이가 증가함에 따라 RNN 인코더-디코더의 성능이 급격히 감소되는 것을 확인할 수 있습니다.
이에 반해, RNNserch는 문장 길이에 관계없이 좋은 성능을 보입니다.

(2) QUALITATIVE ANALYSIS 

 

위 그림은 식 (6)의 어텐션 가중치를 시각화한 모습입니다. 
이를 통해 입력 문장의 어떤 부분이 번역 문장을 생성하는데 중요하게 고려되었는지를 확인할 수 있습니다
위 그림을 확인하면 영어와 프랑스어 단어 간의 정렬이 대부분 단조롭다는 것과, 몇 가지 복잡하고 단조롭지 않은 정렬을
관찰할 수 있습니다.

Conclusion

본 논문은 기존 인코더-디코더 모델의 한계를 극복하기 위해 어텐션 메커니즘을 도입하여 큰 주목을 받았습니다. 논문의 주요 기여는 Attention Mechanism, Flexible Encoding, 번역 성능 향상입니다. 본 논문은 딥러닝과 자연어 처리 분야에 큰 기여를 하였으며, 이후 많은 연구자들에게 영감을 주어 응용이 연구되었다고 합니다. 논문을 읽기 전에 어텐션 메커니즘에 대해 학습했을 때는 어텐션 값, 어텐션 스코어, 어텐션 가중치 등의 용어가 자주 등장했는데 논문에서는 해당 단어들에 대해 직접적인 언급이 없어 논문 리딩 시에 주의하셔야 할 것 같습니다.