본문 바로가기
Machine-Learning/paper

[Paper] Attention

by AteN 2022. 9. 15.

Attention [논문]  

해당 논문은 Dzmitry Bahdanau의 이름을 따서 Bahdanau Attention으로도 유명한 Attention의 시작 논문이다.

 

Abstract

논문에서는 encoder-decoder 를 구성하는 아키텍처에서 고정된 길이 벡터(fixed-length vector)로 인코딩하여 디코더가 번역을 생성하는 부분에서 병목 현상 (bottleneck)이 있다고 추축하고, 이러한 부분을 고정적인 분할 (segment)를 하지 않고 번역 대상 단어와 관련된 번역 원문이 어떤 부분인지 자동적으로 해결하고자 제안된 논문이다. 

 

Introduction

기존의 encoder-decoder 의 문제점 같은 경우는 긴 문장이 입력으로 들어왔을 때 끝까지 전달되지 못하여 급격하게 성능을 저하시키는 문제점이 발생했다.

이러한 이슈를 다루기 위해, 해당 논문은 정렬과 번역을 함께하는 확장된 encoder-decoder 모델을 제안하였다.

제안 모델은 번역에서 단어를 생성할 때마다 원문(source sentence)에서 관련된 정보을 탐색하고, 그 원문 위치 정보와 앞서 생성된 대상 단어(target word)와 관련된 맥락(context) vector를 이용하여 대상 단어 예측한다.

일반적인  encoder-decoder 접근에서 가장 구별되는 점은 하나의 고정된 길이 벡터 (fixed-length vector) 시도하는 것이 아니라는 점이다. 대신에 sequence of vectors로 된 입력 문장을 인코딩하고, 디코딩하는 동안에 그들 vector의 부분 집합(subset)을 적하게하게 선택한다는 점이다

DECODER: GENERAL DESCRIPTION

새로운 모델의 아키텍처에서 각각의 조건부 확률은 다음과 같이 정의 할 수 있다 

여기서 \(S_i\)는 i번째의  RNN hidden state이며,  일반적인 encoder-decoder 구조와 달리 context vector \(c_i\)는 target word \(y_i\)에 고유한 값이다.

context vector \(c_i\)는 입력 문장의 집합의 인코딩한 a sequence of annotation \((h_1, …, h_Tx)\)  의존적이다.

각 \(h_i\)는 입력 문장의  i번째 word 주변에 강력하게 집중된 정보를 포함하고 있다.

 

context vector \(c_i\)는 annotation  \(h_i\) 들의 가중치 합(weighted sum)으로 계산 될 수 있다. 

각각의 annotation  \(h_i\) 의 가중치  \(α_{ij}\) 다음과 같이 계산될 수 있다. 

여기서

\(e_{ij}\)는 alignment model이며, j번째 input 주변의 정보들이 얼마나 i번째 output과 적합한지에 대한 점수를 나타내고 있다. 

alignment model인 α는 하나의 feedforward neural network로 구성되며 다른 네트워크와 같이 학습되고, 전통적인 NMT에서는 alignment를 latent variable로 간주했으나 이 모델에서는 네트워크의 variable

두개의 네트워크가 함께 학습되며, 학습과정의 cost gradient는 역전파를 통해 두 네트워크에 적용됨 

target word yi와 source word xj에 대한 확률이라 생각하면, i번째 context vector ci는 annotation의 기대값

decoder가 source sentence에서 집중해야 할 부분을 결정 = 어텐션

 

ENCODER: BIDIRECTIONAL RNN FOR ANNOTATING SEQUENCES

일반적인 RNN은 첫번째 글자부터 마지막 글자까지 순차적으로 읽는다. 이전 단어와 다음 단어 모두에 대한 annotation을 담기 위해 bidirectional RNN을 제안한다.

BiRNN은 forward와 backward로 구성되어있다. forward는 순방향으로 input sequence를 읽어서 hidden state를 계산하고, backward는 역방향으로 읽고 hidden state를 계산한다.

forward와 backward를 concat하여 annotation을 만든다. 그래서 annotation에는 이전 단어와 다음 단어의 정보를 모두 가지고 있게된다.

 

EXPERIMENT SETTINGS

DATASET

English-to-Franch corpus인 WMT'14를 사용하여 평가하였다. 총 850M개의 word로 구성되있으나, 348M개의 word만 추출하여 학습하였다. 토큰화를 통해 가장 빈번하게 사용되는 30,000개의 단어를 선택하여 학습하였고, 포함되지 못한 단어는 [UNK]으로 치환하여 학습하였다. 그 외 전처리나 lowercasing, stemming은 사용하지 않았다.

 

MODELS

2가지의 모델을 학습하여 비교하였다. RNN Encoder-Decoder(RNNencdec, Cho et al. 2014a)와 본 논문에서 제안한 모델인 RNNsearch이다. 각 모델은 sentence의 길이를 30으로 제한, 50으로 제한하는 방법 2가지로 학습하였다.

RNNencdec의 encoder와 decoder는 각각 1,000개 hidden unit을 가지고 있다. RNNsearch의 encoder는 forward와 backward 각각 1,000개의 hidden unit을 가지고 있고, decoder도 1,000개의 hidden unit을 가진다. 각 target word 예측을 위해 single maxout hidden layer를 포함한 multilayer network를 사용한다.

Adadelta를 이용하여 minibatch SGD를 계산한다. minibatch size는 80이다.

학습 후 beam search를 이용하여 최대 확률의 translation을 구하였다.

 

RESULTS

QUANTITATIVE RESULTS

RNNsearch가 RNNencdec의 성능을 능가하였으며, 특히 RNNsearch-50은 긴 문장에서도 성능 하락이 없다는 것을 보여주었다.

 

QUALITATIVE ANALYSIS

ALIGNMENT

annotation weight값 a_ij를 visualizing한 모습을 보면, source sentence의 word가 target sentence의 어떤 word와 연관성이 있는지 알 수 있다.

 

'Machine-Learning > paper' 카테고리의 다른 글

[Paper] Faster RCNN  (0) 2022.10.06
[Paper] RCNN  (0) 2022.10.06
[CV Paper] Vision Transformer  (0) 2022.08.25
[Paper] Fast RCNN  (0) 2022.08.23
[Paper] An overview of gradient descent optimization algorithms  (0) 2022.08.23

댓글