본문 바로가기

papers

Attention is all you need - 1 (요약, 개요, 배경)

Attention is all you need 시리즈에서는 Transformer의 논문을 번역 및 정리하였다.

Attention 매커니즘과 이를 기반으로 한 트랜스포머 아키텍쳐는 2017년 발표된 이후 딥러닝 world에 큰 영향을 미치고 있다. 매우 중요한 논문이기 때문에 원문을 잘 이해할 수 있도록 공부와 간단한 번역으로 정리한다.

Abstract

저자는 인코더, 디코더를 포함한 rnn구조가 sequence 생성 모델의 대세인 상황에서 recurrence와 convolution을 사용하지 않고 오로지 attention 매커니즘에 기반한 Transformer 구조를 제시한다. 두가지 기계 번역 실험에서 병렬학습을 통해 학습에 걸리는 시간을 단축시켜 모델 품질을 향상시켰다. WMT 2014 영-독어 번역에서 28.4 BLUE 스코어로 2BLUE 이상 개선하였는데 앙상블 모델을 포함해도 SOTA를 달성한다. 3.5일동안 8개의 GPU로 학습한 영-프랑스어 번역에서는 41.8 BLUE 스코어를 달성하였다. Transformer는 다른 태스크에 적용해도 성능이 좋다. 제한된 데이터와 큰 규모의 데이터 셋에서도 English constituency parsing(구 구문분석) 태스크에 잘 적용되었다.

Introduction

선행 연구인 시퀀스 모델링과 언어 모델링, 기계번역같은 transduction(input을 output으로 변환하는) 문제에서 RNN, LSTM, GRU 모델을 주 학습모델로 이용해 좋은 성능을 보였다. 순환 언어 모델과 인코더-디코더 구조의 영역을 확장하려는 다양한 연구가 진행되었다.

순환 모델은 입력과 출력 시퀀스들의 위치(position)를 모델링한다. 학습할 때 이전 시점(t-1)의 잠재 상태(hidden state)와 t시점의 입력으로 t시점의 잠재 상태를 만든다. 순서가 보존되는 시퀀스 모델링은 학습할 때 병렬화가 어려운데, 시퀀스의 길이가 길어지면 메모리 제약으로 학습에 어려움을 겪는다. 최근 연구에서 factorization trick과 조건 계산으로 계산 효율성을 개선했지만 시퀀스 계산의 본질적인 제약인 병렬화를 통한 GPU 학습이 어렵다는 점은 극복하지 못했다.

Attention 매커니즘은 입력과 출력의 위치에 대한 의존성을 배제하고 모델을 학습할 수 있도록 한다. 기존 연구에서는 attention 매커니즘을 RNN과 함께 사용했는데 Transformer 구조는 attention 매커니즘에만 의존해 입력과 출력의 전반적인 의존성을 학습한다. 모델 학습을 병렬화할 수 있기 때문에 비교적 적은 학습 리소스(gpu개수, 학습시간)를 사용하여 SOTA의 번역 품질을 달성했다.

Background

시퀀스 학습에 노력을 줄이기 위한 방법으로 Extended Neural GPU, ByteNet, ConvS2S 같은 방법들이 제시되었다. 이 모델들은convolution 신경망을 기본으로하여 입력과 출력의 잠재 표현을 병렬로 계산한다. 입력과 출력 길이에 따라 비용이 선형적으로 혹은 로그비율로 증가하여 먼 거리의 입출력을 학습하는 것이 어려웠다. Transformer 구조에서는 attention-weighted position을 평균내는 것과, Multi-Head Attention 방법을 이용해 상수(constant number)의 계산복잡도로 학습이 가능하다.

Self-attention (intra-attention)은 시퀀스의 표현을 계산하기 위해 단일 시퀀스의 다른 위치들을 연관짓는다. Self-attention 방법은 자연어 연구의 다양한 태스크에 사용되고 있다. End-to-End 메모리 네트워크는 순환 attention 매커니즘에 기반하여 단일 언어 QA, 언어 모델링 태스크에 활용되고 있다.

Transformer는 입력과 출력의 표현을 RNN과 convolution을 배제하여 온전히 self-attention에 집중한 첫 transduction 모델이다.

다음 글에서 본격적으로 모델 구조에 대해 알아보자.

 

Reference

https://arxiv.org/abs/1706.03762
https://lee6boy.wordpress.com/2013/06/28/parsing-dependency-parsing-graph-based-parsing%EC%9D%B4-%EB%AD%94%EA%B0%80/