Transformer Details self-attention을 여러 번 중첩한 multi-head attention은 encoder / decoder 둘 다에서 쓰입니다. encoder부터 살펴보면, 주어진 입력 문장에 대해 multi-head attention을 수행하고 이를 feed forward합니다. 이 과정을 n번 반복합니다. (논문에서는 n=6으로 세팅했습니다) 즉, attention head를 8번 중첩해서 concat하고 forward하는 것을 6번 반복합니다. 이를 통해 입력 문장에 대해 각 단어(token) 간의 관계를 바탕으로 이해를 마칩니다. decoder는 문장의 시작을 알리는 토큰으로 시작합니다. 이를 시작으로 multi-head attention을 적용하여 구한 것을 다음 m..
Multi-Head Attention 어떤 질문에 대해 각 단어를 답변 후보로 생각하고 그 관계를 통해 score를 구한 것이 self-attention이었습니다. 이를 head라고 부르고, 이 과정을 여러 번 반복하여 중첩한 것이 multi-head attention입니다 여기에서는 8개의 head를 중첩한 것을 예로 들었는데 사실 그게 기본 구조여서 그렇습니다. 이를 해석하는 것은 이전의 attention에서의 질문이 what's happening here? 이었다면, when, who 등등 문장에 대해 주어질 수 있는 여러 개의 질문들로 볼 수 있습니다. (물론 사람이 부여하는 의미일 뿐이겠지만요) 최종적으로 이렇게 구한 여러 개의 head를 concat하면 됩니다. 출처: Coursera, Seq..
Self-Attention Intuition RNN에서 사용했던 attention과 다른 attention을 도입합니다. 여기서 사용하는 self-attention은 각 단어에 대해 다른 단어와의 관계를 Q,K,V에 대한 식으로 수치화합니다. Self-Attention 결론적으로 말하자면 Q와 K를 내적한 뒤 차원의 수로 normalize하고, 여기에 V를 곱하여 softmax를 취한 것이 attention score가 됩니다. 이때 Q, K, V는 각 입력에 대해 각각의 가중치를 가지게 됩니다. 이 수식은 Q가 일종의 질문을 의미하게 되고, 이 질문에 대한 답변 후보가 K, 그리고 이 답변이 어떤 식으로 표현되어야 하는지를 V로 정한다고 합니다. 사실 굉장히 추상적이라서 와닿지는 않아서 논문을 직접 읽..