1. Attention is All you Need
Ashish Vaswani et al.(2017)
한국 인공지능 연구소 이준호
2. • 기존에 사용되던 RNN / CNN 방식과 다른 FNN과 Skip
Connection 기반의 모듈을 N개 쌓아서 LSTM, GRU같은 아키텍
처 없이 long-term dependency를 효과적으로 해결한 새로운
인코더-디코더 방식
• Source 단어와 Output 사이 distance가 짧아 Attention으로 정
보가 직접적으로 연결
• RNN의 순차적 특성으로 병렬 처리가 힘들다는 단점을 극복해
서 약 30배 가량의 학습속도 개선
3. Motivation(Google Research Blog)
• “I arrived at the bank after crossing the …”
• I arrived at the bank after crossing the road (Bank 은행)
• I arrived at the bank after crossing the river (Bank 강둑)
RNN은 순차적 언어 처리 word distance 커질수록 분석을 위한 타임스탭
숫자가 증가.
CNN을 이용한 최신 언어 모델의 경우에도 word distance에 따른 단계(레이
어)가 증가한다.
5. Model Architecture
• Left side : Encoder
• Right side : Decoder
• 각 단계에서 자동 회귀를 실시
• 즉, 이전 단계에서 나온 symbol을 다음 단계에 추
가한다.
6. Encoder
• encode는 N = 6의 identical 레이어를 가진다.
• 각 레이어는 2개의 Sub 레이어를 동반한다.
• 처음은 Multi-head self attention mechanism
• 뒤 이어서 Fully connected된 feed-forward network가 온다.
• 모델에서 처리하는 기본 차원은 d_model = 512라고 가정
7. Decoder
• Encoder같이 N = 6의 identical 레이어를 가짐
• Decoder는 3개의 Sub레이어를 가진다.
• Encoder와 비슷하지만, input-feeding을 위해 디코더의
최종 출력이 다시 입력으로 들어간다.
8. • Input Embedding
pre-softmax linear transformation
text probability vector
• Positional Encoding
- 기본 조건 : d_model = 512 (to summation)
- use sine and cosine funtions
pos is position
i is the dimension
- RNN / CNN 방식을 사용하는 것이 아니기 때문에 time step의 개념을 보
존해야한다.
- sinusoidal 방법을 이용하면 inference시 긴 시퀀스에 대해서
‘extrapolate’(추론) 할 수 있게 될 뿐 아니라, 어떠한 offset k에 대해서도
PE_{pos + k} = a * PE_{pos} + b 형태로 표현 가능하다고 한다.... 어렵네요 ㅠ
9. Q : 디코더 이전 레이어 hidden state K : 인코더의 output key V : 인코더의 output value
출처 : http://dalpo0814.tistory.com/category/Machine%20Learning
10. Scaled Dot Product
Q와 K의 유사도를 계산
너무 큰 값이 지배적이지
않도록 스케일링
• Scale 과 normalize의 차이
Scale – mean 0, Var 1으로 조정, 주로 overflow & underflow를 방지
Normalize – 전체 구간을 설정, 데이터 군 내에서 특정 데이터의 위치를 확인
- 수식 : (요소값 – 최소값) / (최대값 – 최소값)
유사도 가중치 (총합 == 1)
가중치를 V와 곱연산
정리 : 이번 상태의 key와 value 페어인 {K, V}가 이전 상태인 Q와 어떤 연관이 있을것이다.
그러므로 K와 Q의 유사도를 계산하고 그걸 V에 반영
결국 V에 더 많은 Q의 정보가 전달된다.
11. Multi-Head Attention
• 지금까지 얘기했던 V, K, Q가 h개의 Scaled Dot-Product
를 통과하면서 h번의 선형 projection 뒤 결과들을 concat
해서 사용하면 더 좋다는 사실이 발견되었다.
Projection으로 인한 dimension decrease 때문에 계산량이
큰 폭으로 증가하지 않는다.
14. 마무리하며
• 페이퍼를 가지고 스터디 자료를 만들면서 최대한 많은 정보를
담으려고 노력했습니다만, 개인적인 부족함으로 100% 이해하
지 못한 부분이 있어서 정보 전달이 떨어지지 않을까 싶습니다
• 관련 페이퍼는 https://arxiv.org/abs/1706.03762에서 직접 확인
하실수 있습니다.
• Google Research Blog와
http://dalpo0814.tistory.com/category/Machine%20Learning를
열심히 참고했습니다.