하나의 임베딩 벡터에 대해 $Q,K,V$를 하나만 만드는 것이 아니라, N개를 만드는 것.
이에 따라 결과적으로 Output 벡터의 크기가 N배가 된다.
이를 다시 원래 output 벡터의 크기로 줄여주는 Linear Map을 적용하여 기존과 동일한 크기로 만든다.
다양한 Attention 특징을 가지는 여러 개의 Head를 생성한다.
단일 Attention 보다, h개의 Attention 구조가 더 성능이 뛰어나다.
이론상으로는 위처럼 설명하지만, 실제로 구현된 방식은 살짝 다르다.
만약 N-head Attention의 경우, output벡터의 크기가 N배가 되는 것이 아니라, 임베딩 벡터를 N개로 나눈다.
이후 N개로 나누어진 임베딩 벡터 각각에 대해 $Q,K,V$를 만들어서 합친다.
최종적으로 Output 벡터의 크기는 마찬가지로 동일하다.
즉, 연산 과정에서 N이 곱해진 차원을 쓰는 것이 아니라, N으로 나눈 크기의 차원을 사용한다.