*본 게시글은 유튜브 위키독스 '15-01 어텐션 메커니즘 (Attention Mechanism)' 자료를 참고한 점임을 알립니다.
Seq2Seq with Attention
1. Seq2Seq의 한계점
1.1 고정된 Context Vector의 문제
기존 Seq2Seq 모델은 인코더의 마지막 은닉 상태만을 context vector로 사용하여 다음과 같은 한계가 있습니다.
- 입력 시퀀스가 길어질수록 정보 손실 발생
- 초기 입력 정보가 희석되는 현상
- 긴 문장에서의 성능 저하
1.2 기울기 소실 문제
- RNN 기반 구조의 고질적인 기울기 소실 문제 존재
- 장기 의존성(long-term dependency) 학습의 어려움
2. Attention 메커니즘의 도입
2.1 핵심 아이디어
Attention은 디코더가 예측할 때마다 인코더의 모든 은닉 상태를 참조하여, 현재 예측과 연관된 부분에 더 집중하는 방식입니다.
2.2 기본 구조
- Query (Q): 디코더의 현재 은닉 상태
- Key (K): 인코더의 모든 은닉 상태들
- Value (V): 인코더의 모든 은닉 상태들
3. Attention 메커니즘의 수학적 전개
3.1 Attention Score 계산
현재 디코더의 은닉 상태와 각 인코더 은닉 상태 간의 연관성을 계산합니다.
score(ht,hˉs)=htThˉs
(ht:디코더의 t 시점 은닉 상태)
(hˉs:인코더의 s 시점 은닉 상태)
3.2 Attention Weight 계산
Score를 확률값으로 변환합니다. (Softmax 적용)
αts=∑s′exp(score(ht,hˉs′))exp(score(ht,hˉs))
(αts:t 시점 디코더가 s 시점 인코더 상태에 부여하는 가중치)
3.3 Context Vector 계산
가중치를 적용한 인코더 은닉 상태의 가중합을 구합니다.
ct=s∑αtshˉs
(ct:t 시점의 컨텍스트 벡터)
3.4 최종 출력 계산
컨텍스트 벡터와 디코더 은닉 상태를 결합하여 최종 출력을 계산합니다.
h~t=tanh(Wc[ct;ht])
(Wc:학습 가능한 가중치 행렬)
([ct;ht]:컨텍스트 벡터와 은닉 상태의 연결(concatenation))
(h~t:t 시점의 최종 출력 벡터)
4. Attention의 다양한 변형
Attention 메커니즘에는 여러 가지 변형이 존재하며, 각각의 장단점과 특성이 있습니다. 주요 변형들을 자세히 살펴보겠습니다.
4.1 Multiplicative Attention (Luong Attention)
가장 기본적이고 단순한 형태의 어텐션으로, 두 벡터의 내적을 통해 유사도를 계산합니다.
수식 전개
score(ht,hˉs)=htThˉs
(htT:디코더의 t 시점 은닉 상태의 전치행렬, 차원: 1×d)
(hˉs:인코더의 s 시점 은닉 상태, 차원: d×1)
(d:은닉 상태의 차원)
특징
- 계산이 단순하고 빠름
- 메모리 효율적
- 벡터 차원이 같아야 한다는 제약 존재
4.2 Scaled Dot-Product Attention
Transformer에서 사용되는 방식으로, 차원에 따른 스케일링을 도입하여 그래디언트 안정성을 개선했습니다.
수식 전개
score(Q,K)=dkQKT
(Q:Query 행렬, 차원: n×dk)
(K:Key 행렬, 차원: m×dk)
(dk:키 벡터의 차원)
(dk:스케일링 팩터, 그래디언트 소실/폭발 방지)
특징
- 내적값이 너무 커지는 것을 방지
- 소프트맥스 함수의 그래디언트가 더 안정적
- 병렬 처리에 효율적
4.3 Additive Attention (Bahdanau Attention)
별도의 가중치 행렬을 도입하여 더 복잡한 관계를 학습할 수 있게 만든 방식입니다.
수식 전개
score(ht,hˉs)=vaTtanh(W1ht+W2hˉs)
(W1:디코더 은닉 상태에 대한 가중치 행렬, 차원: d′×d)
(W2:인코더 은닉 상태에 대한 가중치 행렬, 차원: d′×d)
(va:출력 가중치 벡터, 차원: d′×1)
(d′:중간 표현의 차원, 하이퍼파라미터)
특징
- 비선형성(tanh)을 통한 더 복잡한 관계 학습 가능
- 입력 벡터의 차원이 달라도 사용 가능
- 계산량이 상대적으로 많음
5. Attention 메커니즘의 장점
Attention 메커니즘은 기존 Seq2Seq 모델의 한계를 극복하고 여러 이점을 제공합니다.
5.1 정보 손실 감소
동적 컨텍스트 벡터
기존 Seq2Seq와 달리 모든 인코더 은닉 상태를 활용하여 각 디코딩 시점마다 다른 컨텍스트 벡터를 생성합니다.
ct=s=1∑Sαtshˉs
(ct:t 시점의 컨텍스트 벡터)
(αts:t 시점에서 s번째 입력에 대한 어텐션 가중치)
(hˉs:s 시점의 인코더 은닉 상태)
장거리 의존성 처리
입력 시퀀스 길이에 관계없이 모든 위치의 정보에 직접적으로 접근할 수 있습니다.
5.2 기울기 전파 개선
직접적인 기울기 경로
각 인코더 상태에서 출력까지 직접적인 기울기 경로가 형성됩니다.
∂hs∂Loss=t∑∂h~t∂Loss∂ct∂h~t∂αts∂ct∂hs∂αts
(∂hs∂Loss:인코더 은닉 상태 hs에 대한 기울기)
(∂ct∂h~t:컨텍스트 벡터에 대한 출력 벡터의 기울기)
(∂αts∂ct:어텐션 가중치에 대한 컨텍스트 벡터의 기울기)
기울기 흐름 개선 효과
- 기울기 소실 문제 완화
- 더 효과적인 장기 의존성 학습
- 더 빠른 수렴 속도
5.3 해석 가능성
어텐션 맵 시각화
각 디코딩 시점에서의 어텐션 가중치 분포를 시각화할 수 있습니다.
A=αts∈RT×S
(A:어텐션 맵 행렬)
(T:출력 시퀀스 길이)
(S:입력 시퀀스 길이)
참고 자료