어텐션 메커니즘을 쉽게 이해하기
예제: 영어 문장을 프랑스어로 번역하기
입력 문장: "I am a student"
출력 문장: "Je suis étudiant"
1. 문제 상황
디코더가 "étudiant"라는 단어를 출력해야 할 때, 입력 문장의 모든 단어를 동일하게 참고하지 않습니다.
대신, "student"와 같은 관련성이 높은 단어에 더 집중합니다.
이 과정이 바로 어텐션(Attention) 입니다.
2. 주요 개념
•Key와 Value: 입력 문장의 각 단어(예: "I", "am", "a", "student")에서 추출된 벡터.
1) 유사도 계산 (Attention Score)
•Query(현재 디코더 상태)와 Key(입력 단어 벡터) 간의 유사도를 계산합니다.
•예를 들어, "étudiant"와 관련된 입력 단어를 찾기 위해 Query와 각 Key를 비교합니다.
입력 단어 유사도 점수
"I" 0.1
"am" 0.2
"a" 0.1
"student" 0.6
2) 가중치 분포 생성 (Softmax 적용)
•유사도를 Softmax 함수에 통과시켜 확률 분포로 변환합니다.
•결과:
입력 단어 Softmax 가중치
"I" 10%
"am" 20%
"a" 10%
"student" 60%
3) 컨텍스트 벡터 생성
•각 입력 단어의 Value(벡터)에 가중치를 곱해 합칩니다.
•예:
이렇게 생성된 컨텍스트 벡터(Context Vector)는 디코더가 출력 단어를 더 정확히 예측하도록 돕습니다.
4) 출력 생성
•컨텍스트 벡터와 디코더의 상태를 결합하여 최종 출력("étudiant")을 생성합니다.
쉽게 비유하자면?
어텐션은 사람이 책을 읽을 때 중요한 부분에 형광펜을 칠하는 것과 비슷합니다.
문장에서 모든 단어를 동일하게 보는 대신, 특정 단어("student")에 더 집중하여 번역 품질을 높이는 역할을 합니다.
출처
1. [딥러닝] 어텐션 메커니즘(Attention Mechanism)이란? → 🔗링크
2. 어텐션 메커니즘과 자연어 처리 - DACON → 🔗링크
3. 딥러닝 - 어텐션 메커니즘(Attention Mechanism) - 코딩스타트 → 🔗링크
4. [Transformer] Transformer 트랜스포머 모델: 인코더와 디코더의 원리 → 🔗링크
5. 어텐션 메커니즘 (Attention Mechanism)이란? → 🔗링크
6. Attention [초등학생도 이해하는 자연어처리] - 코딩 오페라 → 🔗링크
7. 15-01 어텐션 메커니즘 (Attention Mechanism) - 위키독스 → 🔗링크
8. 밑바닥부터 이해하는 어텐션 메커니즘(Attention Mechanism) → 🔗링크