Attention어텐션
쉽게 이해하기
문제는 긴 시퀀스에서 멀리 떨어진 요소들 간의 관계를 잡기 어렵다는 점이었습니다. RNN은 순서대로 처리해야 해서 길어질수록 정보가 희미해지고, CNN은 지역 패턴 중심이라 전역 관계를 바로 보기 어렵습니다. 어텐션은 이 한계를 넘기 위해, 입력 전체를 훑어보며 지금 중요한 부분에 집중하도록 설계되었습니다. 비유로 말하면, 긴 글을 읽을 때 중요한 문장에 형광펜을 칠하고 그 부분만 모아 요지를 파악하는 것과 같습니다. 모델은 현재 필요한 기준(질의)에 따라 각 단어(키)와의 관련성을 점수화하고, 점수가 높은 내용(값)에 더 큰 비중을 주어 정보를 모읍니다. 그래서 문장 처음과 끝처럼 멀리 떨어진 단어들 사이의 연관도 한 번에 반영할 수 있습니다. 구체적으로는 질의(Query)·키(Key)·값(Value)라는 표현을 만들어 유사도를 계산하고 가중합을 구합니다. 트랜스포머에서는 이를 다중 시각으로 병렬 처리하는 multi-head 방식으로 확장해, 평균화로 생길 수 있는 해상도 손실을 보완하면서도 순환 없이 병렬 연산을 가능하게 합니다. 다만 시퀀스 길이에 따라 연산과 메모리가 증가하는 특성이 있어, 매우 긴 입력에서는 비용이 커집니다.
비유와 예시
- 기계 번역 단어 정렬: 출력 단어를 생성할 때, 입력 문장의 어떤 단어에 주목해야 하는지 어텐션이 가중치로 표시합니다. 멀리 떨어진 단어 간 대응 관계를 반영할 수 있습니다.
- 문서 요약의 핵심 문장 포착: 긴 문서에서 현재 요약 문장을 만들 때 중요한 문장과 구절에 높은 가중치를 주어 정보를 모읍니다. 전역적으로 문맥을 참조할 수 있습니다.
- 이미지 캡셔닝의 영역 집중: 그림 설명 문장을 생성할 때, CNN 특징 지도에서 해당 단어에 필요한 공간 위치에 더 큰 주의를 할당합니다. 시각 질문응답 같은 작업에서도 관련 영역을 선택하는 데 활용됩니다.
한눈에 비교
| Self-Attention | RNN/LSTM | CNN 기반 시퀀스 모델 | |
|---|---|---|---|
| 처리 경로 길이 | O(1) 전역 참조 | O(n) 순차 전파 | O(log_k n) 단계적 확장 |
| 병렬성 | 토큰 간 병렬 계산 | 시간축 순차 처리 | 병렬 가능(커널 한계) |
| 연산 복잡도(대략) | O(n^2·d) | O(n·d^2) | O(k·n·d^2) |
| 장점 | 장거리 의존성, 전역 컨텍스트 | 순차 동역학 | 지역 패턴 효율 |
Self-attention은 전역 문맥을 한 번에 참조해 병렬화가 유리하지만, 시퀀스 길이에 따라 메모리·연산이 급증한다는 trade-off가 있다.
어디서 왜 중요한가
- 순차 계산 축소와 병렬화: 어텐션만으로 전역 의존성을 학습해, 순환 없이도 병렬 학습이 가능해졌습니다.
- 장거리 의존성 학습 개선: 입력 내 임의 위치 간 관계를 일정 단계 수로 연결해, 멀리 떨어진 토큰 간 상호작용을 쉽게 모델링합니다.
- 모델 설계의 표준화: 인코더–디코더 연결에서 self-attention과 cross-attention이 핵심 결합부로 자리 잡았습니다.
- 멀티헤드로 표현력 보완: 단일 가중합의 해상도 저하를 다중 헤드가 서로 다른 하위공간에서 보완합니다.
- 자원 비용 인식 확산: self-attention의 시퀀스 길이 제곱 스케일 특성으로, 긴 입력 처리 시 계산·메모리 최적화가 중요한 고려사항이 되었습니다.
자주 하는 오해
- ❌ 오해: 어텐션은 항상 RNN보다 계산이 가볍다 → ✅ 실제: 병렬성은 높지만 self-attention은 길이에 따라 O(n^2)로 비용이 커질 수 있습니다.
- ❌ 오해: 어텐션만 쓰면 위치 정보가 자동으로 보존된다 → ✅ 실제: 별도의 위치 표현이 필요합니다.
- ❌ 오해: dot-product와 additive 어텐션은 동일하다 → ✅ 실제: 이론 복잡도는 비슷해도 dot-product는 행렬 곱 최적화로 더 빠르고 메모리 효율적인 경우가 많습니다.
대화에서는 이렇게
- "이번 요약 모델은 self-attention 길이 때문에 배치가 작아져요. 입력 길이 줄이거나 슬라이딩 윈도 검토합시다."
- "디코더에 cross-attention 추가하면 소스 문장 정렬이 좋아질 텐데, 헤드 수는 8로 시작해 보죠."
- "scaled dot-product로 가고, 헤드당 d_k는 64 유지하면 GPU 매트멀이 효율적이에요."
- "라벨 길이가 길어져서 O(n^2) 메모리 터집니다. 길이 버킷팅이랑 축약 전처리를 묶어야 해요."
- "인퍼런스 latency가 민감하니, 헤드 수는 그대로 두고 sequence truncation 먼저 실험해요."
함께 읽으면 좋은 용어
참고 자료
- Attention Is All You NeedNeurIPS
트랜스포머와 scaled dot-product/multi-head 어텐션 제안.
- Attention Mechanisms in Neural Networks: A Comprehensive Mathematical Treatment
어텐션/트랜스포머 수학과 복잡도 분석을 체계화.
- Neural Attention Models in Deep Learning: Survey and Taxonomy
어텐션 모델 전반의 분류와 응용 맥락을 정리.
- Attention Mechanism, Transformers, BERT, and GPT: Tutorial and Survey
어텐션과 트랜스포머 구성요소에 대한 튜토리얼.
- What is an attention mechanism?
Q/K/V 등 어텐션 개념과 역사적 맥락 소개.