본문 바로가기
인공지능

[논문리뷰] NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

by judy@ 2023. 5. 25.

목차

I. 논문 정보

II. 리뷰 내용

  0. Abstract

  1. Introduction

  2. Background: Neural Machine Translation

  3. Learning to Align and Translate

  4. Experiment Settings

  5. Results

  6. Related work

III. 고찰


I. 논문 정보

  • 원제: NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
    (정렬과 번역을 공동으로 학습하는 신경망 기계 번역)
  • 저널: ICLF 2015
  • 저자: 조경현 박사님
  • 인용수: 28630 (wow)
  • 목적: 어텐션 메커니즘을 제시한 논문을 통해 왜곡없이 원리와 결과를 이해한다.
  • 링크: https://arxiv.org/abs/1409.0473

II. 리뷰 내용

0. Abstract

  • 기계 번역에서 많이 사용되는 encoder-decoder 구조에서 고정 길이의 벡터의 사용이 성능 향상의 병목임을 문제 제기
  • 본 논문에서 제안하는 방법은 모델이 자동적으로 입력 문장에서 타겟 단어 예측과 관련있는 부분을 자동적으로 검색하게 함
  • 이를 통해 영어 → 프랑스어 번역 문제에서 sota에 견주는 성능에 도달하였으며, 질적 분석을 통해 모델이 의도한 대로 학습되어 alignments도 되는 것을 찾을 수 있었음.
    ** alignments: 출력 토큰을 생성하는 데에 관련 있는 입력 문장의 토큰을 찾아내는 것

1. Introduction

  • encoder-decoder 구조에서는 입력 문장의 중요한 정보를 하나의 고정 길이 벡터로 압축. 입력 문장의 길이가 길어질수록 성능이 급격하게 저하됨
  • 이 문제를 해결하기 위하여, 정렬과 번역을 같이 학습하는 encoder-decoder 모델의 확장을 제안. 번역에서 모델이 단어를 생성할 때마다, 모델은 전체 입력 문장에서 가장 관련있는 정보가 있는 위치를 검색함. 모델은 입력 위치와 관련된 context vector와 이전에 생성한 모든 타겟 단어에 기반하여 타겟 단어를 예측.
  • 기존과 가장 큰 차이는 입력 문장을 고정 길이 벡터가 아닌, 벡터의 시퀀스로 인코딩하고, 디코딩할 때마다 적응적으로 일부 벡터를 선택한다는 데에 있음. 이는 길이와 상관없이 모든 정보를 함축하게 하여, 긴 문장에 대해서도 모델이 잘 작동하게 한다고 주장
  • 이를 통해 영어 → 프랑스어 번역 문제에서 sota에 견주는 성능에 도달함. 질적 분석을 통해 모델이 입력 문장과 타겟 문장에서 언어적으로 그럴듯한 (소프트) 정렬을 하는 것을 발견함.

2. Background: Neural Machine Translation

 

  • 번역은 조건부 확률 p(y|x)가 최대가 되는 y를 찾는 것
  • 조건부 확률을 학습하는 뉴럴 머신 번역은 인코더와 디코더로 이루어짐. 인코더는 가변 길이의 입력 문장을 고정 길이 벡터로 인코딩하고, 디코더는 고정 길이 벡터로 가변 길이의 y를 출력함.
  • 새로운 머신 번역은 기존에 있었던 phase기반의 번역의 성능 대비 sota를 달성

2.1. RNN Encoder-Decoder

RNN Encoder-Decoder은 이전 연구에서 제안된 align과 translate를 동시에 학습하는 새로운 아키텍처. RNN 외에 컨볼루션 등을 적용할 수도 있음

 

Encoder

  • 시간 t
  • 입력 문장 == 시퀀스 벡터

$$x = (x_1, …, x_{T_x})$$

  • hidden state # 시퀀스 토큰과 이전 시점의 상태를 입력으로 함

$$h_t = f(x_t, h_{t-1})$$

  • context vector # 모든 hidden state에 비선형 함수 적용

$$c = q(\{h_1, …, h_{T_x}\})$$

  • LSTM에서는

$$q(\{h_1, …, h_{T}\}) = h_T$$

 

Decoder

  • 타겟 값의 확률은 이전 출력 결과들과 인코더의 컨텍스트 벡터를 사용하여 구함

$$p(y) = \prod_{t=1}^{T} (y_{t} | \{y_1,··· ,y_{t−1}\} ,c)$$

  • y = (y1, …, yTx)일 때, RNN을 사용하여 조건부 확률을 구하면

$$p(y| \{y_1,··· ,y_{t−1}\}, c) = g(y_{t-1}, s_t, c)$$

  • 조건부 확률은, RNN의 은닉 상태와 이전 출력, 컨텍스트 벡터에 비선형 함수를 적용하여 얻음
  • St 는 RNN의 hidden state

 

3. Learning to Align and Translate

논문에서 제안하는 새로운 신경망 기계 번역의 아키텍처가 이 섹션에서 소개됨. 새로운 아키텍처는 인코더와 디코더로 구성

  • encoder 역할을 하는 양방향 RNN (3.2)
  • 번역문을 생성하는 중에 입력 문장을 검색하는 흉내를 내는 디코더 (3.1) 💡핵심 개념💡

3.1. Decoder: General description

  • 디코더에는 어텐션 메커니즘이 적용됨
  • hi는 xi에 대한 annotation으로 명명

💡어텐션 메커니즘💡

현 시점(i)의 출력인 yi를 만들기 위해서, yi-1(직전 출력)과 si(현 시점 hidden state) 그리고 ci가 사용됨

$$ p(y_i|y_1, . . . , y_{i−1}, x) = g(y_{i−1}, s_i, c_i) $$

 

ci가 어텐션이 적용된 컨텍스트 벡터로, aij hj(j번째 annotation)의 가중합으로 만들어짐.

이해한 내용 ➡️ 여기서 hj는 입력 문장의 j번째 단어이고, aij는 j번째 입력 토큰의 영향력으로, ci에는 입력 문장 중 집중(Attention)해야 하는 부분에 집중하여 얻은 결과를 모두 더한 값이 들어감

aij는 aij는 전체 입력 문장 중에서 eij의 영향력을 나타낸 것.

이해한 내용 ➡️ 현재 디코더 출력 시점(i)에 대하여 j번째 토큰의 영향력을 나타낸 것. 다시 말하면, 출력 단어 yi 가 입력 단어 xj 와 정렬되거나, 이로부터 번역될 확률

eij는 si-1(직전 출력에 대한 hidden state)과 hj(j번째 annotation)을 기반으로 함. 여기서 a는 alignment(정렬) 모델로 j 주변의 입력과 위치 i의 출력이 얼마나 잘 일치하는지를 점수화함.

appendix를 참고하면 정렬모델 a는 피드포워드 신경망으로 매개변수화되어 훈련됨.

 

 

 

 

정리하면, 컨텍스트 벡터는
입력 토큰(hj)직전 출력 토큰(si-1)에 기반하여

출력 토큰(yi)에 대한 입력 토큰들의 영향력(aij)을 구하고,

영향력을 반영(ci)한 값으로, 출력 토큰(yi) 생성 시에 활용됨

 

 

 

 

 

 

3.2. Encoder

  • 양방향인코더를 사용함.
  • hi →는 leftward, hi ← 는 rightward를 학습하고 이 둘을 concat하여 context vector가 한 방향이 아닌 뒤까지 고려하여 context vector를 더 잘 구성함

 

4. Experiment Settings

  • English-to-French translation 태스크로 평가
  • 제안하는 접근 방법 외에 RNN Encoder0Decoder의 성능을 함께 평가

4.1. Dataset

  • English-to-French parallel corpora를 포함하는 WMT’ 14 데이터를 사용
  • monoligual data는 사용하지 않았음.
  • 토큰화 이후, 언어별로 가장 빈도 높게 등장하는 30,000개 단어의 shortlist를 사용함(vocab 역할) 여기 없는 모든 토큰은 [UNK] 토큰으로 매핑함. 다른 전처리는 진행하지 않음

4.1. Models

RNN Encoder-Decoder (RNNencdec)

  • encoder: 1,000 units
  • decoder: 1,000 units

RNNsearch (proposed model)

  • encoder
    • forward: 1,000 units
    • backward: 1,000 units
  • decoder: 1,000 units

Common

  • 학습 2번 진행: 최대 30 단어인 데이터로 학습, 최대 50인 데이터로 학습
  • decoder 뒤에 sigle maxout multilayer를 사용하여 타겟 단어에 대한 조건부 확률을 계산
  • optimizer: SGD algorithm with minibatch 80
  • 학습에 5일 정도 걸림
  • 모델 학습 이후에, 조건부 확률을 최대화하는 번역을 찾기 위하여 beam search 사용

5. Results

5.1. Quantitative results

 

  • BLEU score로 성능 평가.
  • RNNsearch가 conventional RNNencdec에 비해 모든 성능이 좋았음.
  • 모두 아는 단어로 이루어진 문장으로 수행했을 시에는 conventional phrase-based translation system (Moses)보다도 성능이 좋았음

  • 문장의 길이가 30 이상부터는 RNNenc-30 < RNNenc-50 < RNNsearch-30 < RNNsearch-50 순으로 성능이 좋았음
  • RNNsearch-50은 입력 문장의 길이가 길어져도 성능이 쉽게 떨어지지 않음
  • RNNenc-50 < RNNsearch-30 을 통해 고정 크기 문맥 벡터의 한계를 어텐션 메커니즘으로 돌파한 것을 확인

5.2. Qualitative analysis

5.2.1. Alignment

 

  • annotation weights aij를 시각화한 것, column이 입력 데이터이고 row가 예측 결과 (eng to franch)
  • 대각선(diagonal)을 따라 가중치가 가장 강함. 하지만 모두 대각선을 따르는 것은 아님.
  • (a)에서 zone → area, economique → economic, europeenee → European으로 의미에 맞게 밝아진 것 확인
  • (d) the man → I’ homme 으로 번역. 이것은 soft-alignment의 강점으로 the는 l’ 외에 le, la, les 로도 번역될 수 있으나 이후 단어인 man을 고려하여 I’으로 결정한 것. hard-alignment 였다면 the → I’, man → homme로 하게 됨.
  • 추가적으로 soft-alignment를 통해서는 입력 데이터와 출력 데이터의 크기를 다르게 할 수 있음

5.2.2. Long sentences

문장 번역 케이스를 가져와서 긴 문장에서 RNNsearch가 RNNencdec에 비해 의미를 보존하면서 정확한 번역을 수행하는 것을 말함

 

6. Related work

6.1. Learning to align

  • 기존 align 방식은 이로부터 약 1년 전(2013)에 가우시안 커널 기반으로 제안됨. 이 경우 annotation의 가중치 모드가 한 방향으로만 움직임
  • 현 접근 방식은 입력 문장의 모든 단어의 annotation weights를 계산해야 함.

6.2. Neural networks for machine translation

  • Bengio 등(2003)이 신경망을 사용하여 앞 단어가 주어졌을 때 뒤에 올 단어의 조건부 확률을 예측한 뒤 신경망이 기계 번역에 많이 사용됨.
  • Schwenk(2012)는 피드포워드 신경망으로 한 쌍의 구문 점수를 계산하고, 점수를 기반으로 번역
  • Kalchbrenner와 Blunsom(2013)과 Devlin 등(2014)은 기존 번역 시스템의 하위 구성 요소로 신경망을 사용
  • 기존 연구들은 모두 기존 시스템을 보조하는 역할을 했다면, 이 연구를 통해서는 자체적으로 작동하고 직접 입력 문장에서 출력 문장을 생성하려는 시도

7. Conclusion

  • 인코더-디코더 신경망 기계 번역의 고정 길이 벡터로의 인코딩 방식이 긴 문장 번역에 장애를 줌을 지적하고 이를 해결하는 새로운 아키텍처 제시
  • 모델이 목표 단어를 생성할 때에 입력 단어와 그들의 주석을 검색하도록 확장하여, 목표 단어 생성에 관련된 정보에만 집중할 수 있게 함
  • 긴 문장에서 좋은 성능을 냈으며, 정렬과 번역이 공동으로 학습되어 정확한 번역을 생성할 확률이 높아짐
  • 영어 → 프랑스 번역시 기존 컨벤션 모델 대비 크게 능가하며, 정성적 분석에서도 올바른 정렬이 수행됨을 확인함.

III. 고찰

정리

  • RNN Encoder-Decoder에 어텐션 메커니즘을 적용하여 정렬과 번역을 같이 학습하게 함.
  • 영어 → 프랑스어 번역 성능이 눈에 띄게 향상되었으며, 질적 분석을 통해서도 정렬이 학습됨을 직관적으로 확인할 수 있었음

나의 생각

  • 어텐션은 번역을 목적으로 도입한 그리 복잡하지 않은 메커니즘인데, 약 5년 사이에 다양한 도메인과 모델에 침투하여 지금은 업계를 이끌고 있다는 게 참 신기한 것 같다. 감동은 제쳐두고, 이 기술을 이제서야 제대로 이해하려 노력한 것에 반성한다.
  • 이제 드디어 K, V, Q 관계를 이해하는 데에 한 발자국 나아간 느낌이다. 이해한 바는 다음 포스팅으로 깔끔하게 작성해보자.
  • 이후 다양한 어텐션 함수가 등장하였는데, 이 연구와는 어떤 점이 달라졌는지 꼼꼼히 알아보자. self, multi-head, dot 개념..
  • 그리고 이 개념, 직접 파이썬으로 구현해보자.
  • 앗, 개인적으로는 책이나 블로그를 먼저 접하는 것보다, 시간을 들여서라도 이 논문을 꼼꼼하게 보는 것이 훨~~~씬 더 이해가 잘 될 것 같다. 리뷰 추천!

 

 

 

 

 

반응형