Attention

hangdi·2024년 5월 11일
0

논문 제목 : NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

논문 링크 : https://arxiv.org/pdf/1409.0473.pdf

헷갈리면 안되는 것

  • 여기서 Attention이라는 말을 잘 안쓰고, Align이라는 말을 쓴다.
  • annotation == 입력쪽의 hidden state

ABSTRACT

전통적인 statistical machine translation과는 다르게, neural machine translation은 번역 성능을 최대화 하기 위해서 공동으로 조정할 수 있는 single neural network로 설계하는 것이 목적이다.

이런 neural machine translation은 최근에 인코더와 디코더 구조에 속해있고, 문장을 고정된 길이의 벡터로 인코딩하면, 디코더가 번역을 해준다.

이 논문에서, 우리는 고정된 길이의 벡터를 사용하는 것이 기본적인 인코더-디코더 구조의 성능을 향상시키는 것을 막는 병목점이라고 추측한다.

이를 확장하여, 모델이 대상 단어를 예측하는 데 관련된 문장의 부분을 명시적으로 hard segment로 형성하지 않고도 자동적으로 soft-search 할 수 있도록 제안한다.

  • hard segment : 소스 문장을 고정된 길이로 형성

결과

  • 영어를 프랑스어로 번역하는 phrase-based 시스템에서 SOTA를 달성했다.
  • qualitative analysis를 통해 우리의 직관과 모델이 발견한 soft-alignments가 잘 일치함을 드러낸다.

1. Introduction

과거 및 선행 연구

대부분의 neural machine translation은 인코더에서 문장을 읽고 고정길이 벡터로 인코딩하며, 디코더에서는 인코딩 된 벡터로부터 번역을 한다. 그리고, 언어 쌍에 대한 인코더-디코더 시스템은, 문장이 주어지면 정확하게 번역할 확률을 최대화 하도록 훈련된다.

과거 연구의 문제점

인코더-디코더 접근법의 잠재적인 문제는 신경망이 문장의 필요한 모든 정보를 고정 길이 벡터로 압축할 수 있어야 한다는 것

  • 신경망이 긴 문장, 특히 훈련 말뭉치의 문장보다 긴 문장에 대처하지 못함
  • 실제로 기본 인코더-디코더의 성능이 입력 문장의 길이가 증가함에 따라 급격히 저하되는 연구 결과가 있음 (Cho et al. (2014b))

이 논문의 개선사항

이 문제를 해결하기 위해서 정렬하고 번역하는 법을 둘 다 학습하게 하는 인코더-디코더 모델의 확장을 소개한다. 제안된 모델이 번역에서 단어를 생성할 때 마다, 가장 관련성이 높은 정보가 집중된 문장에서 위치 집합을 (soft-)search 한다.

그런 다음 모델은 이 문장의 위치들과 관련된 context vector와 이전에 생성된 모든 target 단어를 기반으로 target 단어를 예측합니다.

기존 인코더-디코더와 가장 구별되는 특징은 인코더가 전체 문장을 정해진 길이의 벡터로 줄일 필요가 없다는 점이다. 그 대신 입력 문장을 벡터 시퀀스로 인코딩하고 번역을 디코딩하면서 이러한 벡터의 하위 집합을 적응적으로 선택한다.

  • 단어 단어마다 attention이 새로 적용하니까 적응적이라는 말을 쓴듯

효과

  • 모델이 길이에 관계없이 소스 문장의 모든 정보를 fixed-length로 압축해야 하는 것을 방지
  • 기존 인코더-디코더 방식보다 훨씬 향상된 번역 성능을 달성한다.
  • 영어-프랑스어 번역에서 싱글 모델만으로도 기존 phrase-based system과 비슷하거나 가까운 번역 성능 달성
  • 정성적 분석을 통해 제안된 모델이 소스 문장과 해당 대상 문장 사이에서 언어적으로 그럴듯한 (soft-) alignment을 찾는 것으로 나타났다.

2. BACKGROUND: NEURAL MACHINE TRANSLATION

확률적 관점에서 번역은 주어진 원문 xx에 대해 조건부 확률 p(yx)p(y|x)을 최대화하는 대상 문장 y를 찾는 것과 같다.

신경망 기계 번역에서는 병렬 학습 말뭉치를 사용하여 문장 쌍의 조건부 확률을 최대화하도록 매개변수화된 모델을 적합화한다.

번역 모델에 의해 조건부 분포가 학습되면, 주어진 원문에 대해 조건부 확률을 최대화하는 문장을 검색함으로써 해당 번역을 생성할 수 있다.

신경망 기계 번역 접근법은 일반적으로 두 가지 구성 요소로 이루어진다.

  1. 첫 번째는 원문 x를 인코딩하고, 두 번째는 대상 문장 y를 디코딩
  • ex) 가변 길이의 원문을 고정 길이 벡터로 인코딩하고 벡터를 가변 길이의 대상 문장으로 디코딩하기 위해 두 개의 순환 신경망(RNN)을 사용

이 방법은 기존 RNN을 기반으로 한 신경망 기계 번역이 영어에서 프랑스어로의 번역 작업에서 SOTA를 달성했다.

2.1 RNN ENCODER–DECODER

인코더-디코더 프레임워크에서, 인코더는 input 문장을 벡터의 시퀀스로 변환한다.

tt 시점에서 hidden state를 hth_t라고 했을 때, cc는 hidden state의 문장으로부터 생성된 벡터이다. 여기서 ffqq는 어떤 비선형 함수이다.

디코더는 context 벡터 c가 주어지고, 이전에 예측한 결과가 주어졌을 때, {y1,,yt1}\{y_1, … , y_{t’-1}\}를 기반으로 그 다음단어인 yty_{t^’}를 예측한다. 다른 말로 말하면, 디코더는 결합 확률을 순서화된 조건으로 분해하여 translation y의 확률을 정의하는 것이다.

Untitled

gg는 비선형함수이고, multi-layered 일 것이고, yty_t의 확률을 output으로 내는 함수이며, sts_t는 RNN의 hidden state이다.

  • 여기서 cc는 아래의 cic_i가 다른 것을 주목해야함 ! 여기서 cc는 시점을 고려 안한 것(마지막 context vector만 사용)cic_iii 시점마다 context vector가 달라짐

3. LEARNING TO ALIGN AND TRANSLATE

새로운 아키텍쳐는 다음과 같이 구성된다.

  • Encoder : bidirectional RNN
  • Decoder : 번역을 디코딩 하는 동안 source sentence를 searching을 수행하는 디코더

3.1 DECODER: GENERAL DESCRIPTION

새로운 모델 아키텍쳐에서 우리는 조건부 확률을 각각 아래와 같이 정의할 것이다.

Untitled

  • 현 시점 ii의 출력인 yiy_i를 만들기 위해서 아래 두개가 사용됨
    • sis_i : 시점 ii에서 RNN의 hidden state
    • yi1y_{i-1} : 직전 출력

여기서 확률값은 각 target 단어 yiy_i에 대한 별개의 컨텍스트 벡터 cic_i에 따라 결정된다. 컨텍스트 벡터 cic_i는 인코더가 입력 문장을 매핑하는 ****annotations(h1,,htx)annotations(h_1, … , h_{t_x})에 달려있다.

각각의 annotation hiannotation\ h_i는 전체 input sequence의 ii번째 단어와, 단어 주변 부분에 강한 포커스를 두고 입력 시퀀스 전체에 대한 정보를 포함한다.

Untitled

위 모델은 input position jj와 output position ii가 얼마나 잘 매치가 되느냐로 점수를 매기는 alignmnet 모델이다.

  • 이건 당연하게도 직전 decoder쪽의 hidden state와(i1i-1번째), j번째 어노테이션인 hjh_j에 따라서 달려있다.

Untitled

Untitled

실제로 alignment가 어떤 특정한 수치를 가지고 있는 값이 아니기 때문에, backpropagation에 의해서 gradient가 바뀌면서 계산될 수 있는 값이다 !

Untitled

  • X1,X2,X3,,XTX_1, X_2, X_3, …, X_T : 각각 들어가는 입력 단어
  • hjh_j : bidirectional hidden state
  • sis_i : decoder의 hidden state이고, 현재 단어 시점에서의 컨텍스트 벡터(cic_i)와 직전 decoder의 hidden state, 그리고 직전 예측 값으로 구성됨
  • 각각의 hidden state에 weighted sum을 한 것이 cic_i
  • 그럼 이 weight(aija_{ij})는 어떻게 구할까? → eije_{ij}를 softmax를 취해서 확률값을 도출
  • 그럼 ei,je_{i,j}는 무슨 의미? → 직전에 만들어 hidden state 값과, 특정한 j번째 입력 인코더의 hidden state 사이의 관계를 찾는 함수의 결과 값
    • 확률 αijα_{ij}와 에너지 eije_{ij}는 다음 state sis_i 를 결정하고 yiy_i를 생성할 때 직전의 hidden state si1s_{i-1}에 대한 hjh_j의 중요성을 반영
  • i 값 : 출력 문장의 word에 붙는 index
  • j 값 : 입력 문장의 word에 붙는 index
    • 즉 이말은, cic_i는 고정된게 아니라, 몇번 째 단어냐에 따라서 컨텍스트 벡터가 다시 계산 됨
    • seq2seq는 cic_i가 마지막 hidden state에서 구하는 것으로 고정

3.2 ENCODER: BIDIRECTIONAL RNN FOR ANNOTATING SEQUENCES

RNN은 입력 시퀀스 xx를 첫 번째 기호 x1x_1부터 마지막 기호 xTxx_{T_x}까지 순서대로 읽는다. 그러나, 제안된 방식에서는 각 단어의 annoation이 앞의 단어뿐만 아니라 다음 단어도 같이 요약했으면 하기 때문에, 여기서는 bidirectional RNN을 사용한다.

BiRNN은 forward와 backward RNN’s로 구성되어있다.

  • forward RNN f\overrightarrow{f} 은 input sequence를 x1x_1부터 xTxx_{T_x}로 읽고, forward hidden states(f1,...,fhTx)(\overrightarrow{f}_1, ... , \overrightarrow{f}{h}_{T_x})가 계산된다.
  • backward RNN f\overleftarrow{f}는 시퀀스를 반대로 xTxx_{T_x} 부터 x1x_1까지 읽고 backward hidden state (f1,...,fhTx)(\overleftarrow{f}_1, ... , \overleftarrow{f}{h}_{T_x})가 결과로 나온다.

우리는 각각 단어 x_j의 annotation을 forward hidden state hj\overrightarrow{h}_j와 backward hidden state hj\overleftarrow{h}_j를 concat하여 얻는다.

  • 즉, hj=[hjT;hjT]h_j = [\overrightarrow{h}_j^T;\overleftarrow{h}_j^T]
  • 그러면 annotation hjh_j는 앞쪽 단어와 뒤쪽 단어 모두를 요약하는 것이다.
  • recent input을 더 잘 표현하는 RNN의 경향으로 인해 annotation hjh_jxjx_j 주변 단어에 초점을 맞출 것이다.
  • 이 annotation 시퀀스는 나중에 디코더와 align 모델에 의해 context vector를 계산하는 데 사용된다.

Untitled

4. EXPERIMENT SETTINGS

논문에서는 영어→프랑스어로 번역하는 task를 평가 할 것이다. 우리는 ACL WMT ’14 bilingual, parallel corpora를 사용해서 평가하며, 또한 최근에 제안되어진 RNN Encoder-Decoder의 성능또한 비교할 것이다.

  • 두 모델 모두 같은 절차로 같은 데이터셋을 활용해서 학습한다.

4.1 DATA SET

WMT ’14는 English-French paralell corpora 데이터셋이다.

  • Europarl (61M words)
  • news commentary (5.5M)
  • UN (421M)
  • 각각 90M, 272.5M의 크롤링된 corpora
    • 총 850개의 단어

데이터 선택 방법을 사용하여 단어를 348M개로 줄임

언급된 parallel corpora 이외의 monolingual corpus는 사용하지 않았으나, 인코더를 pretraining하기 위해 훨씬 더 큰 monolingual corpus를 사용할 가능성은 있다.

  • 병렬 코퍼스(parallel corpora) : 두 언어 간의 번역 쌍을 포함하는 데이터셋
  • 단일 언어 코퍼스(monolingual corpus) : 하나의 언어로만 이루어진 텍스트 데이터셋

validation set

  • news-test-2012 and news-test-2013

test set

  • news-test-2014 (training set에서는 없는 3003개의 문장)

토큰화 한 후, 각 언어에서 가장 자주 사용하는 30,000개의 단어의 최종 목록을 사용하여 모델을 훈련

  • 최종 목록에 포함되지 않는 단어들을 special token [UNK]로 매핑
  • 데이터에 어떠한 preprocessing도 하지 않았음
    • lowercasing
    • stemming (어간 추출)

4.2 MODELS

  • 두 가지 유형의 모델(RNN Encoder-Decoder와 제안된 RNNsearch)이 최대 30단어와 최대 50단어 길이의 문장으로 각각 두 번 학습됨
  • 두 모델 모두 숨겨진 유닛을 1000개씩 가지며, RNNsearch는 forward and backward recurrent neural networks이다.
  • 학습에는 미니배치 SGD와 Adadelta가 사용되며, 각 모델은 약 5일간 훈련됨
  • trained 모델은 beam search를 사용하여 조건부 확률을 최대화하는 번역을 찾는다.
  • 모델 아키텍처와 학습 절차의 자세한 내용은 별첨된 부록에서 설명된다.

5 RESULTS

5.1 QUANTITATIVE RESULTS

test set으로 BLEU score를 매긴 결과. All column은 모든 문장에 대한 스코어이고, No UNK는 unknown 단어를 제거하고 스코어를 매긴 결과.(=학습하지 않은 단어) RNNsearch-50*은 더이상 성능이 나아지지 않을 때 까지 학습한 것. No UNK는 [UNK] 토큰을 생성하지 못하도록 만들었음
Moses : 기존 구문 기반 번역 시스템

test set으로 BLEU score를 매긴 결과. All column은 모든 문장에 대한 스코어이고, No UNK는 unknown 단어를 제거하고 스코어를 매긴 결과.(=학습하지 않은 단어) RNNsearch-50*은 더이상 성능이 나아지지 않을 때 까지 학습한 것. No UNK는 [UNK] 토큰을 생성하지 못하도록 만들었음
Moses : 기존 구문 기반 번역 시스템

제안된 RNNsearch는 기존의 RNNencdec 성능을 능가한다. 그리고 RNNSearch의 성능은 알고있는 단어만 문장에 구성되어 있을 때, 기존의 구분 기반의 번역 시스템(Moses)와 성능이 유사하다.

Moses가 RNN 검색 및 RNNencdec을 훈련하는 데 사용한 parallel corpora 외에 별도의 monolingual corpus(418M 단어)를 사용한다는 점을 고려할 때 이는 상당한 성과이다.

또 하나 주목할 것은 기존 encoder-decoder 접근에서의 fixed-length context vector의 사용에 대한 점인데, 이런 fixed-length와 같은 제한이 긴 문장에 대한 성능을 저하시킨다는 점이다.

문장이 길어질수록 성능이 떨어지는데, RNNsearch-30과 50은 로버스트하게 길이에 대해서 반응함. 특히 RNNsearch-50은 길이가 50이나 그 이상이 되어도 성능 저하가 없음.

문장이 길어질수록 성능이 떨어지는데, RNNsearch-30과 50은 로버스트하게 길이에 대해서 반응함. 특히 RNNsearch-50은 길이가 50이나 그 이상이 되어도 성능 저하가 없음.

기본 인코더-디코더에 비해 제안된 모델의 이러한 우수성은 RNNsearch-30이 RNNencdec-50보다 성능이 뛰어나다는 사실에 의해 확인될 수 있음 (table 1)

5.2 QUALITATIVE ANALYSIS

5.2.1 ALIGNMENT

대상 단어를 생성할 때 원본 문장의 어느 위치가 더 중요하게 고려되었는지 알 수 있다. / 주석 가중치 $a_{ij}$를 시각화 함

대상 단어를 생성할 때 원본 문장의 어느 위치가 더 중요하게 고려되었는지 알 수 있다. / 주석 가중치 aija_{ij}를 시각화 함

대상 단어를 생성할 때 원본 문장의 어느 위치가 더 중요하게 고려되었는지 알 수 있다.

  • 제안된 접근법은 번역된 단어와 원본 문장 사이의 소프트 정렬을 직관적으로 검사할 수 있게 함.
  • 정렬은 주석 가중치를 시각화하여, 목표 단어 생성에 있어 원본 문장의 어느 부분이 중요했는지 보여줌.
  • 영어와 프랑스어 사이의 단어 정렬은 대체로 단조로우나, 비단조적인 정렬도 존재.
    • “단어 정렬이 단조롭다”는 소스 문장에서의 단어 순서와 번역된 문장에서의 단어 순서가 일관되게 유지된다는 의미
    • 프랑스어와 영어 사이에는 형용사와 명사의 순서가 일반적으로 다르며, (a)에서 예를 볼 수 있다. 이 그림에서 모델이 [European Economic Area]라는 구를 [zone économique européenne]으로 올바르게 번역한 것을 볼 수 있다.
      • 즉, (a)를 보면 프랑스와 영어가 어순이 거꾸로 되어있어도 잘 attention하더라
  • 소프트 정렬은 단어의 순서가 다른 두 언어 간의 번역에 유용하며, 하드 정렬보다 더 유연하고 효과적임.
    • Hard Alignment
      • 소스 문장의 각 단어가 타겟 문장의 특정 단어에 1:1로 엄격하게 매핑되는 방식
    • soft Alignment
      • 소스 문장의 각 단어가 타겟 문장의 여러 단어와 연관될 수 있는 보다 유연한 방식

(d)를 보면 영어는 정관사가 the 밖에 없지만 불어는 많은데, 정관사인지 아닌지는 뒤에 단어까지 봐야 볼 수 있다.

  • i’homme를 보면 I’를 정관사로 잘 처리하고 있음을 보여준다.

5.2.2 LONG SENTENCES

제안된 모델인 RNNsearch가 기존의 RNNencdec보다 긴문장에서 성능이 훨씬 좋음을 알 수 있다. 이는 아마도 RNNsearch가 긴 문장을 고정된 길이의 벡터로 완벽하게 인코딩하는 것을 요구하지 않기 때문이다. RNNsearch는 특정 단어를 둘러싼 입력 문장의 부분들만을 정확하게 인코딩하는 데에 집중한다.

RNNencdec-50은 소스 문장의 medical center까지는 정확하게 번역을 하나, 밑줄친 부분부터는 번역을 제대로 하지 못한다.

Untitled

그러나 RNNsearch-50은 디테일의 생략 없 정확하게 모든 문장을 번역한다.

Untitled

RNNencdec는 30문장 이후 소스 문장의 실제 의미에서 벗어나기 시작했고, 그 이후에는 닫는 따옴표가 없는 것과 같은 기본적인 실수가 발생하는 등 번역의 품질이 저하됐다.

이미 제시된 정량적 결과와 함께, 이러한 정성적 관찰은 RNN 검색 아키텍처가 표준 RNNencdec 모델보다 훨씬 더 신뢰할 수 있는 긴 문장 번역을 가능하게 한다는 우리의 가설을 확인할 수 있다.

7 CONCLUSION

이전 연구에서 우리는 긴 문장을 번역할 때 fixed-length context vector를 사용하는 것이 문제가 있다고 추측했다.

이 논문에서는 모델이 각 target 단어를 생성할 때, input 단어 집합 또는 인코더에서 계산한 annotation을 (soft-)search 하도록 해서 기본 인코더-디코더를 확장

  • 모델이 다음 target 단어를 생성할 때 관련있는 정보를 집중할 수 있게 해주며, 전체 소스 문장을 고정 길이 벡터로 인코딩해야 하는 부담을 해소
  • 결과적으로 긴 문장에 대해서 좋은 번역 결과가 나옴

RNNsearch는 기존의 encoder-decoder 모델보다 좋은 성능을 얻었으며, source sentence의 길이에 훨씬 로버스트하며, 번역 결과도 훨씬 잘 일치했다.

하나 남은 개선사항은 드물거나 처음본 단어를 더 잘 처리해야 한다는 것이다 !

헷갈리는 것

  • context vector가 업데이트 되는거가 포인트인거지 context vector 길이가 바뀌는게 아니다.

A MODEL ARCHITECTURE

A.1 ARCHITECTURAL CHOICES

A.1.1 RECURRENT NEURAL NETWORK

A.1.2 ALIGNMENT MODEL

Untitled

Untitled

논문에서 이 식과 같은데, WSt1,VhjWS_{t-1}, Vh_j 두 개 weighted sum 한 다음, hyperbolic tanh을 거쳐서 에너지 eije_{ij}를 계산하고, softmax를 거쳐서 weight를 계산

  • VhjVh_j는 미리 계산된 값이고 WSt1WS_{t-1}가 계속 바뀌면서 계산

바다나우 어텐션

A.2 DETAILED DESCRIPTION OF THE MODEL

A.2.1 ENCODER

Untitled

profile
눈물 콧물 흘리면서 배우는 코딩

0개의 댓글

관련 채용 정보