간단 요약

RNN의 한계점을 극복하기 위해 제안된 기법

Query를 넣으면 Attention Score를 뱉는다.

Attention Score는 Value의 가중합으로 계산한다.

가중치로 Query와 Key의 유사도를 사용한다.

유사도를 계산하는 가장 간단한 방법으로 두 벡터간 내적을 활용한다.

softmax

RNN의 vanishing gradient 문제점을 해결하기 위해 제안된 기법

각 요소(단어)마다 Query, Key, Value가 계산된다.

이 때, Query는 비교 대상이고, Key-value는 쌍을 이룬다.

Untitled

기존 seq2seq 모델 구조에서

현재 시점 디코더 토큰 입력해서 다음 디코더 토큰을 예측할 때,

현재 시점 디코더 토큰과 인코더 토큰들 간의 유사도를 내적을 통해 구한 뒤

해당 계산 값을 반영하여 다음 디코더 토큰을 예측의 성능을 높이는 것

decoder에서 단어를 출력할 때마다 입력 sequence를 한번씩 참고한다.

입력·출력의 길이를 고려하지 않아도 단어 간 의존성(dependency) 파악이 가능하다.

ex) 번역 문제 — 번역할 문장의 길이를 고정하지 않아도 사용 가능


Encoder의 hidden state들 중, 어떤 녀석에게 더 집중할 지를 Attention Score을 통해 선택한다.

$\tt Attention(Q,K,V) = Value\ of\ Q = similarity(Q,K) \times V$

주어진 Query에 대해 모든 Key와의 유사도를 각각 구한다.

key$(K)$ - value$(V)$ 쌍들이 주어질 때, 알고자 하는 query와 key들의 연관성을 가중치로 하고, query$(Q)$에 대응되는 value와의 가중합으로 계산한다.

Untitled

Untitled

[NLP] Attention과 Transformer

인공지능이 궁금하다고 ? 들어와봐

Self Attention

Attention 원리

[머신러닝/딥러닝] 10-2. Attention in RNN-Encoder-Decoder

Untitled

출처: [Pytorch] 차근차근 구현하는 seq2seq + attention mechanism