[논문] Attention Is All You Need

rkqhwkrn·2023년 7월 27일

논문리뷰

목록 보기
1/3

Attention Is All You Need

원문: Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017).

본 글은 Attention Is All You Need [NIPS-2017] 논문에 대한 저의 개인적인 이해를 정리한 글입니다. 실제 논문의 구성 및 내용과 약간의 차이가 있을 수 있습니다.

미리보기

  • 기존 시퀀스 변환 방식들은 CNN이나 RNN에 기반으로 한 구조를 가지고 있음
  • 본 논문에서는 오직 attention 매커니즘에만 기반으로 하는 Transformer라는 아키텍처를 제안함
  • 실험을 통해 해당 방식이 translation task에서 매우 효과적임을 확인함

1) Introduction

문제 정의

NLP 연구에서는 언어모델(Language Model)을 통해 sequence modeling과 transduction problems을 해결하고자 함

  • Language Model: 단어 시퀀스에 확률을 할당하는 모델
  • Language Modeling: 주어진 단어들을 이용하여 아직 모르는 단어를 예측하는 작업
  • Machine Translation: 컴퓨터를 통해 인간이 사용하는 자연어를 다른 언어로 번역

기존 방식들에 대한 이해 (Translation task)

Word to Word 변역

[word \to word]로 대응하여 번역하는 방식

  • 문제 1: 언어별 어순이 다르다. (ex: I love you \to 나 사랑해 너)
  • 문제 2: 언어별 단어 수가 다르다. (ex: How are you? \to 잘 지내?)

Sequence to Sequence 번역

[Seq \to Seq]로 대응하여 번역하는 방식이며 encoder-decoder 구조를 가짐

  • Encoder: 시퀀스를 순차적으로 받아 context vector를 생성
  • Decoder: context vector를 바탕으로 task (e.g., language modeling, machine translation) 수행
RNN 기반 모델

  • Encoder에서 "I am a student"라는 문장의 정보를 순차적으로 받아서 context vector에 담으면, decoder에서 이를 기반으로 번역된 단어를 순차적으로 출력함
  • 위의 encoder-decoder 구조에서는 encoder의 정보를 받아 하나의 context vector를 생성한 후 decoder에서 이를 기반으로 생성 작업을 수행하는데, 이 구조를 이용하면 [word \to word]의 문제 1을 해결 가능
  • RNN은 input과 output의 sequence 길이의 제한이 없다는 특징이 있는데, 이 특성을 이용하면 [word \to word]의 문제 2를 해결 가능
  • 단점: 문장 sequence가 길어지게 되면 context vector에 문장 속의 모든 정보를 담기 어렵다는 한계가 있음 (고정된 길이의 context vector의 한계)
RNN + Attention 모델

  • RNN 기반 모델의 가장 큰 문제는 context vector 이슈이며 이를 위의 구조를 통해 개선하고자 함
  • Decoder에서 출력 단어를 예측하는 매 시점마다 encoder를 참고하도록 함
  • 이때, input 시퀀스의 모든 state 결과를 이용하여 다음 단어를 예측하는데, 모든 state 결과 중 특정 state 결과에 집중하여 예측 수행 (attention 매커니즘)
  • Attention이란, 쉽게 말해서 말 그대로 "특정 state에 집중하자"는 방식
  • 단점: RNN 기반의 방식을 이용하기 때문에 RNN 고유의 문제 (ex: 병렬화 불가능) 를 여전히 가지고 있음
Transformer 모델 (Attention 매커니즘만 이용)

  • RNN을 제거하여 병렬적 처리를 통해 속도와 성능을 향상시키고자 함

2) Background

Self-attention

  • Attention의 key, query, value의 요소가 모두 같은 경우
  • 단일 시퀀스 안에서 각 요소들의 의존성을 찾아냄
  • Reading comprehension, abstractive summarization, textual entailment, learning task-independent sentence representations task를 잘 수행한다고 알려져있음

3) Model Architecture

Attention Function

Transformer의 encoder-decoder는 attention layer로 구성됨
Attention이 무엇인지, 어떻게 동작하는지에 대한 원리 확인

Attention의 목적
  • [A,B,C,D]의 단어 시퀀스가 주어진 상황에서 특정 단어 A가 시퀀스 내의 단어 A, B, C, D와의 연관성을 계산
Attention의 요소
  • Attention의 input 요소: Query, Key, Value matrix
    - ex: "I am a student"
    \to Query: 물어보는 주체 ["I"], ["am"], ["a"], ["student"]
    \to Key: 연산의 대상 ["I", "am", "a", "student"]
    \to Value: Key에 해당하는 값 ["I", "am", "a", "student"]
  • 이때 Key의 각 요소들은 Query와 유사할수록 높은 attention score를 가짐
Attention 과정


1. QQ, KK, VV 얻기
2. QQ\cdotKTK^T로 attention score 구하기 \to 단어간 유사도 점수
3. dk\sqrt{d_k}로 나눠주기 \to Scaling 실시
4. Softmax 함수 적용 \to Attention score를 [0,1]의 확률 개념으로 바꿈
5. Softmax 결과에 VV를 곱하여 attention matrix를 얻음

Attention vs Self-attention
  • Attention: Query와 Key, Value의 출처가 다름
  • Self-attention: Query, Key, Value의 출처가 모두 같음
Multi-Head Attention
  • Attention layer를 병렬로 처리하여 동시에 수행
  • 다양한 문맥적 해석이 가능함 \to 모호한 문장 처리 능력 향상
Masked Multi-Head Attention
  • 모델이 특정 시점까지의 출력값에만 집중하여 attention을 수행하도록 함
  • Decoder에서 사용되며, 이로 인해서 autoregressive한 성질을 가지게 됨

Transformer 전체 구조

정리

본 논문에 대해서 Transformer의 등장 배경 및 모델 아키텍처를 이해하기 위한 Attention에 집중하여 정리를 했는데, 추후에 추가할 내용이 있다면 수정하도록 하겠습니다.

0개의 댓글