멀티헤드 어텐션 (Multi-Head Attention)

컴퓨터과학·AI
한 줄 정의: 어텐션 연산을 여러 개의 독립적인 헤드로 나누어 병렬로 수행한 뒤 그 결과를 합쳐서 다양한 관점의 관계를 동시에 포착하는 기법.

쉽게 풀면

하나의 어텐션 메커니즘만 사용하면 한 가지 기준으로만 단어들 사이의 관계를 살펴보게 돼요. 멀티헤드 어텐션은 어텐션 연산을 여러 개의 독립적인 '헤드'로 나누어 동시에 수행하는데, 각 헤드가 서로 다른 부분 공간에서 서로 다른 종류의 관계(예: 하나는 문법적 관계, 하나는 의미적 관계)에 주목하도록 학습됩니다. 마치 같은 문장을 여러 명의 전문가가 각자 다른 관점에서 동시에 분석한 뒤 의견을 종합하는 것과 비슷해요. 이렇게 여러 관점을 병렬로 결합함으로써 트랜스포머가 훨씬 풍부하고 다양한 문맥 정보를 포착할 수 있게 됩니다.

왜 중요한가

멀티헤드 어텐션은 트랜스포머 아키텍처의 핵심 구성요소로, 자연어처리뿐 아니라 이미지, 음성, 멀티모달 모델에 이르기까지 폭넓게 재사용되고 있습니다. 단일 어텐션보다 다양한 유형의 관계를 동시에 표현할 수 있어 모델의 표현력을 크게 높이며, 이 때문에 대규모 언어모델과 비전 트랜스포머를 다루는 논문에서 거의 예외 없이 등장하는 기본 구성요소로 다뤄집니다.

논문에서는 이렇게 쓰입니다

"트랜스포머 인코더는 8개의 헤드를 가진 멀티헤드 어텐션으로 구성되었다."

어텐션 연산을 8개의 독립된 헤드로 나누어 병렬 수행하고 그 결과를 결합하는 구조를 사용했다는 뜻이다.

"비전 트랜스포머는 이미지 패치 시퀀스에 멀티헤드 셀프어텐션을 적용하여 패치 간 전역적 관계를 학습하였다."

이미지 처리 분야에서 이미지를 패치 단위로 나눈 뒤 멀티헤드 어텐션으로 패치들 사이의 관계를 학습한 예다.

"디코더의 교차 어텐션 층에서는 멀티헤드 구조를 통해 소스 문장의 여러 부분에 동시에 주목할 수 있었다."

기계번역 모델에서 디코더가 입력 문장의 여러 부분을 다양한 헤드로 동시에 참조하는 구조를 설명한 예다.

조금 더 깊게 보면

멀티헤드 어텐션 논문을 읽을 때는 헤드 수와 각 헤드의 차원(head dimension)이 전체 모델 차원을 어떻게 나누어 구성되는지, 그리고 헤드별 결과가 최종적으로 선형변환을 거쳐 어떻게 하나로 합쳐지는지를 함께 살펴보는 것이 도움이 됩니다. 최근에는 계산 비용과 메모리 사용량을 줄이기 위해 여러 헤드가 키와 값을 공유하는 멀티쿼리 어텐션이나 그룹쿼리 어텐션 같은 변형 기법도 연구되고 있습니다.

주의할 점

헤드 개수를 늘린다고 항상 성능이 좋아지는 것은 아니며, 오히려 일부 헤드는 학습 후에 거의 중복되거나 불필요한 역할을 하는 경우도 있다는 연구가 있다.

관련 용어