본문 바로가기
카테고리 없음

어텐션 메커니즘

by SuldenLion 2026. 10. 27.
반응형
어텐션 메커니즘 — 딥러닝 시리즈
Deep Learning Series · 06

어텐션 메커니즘

Attention — 필요한 곳에 집중하다, 인코더 출력 전체를 동적으로 가중합하는 혁신적 아이디어

병목 문제

전통적인 Seq2Seq 모델에서 인코더는 모든 입력 정보를 단 하나의 고정 크기 컨텍스트 벡터 c에 압축해야 했다. 입력이 길어질수록 성능이 급격히 저하되는 문제가 있었다.

2015년 Bahdanau et al.이 제안한 어텐션 메커니즘은 디코더가 매 타임스텝마다 인코더의 모든 은닉 상태를 참조하되, 현재 생성 중인 출력과 가장 관련 있는 입력 위치에 더 집중하도록 학습한다.

Q / K / V 구조

어텐션은 세 요소로 작동한다: Query(Q), Key(K), Value(V).

Query (Q) 현재 디코더 상태 Key (K) Value (V) 인코더 은닉 상태들 score(Q,K) = QKᵀ/√dₖ softmax(·) context vector weighted sum of V
// 1. 유사도 점수 계산 eᵢⱼ = score(sⱼ, hᵢ) // 2. 소프트맥스로 정규화 αᵢⱼ = exp(eᵢⱼ) / Σₖ exp(eₖⱼ) // 3. 가중합으로 컨텍스트 벡터 생성 cⱼ = Σᵢ αᵢⱼ · hᵢ

스케일드 닷-프로덕트 어텐션

Transformer에서 사용되는 가장 효율적인 형태다.

Attention(Q, K, V) = softmax(QKᵀ / √dₖ) · V // √dₖ로 나누는 이유: 내적값이 커지면 softmax 기울기가 극도로 작아지는 것을 방지

아래는 "나는 밥을 먹었다"를 번역할 때 'ate'를 생성하는 순간의 어텐션 가중치 예시다.

나는
밥을
먹었다
I
ate
rice
0.82
0.10
0.08
0.05
0.15
0.80
0.08
0.72
0.20

'ate'를 생성할 때 '먹었다'에 높은 가중치 집중

어텐션 유형

유형Q 출처K/V 출처사용 예
Bahdanau디코더인코더기계 번역 (RNN 기반)
Self-Attention자기 자신자기 자신Transformer 핵심
Cross-Attention디코더인코더Transformer 디코더
Multi-Head병렬 여러 헤드병렬 여러 헤드다양한 표현 학습
셀프 어텐션의 의미
시퀀스 내의 각 위치가 자기 자신을 포함한 모든 위치와의 관계를 계산한다. "그 은행은 파산했다"에서 '은행'이 금융 기관인지 강둑인지 파악하기 위해 문장의 다른 단어들과의 관계를 동시에 고려한다.
AttentionSelf-AttentionQ / K / VContext VectorBahdanau
Deep Learning Series · AI/ML Engineering
반응형

댓글