본문 바로가기
Machine Learning

Type of Attention (어텐션의 종류)

by 함승우 2022. 12. 27.

어텐션 메커니즘 개요

어텐션 메커니즘은 과거 정보(과거의 hidden embedding 등)의 weighted sum을 미래 수치 예측에 활용하는 기법입니다.

 

 

위와 같은 구조로 미래에 대한 예측치 $y$를 얻는 경우, context vector $c$에 attention mecahnism이 적용됩니다.

 

$$c_i = \sum ^{T_x}_{j=1} \alpha_{ij}h_{j}$$

 

과거의 hidden embbeding에 attention value를 곱한 값을 context vector로 받게 됩니다. 이 attention은 energy 값의 sofmax로 얻어집니다.

 

$$\alpha_{ij} = softmax(e_{ij})=\frac{e_{ij}}{\sum^{T_x}_{k=1}exp(e_{ik})}$$

 

위의 식을 일반화하면 query(q), key(K), value(V) 사이의 관계로 attention을 나타낼 수 있습니다.

 

$$A(q, K, V)= \sum_{i} \frac{exp(e_{qk_{i}})}{\sum_j exp(e_{qk_{j}})}$$

 

이때 softmax에 들어가는 energy $e$를 구하기 위하여, 다른 vector들과의 관계를 측정하기 위한 f가 정의되어야 합니다. 정의 내용은 아래와 같습니다.

 

$$e_{ij}=f(s_{i-1},h_j)$$

 

여기서 $s_{i-1}$은 그전 timestep의 hidden state에 해당합니다.

 

어텐션의 종류

어텐션의 종류를 정의함에 있어, 첫째로 함수 f의 형태에 따라 정의할 수 있습니다. 함수 f는 다양한 형태로 정의할 수 있습니다. 가장 간단하게는 dot product가 있고, multiplicative attention, additive attention도 존재합니다.

 

https://towardsdatascience.com/attention-and-its-different-forms-7fc3674d14dc

 

Self-Attention

함수 f의 종류 외에도, 계산에 포함되는 요소의 종류로도 구분할 수 있습니다. Self attention은 과거의 내 cell(RNN cell 등)에서 얻어진 역대 hidden state에서 attention value를 얻는 기법입니다.

 

https://towardsdatascience.com/attention-and-its-different-forms-7fc3674d14dc

 

이때 $s_t$는 query이며, hidden state $s_0, ..., s_(t-1)$은 key와 value의 역할을 동시에 수행합니다.

 

https://aimb.tistory.com/182

 

위 그림에서도 단어 토큰의 matrix가 query, key, value로 모두 작동하는 것을 알 수 있습니다.

 

Masked Self-Attention

논문에는 masked self-attention 개념도 등장합니다. 미래 단어 예측을 진행할 때는 예측하고자 하는 단어 이후의 단어를 모르는 상태이기 때문에, masking을 통해서 모르는 단어임을 표기합니다.

 

https://aimb.tistory.com/182

 

Multi-head attention 또한 attention의 한 종류라고 볼 수 있습니다. multi-head attention은 2차원 이상의 vector가 attention mechanism의 결과물로 얻어집니다.

 

https://aimb.tistory.com/182

 

마스킹 과정에서는 참조하면 안되는 단어에 음의 무한대 값을 지정해줍니다.

 

https://towardsdatascience.com/attention-and-its-different-forms-7fc3674d14dc

 

출처