:)
[NLP] Sequence to Sequence Learningwith Neural Networks 본문
0. Abstract
DNN을 사용해 Sequence to Sequence 문제를 해결하는 일반적인 접근 방식 제시.
이 방법은 다층 LSTM을 사용하여 입력 시퀀스를 고정된 차원의 벡터로 변환한 후, 또 다른 LSTM을 사용해 타겟 시퀀스를 벡터에서 디코딩함.
⇒ 첫 번째 LSTM은 데이터를 받아서 그 데이터를 하나의 벡터로 변환한다. 이 벡터는 입력 시퀀스의 중요한 정보를 담고 있다. 두 번째 LSTM은 그 압축된 정보를 풀어서 새로운 데이터으로 바꾼다.
- 주요 결과:
- 영어-프랑스어 번역: LSTM 모델이 BLEU 점수 34.8을 기록. 같은 데이터셋에서 구문 기반 SMT 시스템의 BLEU 점수 33.3보다 우수.
- 성능 향상: SMT 시스템에서 생성된 1000개의 번역 후보를 LSTM으로 재순위화한 결과, BLEU 점수가 36.5로 증가.
- LSTM은 긴 문장 처리에도 문제없음.
- 문장 표현: LSTM은 단어 순서에 민감 - 능동태와 수동태에 상대적으로 불변한 문장 표현 학습.
- 단기 종속성: 소스 문장의 단어 순서를 역순으로 배열했을 때 LSTM의 성능이 크게 향상됨. - 단기 종속성을 증가시켜 최적화 문제를 쉽게 만듦.
1. Introduction
DNN의 성능 & 한계
- DNN의 특징:
- 음성 인식, 시각적 객체 인식과 같은 어려운 문제에서 뛰어난 성능을 발휘.
- 임의의 병렬 계산을 수행할 수 있어 복잡한 계산 학습이 가능.
- 적당한 수의 은닉층으로도 복잡한 작업 수행 가능.
- 제한점:
- 입력과 출력이 고정된 차원의 벡터로 인코딩되어야 함.
- 사전 길이가 알려지지 않은 시퀀스 문제에 적용이 어려움.
Sequence to Sequence 문제와 LSTM의 적용
- 시퀀스 문제의 중요성:
- 음성 인식, 기계 번역, 질의 응답 등 시퀀스 문제는 입력과 출력 차원이 고정되지 않음.
- LSTM의 적용:
- 입력 시퀀스를 읽어 고정 차원 벡터로 변환 후, 다른 LSTM이 이를 출력 시퀀스로 변환.
- 장기 종속성 데이터 학습에 강점.
관련 연구와 주요 기여
- 관련 연구:
- Kalchbrenner와 Blunsom, Cho 등은 입력 문장을 벡터로 매핑하는 연구 수행.
- Graves는 주의 메커니즘을 도입, Bahdanau 등은 이를 기계 번역에 적용.
- 본 연구의 주요 기여:
- 소스 문장의 단어 순서를 역순으로 읽어 단기 종속성을 도입, 최적화 문제 단순화.
- WMT'14 영어-프랑스어 번역 작업에서 BLEU 점수 34.81 달성.
- 1000개 최고 목록 재평가를 통해 BLEU 점수 36.5 달성, 기존 최고 결과에 근접.
LSTM의 성능 평가
- 긴 문장에서의 성능:
- 소스 문장의 단어 순서를 역순으로 처리하여 긴 문장에서도 효과적 학습 가능.
- 최적화 문제 단순화로 인해 긴 문장에서도 SGD 학습에 문제 발생하지 않음.
- 의미 포착 능력:
- 가변 길이 입력 문장을 고정 차원 벡터로 매핑.
- 번역 작업에서 문장의 의미를 잘 포착하며, 어순과 능동/수동태 변형에 강함.
결론
LSTM은 DNN의 한계를 극복: Sequence to Sequence 문제를 효과적으로 해결 가능 + 긴 문장에서도 우수한 성능 보임. 다양한 언어 번역 작업에서 높은 성능을 달성할 수 있음.
2.The model
RNN의 특성 및 한계
- RNN 특성:
- 시퀀스를 자연스럽게 처리할 수 있는 피드포워드 신경망의 일반화된 형태.
- 입력 시퀀스 (x1,…,xt)에 대해 출력 시퀀스 (y1,…,yt)를 계산.
- 한계:
- 입력과 출력 시퀀스의 길이가 다름 & 비단조적 관계가 있을 때 적용이 어려움.
- 장기 종속성 문제로 인해 훈련이 어려움.
LSTM의 적용
- LSTM의 역할:
- 장기 종속성 문제 해결에 효과적.
- 조건부 확률 P(y1,…,yt′∣x1,…,xt) 추정.
- 입력 시퀀스를 고정 크기 벡터 V로 변환 후, 이를 사용해 출력 시퀀스의 확률 계산.
- 소프트맥스를 통해 어휘의 모든 단어에 대한 분포를 표현.
모델 개선 및 전략
- 입출력 시퀀스를 위한 두 개의 LSTM 사용:
- 입력 시퀀스용과 출력 시퀀스용으로 분리.
- 여러 언어 쌍에서 동시에 훈련 가능.
- 깊은 LSTM 사용:
- 4개의 레이어로 구성된 깊은 LSTM이 성능이 뛰어남.
- 입력 문장의 단어 순서 역순 처리:
- 입력 시퀀스 (A,B,C)를 (C,B,A)로 변환.
- 단어 순서를 뒤집어 단기 종속성 도입, 최적화 문제 단순화.
- 성능 향상에 기여.
주요 결과 및 성능 평가
- 조건부 확률 계산:
- 마지막 숨겨진 상태로 고정 차원 표현 V 생성.
- 초기 숨겨진 상태를 V로 설정해 출력 시퀀스의 확률 계산.
- 성능 개선 요소:
- 두 개의 LSTM 사용으로 모델 매개변수 증가 및 다양한 언어 쌍에서 자연스러운 훈련.
- 깊은 LSTM 사용으로 성능 향상.
- 입력 문장의 단어 순서를 역순으로 변환해 성능 개선.
3. Experiments
데이터셋 세부 사항
- 사용된 데이터셋: WMT’14 영어-프랑스어 데이터셋.
- 훈련 데이터: 12M 문장, 348M 프랑스어 단어, 304M 영어 단어.
- 어휘: 소스 언어(영어) 160,000 단어, 타겟 언어(프랑스어) 80,000 단어, 미등록 단어는 "UNK" 토큰으로 대체.
디코딩 및 재점수화
- 훈련 목표: 주어진 소스 문장 S에 대해 올바른 번역 T의 로그 확률을 최대화.
- 디코딩 방법: beam search디코더를 사용, 빔 크기 B만큼 부분 가설을 유지하며 가장 가능성 높은 번역을 찾음.
- 재점수화: 기본 시스템이 생성한 1000-best 리스트를 LSTM으로 재점수화하여 평균 점수 계산.
소스 문장 역순 처리
- 소스 문장을 역순으로 처리하면 테스트 perplexity가 5.8에서 4.7로 감소, BLEU 점수는 25.9에서 30.6으로 증가.
- 역순 처리로 인해 단기 종속성이 증가하고, 최소 시간 지연이 감소하여 성능 향상.
훈련 세부 사항
- 모델 구조: 4개의 레이어, 각 레이어에 1000개의 셀과 1000차원 단어 임베딩, 총 384M 파라미터.
- 훈련 방법: SGD 사용, 초기 학습률 0.7, 5 에포크 후 매 반 에포크마다 학습률 절반 감소, 7.5 에포크 동안 훈련.
- 배치 크기: 128, 문장 길이에 따라 배치 구성.
병렬화
- 병렬화 방법: 8개의 GPU 사용, 각 LSTM 레이어는 별도의 GPU에서 실행, 소프트맥스 병렬화로 속도 향상.
- 훈련 속도: 약 6,300 단어/초, 10일 소요.
실험 결과
- BLEU 점수: 단일 LSTM보다 역순 처리된 LSTM이 더 높은 성능, 최종 BLEU 점수 34.81로 최고 성능.
- 장문 성능: 긴 문장에서도 성능 유지, 역순 처리된 LSTM이 더 나은 메모리 활용을 보임.
모델 분석
- 단어 순서에 민감한 표현: PCA를 통해 시각화한 결과, 단어 순서에 민감하게 반응하는 표현 학습.
4. Conclusion
- 제한된 어휘를 사용하는 큰 deep LSTM이 대규모 기계 번역 작업에서 무제한 어휘를 사용하는 표준 SMT 시스템을 능가할 수 있음을 보여줌.
- 소스 문장을 역순으로 배열했을 때 성능이 크게 향상 - 단기 종속성이 많은 문제 인코딩이 학습을 쉽게 만든다는 점을 의미.
- LSTM이 긴 문장을 번역하는 데 있어서도 좋은 성과를 보임.
- LSTM 기반의 접근 방식이 다른 Sequence to Sequence 문제에서도 효과적일 가능성이 높음.