📝 Sequence to Sequence Learning with Neural Networks
딥 뉴럴 네트워크(DNN)는 복잡한 학습 문제에서도 뛰어난 성능을 발휘하는 강력한 모델
DNN이 제대로 작동하려면 대량의 라벨링된 학습 데이터가 필요하고, 순차적인 데이터를 입력에서 출력으로 직접 변환하는 Sequence-to-Sequence 작업에는 적합하지 않음
이 논문에서 순차 학습(sequence learning)을 위한 일반적인 end-to-end 접근법을 제안하려 함
Seq2Seq 모델은 인코더(Encoder)와 디코더(Decoder) 두 부분으로 구성
인코더 (Encoder)
입력 시퀀스를 받아 하나의 고정된 컨텍스트 벡터(context vector)로 변환
입력: A, B, C, EOS (End of Sequence) (단어 또는 토큰)
마지막 토큰 EOS를 만나면, 모든 정보를 요약한 벡터를 디코더로 전달
디코더 (Decoder)
인코더의 최종 상태를 기반으로 새로운 시퀀스를 생성
시작 토큰 EOS를 입력받고 출력을 하나씩 생성
출력: W, X, Y, Z, EOS

(그림에 대한 설명)
입력 문장 "ABC"를 읽고 출력 문장 "WXYZ"를 생성함
EOS토큰을 출력한 후 생성을 중단함
입력 문장을 역순으로 읽음
가장 간단한 방법은 하나의 RNN을 사용하여 입력 시퀀스를 고정된 크기의 벡터로 변환한 후, 이를 다시 다른 RNN을 통해 목표 시퀀스로 매핑하는 것이다. 이론적으로는 가능하지만, 이 방식은 긴 시퀀스에 대한 장기 의존성(long-term dependencies) 문제로 인해 학습이 어렵다. 장기 의존성을 효과적으로 학습할 수 있는 LSTM 을 사용하면 이러한 문제를 해결할 수 있다.
LSTM은 먼저 입력 시퀀스를 하나의 고정 차원 벡터 𝑣로 변환한 후, 이를 기반으로 출력 시퀀스를 생성한다. 입력 시퀀스의 마지막 은닉 상태(hidden state)가 이 벡터 𝑣가 되며, 이후 LSTM이 이를 초기 상태로 하여 출력을 생성하는 방식이다.
실험 개요: LSTM 기반 신경망을 사용하여 WMT’14 영어-프랑스어 번역 작업을 수행했으며, 직접 번역과 SMT 재채점 방식으로 적용함.
모델 학습: 12M개의 문장 데이터셋을 사용하여 4층 LSTM을 학습했으며, 소스 문장을 거꾸로 배열하면 성능이 크게 향상됨(BLEU 점수 증가)
병렬 처리: 8개의 GPU를 활용하여 LSTM 계층과 소프트맥스를 분산 처리, 초당 6,300단어를 번역하며 10일간 학습 진행
실험 결과: LSTM이 SMT를 뛰어넘는 성능을 보였으며, 특히 긴 문장에서 좋은 성과를 냄. 신경망을 활용한 번역 시스템이 SMT를 넘어선 사례로 평가됨
신경망 언어 모델(NNLM)을 기계 번역(MT)에 적용하는 연구가 진행되어 왔으며, 초기에는 번역 후보 리스트(n-best list)를 재채점하는 방식이 효과적
이후 어텐션 메커니즘을 도입한 Bahdanau et al. 등의 연구가 긴 문장에서의 성능 저하 문제를 해결하며 직접 번역 성능을 향상시킴
일부 연구는 엔드투엔드 학습을 시도했으나, 직접 번역보다는 미리 계산된 문장 벡터 데이터베이스를 활용하는 방식이 필요함
대규모 심층 LSTM이 사실상 무제한 어휘를 갖는 표준 SMT 시스템을 대규모 번역 작업에서 능가함
소스 문장 단어 순서 뒤집기를 통해 단기 의존성을 높여 학습 난이도를 낮추고 성능을 개선함
LSTM은 예상과 달리 매우 긴 문장도 성공적으로 번역함
단순한 접근법으로도 SMT보다 나은 결과를 얻었으며, 더 높은 정확도를 달성할 가능성을 보여줌