Machine Translation, Chatbot,Text Summarization, Speech to Textr
등에서 사용될 수 있습니다. RNN(Recurrent Neural Network),GRU(Gated Recurrent Units),LSTM(Long short Term Memory)
로 구성할 수 있는데 Sequence의 길이가 길어질수록 적용하기 어렵다는 문제점이 생깁니다.Attention의 기본 아이디어는 Decoder에서 출력 단어를 예측하는 매 time step마다, Encoder에서의 전체 입력 문장을 고려해 해당 time step에서 예측해야하는 단어와 연관이 있는 입력 단어 부분을 좀 더 집중(Attention) 해서 보는 것입니다.
Bidirectional GRU + Attention seq2seq structure
- concat forward occurence and backward occurence
- attention weight, Alpha는 전체 sequence 중 각 timestep의 input을 고려하는 척도로 총 합은 1
is learn by values() as input with small Neural network
= input sequence length
처음 등장한 Recurrent Neural Network
는 input sequence의 길이가 길어지면 vanishing gradient문제와 점점 더 학습하기 어렵다는 단점을 가지고 있었습니다, 이에 이를 해결하고자 Long Short Term Memory
모델과 이의 간소화 버전인 Gated Recurrent Unit
의 모델들이 등장했습니다. 다만 이후의 등장한 모델들 역시 Sequence length가 커질수록 연산의 복잡도가 증가하는 문제점을 가지고 있습니다.
Rnn으로 이루어진 seq2seq 구조에서는 Encoder는 input sequence를 하나의 벡터표현으로 압축하고, 디코더는 이 벡터 표현을 통해서 output sequence를 생성합니다. 이러한 구조는 encoder가 input sequence를 하나의 벡터로 압축하는 과정에서 정보가 일부 손실된다는 단점이 있었고, 이를 보정하기 위해 attention이 사용되었습니다.
Transformer
는 attention을 RNN의 보정을 위한 용도가 아니라 Encoder,Decoder를 아예 attention으로 구성해보는 방법에서 시작되었습니다.
= attention based vector representation of a word
RNN Attention :
Transformers Attention : ; especially scaled dot product Attention
을 예측한다고 가정하는 경우
input vector : = word embedding vector
is a leared matrix
are parameters of this learning algorithm
q^3 may represent a question
Ex)
Suppose that French2English machine translation model
Y = Jane visits Africa in September
A(attention score value) = A1, A2, A3, A4, A5
X = Jane visite I'Afrique en septembre
When computing (Africa), q3 may represent 'what's happening there?'
inner product between -> tell how good as an answer
if represents
may find that inner product has the largest value that might suggest that 'visit' is the most relevant context for ('what's happening in Africa?')
: value represent to plug in how visit should be represented within within the representation of Africa
Name | score function() | Defined by |
---|---|---|
dot | Luong et al. (2015) | |
scaled dot | Vaswani et al. (2017) | |
general | // 는 학습 가능한 weight matrix | Luong et al. (2015) |
concat | Bahdanau et al. (2015) | |
location-base | // 산출시에 만 사용하는 방법. | Luong et al. (2015) |
score function : input of softmax
하나의 self-attention {}을 head_1라고 정의하면
as being learned to help ask and answer the question what happening there?
maybe other ask when something happening?
: who?
and so on
; number of heads
self-attention을 여러번 수행하는 연산으로 구현 자체는 For loop을 사용할 수 있고, model의 capacity를 늘려주는 효과인 것 같다. 각각의 head는 모두 독립적이기 때문에 병렬적인 연산으로 한번에 연산이 가능하다.
*참고