본문 바로가기
논문/review

Sequence to Sequence Learning with Neural Networks

by ornni 2024. 8. 28.
728x90
반응형


목차
0. Abstract
1. Introduction
2. The Model
3. Experiments
3.1 Dataset details
3.2 Decoding and Rescoring
3.3 Reversing the Souce Sentence
3.4 Training details
3.5 Parallelization
3.6 Experimental Results
3.7 Performance on long sentences
3.8 Model Analysis
4. Related work
5. Conclusion
6. Acknowledgments


0. Abstract


큰 labeled training sets → DNN 효과 좋음
sequence to sequence mapping → DNN 효과가 좋지 않음

sequence 학습에 general end-to-end appraoch + sequence 구조에서 최소 가정
→ multi-layered long short term memory(LSTM) 
1. input sequence를 vector에 map 하여 차원 고정
2. 다른 deep LSTM → vector를 target sequence로 decode



LSTM은 다른 단어와 분별있는 문장, 절 학습
→ 순서를 거꾸로 해서 성능 향상 (단기 기억력이 좋아짐)
→ optimize 쉬움



WMT’ 14 데이터셋: 영어 → 프랑스어
번역 LSTM BLEU : 34.8 (사전 외 단어 가능, 긴 문장 가능)
phrase 기반 SMT BLEU : 33.3

타 데이터셋 
SMT에 의해 생성된 1000 가설을 SLTM BLEU : 36.5


1. Introduction

 

DNN이 더 좋지만, DNN은 input/target이 합리적으로 고정된 차원의 vector로 인코드 되어야 함
(한계! → 대부분 중요한 문제는 길이를 모르는 sequence로 구성)
→ domain independent method + map sequence to sequence이 좋을 듯

sequence가 DNN에게 어려움을 제기 → input / outpu에게 고정된 차원을 요구하므로
간단한 적용 : LSTM → 기존 sequence to sequence의 문제 해결

LSTM1 : input sequence 읽기 (one timestep at a time)
→ 큰 고정차원의 vector 얻음

LSTM2 : vecto에서 output sequence 추출

LSTM
→ recurrent neural network language으로 input sequence에 따라 조건이 지정된 것은 제외
장기기억 → input과 대응하는 output 사이 시간상의 차이에 자연스런 선택 가능


주요 결과
WMT’ 14 영어 → 프랑스어
BLEU 34.81 → larger neural network에서 직접 변역의 최고 결과
384M parameter, 8000차원 state each
5 deep LSTM 앙상블로 바로 번역 추출, 80k words 이용 (없는 경우 패널티)
simple left-to-right beamsearch decoder

(구문 기반) SMT baseline BLEU 33.30

SMT baseline에서 1000-best list → LSTM BLEU 36.5

 

LSTM은 긴 문장을 어려워하지 않음
이유: training, test set의 단어의 순서를 반대로 함 (target 문장 말고)
→ 단기 의존성↑, optimize 문제 단순화

LSTM은 다양한 길이의 input sentence의 변수 길이를 고정 차원 벡터로 map 하도록 학습

source sentence → (phraphrase, LSTM) → 번역
문장의 의미를 알도록 → 비슷한 의미 가까이, 다른 의미 멀리


2. The Model

 

RNN : sequence의 feedforward neural network의 일반화

input과 output의 정렬이 미리 알려지면 sequence to sequence map이 쉬웁
but, input과 output sequence가 복잡, 비 단조적 관계, 다른 길이를 가진 경우 → 문제 적용? how?

일반적 sequence learning의 가장 간단한 방법
input sequence → (1개의 RNN 이용하여 map) → fixed-sized vector → (다른 RNN 이용하여 map) → target sequence

이때, RNN에 적당한 정보 부여 필요
but 장기기억의전의 어려움 → LSTM 이용!

LSTM의 목표 : 조건부확률 예측

 

Graves[10]LSTM 공식 이용 → 각 문장 끝에는 특별한 end-to-end symbo<EOS>

(모델이 다양한 길이의 sequence에 대한 분포를 정의하기 위해)

 

LSTMA B C <EOS> 표현 계산 → W X Y Z <EOS> 의 확률 계산 위해 사용

 

논문 모델의 3가지 주요 차이점

1. 2개의 LSTM 이용
- 1개 input sequence에서 사용
- 1개 output sequence에서 사용
무시해도 될 정도의 parameter 증가, LSTM이 다양한 언어쌍 동시에 학습 가능

2. shallow LSTM보다 deep LSTM의 결과가 더 좋음
LSTM 4 layers 이용

3. input sequence의 단어 순서 reverse


3. Experiments

 

WMT’ 14 English to French 2가지 방법으로 적용

참고) SMT system 없이 input sentence 바로 번역 + SMT 기준 n-best 목록 재채점
번역 방법 정확도, 샘플 번역 설명, 문장 결과 시각화


3.1 Dataset details


WMT’ 14 English to French Dataset

12M 부분집합으로 model 학습
348M French word
304M English word
이유: 데이터셋이 SMT 기준 best 1000 항목에 올라와 있는 토큰화된 train, test 공용 데이터셋이므로

전형적 neural language 모델은 각 단어에 대해 representation vector에 의존
→ 양측 언어에 대해 고정적 단어를 사용

source 언어에서 자주 쓰이는 160,000 단어 / target 언어에서 자주 쓰이는 80,000 단어 사용
단어록 외 언어는 ‘UNK (unknown)’ token으로 치환


3.2 Decoding and Rescoring

 

주요 실험: 많은 문장쌍에 larget deep LSTM 학습
→ source sentence S에서, 올바른 번역 T를 할 log probability의 최대값을 구하는 방법으로 학습

 

simple left-to-right beam search decoder를 이용하여 가장 가능성 높은 번역을 찾음
일부 번역이 부분 번역의 접두사일 때, 작은 수 B개의 부분 추측을 유지

각 시간 단계에서 beam안의 각 부분 가설을 단어록 안 가능한 모든 단어로 확장
→ 추축의 수가 늘어남 → model의 log 가능성에 의해 가장 적합한 추측 B개를 제외하고 모두 제거
추측 결과 <EOS>가 나오면, beam에서 제거, 완전 추측 집합에 추가

이 decoder는 간단함
beam size = 1, 2에서도 잘 작동함
기준 system에 의해 생성된, 1000-best 목록 생성을 재채점하기 위해 LSTM 사용
→ LSTM으로 매 추측에 log 가능성 계산
→ 원래 점수와 LSTM 점수의 평균 이용


3.3 Reversing the Souce Sentence

 

LSTM이 장기기억의존에 좋지만 → source sentence가 reverse 되었을 때 학습을 더 잘함
test pereplexity 5.8 → 4.7
decode translation에서 test BLEU 25.9 → 30.6

완전한 설명은 아니지만, dataset에많은 단기기억의존을 도입하여 일어남
source sentence와 target sentence concat시, source sentence의 각 단어들이 대응하는 target sentence와 멂
→ 큰 ‘minimal time lag’ 문제

단어들을 reverse 함으로써,
→ source sentence, corresponding target sentence 단어 사이 평균 거리 동일
but, source sentence의 처음 몇 단어가 target sentence 처음 몇 단어와 아주 가까워 ‘minimal time lag’ 문제 감소
→ backpropagation 시 souce sentence와 target sentence 사이 연결 고리 더 쉬움 + 전체 성능↑


3.4 Training details

 

LSTM 학습이 쉬움
deepLSTM 4 layers
각 layer = 1000 cell

1000차원 word embedding
input 단어 160,000
output 단어 80,000

문장을 나타내기 위해 deepLSTM은 8000 실제 수 이용
deepLSTM이 shallowLSTM보다 결과가 좋음 (hidden state가 더 커서 레이어 추가할 때마다 pereplexity 10%↓)
각 output에 80,000개 단어로 naive softmax 진행

최종 LSTM: 384M parameter (그 중 64M (32M 인코더, 32M 디코더) 순수 recurrent connection 인자)


최종 학습 내용

LSTM 파라미터 초기화: -0.08 ~ 0.08 사이 균일분포
momentum 없이 stochastic gradient descent 이용
learning rate 고정 = 0.7
- 5 epoch 이후 learning rate 절반을 줄임
- 최종 7.5 epoch
batch size = 128
LSTM의 exploding gradients 방지 위해 gradient의 norm이 threshold 초과시 scaling을 하는 강한 제한
각 training batch에서 S = ||g||로 계산
- g는 gradient / 128
- s>5이면 g = 5g/s로 설정
각 문장은 다른 길이를 가짐 대부분 짧지만 (20~30 길이), 몇 가지는 길다 (100 초과길이)

랜덤하게 골라진 128의 training sentence의 minibatch는 대부분 짧고, 긴 문장이 적을 것이다.
→ 즉 minibatch의 계산은 낭비
→ 해결하기 위해, minibatch 내 모든 문장이 같은 길이라고 함 (속도 2배)


3.5 Parallelization

 

1. 4 LSTM layer 각 layer는 분리된 GPU (4)
2. softmax 연산 병렬화 (4)


3.6 Experimental Results

 

각 LSTM layer마다 서로 임의의 초기화
임의의 minibatch 한 LSTM 앙상블이 최고 결과


3.7 Performance on long sentences

 

학습된 몇 개의 representation 시각화

수동, 능동태 차이 둔감, 순서에 민감


3.8 Model Analysis


4. Related work


5. Conclusion


6. Acknowledgments

 

 

 

 

반응형