Part 6 · Self-Attention - From Multiple Views to One Representation

여러 관점을 하나의 문맥 표현으로 완성하다

Multi-Head Attention에서는 여러 Head가 같은 문장을 서로 다른 관점에서 분석합니다. 어떤 Head는 단어의 의미 관계를 살펴보고, 어떤 Head는 문법적인 연결에 주목하며, 또 다른 Head는 멀리 떨어진 단어 사이의 관계를 더 중요하게 반영할 수도 있습니다. 하지만 여러 개의 결과를 그대로 사용할 수는 없습니다. 모델은 각 Head가 만들어 낸 다양한 정보를 하나의 벡터로 다시 결합하여 최종 문맥 표현을 만듭니다. 이렇게 완성된 표현은 이후 Feed Forward Network와 Residual Connection을 거치며 하나의 Transformer 블록을 구성하게 됩니다.

A Team Report Story

여러 전문가의 의견을 하나의 보고서로 합친다

프로젝트 회의가 끝났습니다. 네 명의 전문가가 같은 회의를 보고 서로 다른 내용을 정리했습니다.

기

기획자

목표와 사용자 요구를 정리했습니다.

개

개발자

기술 구조와 구현 방법을 정리했습니다.

디

디자이너

화면과 사용자 경험을 정리했습니다.

운

운영 담당

일정과 운영 조건을 정리했습니다.

이 네 의견을 따로 보관할 수도 있지만, 실제 결정을 하려면 하나의 보고서로 정리하는 편이 좋습니다.

Multi-Head Attention도 같습니다. 각 Head가 만든 결과를 모아 하나의 더 풍부한 표현으로 정리합니다.
Each Head Produces a Vector

각 Head는 자신만의 결과 벡터를 만든다

Head 1은 사람 관계를, Head 2는 장소 관계를, Head 3은 행동 관계를, Head 4는 전체 연결을 잘 본다고 가정해 봅시다.

Head 1 결과
0.8 0.2

사람 관계 정보

Head 2 결과
0.1 0.9

장소 관계 정보

Head 3 결과
0.7 0.4

행동 관계 정보

Head 4 결과
0.5 0.6

전체 문맥 정보

여기서 숫자는 설명을 위한 예시입니다. 중요한 점은 각 Head가 하나의 벡터를 만든다는 것입니다.
Concatenate

먼저 결과를 옆으로 이어 붙인다

여러 Head의 결과를 합치는 첫 단계는 매우 단순합니다. 각 벡터를 앞에서부터 차례대로 옆에 붙입니다.

Head 1 0.8 0.2
Head 2 0.1 0.9
Head 3 0.7 0.4
Head 4 0.5 0.6
이어 붙인 결과
0.8 0.2 0.1 0.9 0.7 0.4 0.5 0.6
이렇게 여러 벡터를 옆으로 이어 붙이는 것을 Concatenate라고 합니다.
Why Concatenation Alone Is Not Enough

이어 붙이기만 하면 너무 길고 정리되지 않은 정보가 된다

Concatenate 직후

여러 Head의 정보가 모두 들어 있습니다.

하지만 벡터가 길고, 관점별 정보가 아직 따로 놓여 있습니다.

한 번 더 정리한 뒤

여러 관점이 서로 섞여 하나의 일관된 표현이 됩니다.

다음 Transformer 층에서 사용하기 좋은 형태가 됩니다.

Concatenate는 정보를 모으는 단계이고, 그다음에는 모인 정보를 다시 정리하는 단계가 필요합니다.
Output Projection

모아 놓은 정보를 하나의 새 표현으로 정리한다

네 전문가의 메모를 하나의 보고서로 만드는 편집자를 생각해 봅시다.

여러 Head의 결과

사람 관계 정보
장소 관계 정보
행동 관계 정보
전체 문맥 정보
→

정리된 최종 표현

여러 관점을 필요한 비율로 섞어 하나의 새로운 벡터로 만듭니다.

예: “Tom이 New York에 산다”는 사람·행동·장소 관계가 함께 담긴 표현

Transformer는 Concatenate한 벡터에 학습된 선형 변환(Linear Projection)을 적용해 하나의 최종 벡터로 정리합니다.
지금은 행렬 계산을 외울 필요가 없습니다. “여러 Head 결과를 이어 붙이고, 학습된 방식으로 다시 섞어 정리한다”라고 이해하면 충분합니다.
The Full Flow

전체 흐름은 세 단계다

여러 Head가 계산 서로 다른 관점
각 Head 결과 생성 여러 벡터
Concatenate 옆으로 이어 붙임
Linear Projection 다시 섞고 정리
최종 출력 벡터 풍부한 문맥 표현
여러 Head의 결과를 모으는 것만으로 끝나지 않고, 하나의 일관된 문맥 표현으로 다시 정리하는 것이 핵심입니다.
Try Combining Heads

Head를 하나씩 추가해 보자

버튼을 눌러 사용할 Head의 수를 바꿔보세요.

Concatenate 결과

현재 포함된 관점

Head 1만 사용하면 사람 관계 중심의 정보만 들어갑니다.
Common Misunderstandings

자주 생기는 오해

Head 결과를 평균 내면 되지 않을까?

단순 평균은 각 Head가 찾은 서로 다른 정보를 흐리게 만들 수 있습니다.

왜 학습된 Projection이 필요한가?

모델이 상황에 따라 어떤 관점을 얼마나 섞을지 학습할 수 있기 때문입니다.

Concatenate는 “정보를 모으는 방법”이고, Linear Projection은 “모은 정보를 유용하게 재구성하는 방법”입니다.
Summary

핵심 정리

  • 각 Attention Head는 자신만의 결과 벡터를 만듭니다.
  • 여러 Head의 결과를 옆으로 이어 붙이는 것을 Concatenate라고 합니다.
  • Concatenate한 벡터는 여러 관점을 모두 담지만 길고 정리되지 않은 상태입니다.
  • Transformer는 학습된 Linear Projection으로 이 정보를 다시 섞어 정리합니다.
  • 그 결과 하나의 풍부한 최종 문맥 벡터가 만들어집니다.
  • 전체 흐름은 Head별 계산 → Concatenate → Projection → 최종 출력입니다.