#개념

어텐션 메커니즘(Attention Mechanism)은 신경망이 입력의 모든 부분을 동일하게 취급하는 대신, 현재 처리 중인 대상과 관련성이 높은 부분에 더 큰 가중치를 부여하여 선택적으로 정보를 결합하는 기법이다. 어텐션은 순환 신경망(Recurrent Neural Network, RNN) 기반의 시퀀스-투-시퀀스(Sequence-to-Sequence, Seq2Seq) 기계 번역 모델이 가진 근본적인 한계에서 출발했다. 기존 인코더-디코더 구조는 입력 문장 전체를 고정 길이의 문맥 벡터(context vector) 하나로 압축했기 때문에, 문장이 길어질수록 정보가 손실되어 번역 품질이 급격히 저하되는 병목 문제가 있었다. Bahdanau 등(2014)은 디코더가 매 시점마다 인코더의 모든 은닉 상태를 참조하되, 각 은닉 상태에 대한 정렬 점수(alignment score)를 계산하여 가중합을 취하는 가산 어텐션(Additive Attention)을 제안했다. 이 방식은 작은 순방향 신경망으로 점수 $e_{ij} = v^\top \tanh(W_1 s_{i-1} + W_2 h_j)$를 구한 뒤 소프트맥스(Softmax)로 정규화하여 어텐션 가중치를 얻으며, 모델이 번역과 정렬을 동시에 학습하도록 만든다. 이후 Luong 등(2015)은 디코더 상태와 인코더 상태의 내적 또는 이중선형 형태($s^\top h$, $s^\top W h$)로 점수를 계산하는 곱셈 어텐션(Multiplicative Attention)과, 전체 입력을 참조하는 전역(global) 어텐션 및 일부 구간만 참조하는 지역(local) 어텐션을 제안하여 계산 효율과 성능을 함께 개선했다.
어텐션의 일반적인 형태는 쿼리(Query), 키(Key), 값(Value)의 세 요소로 정의된다. 쿼리는 현재 무엇을 찾고 있는지를 나타내는 벡터이고, 키는 각 입력 요소가 어떤 정보를 담고 있는지를 나타내는 색인 역할을 하며, 값은 실제로 결합되어 출력으로 전달되는 정보다. 쿼리와 각 키의 유사도를 점수로 계산하고 소프트맥스로 확률 분포로 변환한 뒤, 이 확률을 가중치로 하여 값들의 가중합을 구하는 것이 어텐션 연산의 핵심이다. 트랜스포머(Transformer)에서 사용되는 스케일드 닷프로덕트 어텐션(Scaled Dot-Product Attention)은 이를 행렬 연산으로 표현하며 $\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V$로 정의된다. 여기서 $d_k$는 키 벡터의 차원으로, 차원이 커질수록 내적 값의 분산이 커져 소프트맥스가 포화되고 기울기가 소실되는 현상을 막기 위해 $\sqrt{d_k}$로 나누어 스케일을 조정한다. 디코더에서는 미래 시점의 토큰을 참조하지 못하도록 상삼각 부분을 $-\infty$로 채우는 마스킹(Masking)을 적용하여 자기회귀적 생성이 가능하게 한다.
멀티헤드 어텐션(Multi-Head Attention)은 하나의 어텐션만 수행하는 대신, 쿼리·키·값을 서로 다른 선형 변환 $W_i^Q, W_i^K, W_i^V$로 $h$개의 부분 공간에 투영한 뒤 각각 독립적으로 어텐션을 계산하고 결과를 연결(concatenate)하여 다시 선형 변환 $W^O$로 결합하는 구조다. 각 헤드가 구문적 의존 관계, 공지시(coreference), 인접 토큰 관계 등 서로 다른 유형의 관계를 학습할 수 있어 단일 어텐션보다 풍부한 표현을 얻을 수 있으며, 전체 차원 $d_{model}$을 $h$개로 나누어 사용하므로 계산량은 단일 헤드와 비슷하게 유지된다. 어텐션은 쿼리와 키·값의 출처에 따라 구분되기도 한다. 셀프 어텐션(Self-Attention)은 쿼리·키·값이 모두 동일한 시퀀스에서 나오는 경우로, 시퀀스 내 모든 토큰 쌍의 관계를 한 번에 계산하여 장거리 의존성을 직접 포착한다. 크로스 어텐션(Cross-Attention)은 쿼리는 디코더에서, 키와 값은 인코더 출력에서 가져오는 경우로, 번역·요약·이미지 캡셔닝처럼 서로 다른 시퀀스나 모달리티 간의 정보를 연결하는 데 사용된다. 셀프 어텐션은 순환 구조 없이도 병렬 처리가 가능하고 임의의 두 위치 간 경로 길이가 $O(1)$이므로, 트랜스포머는 RNN보다 훨씬 빠르게 학습되면서도 긴 문맥을 효과적으로 다룰 수 있다. 다만 어텐션 자체는 순서 정보를 갖지 않으므로 위치 인코딩(Positional Encoding)을 통해 토큰의 위치 정보를 별도로 주입해야 한다.
어텐션의 가장 큰 실용적 제약은 계산 복잡도다. 시퀀스 길이가 $n$, 차원이 $d$일 때 $QK^\top$ 계산에는 $O(n^2 d)$의 연산과 $O(n^2)$의 메모리가 필요하므로, 문맥 길이가 수만에서 수십만 토큰으로 늘어나는 대규모 언어 모델(Large Language Models, LLM)에서는 어텐션이 학습과 추론의 병목이 된다. 이를 완화하기 위해 다양한 효율화 기법이 제안되었다.
  • 희소 어텐션(Sparse Attention) : Longformer, BigBird 등과 같이 지역 윈도우나 전역 토큰 등 일부 위치 쌍만 계산하여 복잡도를 $O(n)$ 수준으로 낮추는 방식이다.
  • 선형 어텐션(Linear Attention) : 소프트맥스를 커널 함수로 근사하여 $K^\top V$를 먼저 계산함으로써 $O(n d^2)$로 줄이는 Performer, Linear Transformer 등의 방식이다.
  • FlashAttention : 어텐션의 수학적 결과는 그대로 유지하면서, GPU의 고대역폭 메모리(HBM)와 온칩 SRAM 간 입출력을 최소화하도록 타일링(tiling)과 재계산(recomputation)을 적용해 $n \times n$ 어텐션 행렬을 메모리에 저장하지 않는 IO 인식(IO-aware) 정확 어텐션이다. 메모리 사용량을 시퀀스 길이에 선형으로 줄이고 실제 실행 속도를 수 배 향상시켜 현재 대부분의 LLM 학습·추론 프레임워크에 기본으로 채택되어 있다.
  • 멀티쿼리·그룹쿼리 어텐션(Multi-Query / Grouped-Query Attention) : 여러 쿼리 헤드가 키·값 헤드를 공유하도록 하여 추론 시 KV 캐시(KV Cache)의 메모리와 대역폭 부담을 줄이는 방식이다.
어텐션은 자연어 처리를 넘어 컴퓨터 비전(Computer Vision)의 비전 트랜스포머(ViT), 음성 인식, 그래프 신경망, 단백질 구조 예측, 추천 시스템 등 거의 모든 딥러닝 분야로 확산되었으며, 어텐션 가중치를 시각화하면 모델이 어떤 입력에 근거해 판단했는지 해석하는 단서로도 활용할 수 있다. 다만 어텐션 가중치가 곧 인과적 설명은 아니라는 점, 그리고 시퀀스 길이 증가에 따른 비용 문제는 여전히 활발한 연구 주제다. 결론적으로 어텐션 메커니즘은 고정 길이 표현의 병목을 해소하고 병렬화 가능한 장거리 의존성 모델링을 가능하게 함으로써, 트랜스포머와 대규모 언어 모델로 이어지는 현대 딥러닝의 핵심 기반 기술이 되었다.

#관련 용어

트랜스포머
순환과 합성곱 없이 셀프 어텐션만으로 시퀀스를 처리하는 신경망 구조
순환 신경망
이전 시점의 은닉 상태를 순차적으로 전달하며 시퀀스 데이터를 처리하는 신경망
대규모 언어 모델
방대한 텍스트로 사전 학습된 트랜스포머 기반의 초대형 언어 모델
임베딩
토큰이나 객체를 저차원의 연속적인 실수 벡터로 표현하는 기법
위치 인코딩
순서 정보가 없는 어텐션 연산에 토큰의 위치 정보를 주입하는 벡터 표현
KV 캐시
자기회귀 추론 시 이전 토큰의 키와 값을 저장하여 재계산을 피하는 캐시

#직무 연관도

DA
Data Analyst
낮음
언어 모델 기반 분석 도구의 동작 원리와 한계를 이해하는 데 도움이 되는 배경 지식
DS
Data Scientist
밀접
트랜스포머와 대규모 언어 모델의 구조를 이해하고 설계·개선하기 위한 핵심 개념
DE
Data Engineer
높음
모델 서빙 시 어텐션의 메모리·연산 비용과 KV 캐시, FlashAttention 등 효율화 기법을 이해해야 한다

#사용 사례

인터넷 서비스전자상거래금융의료자율주행
개요
어텐션 메커니즘은 기계 번역, 문서 요약, 질의응답, 대화형 AI와 같은 자연어 처리뿐 아니라 이미지 분류·생성, 음성 인식, 추천 시스템에서 입력 간 관계를 모델링하는 데 활용된다. 특히 트랜스포머 기반 대규모 언어 모델의 핵심 구성 요소로서 검색, 고객 응대, 코드 생성 등 다양한 서비스의 기반이 된다.
사례
기계 번역에서 "I ate an apple"을 한국어로 번역할 때, 디코더가 "사과를"을 생성하는 시점에는 어텐션 가중치가 "apple"에 집중되고 "먹었다"를 생성할 때는 "ate"에 집중된다. 이처럼 어텐션은 어순이 다른 두 언어 사이의 단어 정렬을 별도의 규칙 없이 데이터로부터 학습한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.