[Paper Review] Sequence to Sequence Learning with Neural Networks | 2014, NIPS

이형준·2025년 1월 12일

Sutskever, I. "Sequence to Sequence Learning with Neural Networks." arXiv preprint arXiv:1409.3215 (2014).
https://jeremy-su1.github.io/images/2024-07-08-Seq2Seq-Learning/1409.3215v3.pdf


Abstract

DNN은 여러 작업에서 우수한 성능을 보이지만, 시퀀스를 시퀀스로 매핑하는(sequence-to-sequence) 작업에는 사용할 수 없었습니다. 이 논문에서는 시퀀스 학습을 위한 end-to-end 방식을 제안합니다. 이는 여러 레이어의 LSTM(Long Short-Term Memory) 을 사용하여 입력 시퀀스를 고정된 차원의 벡터로 매핑하고, 다른 심층 LSTM 레이어를 사용하여 해당 벡터로부터 목표 시퀀스를 인코딩합니다.

실험은 WMT'14 English-French 번역 작업에서 수행되었으며, LSTM은 BLEU score 34.8을 달성했습니다. 또한, SMT(Statistical Machine Translation) 는 동일한 데이터셋에서 BLEU score 33.3을 달성했는데, 여기서 LSTM을 사용해 SMT가 생성한 1,000개의 가설을 정렬했을 때 BLEU score는 36.5로 증가했습니다.


Ⅰ.Introduction

DNN은 음성 인식, 객체 인식 등 여러 어려운 문제에서 우수한 성능을 달성하는 머신러닝 모델입니다. 매우 유연하고 강력하지만, input과 output이 고정된 차원의 벡터로 인코딩 되어야합니다. 음성 인식, 기계 번역, 질문-답변과 같은 seq-to-seq 작업에서는 미리 길이를 알 수 없는 것이 가장 적합할 것입니다. 따라서 seq-to-seq 매핑에 대한 문제에 DNN을 적용하기에는 많은 한계가 있습니다.

Reprinted Figure.1

Figure.1은 모델이 입력 문장 "ABC"를 읽고 출력 문장 "WXYZ"를 생성하는 과정입니다. 모델은 문장의 끝(EOS) 토큰을 출력한 후에 예측을 멈춥니다. 여기서 중요한 점은 LSTM이 입력을 역순으로 읽어들인다는 점입니다. 이러한 점이 가까운 데이터에 더 많이 의존하게 하여 최적화 문제를 쉽게 만들어줍니다.

Figure.1에 나타난 LSTM 아키텍처의 응용은 시퀀스의 고정된 차원 문제를 해결해줍니다. LSTM의 주된 아이디어는 입력 시퀀스를 시간 순서대로 읽어들여 고정된 차원의 큰 벡터를 얻어 또 다른 LSTM에서 출력 시퀀스를 추출하는 것입니다. 두 번째 LSTM은 입력 시퀀스에 대해 작동하는 RNN과 동일합니다. LSTM은 긴 시간 의존성을 가지고 있는 데이터에 대해서도 잘 학습하는 능력을 가졌으며, 따라서 입력과 출력 간에 상당한 시간 차이가 있는 경우에 유용합니다.

LSTM은 WMT'14 English-French에서 5개의 Deep LSTM 앙상블을 사용해 BLEU 점수 34.81을 얻었습니다. 그리고 SMT 기반 1,000-best 목록을 LSTM으로 다시 점수를 메겨보면 BLEU score는 36.5가 됩니다. 이는 기본 BLEU 점수를 3.2점 향상시킨 것이며, 이전 SOTA인 37.0에 근접하는 결과입니다. 중요한 점은 LSTM은 다른 모델들과 달리 매우 긴 문장에서도 성능 저하를 겪지 않았습니다. 왜냐하면 LSTM은 가변 길이의 입력 문장을 고정된 차원의 벡터로 매핑하는 것을 학습하기 때문입니다. 또한, 원본 문장의 단어 순서를 역으로 배치하고, 타겟 문장을 그대로 두어 최적화 문제를 단순화하였습니다.


Ⅱ. The Model

먼저, RNN은 신경망이 시퀀스 데이터를 처리하도록 일반화된 모델입니다. 주어진 입력 시퀀스 (x_1, ..., x_t)에 대해 RNN은 다음과 같은 식을 반복하며 출력 시퀀스 (y_1, ... , y_t)를 생성합니다.

RNN은 input-output 간의 alignmnet를 미리 알고있다면 효율적이지만, 입력과 출력 시퀀스의 길이가 다르거나 복잡한 관계가 있다면 적용하기 어렵습니다.
따라서 시퀀스 학습에서 가장 간단한 전략은 하나의 RNN을 이용하여 입력 시퀀스를 고정된 크기의 벡터로 변환한 후, 이를 다른 RNN을 통해 타겟 시퀀스로 매핑하는 것입니다(2014, Cho et.al). 이러한 접근 방식은 이론적으로는 가능하나, 긴 시퀀스에서 발생하는 장기 의존성(long-term dependency)때문에 학습이 어려울수 있습니다.

LSTM은 이러한 장기 의존성을 해소한다는 점에서 강점을 가집니다. 기본적으로 LSTM의 목표는 조건부 확률을 추정하는 것입니다. 여기서 (x_1, ..., x_t)은 입력 시퀀스, (y_1, ... , y_t')는 출력 시퀀스에 해당하며 p(y_1, ..., y_t' | x_1, ..., x_t)는 입력 시퀀스에 대한 출력 시퀀스의 조건부 확률입니다.
이에 대한 계산은 1) 입력 시퀀스를 last hidden state를 활용해 고정된 크기의 벡터 v로 변환하고, 2) v를 다시 initial hidden state로 주어 출력 시퀀스의 확률을 계산하는 과정으로 이루어집니다. 각 p(y_t|v,y_1, ..., y_t-1)은 softmax를 활용하여 모든 단어에 대한 확률로써 표현됩니다. 모든 문장의 끝은 "EOS"라는 토큰으로 끝나야하며, 이를 통해 모든 길이의 시퀀스에 대한 확률 분포를 정의할 수 있습니다.

이는 이론적인 내용이며 실제 LSTM 모델과는 아래 3가지 차이점이 존재합니다.
1. 입력과 출력을 위해 서로 다른 LSTM을 사용합니다. 이는 계산 비용의 증가 없이 파라미터 수를 늘리고 여러 언어 쌍을 학습하기에 용이합니다.
2. 얕은(shallow) LSTM보다 더 좋은 성능을 보이는 깊은(deep) LSTM을 사용했습니다.
3. 입력 문장의 단어 순서를 거꾸로 뒤집어주는 것이 성능에 큰 향상을 가져왔습니다. 입력의 i 번째 단어와 출력의 i 번째 단어가 서로 가까워지며 SGD를 활용하기 쉽게 만들어줍니다.

Ⅲ. Experiments

1. Dataset details

연구자들은 WMT'14 English-French 데이터셋을 사용하였습니다. 훈련 데이터는 12M 개의 문장으로 구성된 데이터의 subset이며 French(348M), English(304M) 단어로 구성되어있습니다. 연구자들이 이 MT task와 특정 subset을 활용한 이유는, 토큰화된 train/test set과 함께 SMT의 1,000-best 리스트가 공개되어있기 때문입니다.
원본 언어로는 가장 빈도가 높은 160,000개의 단어를 사용했고, 타겟 언어로는 가장 빈도가 높은 80,000개의 단어를 사용하였습니다. 이때 어휘에 포함되지 않은 단어는 "UNK" 토큰으로 대체하였습니다.


2. Decoding and Rescoring

학습의 목표는 주어진 소스 시퀀스(=훈련 데이터) S에 대한 올바른 번역 T의 로그 확률을 최대화하는 것입니다.

학습이 종료되면, LSTM이 가장 가능성이 높은 번역 T hat을 찾습니다.

디코딩은 left-to-right beam search decoder를 사용합니다. 빔의 크기 B는 부분 가설(parial hypotheses)를 유지시키는데 영향을 줍니다. 디코더는 각 time step에서 빔의 내부의 모든 부분 가설을 어휘의 모든 단어로 확장하는데, 생성된 가설들 중에서 로그 확률을 기준으로 가장 상위의 B개의 가설만을 유지하게됩니다. 만약 "EOS" 심볼이 추가되면, 해당 가설이 빔에서 제거되고, 완성된 가설(completed hypotheses)에 추가됩니다.
빔의 크기는 1일 때도 성능이 좋았으며, 2일 때부터 대부분의 beam search의 이점을 확보할 수 있었습니다.

! 예를 들자면 I 다음에 올 단어 후보군 {am, use, want}가 있다면 이들 중 B개를 선정하여 유지하고, I am, I use 이후에 올 단어 집합을 만들어 EOS까지 반복적으로 확장해나가는 방식입니다.
! beam search란 최적의 번역 문장을 찾기위한 근사적 탐색 알고리즘입니다. 빔의 크기 B는 유지할 수 있는 후보의 개수를 의미하며, 부분 가설(partial hypotheses)는 번역이 완료되지 않은 상태(즉, EOS 토큰을 포함하지 않은 상태)에서 번역 문장의 접두사(prefix)만을 포함하는 중간 결과입니다.

3. Reversing the Source Sentences

소스 문장을 뒤집는 경우, LSTM의 성능이 눈에 띄게 향상되었습니다. 소스 문장을 뒤집고, 타겟 문장을 그대로 둔 경우 Perplexity는 5.8에서 3.7로 감소하였고, BLEU는 25.9에서 30.6으로 크게 증가하였습니다.
이러한 현상에 대한 명확한 해석은 없지만, 데이터셋에 많은 단기 의존성(short-term dependency)가 제공되었기 때문으로 보입니다. 일반적으로, 소스 문장의 각 단어는 타겟 문장의 해당 단어와 멀리 떨어져있습니다. 하지만 소스 문장의 순서를 뒤집으면 평균 거리는 그대로지만 소스 언어의 처음 몇 개의 단어와 타겟 언어의 처음 몇 단어가 매우 가까워집니다. 이에따라 최소 시간 지연(minimal time lag)가 크게 감소하였습니다.
이에 대해 연구자들은 소스 문장을 뒤집는 행동이 초반부의 신뢰도를 높이고, 후반부의 신뢰도를 낮출 것이라 예상했지만 실제로는 긴 문장에서도 소스 문장을 뒤집는 것이 더 우수한 성능을 보였습니다. 이는 LSTM의 메모리 활용 능력이 향상됨을 시사하기도 합니다.


4. Training Details

항목세부 내용
모델 구성4개 layer, layer당 1000 cell, 1000 dimension 워드 임베딩
어휘 크기input = 160,000 단어; output = 80,000 단어
파라미터 개수384M (RNN 64M; Encoder 32M, Decoder 32M)
초기화파라미터는 -0.08 ~ 0.08 사이의 균일 분포로 초기화
최적화 알고리즘모멘텀 없는 SGD; learning rate = 0.7, 5 에포크 이후 매 0.5 에포크마다 절반으로 감소
학습 에포크총 7.5 epoch
배치 크기128개의 시퀀스; gradient를 128로 나눔
그래디언트 클리핑exploding gradient 문제를 해결하기 위해 L2 norm에 대해 하드한 제한을 걸었다. s=L2(g)가 5를 넘는다면, g를 5g/s로 스케일링해주었음.
문장 길이 처리비슷한 길이의 문장을 한 배치로 그룹화 (2배의 속도 향상)

5. Parallelization

병렬화 항목세부 내용
단일 GPU 속도초당 약 1,700 단어
다중 GPU 구성8개의 GPU: 4개는 LSTM 레이어, 4개는 softmax 병렬화에 사용
병렬화 결과 속도초당 약 6,300 단어 (영어 및 프랑스어 포함), 배치 크기 128
학습 시간약 10일 소요

6. Experiment Results

Reprinted Table.1

Reprinted Table.2

가장 좋은 결과는 무작위로 초기화된 여러 개의 LSTM을 앙상블하여 얻은 결과입니다. LSTM의 앙상블은 WMT'14의 SOTA모델의 성능을 초과하지는 않았지만, 순수한 신경망 기반 모델이 구문 기반 SMT의 baseline을 넘어선 첫 번째 사례입니다. SMT 1,000-best 목록에서 LSTM을 재평가하면, SOTA 모델과 불과 0.5 BLEU score 차이만을 냅니다.


7. Performance on long sentences

Reprinted Table.3

LSTM은 긴 문장에서도 잘 작동합니다. Table.3은 그 예시들로써, LSTM의 번역과 구글 번역의 비교입니다.

Reprinted Figure.3

Figure.3은 LSTM의 성능을 두 가지 기준에 따라 시각화한 그래프입니다. 좌측의 그래프는 테스트 문장의 길이에 따른 성능의 비교인데, 문장이 35단어 이하인 경우 성능 저하가 없으며, 가장 긴 문장에서만 약간의 성능 저하가 나타났습니다. 우측의 그래프는 문장에서 사용된 단어의 빈도 수에 따른 LSTM의 성능입니다.
두 그래프에서 LSTM은 기존 baseline 모델의 33.3보다 더 높은 34.8 BLEU score를 기록했습니다.


8. Model Analysis

Reprinted Figure.2
LSTM의 매력적인 특성 중 하나는 단어 순서에 민감하게 반응한다는 점입니다. Figure.2는 학습된 표현들을 PCA를 이용해 2차원에 시각화한 결과이며, 단어 순서(능동태를 수동태로 변환하는 것)에 따라 클러스터링되는 것을 보여줍니다. 이는 bag-of-words 모델에서는 포착하기 어려운 특성입니다.


Ⅳ. Related Work

신경망을 MT 작업에 적용한 연구는 매우 많습니다. RNNLM(2010, T. Mikolov et al.), NNLM(2003, D. Bahdanau, K. Cho, and Y. Bengio.)을 MT작업에 적용하는 가장 간단하고 효과적인 방법은 MT 기본 모델의 n-best 목록을 이용해 rescoring하는 것입니다.

최근 연구자들은 입력 주제 모델과 NNLM을 결합하거나(2013, Auli et al.), MT 시스템의 디코더에 통합 및 정렬하여 유용한 단어를 NNLM에 제공하는 방법(2014, Devlin et al.)을 제안했습니다.

이 연구와 가장 유사한 연구인 (2013, Kalchbrenner, Blunsom)는 입력 문장을 벡터로 매핑하고, 다시 문장으로 되돌리는 방법을 제시하였지만, 이들은 CNN을 사용했습니다.

(2014, Cho et al.)은 LSTM과 유사한 RNN 아키텍처를 사용하였지만, 주요 초점은 신경망을 SMT에 통합하는 것이였습니다.

(2014, Bahdanau et al.)은 Cho et al.이 겪은 긴 문장에 대한 성능 저하를 attention 메커니즘을 사용해 극복했습니다. (2014, Pouget-Abadie et al.) 또한 기억 문제를 해결하려고 하며 소스 문장의 일부를 번역시켜 원활한 번역을 얻으려 시도했습니다.

(2014, Hermann et al.)의 주요 초점은 End-to-end 학습이였습니다. 모델의 입력과 출력을 FNN로 표현하고, 공간 내의 유사한 지점으로 매핑하였지만 이러한 접근법으로는 직접적인 번역을 생성할 수 없었습니다.

Ⅴ. Conclusion

이 연구는 제한된 어휘를 가진 대형 LSTM이 문제에 대한 어떠한 가정 없이도 어휘가 무제한인 SMT 기반 시스템의 baseline 성능을 능가할 수 있음을 보였습니다. MT에서 간단한 LSTM 기반 접근법이 성공을 거두었다는 것은, 충분한 훈련 데이터가 있다면 다른 문제에서도 잘 동작할 수 있음을 시사합니다.

소스 문장의 단어를 반전시켜 얻어낸 결과를 통해 인코딩에서 최대한 많은 short-term dependency들을 찾는 것이 중요하다는 결론을 내렸습니다. 이는 학습을 훨씬 간단하게 만들어줍니다.

또한, LSTM은 매우 긴 문장도 올바르게 번역합니다. 연구자들은 처음에 LSTM이 제한된 기억 용량으로 인해 실패할 것이라 생각했으며 다른 연구자들 또한 LSTM과 유사한 모델에서 긴 문장에 대해 성능이 좋지 않다고 보고한 바 있습니다. 하지만, 반전된 데이터셋에서 LSTM은 긴 문장을 어려움 없이 번역했습니다.

가장 중요한 점은 간단하고, 직관적이며, 최적화되지 않은 접근법이 SMT 시스템을 능가할 수 있음을 입증한 것입니다. 따라서 향후 작업은 MT에서 더 높은 성능을 이끌어낼 가능성이 큽니다.

0개의 댓글