Logo
Published on

Transformer 기초: Q, K, V 직관

Authors

왜 필요한가요

Attention 논문을 읽다가 가장 먼저 막히는 지점이 Query, Key, Value입니다.
이 세 단어는 이름은 익숙하지만, 실제 수식 안에서는 역할이 다릅니다.

이 노트를 읽으면 아래 수식을 만났을 때 덜 막힙니다.

Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) V

원본 개념과 수식

Attention의 핵심 수식은 다음입니다.

Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) V

여기서 세 요소의 역할은 분리해서 봐야 합니다.

  • Q: 지금 위치의 토큰이 찾고 싶은 정보입니다.
  • K: 각 토큰이 자신을 찾을 수 있게 내놓은 라벨입니다.
  • V: 실제로 가져갈 내용입니다.

계산 흐름은 다음과 같습니다.

1. Q와 K를 비교해 점수를 만듭니다.
2. 점수를 softmax로 비율로 바꿉니다.
3. 그 비율로 V를 섞습니다.

1차 해설: 수식이 말하는 것

QK^T는 "누가 누구를 얼마나 봐야 하는가"를 계산하는 단계입니다.
softmax는 그 점수를 참고 비율로 바꾸는 단계입니다.
마지막의 V는 실제 내용을 가져오는 단계입니다.

즉, Q와 K는 찾기용이고, V는 내용용입니다.

Q와 K: 매칭 점수 만들기
V: 점수에 따라 섞이는 실제 정보

쉬운 예시

도서관에서 책을 찾는다고 하겠습니다.

  • Query: "Transformer에서 BERT가 뭔지 알고 싶다"라는 질문입니다.
  • Key: 각 책의 색인 카드입니다.
  • Value: 책 안의 실제 본문입니다.

먼저 질문(Query)과 색인 카드(Key)를 비교합니다.
가장 관련 있는 책의 색인 카드가 높은 점수를 받습니다.
그 다음 실제 본문(Value)을 읽습니다.

색인 카드만 보고 끝나지 않습니다.
색인 카드는 찾기 위한 도구이고, 최종적으로 가져가는 것은 본문입니다.

논문에서 다시 만났을 때 읽는 법

논문에서 multi-head attention을 보면 이렇게 읽으면 됩니다.

Q, K, V 비교를 여러 관점에서 동시에 수행한다.

하나의 head는 문법 관계를 볼 수 있고, 다른 head는 위치 관계를 볼 수 있습니다.
정확히 어떤 head가 무엇을 보는지는 학습 결과에 따라 다르지만, 핵심은 여러 비교 방식을 병렬로 둔다는 점입니다.

자주 하는 오해

  • Q, K, V가 원래 입력에서 완전히 다른 데이터는 아닙니다.
  • 보통 같은 토큰 표현에서 서로 다른 선형 변환을 거쳐 Q, K, V가 만들어집니다.
  • Q와 K는 점수 계산용이고, V는 최종 출력에 섞이는 정보입니다.

최소 체크포인트

  • Q는 "무엇을 찾는가"입니다.
  • K는 "무엇으로 찾히는가"입니다.
  • V는 "실제로 가져갈 내용"입니다.
  • Attention 출력은 관련도에 따라 여러 V를 섞은 문맥 벡터입니다.