Adventure Time - Finn 3
본문 바로가기
AI/ML

Attention Mechanism

by hyun9_9 2026. 4. 19.

Seq2Seq 모델의 문제점

  문제점 1: 하나의 고정 길이 벡터에 모든 정보를 압축 -> 정보 손실 발생

  문제점 2 : RNN의 문제점인 기울기 소실 문제가 여전히 발생한다

      기꼐 번역 분야에서 입력 문장이 길면 번역 품질이 떨어지는 현상으로 나타남

  seq2seq 문제 개선을 위해 Attention Mechanism 고안

      입역 시퀀스가 길어지면 출력 시퀀스의 정확도가 떨어지는 것을 보정

Attention 의 아이디어

디코더가 출력단어를 예측하는 매시점마다 인코더의 전체 입력 문장을 다시 한번 참소

이때 전체 입력 문장을 단순히 참조하는 것이 아니라 예측할 단어와 연관이 있는 단어를 집중해서 참조하게 된다.

 

Attention Function

어턴션을 함수로 표현하면 주로 다음과 같다

  • Attention(Q, K, V) = Attention Value
  • Q: Query
  • K: Key
  • V: Value

어텐션 함수는 주어진 쿼리에 대해서 모든 키와의 유사도를 각각 구한다

그리고 구해낸 이 유사도를 키와 맵핑된어있는 각각의 값에 반영한다

그리고 유사도가 반영된 값들을 모두 더해서 리턴한다

 

Attention Mechanism 과정

1. attention score계산 

2. 소프트 맥스 함수를 통한 attention distribution 계산

3. 각 인코더의 어텐션 가중치와 은닉상태를 가중합하여 어텐션 값 계산

4. 어텐션 값과 디코더의 t 시점의 은닉 상태를 연결

5. 출력층 연산의 입력이 되는S계산

6. s를 출력층의 입력으로 사용한다.

 

 

예를 들어 번역을 한다고 생각해봅시다.

입력: 나는 밥을 먹었다
출력: I ate rice
 

"I ate"를 만들 때,
모델은 입력 문장 전체를 보지만 실제로 중요한 건 👉 “먹었다”

👉 즉, 모든 단어를 똑같이 보는 게 아니라
👉 중요한 단어에 더 집중해야 합니다.

이걸 가능하게 해주는 게 바로 Attention입니다.


⚙️ Attention 동작 과정 (6단계)

1️⃣ Attention Score 계산

👉 각 단어가 얼마나 중요한지 점수 매기기

예:

  • 나는 → 0.2
  • 밥을 → 0.5
  • 먹었다 → 1.5

👉 숫자가 클수록 중요


2️⃣ Softmax로 확률 변환

👉 점수를 확률처럼 바꿔줌 (합 = 1)

예:

  • 나는 → 0.1
  • 밥을 → 0.2
  • 먹었다 → 0.7

👉 “먹었다”에 70% 집중!


3️⃣ 가중합 (핵심🔥)

👉 각 단어 × 중요도 → 전부 더함

(나는 × 0.1) +
(밥을 × 0.2) +
(먹었다 × 0.7)
 

👉 결과 = Attention Value

✔️ 이건 “지금 필요한 정보만 모아놓은 요약본”


4️⃣ 디코더 상태와 결합

👉 지금까지 만든 문장 정보 + 방금 만든 Attention 정보 합치기

👉 이유:

  • 이전 문맥
  • 현재 집중 정보

둘 다 필요하기 때문


5️⃣ S 값 계산

👉 위에서 합친 값을 신경망에 넣어 정리

👉 쉽게 말하면
“출력 직전 최종 정리 단계”


6️⃣ 출력층에서 단어 생성

👉 다음 단어를 예측

예:

  • rice
  • food
  • meal

👉 가장 확률 높은 단어 선택


🎯 핵심 비유

👉 시험 문제 푸는 상황 생각해보자

  • 문제 = 현재 상황 (디코더 상태)
  • 교과서 = 입력 문장
  • Attention = 필요한 부분 찾기

👉 “이 문제는 이 페이지 봐야겠다!”
👉 이게 바로 Attention


💡 한 줄 정리

👉 Attention = 전체를 보되, 중요한 부분에 집중하는 기술

'AI > ML' 카테고리의 다른 글

트랜스포머(Transformer) — Attention Is All You Need  (0) 2026.04.20
Attention Mechanism 완전 쉽게 이해하기 (Score → Output까지)  (0) 2026.04.19
인코더 디코더 Seq2Seq  (0) 2026.04.18
Word2Vec  (1) 2026.04.17
자연어 처리 (NLP)  (0) 2026.04.16