키워드
1. RNN을 사용한 인코더-디코더 구조를 통해 입력 시퀀스를 출력 시퀀스로 변환하는 방법 제안. 주로 기계 번역에 사용.
2. "Sequence to Sequence Learning with Neural Networks"
3. Seq2Seq, RNN, LSTM, Encoder-Decoder
Seq2Seq
Deep Neural Network는 레이블이 지정된 훈련 세트를 사용할 수 있으며, 출력이 입력에 대해 고정된 차원의 벡터로 인코딩 가능할 때 뛰어난 성능을 보인다. 이에 길이를 알 수 없는 시퀀스를 다루는 문제에서는 좋은 성능을 보이지 못한다. 예를 들어 음성 인식, 기계 번역 등의 순차적인 문제를 들 수 있으며, Question & Answering은 질문을 나타내는 일련의 단어를 답변을 나타내는 일련의 단어에 매핑해야 한다. 그리고 기계 번역은 번역이 원본 문장을 의역하는 경향이 있다는 점을 감안할 때, 의미를 포착하는 문장 표현을 찾도록 학습해야한다. 이는 비슷한 의미를 가진 문장은 서로 의미적 거리가 가깝고 다른 의미를 가진 문장은 멀기 때문이다.
이러한 시퀀스 학습을 위해 Seq2Seq이라는 LSTM(Long Short-Term Memory) 아키텍처를 활용한 엔드투엔드 접근 방식이 고안되었다. LSTM의 유용한 속성은 가변 길이의 입력 문장을 고정 차원 벡터 표현으로 매핑하는 방법을 학습한다는 것이다. 이러한 속성을 활용하여 encoder-decoder 형식으로 2개의 LSTM을 사용한다. Encoder LSTM은 한 단계씩 입력 시퀀스를 읽고 고정 차원 벡터 표현을 얻은 다음, decoder LSTM은 해당 벡터에서 출력 시퀀스를 추출한다. 두 번째 decoder LSTM은 일종의 RNN Language Model이며, 입력 시퀀스에 따라 조건이 지정된다.
LSTM은 long term dependence를 성공적으로 학습할 수 있다. 이에 encoder에 사용되는 입력과, decoder로 계산되는 출력간 time lag를 효과적으로 해결할 수 있다. 그리고 모든 소스 문장(입력)에서 단어 순서를 바꾸는 것으로 LSTM의 성능을 향상시켰다. 이는 소스와 타겟 문장 사이에 많은 short term dependence가 학습되어 최적화 문제가 더 쉬워지기 때문이다. 이를 통해 매우 긴 문장의 번역에도 어려움을 겪지 않았다.
Model
일반적인 RNN의 경우 위 방정식을 반복하여 출력 시퀀스(𝑦1,…,𝑦𝑇)를 계산한다. 이러한 구조는 입력과 출력이 사이의 DNN과 같이 align이 잘 맞춰져 있을때 시퀀스를 시퀀스에 쉽게 매핑할 수 있다. 만약 입출력간 길이가 다르거나, 복잡하고 단조롭지 않은 관계가 있는 문제에 RNN을 활용하는 방법은 명확하지 않다.
이러한 문제에 활용 할 수 있는 한 방법이 encoder-decoder 구조이다. RNN을 사용하여 입력 시퀀스를 고정된 크기의 벡터에 매핑한 다음 다른 RNN을 사용하여 벡터를 대상 시퀀스에 매핑하는 것이다. 이를 통해 모든 관련 정보가 제공되므로 원칙적으로 작동할 수 있지만, 결과적으로 long term dependence로 인해 한계가 존재한다. 이를 해결한 아키텍처가 LSTM이며, 이를 통해 좋은 성능을 얻을 수 있다.
여기서 각 LSTM은 가중치를 공유하지 않는 개별 LSTM이다. 이를 통해 파라미터를 증가시켜 capacity를 증가 시킬 수 있으며, 여러 언어 쌍에서 LSTM을 훈련할 수 있다. 또한 LSTM이 깊을수록 성능이 개선되어 4개 레이어으로 구성된 LSTM을 활용하였다.
LSTM을 통한 목표는 조건부 확률 𝑝(𝑦1,…,𝑦𝑇′|𝑥1,…,𝑥𝑇)을 추정하는 것이다. 여기서 (𝑥1,…,𝑥𝑇)은 입력 시퀀스이고 𝑦1,…,𝑦𝑇′은 해당 출력이며, 각각 길이가 𝑇′와 𝑇로 서로 다른 길이를 가질 수 있다. y의 모든 출력은 각각 모든 단어에 대한 softmax로 표현된다. 이를 표현한 수식이 위와 같다. 입력에 대해 각 문장은 문장 끝을 의미하는 기호 "<EOS>"로 끝나야 하며, 이를 통해 모델은 가능한 모든 길이의 시퀀스에 대한 분포를 정의할 수 있다.
Training
Reversing
입력 문장의 단어 순서를 바꾸는 것이 성능 향상에 기여한다. 예를 들어 𝑎,𝑏,𝑐가 소스 𝛼,𝛽,𝛾가 타겟일 경우, 𝑐,𝑏,𝑎를 𝛼,𝛽,𝛾의 학습에 제공하는 것이다. 이를 통해 BLEU 점수가 25.9에서 30.6으로 증가했다. 개선의 이유는 데이터셋에 많은 short term dependence가 도입되어 발생했다고 예상된다.
일반적으로 원본 문장을 타겟 문장과 연결할 때, 원본 문장의 각 단어는 매칭되는 타겟 단어와 멀리 떨어져있다. 여기에 원본 문장의 단어를 반전시킨다고 해서, 단어 사이의 평균 거리는 변하지 않는다. 하지만 원본 문장의 처음 몇 단어는 연결되는 단어와 거리가 가까워져 시간 지연이 크게 줄어든다. 이는 역전파 중 원본 문장과 타겟 문장 사이의 "통신 설정(establish communication)"을 더 쉽게 하여 결과적으로 전반적인 성능이 크게 향상시키며, 메모리 활용도가 더 높은 LSTM을 생성할 수 있다.
학습 방법
주어진 원본 문장 𝑆에서 올바른 번역 𝑇의 log-probability를 최대화하는 방향으로 학습을 한다. 이후 학습이 완료되면 LSTM에 따라 가장 가능성 있는 번역을 생성한다. 이 과정에서 left-to-right beam search 디코더를 사용하면 가장 가능성이 높은 번역을 검색할 수 있다. 빔 크기 1에서도 잘 작동하며 빔 크기 2에서도 빔서치의 장점을 활용할 수 있다.
또한 데이터셋에 있는 문장은 길이가 다양하다. 대부분의 문장은 짧지만 일부 긴 문장이 포함되어 있으며, 무작위로 선택된 128개의 훈련 문장 중 긴 문장이 포함되면 배치의 계산 중 일부가 낭비된다. 이 문제를 해결하기 위해 미니배치의 모든 문장이 대략적으로 비슷하게 구성하였다.
결과
BLEU 점수를 통해 번역의 품질을 평가했다. 서로 다른 LSTM 앙상블을 사용하여 최상의 결과를 얻을 수 있다. 비록 SOTA보다 성능이 뛰어나지 않지만, phrase-based SMT baseline보다 뛰어난 성능을 최초로 달성한 neural network 기반 번역 시스템이다. 이를 통해 Deep LSTM이 대규모 기계 번역 작업에서 SMT 기반 시스템보다 성능이 뛰어날 수 있는 가능성을 보여주었으며, 충분한 학습 데이터가 있다면 다른 많은 시퀀스 학습 문제에서도 잘 작동할 것임을 시사한다.
또한 긴 문장에서도 좋은 성능을 발휘한다. 가운데 차트는 문장 길이에 따른 시스템 성능이다. 긴 문장에서도 좋은 성능을 보인다는 것을 정량적으로 비교해 볼 수 있다. 오른쪽 차트는 점점 더 희귀한 단어가 포함된 문장에 대한 LSTM의 성능으로 이 또한 좋은 성능을 보인다.
Seq2Seq의 특징 중 하나는 일련의 단어를 고정된 차원의 벡터로 변환하는 능력이다. 위는 표현 중 일부를 시각화한 것이다. 표현이 단어의 순서에는 민감한 반면, 능동태를 수동태로 바꾸는 데는 상당히 둔감하다는 것을 알 수 있다.
Reference
논문 링크 : https://arxiv.org/abs/1409.3215
'딥러닝 > RNN, LLM' 카테고리의 다른 글
[RNN] Pointer Networks (0) | 2024.11.15 |
---|---|
[RNN] Attention Mechanism (2) | 2024.11.14 |
[RNN] GRU (1) | 2024.11.12 |
[RNN] LSTM (2) | 2024.11.11 |
[RNN] RNN 발전 과정 (0) | 2024.11.10 |