728x90
Attention is all you need 를 읽고 공부하며 작성한 글 입니다.
Abstract
- 시퀀스 모델에서 제일 많이 사용되는 모델들은 인코더와 디코더를 포함한 RNN 또는 CNN을 기반으로 하는 모델
- transformer는 인코더와 디코더를 어텐션 매커니즘을 이용하여 연결하여 사용함
INTRODUCTION
- 시퀀스 모델링 문제에서 RNN, LSTM, GRU등 기존의 recurrent 모델들은 이전 결과를 순차적으로 받아야 하는 특성 때문에 병렬화가 제한적임

- 이전의 값을 처리 후 그 값을받아서 이후 값을 처리해야하는 문제
- 그 길이가 길수록 시간, 메모리적인 부담이 증가하게 됨
- attention 매커니즘을 이용하여 입,출력 시퀀스 내의 거리와 상관없이 의존 관계를 효과적으로 모델링할 수 있게 되었으나 이것 마저도 대부분 recurrent네트워크와 사용됨.
- 그렇기에 recurrent 없이 attention 매커니즘 만으로 입,출력간의 의존성을 학습할 수 있도록 transformer를 제안
MAIN IDEA
Attention Mechanism
이전에 사용되던 건 Seq2Seq

- Seq2Seq
- 인코더가 입력 시퀀스를 압축된 컨텍스트로 인코딩한 후, 디코더가 해당 컨텍스트를 기반으로 출력 시퀀스를 생성하는 모델
- seq2seq 모델의 문제
- 정보 손실 : 하나의 고정된 크기의 벡터에 모든 정보를 압축하려고 함 기울기 소실
- RNN의 고질적 문제 중 하나로, 해결하지 못함
Attention의 기본 아이디어

- 출력 단어를 예측하는 매 시점(time step)마다, 인코더에서의 전체 입력 문장을 다시 한 번 참고함
- 예를들어, 4번 단어의 representation을 학습하기 위해서,이전레이어의 모든 단어와의 유사도를 계산함. 이 유사도를 통해 각 단어에 대한 가중치를 얻고, 이 가중치를 이전 레이어의 각 단어 표현에 곱하여 가중합(weighted sum)을 구하고, 이를 통해 자기 자신의 최종 representation을 정의함.
Attention의 구성요소

- Key, Query, Value 3가지를 통해서 Attention Value를 계산하게 됨.
- Query: 내가 어떤 정보에 주목해야 할지 알고 싶을 때 기준이 되는 요소.
- Key: 각 단어가 가진 정보를 표현하며, 다른 단어들이 얼마나 주목해야 하는지 판단할 기준.
- Value: 최종적으로 전달될 정보로, 가중치가 적용되어 중요한 정보가 더 강조된 결과
- 각각의 Value를 통해서 최종적인 Attention Value를 얻게 됨
Scaled Dot Product Attention

- Attention 에도 다양한 종류가 있는데, 이 논문에서는 Scaled Dot-Product Attention을 이용함.
- Attention Value 계산 순서
- Attention Score를 통해 Query와 Key 간의 유사도를 계산하며, 이 과정에서 Dot-Product를 사용.
- Attention Score를 소프트맥스로 정규화하여 Attention Distribution(확률 분포)로 변환.
- Attention Distribution을 Value 벡터에 곱해 합산하여 Attention Value(최종 결과)를 출력

- 수식과 함께 단계를 살펴보면 다음과 같이 단계를 나눌 수 있음
- Q와 K의 MatMul 단계
- QKT
- MatMul이란, Matrix Multiplication (행렬 곱셈)을 의미함
- Query와 Key를 Dot-Product(내적)하여 Attention Score를 구함
- Scale
- 1√dk
- dk:Key벡터의차원수
- Scaling을 왜 해주는걸까?
- 벡터 차원이 커질수록 내적 값의 크기가 커질 가능성이 높기 때문에 특정 위치에 과하게 높은 가중치가 부여되지 않도록 스케일링을 통하여 조절하려는 목적
- Mask : 디코더에서 사용
- 특정 위치에 대한 가중치를 0으로 만들어 특정 단어나 위치를 무시하게 하는 단계
- 디코더의 경우에는 미래 정보를 알면 안되기 때문에 활용
- SoftMax
- SoftMax를 이용하여 정규화, 확률 형태로 변환하여 Attention Distribution 로 변환
- MatMul
- 앞서 구한 Attention Distribution 에 Value를 곱하여 weighted sum형태로 최종적인 Attention Value구함
- Q와 K의 MatMul 단계
728x90