Self-Attention과 Q·K·V: 토큰이 참고할 정보를 고르는 계산
Q·K·V는 같은 입력 토큰 표현에 서로 다른 학습 행렬을 적용해 만든 벡터이며, Query와 Key의 유사도로 가중치를 구한 뒤 그 가중치로 Value를 합쳐 새 표현을 만듭니다.
Q는 무엇을 찾을지, K는 무엇과 맞는지, V는 어떤 내용을 전달할지라는 비유가 유용하지만 실제로는 모두 학습된 연속 벡터 계산입니다.
AI 핵심 지식 52편 중 14편입니다. 제품 화면이 바뀌어도 남는 원리와 판단 기준을 다룹니다.
셀프어텐션 계산의 네 단계
| 단계 | 계산 의미 | 주의할 해석 |
|---|---|---|
| Q·K·V 투영 | 입력 표현을 서로 다른 가중치 행렬로 변환 | 사람이 붙인 의미 범주가 아님 |
| 호환도 점수 | 각 Query와 Key의 내적으로 관련성 후보 계산 | 점수 자체는 확률이 아님 |
| 마스크·정규화 | 허용 위치만 남기고 소프트맥스로 가중치 변환 | 마스크 규칙에 따라 정보 방향이 달라짐 |
| Value 가중합 | 가중치에 따라 Value를 섞어 새 문맥 표현 생성 | 가중치만으로 인과 설명 불가 |
한 어텐션 머리의 계산 순서
- 입력 토큰 표현에 세 투영 행렬을 적용해 Q·K·V를 만든다.
- 각 Query와 모든 허용된 Key의 내적 점수를 계산한다.
- 차원 크기로 점수를 조정하고 필요한 위치에 마스크를 씌운다.
- 소프트맥스로 합이 정규화된 가중치를 만든다.
- 가중치로 Value를 합친 뒤 여러 머리의 출력을 결합한다.
Q·K·V는 세 개의 문서 창고가 아니라 세 가지 투영이다
셀프어텐션은 같은 시퀀스의 입력 표현에서 Query, Key, Value를 각각 계산한다. 각 토큰 벡터에 서로 다른 학습 행렬을 곱하므로 한 토큰도 세 공간에서 다른 좌표를 갖는다. Query는 현재 위치가 어떤 정보를 모을지, Key는 다른 위치가 어떤 질의와 맞을지, Value는 선택됐을 때 전달할 내용을 담는다는 비유로 설명할 수 있다. 그러나 이 역할은 사람이 미리 단어 종류를 분류해 넣은 것이 아니며 학습 과정에서 과업 손실을 줄이도록 형성된다. Q가 질문 문장이고 K가 검색 색인이며 V가 정답 문장으로 저장된다는 해석은 지나치게 문자적이다. 실제 값은 층과 머리마다 새로 계산되는 벡터다. 이 점을 잡으면 셀프어텐션이 외부 검색 시스템이 아니라 현재 입력 표현을 재조합하는 신경망 연산이라는 경계가 분명해진다.
Query와 Key의 점수는 Value를 섞을 비율이 된다
한 위치의 Query와 여러 위치의 Key 사이 내적은 서로 얼마나 호환되는지 나타내는 원시 점수를 만든다. 원 논문의 scaled dot-product attention은 벡터 차원이 커질 때 내적 규모가 커지는 문제를 줄이기 위해 Key 차원의 제곱근으로 점수를 나눈다. 이후 인과 마스크나 패딩 마스크로 볼 수 없는 위치를 제외하고 소프트맥스를 적용한다. 이렇게 얻은 가중치는 허용된 위치들 사이에서 정규화되며, 각 위치의 Value 벡터를 가중합하는 데 쓰인다. 출력은 특정 토큰 하나를 복사한 결과가 아니라 여러 Value 성분이 섞인 새 벡터다. 따라서 높은 점수는 그 계산에서 큰 비중을 뜻하지만, 모델 전체의 최종 예측에 단독으로 얼마나 기여했는지까지 바로 말해 주지는 않는다. 뒤의 층과 잔차 경로가 표현을 계속 바꾸기 때문이다.
멀티헤드는 같은 문맥을 여러 투영 공간에서 본다
멀티헤드 어텐션은 Q·K·V 차원을 여러 머리로 나누거나 머리별 투영을 만들어 어텐션을 병렬 계산한 뒤 결과를 이어 붙여 다시 투영한다. 각 머리가 문법, 거리, 지시어처럼 사람이 이름 붙일 수 있는 하나의 관계만 담당한다고 보장되지는 않는다. 일부 패턴이 관찰될 수 있어도 머리의 기능은 층과 입력에 따라 겹치거나 분산될 수 있다. 머리 수가 많다는 사실만으로 더 풍부한 추론을 한다고 결론낼 수도 없다. 중요한 것은 전체 표현 차원, 학습 데이터, 블록 구성과 과업 성능이다. 구현을 검토할 때는 Q·K·V의 모양, 머리별 차원, 마스크 방송 방식과 출력 결합을 확인해야 한다. 축을 잘못 바꾸거나 마스크를 반대로 적용하면 코드는 실행되더라도 미래 토큰이 새거나 패딩에 주목하는 조용한 오류가 생길 수 있다.
어텐션 지도는 진단 단서이지 완전한 설명이 아니다
어텐션 가중치를 시각화하면 특정 위치가 어느 토큰의 Value를 많이 섞었는지 볼 수 있어 마스크 오류나 반복 패턴을 진단하는 데 유용하다. 하지만 가중치가 높다고 그 토큰이 최종 답의 인간적 이유라고 단정하면 안 된다. Value 벡터의 방향과 크기, 출력 투영, 잔차 연결, 뒤이어 오는 층이 결과에 함께 작용한다. 서로 다른 가중치 분포가 비슷한 출력을 만들 수도 있고, 작은 가중치의 정보가 특정 차원에서 중요할 수도 있다. 설명 가능성을 평가하려면 어텐션 지도뿐 아니라 입력 제거, 반사실적 변경, 기울기 기반 분석과 최종 출력 변화를 함께 살펴야 한다. 특히 안전이나 의료처럼 근거 설명이 중요한 환경에서는 어텐션 이미지를 출처 인용으로 대체할 수 없다. 계산 경로를 보여 주는 도구와 사실을 입증하는 근거는 다른 역할을 가진다.
판단 체크리스트
- Q·K·V 텐서의 배치·머리·길이·차원 축을 기록한다.
- 패딩과 인과 마스크가 점수 정규화 전에 적용되는지 확인한다.
- 소프트맥스 축이 참고할 토큰 위치 축인지 검사한다.
- 가중치 시각화는 개입 실험과 최종 출력 변화로 보완한다.
자주 생기는 오해
- Q는 실제 질문, K는 단어 목록, V는 저장된 정답이다 — 세 요소는 각 층에서 입력 표현을 서로 다른 행렬로 투영해 얻는 연속 벡터다.
- 어텐션 가중치가 가장 큰 토큰이 답의 이유다 — 가중치는 한 연산의 혼합 비중이며 모델 전체의 인과적 설명과 동일하지 않다.
Q·K·V 해석에서 멈춰야 하는 과장
| 상황 | 해석 | 다음 행동 |
|---|---|---|
| Q·K·V를 고정 의미로 명명 | 머리·층·입력마다 학습 표현이 달라짐 | 투영과 텐서 모양부터 확인 |
| 가중치가 높아 원인이라 단정 | 잔차·Value·후속 층 기여를 누락 | 개입 실험과 출력 변화 병행 |
| 마스크 없이 생성 학습 | 미래 토큰 정보가 누출될 수 있음 | 인과 마스크와 손실 정렬 검사 |
자주 묻는 질문
셀프어텐션에서 Q·K·V 입력은 모두 같은가?
기본 셀프어텐션에서는 같은 입력 시퀀스 표현에서 출발하지만 서로 다른 투영을 적용합니다. 교차 어텐션에서는 Query와 Key·Value의 출처가 다를 수 있습니다.
왜 내적 점수를 차원 크기로 나누나?
차원이 커질수록 내적 크기가 커져 소프트맥스가 지나치게 뾰족해질 수 있어 규모를 조정합니다. 원 구조는 Key 차원의 제곱근을 사용합니다.
인과 마스크는 무엇을 막나?
현재 위치가 아직 생성되지 않은 미래 위치를 참고하지 못하게 점수를 차단합니다. 다음 토큰 학습에서 정답 누출을 방지합니다.
멀티헤드마다 사람이 의미를 붙일 수 있나?
관찰되는 패턴에 임시 이름을 붙일 수는 있지만, 한 머리가 고정된 언어 규칙을 독점한다고 일반화하려면 별도 실험이 필요합니다.
관련 좌표
작성·검증 정보
- 작성·검토: AI좌표 편집부
- 원문 확인일: 2026-07-27
- 다음 재검토일: 2027-01-27
- 재검토 조건: 원 논문의 정정·철회, 표준 정의 변경, 장기 평가에서 핵심 반례가 확인될 때
댓글
댓글 쓰기