어텐션 메커니즘 (Attention Mechanism)

1. 어텐션 메커니즘의 개념 및 필요성

개념seq2seq의 경사감소 소멸(Gradient Descent Vanishing) 등 RNN 모델의 문제 해결을 위해 출력 단어 예측 시점 마다 입력 시퀀스의 단어 가중치를 계산하여 정확도 감소를 보정하는 메커니즘
필요성
  • 어텐션 메커니즘에서 어텐션 함수는 Softmax, Sigmoid, ReLu 함수 등 활성화 함수와 함께 사용하여 입력 시퀀스의 각 단어 가중치 계산 및 예측 벡터 도출을 통해 딥러닝 모델의 성능 향상에 활용

 

2. 어텐션 함수 및 예측 벡터 도출 메커니즘

(1) 어텐션 함수 (Attention Function)

(2) 어텐션 함수 기반 단계별 예측 벡터 도출 메커니즘

– Dot-Product Attention 함수 적용 기준

#단계메커니즘
어텐션 스코어 도출
(유사도 도출)
– 인코더와 디코더의 은닉상태 유사도 도출
– 단어 별 은닉상태와 내적(dot product) 수행
어텐션 분포 도출
(유사도 반영)
– Softmax 함수 기반 어텐션 분포를 도출
– ①에서 단어 별 도출된 값을 어텐션 가중치로 사용
유사도 기반
어텐션 값 도출
– ②에서 도출된 각 인코더 어텐션 가중치 기반 은닉상태 가중합하여 어텐션 값(Attention Value) 도출
디코더의
은닉 상태 연결
– ③에서 도출된 어텐션 값을 디코더의 현시점 은닉상태와 결합하여 하나의 벡터로 생성
신규 벡터
신경망 연산
– 출력층 연산의 입력이 되는 신규 벡터 계산
– ④에서 생성된 벡터에 신경망 연산 추가
출력층의
입력으로 사용
– ⑤에서 추가 연산된 벡터를 출력층의 입력으로 사용하여 예측 벡터 도출
  • 어텐션은 다양한 종류가 있으나 대부분의 어텐션 메커니즘은 유사하며 스코어(유사도) 도출 방식에 따라 차이 존재

 

3. 어텐션 메커니즘의 유형

유형스코어 도출 방식어텐션 함수
Dot-Product AttentionQuery와 Key의 내적 사용Score(Q, K) = QKT
Scaled Dot-Product Attention내적 값을 Key 벡터의 차원 수의 제곱근으로 나누어 스케일링Score(Q, K) = QKT / √dk
Additive AttentionQuery와 Key 결합 후, 학습 가능 가중치 행렬 적용Score(Q, K) = vT * tanh(W1 * Q + W2 * K)
Multi-Head Attention여러 독립적 어텐션을 병렬로 수행 후 결과 결합MultiHead(Q, K, V) = Concat(head1, …, headh) * WO
headi = Attention(Q * WQi, K * WKi, V * WVi)
  • 어텐션 메커니즘 적용에 따라 계산 비용 증가, 훈련 데이터 부족 등 한계점이 있으나 효율적 구조 설계, 합성데이터 사용 등을 통해 개선 필요

 

4. 어텐션 메커니즘의 문제점 및 해결방안

문제점해결방안
– 계산 비용과 복잡성 증가
– 입력 길이 제한, 일반화 한계
– 대용량 메모리 요구로 메모리 부족
– 대규모 훈련 데이터 부족
– 내부 동작 해석 어려움
– 효율적인 구조 설계로 모델 성능 향상
– 어텐션 메커니즘 개선, 일반화 성능 향상
– 메모리 네트워크 기반 장기 의존성 문제 해결
합성데이터 사용 및 전이학습
– 자가-어텐션 메커니즘 기반 데이터 구조 파악
  • 최근 멀티헤드 어텐션(Multi-head Attention) 메커니즘이 활발히 연구에 활용되고 있으며, 특히 트랜스포머(Transformer) 딥러닝 아키텍처에 주로 활용되어 ChatGPT 등 대규모 언어모델 기반 생성형AI 서비스에 적용

 
[참고]

  • wikidocs, 딥 러닝을 이용한 자연어 처리 입문

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^