
셀프 어텐션의 모든 것: 단어들이 서로를 바라보는 법
2016년 '같은 문장 안에서 단어끼리 서로를 바라보게 하자'는 아이디어가 등장했다. 1년 뒤 트랜스포머가 이를 핵심 엔진으로 삼았고, GPT부터 AlphaFold까지 모든 현대 AI의 심장이 되었다. 셀프 어텐션의 탄생, 작동 원리, 변형, 그리고 미래를 추적한다.

2016년 '같은 문장 안에서 단어끼리 서로를 바라보게 하자'는 아이디어가 등장했다. 1년 뒤 트랜스포머가 이를 핵심 엔진으로 삼았고, GPT부터 AlphaFold까지 모든 현대 AI의 심장이 되었다. 셀프 어텐션의 탄생, 작동 원리, 변형, 그리고 미래를 추적한다.

"나는 은행에서 돈을 찾았다."
이 문장에서 "은행"의 의미를 이해하려면, "돈"이라는 단어를 봐야 한다. "나는 강가의 은행에 앉았다"라면 "강가"를 봐야 한다. 같은 단어라도 주변 단어와의 관계에 따라 의미가 완전히 달라진다.
인간은 이것을 무의식적으로 한다. 문장을 읽을 때, 각 단어가 다른 모든 단어와의 관계 속에서 의미를 갖는다는 것을 즉각적으로 파악한다.
셀프 어텐션(Self-Attention) 은 신경망에게 이 능력을 부여한 메커니즘이다. 외부 입력이 아니라 같은 시퀀스 내에서 각 요소가 다른 모든 요소를 참조하여 자신의 표현을 풍부하게 만드는 것 — 마치 단어들이 회의실에 둘러앉아 서로를 바라보며 "나는 이 맥락에서 이런 뜻이야"라고 확인하는 것과 같다.
놀랍게도, 셀프 어텐션의 수학적 원형은 1982년에 이미 존재했다. 물리학자 존 홉필드(John Hopfield) 가 제안한 홉필드 네트워크는 연상 기억(associative memory) 시스템이다 — 기억의 일부가 주어지면 전체를 복원하는, 일종의 "자기 참조적" 네트워크.
2020년, 린츠 요하네스 케플러 대학의 람자우어(Ramsauer) 등이 "Hopfield Networks is All You Need"(ICLR 2021)에서 결정적 연결을 증명했다:
트랜스포머의 어텐션 메커니즘은 연속 상태를 가진 현대적 홉필드 네트워크의 업데이트 규칙과 수학적으로 동치다.
홉필드는 이 공헌으로 2024년 노벨 물리학상을 수상했다.
컴퓨터 비전에서도 비슷한 아이디어가 독립적으로 발전했다. 뷔아드(Buades) 등이 2005년 CVPR에서 발표한 비로컬 평균(Non-Local Means) 은 이미지 노이즈 제거를 위해, 각 픽셀의 값을 이미지 내 모든 픽셀의 가중 평균으로 계산했다 — 유사한 이웃일수록 높은 가중치를 부여하면서.
이것은 본질적으로 이미지 영역에서의 셀프 어텐션이다. 2018년 왕샤오롱(Wang) 등이 "Non-local Neural Networks"(CVPR 2018)로 이 연결을 명시적으로 확립했다.
2014년 바단아우의 어텐션은 인코더와 디코더 사이의 관계를 봤다 (크로스 어텐션). 2016년, 새로운 질문이 등장했다: 같은 시퀀스 내에서 단어끼리의 관계를 볼 수 있다면?

2017년 트랜스포머 논문의 Table 1이 핵심을 요약한다:
| 속성 | 셀프 어텐션 | 순환(RNN) | 합성곱(CNN) |
|---|---|---|---|
| 층당 복잡도 | O(n²·d) | O(n·d²) | O(k·n·d²) |
| 순차 연산 | O(1) | O(n) | O(1) |
| 최대 경로 길이 | O(1) | O(n) | O(log_k(n)) |
세 가지 결정적 이점:
Attention(Q, K, V) = softmax(QK^T / √d_k) × V
셀프 어텐션에서는 Q, K, V가 모두 같은 입력에서 나온다. 이전 층의 출력 X에 세 가지 가중치 행렬을 곱해 생성:
√d_k 스케일링이 필요한 이유: 차원이 커지면 내적 값이 커지고, softmax가 극단적인 분포(거의 원-핫)가 되어 기울기가 소실된다. √d_k로 나눠 적절한 분산을 유지한다.
8개의 어텐션 헤드가 서로 다른 관계 유형을 병렬로 학습한다:
GPT, Claude, Gemini 같은 디코더 전용 LLM은 인과적 마스킹(causal masking) 을 적용한다. 위치 i는 0~i까지만 볼 수 있고, i+1 이후는 -∞로 마스킹된다 (softmax 후 0이 됨). 이렇게 해야 자기회귀적 생성 — "이전 단어만 보고 다음 단어를 예측" — 이 가능하다.
어텐션 가중치가 모델의 의사결정을 "설명"한다는 통념에 대해, 자인과 월리스(NAACL 2019) 가 도전장을 던졌다:
결론: "표준 어텐션 모듈은 의미 있는 설명을 제공하지 않는다."
같은 해, 비그레페와 핀터(EMNLP 2019) 가 반박했다:
"그러한 주장은 '설명'의 정의에 달려 있으며, 검증은 모델의 모든 요소를 고려해야 한다."
그들이 제안한 4가지 진단 테스트에서, 적대적 어텐션은 실제로 낮은 성능을 보였다 — 어텐션이 완전히 무의미한 것은 아니라는 반증.
이 논쟁은 현재도 진행 중이다. 어텐션은 완전한 설명은 아니지만, 유용한 단서라는 것이 중론이다.
도소비츠키(Dosovitskiy) 등이 2020년 발표한 "An Image is Worth 16×16 Words"는 대담한 실험이었다 — 이미지를 16×16 픽셀 패치로 잘라 토큰처럼 취급하고, 순수 트랜스포머에 넣는 것이다.
핵심 발견: 충분히 큰 데이터(1억+ 이미지)로 사전 학습하면, ViT가 CNN을 능가한다. MLP 층은 지역적이지만, 셀프 어텐션은 전역적(global) — 첫 번째 층부터 이미지의 어느 영역이든 직접 참조할 수 있다.
카롱(Caron) 등의 DINO(ICCV 2021)에서 놀라운 발견이 있었다. 자기지도 학습으로 훈련된 ViT의 어텐션 맵이 의미적 세그멘테이션 정보를 자연스럽게 포함하고 있었다 — 사람에게 "이 물체를 분리하라"고 명시적으로 가르치지 않았는데도.
각 어텐션 헤드가 의미적으로 일관된 이미지 영역에 집중했고, 어텐션 맵 자체가 세그멘테이션 마스크처럼 보였다. 이는 셀프 어텐션이 단순한 패턴 매칭이 아니라 시각적 의미 이해를 수행한다는 강력한 증거다.
Meta AI의 SAM(Segment Anything Model) 은 ViT-H/16 인코더에 윈도우 어텐션 + 글로벌 어텐션을 결합했다. 11억 개 이상의 마스크 데이터로 학습하여, 새로운 이미지와 과제에 제로샷 전이가 가능하다.

셀프 어텐션의 가장 큰 약점은 O(n²) 복잡도다. 시퀀스가 길어지면 모든 쌍의 어텐션을 계산하는 비용이 폭증한다. 이를 해결하기 위한 혁신들:
자기회귀 생성에서 매 토큰마다 이전 토큰의 K, V를 재계산하는 것은 낭비다. KV 캐시는 이전에 계산된 K, V 벡터를 GPU 메모리에 저장해, 새 토큰의 K, V만 추가 계산한다. 긴 시퀀스에서는 수 GB에 달할 수 있어, 이를 줄이는 것이 핵심 과제다.
셀프 어텐션은 본질적으로 순서를 모른다 (치환 등변). 위치 정보를 주입하는 방법이 계속 진화 중이다:
| 방법 | 핵심 아이디어 | 채택 |
|---|---|---|
| 사인/코사인 (2017) | 고정된 삼각함수 | 원본 트랜스포머 |
| 학습 가능 | 위치별 학습 벡터 | BERT, GPT-1 |
| RoPE (Su et al., 2021) | 위치에 따른 회전, 상대 위치만 의존 | LLaMA, Mistral, PaLM |
| ALiBi (Press et al., 2021) | QK^T에 거리 비례 감쇠 추가 | BLOOM |
RoPE가 현재 가장 널리 사용된다. Q와 K 벡터를 위치에 따라 회전시키면, 내적이 상대 위치에만 의존하게 되어 학습하지 않은 길이로의 외삽이 가능해진다.
알파폴드2의 에보포머(Evoformer) 는 48개 블록의 어텐션 기반 층으로 구성된다:
CASP14에서 GDT 92.4/100 — 실험적 방법에 필적하는 정확도.
Music Transformer (Huang, Vaswani, Uszkoreit et al., ICLR 2019)는 상대적 셀프 어텐션으로 분 단위의 음악을 생성했다. 셀프 어텐션이 멀리 떨어진 악절 간의 구조적 반복을 포착한다.
벨리치코비치(Veličković) 등 (ICLR 2018)의 GAT는 그래프의 각 노드가 이웃 노드에 마스크드 셀프 어텐션을 적용한다. 이웃마다 다른 가중치를 암묵적으로 학습 — 그래프 구조를 사전에 알 필요 없이.
Google DeepMind의 RT-2 (2023)는 로봇 행동을 텍스트 토큰으로 표현하여 비전-언어-행동 모델을 구축했다. 셀프 어텐션이 시각 입력, 언어 명령, 행동 출력을 하나의 시퀀스로 통합 처리한다. 새로운 시나리오 성능이 RT-1의 32%에서 **62%**로 향상.
2016년, 에든버러 대학교의 연구자들이 "같은 문장 안에서 단어끼리 서로를 바라보게 하자"는 아이디어를 논문으로 썼다. 그로부터 10년, 이 메커니즘은 텍스트를 읽고, 이미지를 보고, 단백질을 접고, 음악을 작곡하고, 로봇을 움직이는 현대 AI의 심장이 되었다.
셀프 어텐션의 핵심은 놀랍도록 단순하다:
"각 요소가 다른 모든 요소와의 관계 속에서 자신의 의미를 찾는다."
"은행"이라는 단어는 홀로 있으면 모호하다. 하지만 "돈"을 보면 금융기관이 되고, "강가"를 보면 둑이 된다. 이미지의 한 패치도 주변 패치와의 관계에서 의미를 갖는다. 아미노산도 다른 아미노산과의 상호작용에서 구조가 결정된다.
홉필드가 1982년에 연상 기억을 설계했을 때, 뷔아드가 2005년에 비로컬 평균을 계산했을 때, 그들은 같은 직관을 따르고 있었다 — 의미는 관계에서 나온다.
셀프 어텐션은 이 직관을 수학으로 번역한 것이다. 그리고 그 번역이 인공지능의 모든 것을 바꿨다.