어텐션 메커니즘
어텐션 메커니즘(Attention mechanism)은 인공신경망에서 입력 시퀀스의 각 요소가 출력에 기여하는 중요도를 동적으로 계산하여 반영하는 기법이다. 원래는 신경망 기계번역(NMT)에서 제안되었으며, 이후 다양한 자연어 처리와 컴퓨터 비전 분야에서 널리 활용되고 있다.
개요[편집 | 원본 편집]
전통적인 시퀀스-투-시퀀스(seq2seq) 구조에서는 인코더가 입력 시퀀스 전체를 고정된 길이의 벡터로 요약하고, 디코더가 그 벡터를 바탕으로 출력을 생성하였다. 그러나 긴 문장의 경우 정보 손실이 발생하여 성능이 제한적이었다. 어텐션 메커니즘은 출력의 각 단계마다 입력 시퀀스 전체를 다시 참조하여, 관련성이 높은 부분에 더 높은 가중치를 주고 낮은 부분에는 낮은 가중치를 주는 방식으로 문제를 해결한다.[1]
원리[편집 | 원본 편집]
어텐션은 일반적으로 쿼리(Query), 키(Key), 값(Value)의 세 가지 요소를 사용한다.
- 쿼리(Query): 현재 디코더 상태와 같은 "집중해야 할 대상"
- 키(Key): 입력 시퀀스 각 요소의 표현
- 값(Value): 실제 참조할 입력의 정보
쿼리와 키를 비교하여 유사도를 계산한 후, 이를 확률적 가중치로 변환한다. 그 가중치를 값 벡터와 결합하여 최종적으로 어텐션 출력을 생성한다.
주요 유형[편집 | 원본 편집]
인코더-디코더 어텐션
- 출력(타겟) 시퀀스의 각 단어를 생성할 때, 입력(소스) 시퀀스의 모든 단어와의 관계를 계산한다. 기계 번역 모델에서 주로 사용된다.
셀프 어텐션(Self-Attention)
- 쿼리, 키, 값이 모두 동일한 입력 시퀀스에서 생성된다. 시퀀스 내부의 토큰 간 관계를 학습할 수 있어 트랜스포머 아키텍처의 핵심 구성 요소가 되었다.
멀티헤드 어텐션(Multi-Head Attention)
- 셀프 어텐션을 병렬로 여러 번 수행하여 다양한 표현 공간에서 관계를 학습한다. 최종적으로 여러 헤드의 출력을 결합해 더 풍부한 표현을 얻는다.
응용[편집 | 원본 편집]
어텐션 메커니즘은 처음에는 기계 번역에서 제안되었으나, 이후 다양한 분야에서 사용되고 있다.
- 기계 번역, 텍스트 요약, 질의응답 등 자연어 처리 전반
- 이미지 분류, 객체 탐지, 이미지 캡셔닝 등 컴퓨터 비전
- 음성 인식 및 합성
계산 비용 및 효율화 기법[편집 | 원본 편집]
어텐션 메커니즘은 입력 시퀀스 길이를 n, 은닉 차원을 d라고 할 때, Q와 K의 내적 연산에서 n×n 크기의 어텐션 행렬을 계산해야 한다. 이 때문에 계산량은 n의 제곱에 비례하며, 긴 시퀀스를 처리할 때 연산 비용과 메모리 사용량이 크게 증가한다. 특히 셀프 어텐션(Self-Attention)은 쿼리와 키가 동일한 시퀀스에서 생성되므로 이러한 비용 문제가 두드러진다.
이 한계를 완화하기 위해 다양한 효율화 기법들이 제안되었다.
- 로컬 어텐션(Local Attention): 전체 시퀀스가 아니라 일정 범위(윈도우) 안의 토큰들만 참조하여 계산량을 줄인다. (예: Transformer-XL, Longformer)
- 희소 어텐션(Sparse Attention): 어텐션 행렬의 연결 구조를 처음부터 제한해 일부 중요한 연결만 유지한다. 이 방식은 모든 토큰 쌍을 계산하지 않기 때문에 연산량 자체를 줄일 수 있다. (예: BigBird)
- 저랭크 근사(Low-rank Approximation): 큰 어텐션 행렬을 저차원으로 근사하여 효율적으로 계산한다. (예: Linformer)
- 커널 기반 어텐션(Kernelized Attention): softmax 어텐션을 커널 함수로 근사해 계산 복잡도를 n에 비례하거나 n log n 수준으로 줄인다. (예: Performer)
- 토큰 프루닝(Token Pruning): 중요도가 낮은 토큰을 완전히 제거하거나 무시해 시퀀스 길이를 줄인다. 정보 손실이 발생할 수 있으나 효율성은 높아진다.
- 토큰 머징(Token Merging): 중요도가 낮은 토큰을 단순히 제거하지 않고, 인접하거나 유사한 토큰들을 합쳐 새로운 토큰으로 만든다. 이 방식은 시퀀스 길이를 줄이면서도 정보를 압축해 보존한다. (예: 최근 비전 트랜스포머에서의 패치 병합 기법)
이러한 기법들은 기존 어텐션의 제곱형 복잡도를 완화하여, 긴 문서 처리나 대규모 모델 학습에 널리 활용되고 있다.
역사[편집 | 원본 편집]
- 2014년: Bahdanau 등이 신경망 기계 번역에서 처음 제안
- 2015년: Luong 등이 확장된 어텐션 방식을 제시
- 2017년: Vaswani 등이 트랜스포머 논문에서 셀프 어텐션과 멀티헤드 어텐션을 도입
- 이후 LLM(대규모 언어 모델)과 비전 트랜스포머 등 최신 모델의 핵심 기술로 발전
같이 보기[편집 | 원본 편집]
참고 문헌[편집 | 원본 편집]
- Bahdanau, D., Cho, K., Bengio, Y. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. ICLR.
- Luong, M., Pham, H., Manning, C. D. (2015). Effective Approaches to Attention-based Neural Machine Translation. EMNLP.
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.
각주[편집 | 원본 편집]
- ↑ Bahdanau, D., Cho, K., Bengio, Y., "Neural Machine Translation by Jointly Learning to Align and Translate", 2014