위키득계정 ↗
기술

멀티헤드 어텐션

멀티헤드 어텐션기술
영문명
Multi-head attention
기본 단위
어텐션 헤드
주요 학습 값
질의·키·값과 출력의 투영
결합 방식
헤드 출력을 이어 붙인 뒤 투영
멀티헤드 어텐션은 여러 개의 어텐션 계산을 서로 다른 학습 투영으로 수행한 뒤 결과를 결합하는 방법이다. 각 헤드는 질의·키·값 표현을 따로 사용한다. 단일 가중합 하나로 정보를 모으는 대신 여러 표현 공간의 결과를 함께 활용한다.

여러 투영에서 계산하기

헤드마다 입력을 질의 Q, 키 K, 값 V로 투영한다. 키 차원이 d인 대표적인 배율 내적 방식은 softmax(QKᵀ/√d)V를 계산한다. 소프트맥스는 각 질의에서 참조할 키들에 대해 적용한다. 각 헤드의 결과는 연결한 뒤 출력 투영을 거친다.

두 헤드의 예

한 질의에 대해 첫 헤드가 두 값 (2,10)을 가중치 (1/4,3/4)로 결합하면 8이다. 두 번째 헤드가 값 (4,0)을 가중치 (1/2,1/2)로 결합하면 2다. 헤드 연결 결과는 (8,2)이며, 출력 투영을 가중치 (1,-1)인 한 출력으로 정하면 최종 값은 6이다. 이는 학습된 점수와 값을 가정한 결합 예제다.

헤드 수와 출력 크기

헤드 4개에서 각 값 벡터가 길이 8이면 연결된 특징은 길이 32다. 이후 출력 투영을 길이 16으로 정할 수도 있다. 헤드 수에 따른 중간 크기와 최종 출력 크기를 동일시하면 안 된다. 입력 채널을 단순히 네 덩어리로 잘라 학습 없이 사용하는 방법도 아니다.

자기 어텐션과 마스크

질의와 키·값이 같은 입력 표현에서 출발하면 자기 어텐션 구성이다. 다른 자료에서 출발하면 교차 참조 형태로 쓸 수 있다. 미래 위치를 막는 인과 마스크는 별도 규칙이며, 헤드가 여러 개라고 자동으로 적용되지는 않는다.

관련 문서

내적 어텐션 / 소프트맥스 / 임베딩 층 / 완전연결 층 / 층 정규화 / 드롭아웃 / 인공 신경망