Multi-Head Attention이란? 여러 Head가 서로 다른 관계를 찾는 원리
지난 글에서는 하나의 Self-Attention Head가 입력 X에서 Q·K·V를 만들고, 점수 행렬과 Softmax를 거쳐 문맥 벡터를 만드는 전 과정을 계산했습니다. 그런데 실제 Transformer는 이 계산을 한 번만 수행하지 않습니다. 여러 Attention Head를 병렬로 실행한 뒤 결과를 합칩니다. Multi-Head Attention의 핵심은 같은 계산을 똑같이 반복하는 것이 아닙니다. 각 Head가 서로 다른 학습 가중치로 입력을 투영하기 때문에 같은 문장에서도 다른 관계를 볼 수 있습니다. 이번 글에서는 Head마다 무엇이 달라지는지, 결과를 어떻게 합치는지, 차원과 계산량은 어떻게 연결되는지 살펴보겠습니다. 왜 Attention Head를 여러 개 사용할까? 문장 안에는 한 종류의 관계만 있는 것이 아닙니다. “철수가 사과를 먹었다. 그것은 달았다”에는 주어와 동사의 관계, 목적어와 동사의 관계, 대명사와 지시 대상의 관계, 가까운 단어 사이의 관계가 함께 존재합니다. 하나의 Head도 여러 관계를 표현할 수 있지만, 하나의 가중치 분포로 모든 관점을 섞으면 중요한 패턴이 평균화될 수 있습니다. 여러 Head는 입력을 서로 다른 표현 공간으로 투영하고 각 공간에서 독립적인 Attention을 계산합니다. Transformer 원 논문 도 Multi-Head Attention이 서로 다른 위치와 표현 부분공간의 정보를 함께 참고할 수 있게 한다고 설명합니다. Head마다 무엇이 다를까? 각 Head는 자기만의 WQ, WK, WV를 가집니다. Head i의 계산은 다음처럼 표현할 수 있습니다. Qᵢ = XWQᵢ Kᵢ = XWKᵢ Vᵢ = XWVᵢ headᵢ = Softmax(QᵢKᵢᵀ / √dₖ)Vᵢ 입력 X는 같지만 가중치 행렬이 다르므로 Qᵢ·Kᵢ·Vᵢ도 달라집니다. 따라서 Attention Score와 최종 Head 출력도 달라집니다. Head 1이 높은 점수를 주는 토큰 쌍과 Head 2가 강조하는 ...