.box_article .article_cont p code
기존의 Sequence transduction 모델들은 대부분 복잡한 Encoder와 decoder를 포함하는 recurrent하거나 convolutional한 인공신경망을 기반으로 한다. 본 논문에서는 이러한 recurrence/convolutions를 제외하고 Attention 구조 메커니즘 만을 이용한 보다 단순한 Transformer 구조를 소개한다.
기존의 순환 신경망인 LSTM이나 GRU와 같은 모델들은 sequential modeling과 언어 모델링/기계 번역과 같은 transduction 문제들에서 SOTA 결과를 보였지만 이전 시점의 은닉 상태와 현 시점의 입력으로 새로운 은닉 상태의 sequence가 출력되는 구조로 인해 병렬 처리가 불가능했다. 그에 반해 Attention 메커니즘과 본 연구에서 새롭게 소개하는 Transformer 메커니즘은 이러한 문제를 해결해 입력과 출력 간의 의존성을 반영할 수 있었는데 이를 정리해 비교하면 다음과 같다.
(1) Recurrent model
(2) Attention
Q: Attention은 어떻게 입력 또는 출력 sequence의 거리에 상관없이 모델링이 가능할까?
A: 기존 RNN과는 달리 각 시점 별 은닉 상태를 모두 이용했기 때문이다.
「Attention의 경우 시점 별 은닉 상태를 모두 이용해 벡터로 변환하기 때문에 정보의 손실이 없고 무엇보다 '고정 벡터'가 아닌 문장의 길이에 비례한 크기의 벡터를 생성하기 때문에 recurrent 모델에서 나타나는 문제를 해결할 수 있음」
(3) Transformer
(1) Extended Neural GPU, ByteNet, ConvS2S etc.
Q. Transformer는 어떤가?
A: attention-weighted positions를 평균화 해 '연산 횟수'를 감소 시킴 (이 과정에서 발생하는 효율성 문제는 Multi-head Attention의 동시 계산을 통해 해결)
(2) Self-attention (= Intra-attention)
target 문장을 만들기 위해 서로 다른 소스 sequence의 hidden 정보를 참고하는 것이 아니라 하나의 sequence에 대해, 그 안에 있는 서로 다른 위치 정보가 서로에게 가중치를 줌 → 한 sequence에 대한 representation을 효과적으로 쓸 수 있게 한다.
본 연구에서 제시하는 Transformer는 유일무이하게 recurrence를 배제하고 self-attention만 의존하는 변형 모델이다.
성능이 높은 대부분의 sequence 변형 모델들은 Encoder-Decoder 구조를 갖는다. 여기서 Encoder는 입력 sequence를 mapping한 다음 연속형으로 표현하고 이를 바탕으로 Decoder는 출력 sequence를 생성한다. 이전 seq2seq 구조에서는 Encoder와 Decoder에서 각각 하나의 RNN이 t개의 시점(time-step)을 가지는 구조였다.
Transformer의 전체적인 구조는 Encoder-Decoder에 stacked self-attention 메커니즘과 point-wise, fully connected layers 등을 사용한다. 이를 시각화하면 다음과 같다.
인코더는 6개의 동일한 층을 반복해 구성된다. 각 층에는 2개의 sub-layer가 있으며 1)multi-head self-attention mechanism과 2) pointwise fully-connected 순전파 네트워크이다.
Decoder도 Encoder와 같이 6개의 동일한 층으로 구성된다. Encoder와 다르게 총 3개의 sub-layer를 갖고 있으며 2개는 기존의 Encoder의 sub-layer와 동일하고 추가로 3) Encoder의 ouput에 대해 Multi-head Attention을 계산하는 sub-layer (Cross Attention)이 있다.
Attention이란, query, key-value를 출력 값에 mapping하는 것. 결과적으로 최종 출력은 value의 가중치를 통해 계산 되며 각 가중치는 key와 query 간의 일종의 호환 정도에 따라 결정된다.
계산 과정
같은 차원을 갖는 query와 key의 스칼라 곱을 계산 → 스케일링의 목적으로 sqrt(d_k) 값으로 나눠 줌 → Softmax 계층을 통해 확률화 (가중치) → 또 다른 입력인 value에 가중치 계산
Single Attention 보다 각 query, key, value에 대해 서로 다르게 학습해 linear projection 하는 것이 더 낫다. 서로 다른 위치에서 서로 다르게 나타나는 representation 정보를 반영 가능하기 때문이다.
계산 과정
project된 query, key, value에 대해 (이게 나눠 주는 개념: 여러 개의 가중치로 선형 결합 계산을 해 쪼개지는 것) 병렬적으로 Scaled Dot-Product Attention 수행 → 각 출력 값을 연결 → 다시 한 번 project(가중치와 선형 결합)를 통해 최종 출력 값 산출
→ 각 head의 차원이 감소해 multi로 계산됨에도 불구하고 single attention과 계산 비용은 비슷
본 연구에서 새롭게 소개하는 Transformer는 Multi-head Attention을 다음과 같은 3가지 방식으로 활용한다.
1) Encoder-Decoder Attention 층에서 query는 이전 Decoder에서, key와 value는 Encoder의 출력값에서 가져온다.
→ Multi-head Attention을 Decoder 파트에 사용함으로써 Decoder가 input sequence의 모든 position을 고려할 수 있음.
2) Encoder는 Self-attention 층을 포함
→ 해당 층에서 key, value, query 벡터는 모두 Encoder의 이전 층의 출력에서 오기 때문에 Encoder의 각 위치에서 이전 층의 모든 위치를 고려할 수 있음.
3) Self-attention 층이 Encoder에서는 각 위치에서 이전 층의 모든 위치를 고려하도록 한다면, 해당 층은 Decoder에서 현재 위치를 포함한 이전 위치들의 원소를 참고할 수 있도록 한다.
→ auto-regressive 속성을 보존하기 위해 Decoder는 출력을 생성할 시 다음 출력을 고려해서는 안되기 때문에 이를 위해 scaled dot-product attention에서 마스크(음수 무한대까지)를 씌움으로써 각각의 단어가 앞 부분의 단어만 사용하도록 함.
3.2에서 언급한 Attention sub layer말고도 Transformer의 Encoder와 Decoder 각 층에서는 fully-connected feed-forward network를 포함한다. 이 네트워크는 선형 변환 과정에서 사용되는 모수는 같은 위치에 대해선 동일하지만 계층 마다 다른 모수를 사용 때문에 position-wise라고 일컫는다.
위의 [수식 3]을 통해 확인할 수 있듯이 2개의 선형 변환과 ReLU 활성화 함수 (max(0,x))로 구성되어 있다.
다른 sequence transduction model과 유사하게, input과 output tokens를 model의 차원을 갖는 벡터로 변환하기 위해 학습된 embedding을 사용한다. 또한 Decoder의 출력으로 다음 token의 확률을 예측하기 위해 softmax 함수를 사용한다.
→ 이 과정에서 임베딩 계층과 Softmax 이전의 선형 변환 과정에서 동일한 가중치 행렬을 공유
Transformer 모델은 recurrence나 convolution을 사용하지 않기 때문에 단어의 위치정보를 가지고 있지 않는다. 따라서 sequence의 순서성을 이용하기 위해, position에 대한 정보를 sequence의 token에 주입해야 줘야 한다. 이를 위해 Encoder와 Decoder의 input embedding에 “positional encoding”을 더해준다.
논문에서는 다른 frequency의 sin, cos 함수를 사용해 이를 구현한다.
보다 자세한 설명은 다음 링크를 참고하길 바란다:)
Self-attention의 세 가지 필요성
부수적인 이익으로, Self-attention은 더 해석 가능한 모델을 산출할 수 있다.
생략
생략
Transformer는 recurrence와 convolution을 모두 제거한, 오직 Attention에만 의존하는 새로운 종류의 모델이다. 기계번역 태스크 이외에 다른 NLP 태스크에서도 기존 RNN이나 CNN을 사용하는 모델보다 훨씬 학습 효율이 좋을 뿐더러 높은 성능을 가진다.
3. BART: Denoising SequencetoSequence Pretraining for Natural Language Generation Translation and Comprehension 논문 리뷰 (0) | 2021.09.25 |
---|---|
2. Fine-tune BERT for Extractive Summarization 논문 리뷰 (0) | 2021.09.19 |
0. [Paper Review] Transformer to T5 (XLNet, RoBERTa, MASS, BART, MT-DNN,T5) (0) | 2021.09.19 |
0. Machine Translation Survey(Vol1): Background 영상 후기 (0) | 2021.09.18 |
NLP 스터디2 소개 (0) | 2021.08.27 |
댓글 영역