Transformer  Network Intuition

https://techblog-history-younghunjo1.tistory.com/496?category=1025617

: 기존의 모델은 하나의 단어를 위해 이전의 유닛들을 모두 처리해야한다는 단점이 있었다. 그로 인해 Input이 길어지면 모델은 엄청 복잡해지며, RNN은 특히 vanishing gradient 문제를 해결하기가 매우 어려운 단점이 있었다.

: Sequential model인 RNN과 달리 CNN은 여러 개를 평행하게 처리한다. 각각의 장점을 섞은 것이 Transformer model이다.


Self-Attention

: 문맥별로 '아프리카'라는 단어의 의미는 달라진다.이를 고려하는 것이 self-attention이다.

- 각 단어마다 Query, Key, Value값이 존재.

- Q는 질문을 담당한다. ex. Q^<3> = what's happening there? 이 예시에서는 행동을 의미하는 x^<2>의 키값(k^<2>)이 가장 클 것이다.

- q, k 쌍을 해당 단어의 value와 곱한 것이 A가 된다.

=> 아프리카가 고정된 의미를 가지지 않고, visit의 대상으로서의 의미를 지닌다는 것이 self-attention의 핵심이다.

cf. 네모 안의 식은 vectorized implementation이다.


Multi-Head Attention

: 가중치 W가 질문과 답이 이루어지도록 역할을 한다.

- 첫 질문 What's happening은 파란색으로 표현(앞서 K<2>가 Q<3>에 가장 잘 답한다는 점에서 화살표가 굵게 칠해짐)

- 두 번째 질문 when?이 빨간색으로 표현, 파란색 뒤에 쌓아짐.

- 세 번째 질문 Who?는 검정.

- heads는 별개의 질문(feature)을 반영.

- 각각의 head는 영향을 주고받지 않으므로 for문을 통해 평행하게 동시 진행.

=> 최종값은 각각의 head를 W와 곱해서 이루어진다.


Transformer Network

: 여태 생략했지만, Sequence model에서는 SOS(start of sentence), EOS(end of sentence) 토큰이 유용하다.

- Encoder block은 앞서 배운 Multi-head attention을 이용해 Feed forward neural network에 들어가서 문장의 인상적인 특징들을 뽑아낸다. 이를 N번 반복하는데, 이를 소개한 논문에서는 6번 진행하였다.

- Decoder는 번역문장을 생성해내는데, 하나를 번역할 때마다 다시 Input으로 가져와서 활용한다. 이렇게 가져온 단어로 QKV를 만들어 첫 번째 multi-head Attention을 통과한 뒤 다음 head를 위한 Q만 가져온다(번역본의 문장 정보를 반영). 이 때 K와 V는 Encoder의 output에서 가져온다.(이는 프랑스어 원본 문장의 정보를 반영). 마찬가지로 Feed forward를 N번 진행하여 번역된 단어를 하나씩 산출해낸다.

- Self attention은 단어의 위치정보를 활용하지 않는다. Positional Encoding은 sin/cos함수를 통해 단어의 위치를 산출해낸다. 이는 word embedding vector에 대응하는 동일한 차원의 positional embedding vector을 활용한다. 해당 식에서 pos는 단어의 위치, i는 벡터의 각각행, d는 차원을 의미한다. 짝수(0포함)는 sin, 홀수는 대응하는 cosine 함수를 활용. positional vector의 값은 sin/cos값들로 채워진다. positional encoding은 encoder에 input으로 들어간다. 이들이 하는 것은 ResNet의 residual block과 같은 역할을 한다.

- Add & Norm은 Batch norm의 역할을 수행한다.

- Masked multi-Head attention은 training에만 사용된다. training은 완벽하게 번역된 결과물을 가지기 때문에, 문장의 뒷부분 정답을 가려서 지금까지 모델이 잘 했는지를 평가하는 데에 활용된다.

+ Recent posts