Super Kawaii Cute Cat Kaoani

NLP/paper

[paper] Transformer: Attention Is All You Need

zozni 2021. 12. 23. 18:07
728x90
반응형
SMALL

i am a teacher 가 각 단어가 다른 애들이랑 얼마나 연관성이 있는지 측정하기 위해 셀프어텐션을 수행.

i라는 단어가 i am a teacher 각각에 대해 얼마나 연관성이 있는지 구한다고 할 때 
i가 쿼리가 되는것이고  i am a teacher 각 단어들은 key가 되는 것이다. 

즉 어떤 단어가 다른 어떤 단어에 관해 어떤 가중치를 가지는지 구하고자 한다면 
각 key에 대해 attention 스코어를 구해오는 방식으로 동작하는 것이다.
그렇게 스코어를 구한다음 실제 value값들과 곱해서 결과적인 attention value값을 구할 수 있는 것이다.

query - 물어보는 주체
key - attention을 수행하는 각 단어들  

Q와 K를 이용하여 행렬곱을 수행한 뒤에 scaling, 필요하다면 mask를 씌워줌. 그리고 softmax를 취해서 각각의 key 중에서 어떤 단어와 가장 높은 연관성을 가지는지 그 비율을 구할 수 있다. 

그렇게 구해진 확률값과 value값을 곱해서 가중치가 적용된 결과적인 attention value를 구할 수 있는 것이다. 

이러한 과정이 Scaled Dot-Prodect Attention에서 수행된다. 

또한 여기에서 참고로 

실제로 입력값이 들어왔을 때 그 입력값들은 h개로 구분된다. 

즉 어떤 입력문장이 들어왔을 때 그것은 G, K, V로 구분되는데 이때 h개의 서로 다른 V, K, Q로 구분될 수 있도록 만드는 것이다. 이렇게 하는 이유는 h개의 서로 다른 attention concept를 학습하도록 만들어서 더욱더 구분된 다양한 특징들을 학습할 수 있도록 유도해주기 위해서이다. 

 

그래서 입력으로 들어온 값은 3개로 복제가 되어서 각각 V, K, Q로 들어가게 되고 이 값들은 행렬곱을 수행해서 h개로 구분된 각각의 쿼리쌍들을 만들어내게 되고 여기서 h는 헤드의 개수이기 때문에 각각 서로다른 헤드끼리 V,K,Q의 쌍을 받아서 어텐션을 수행해서 결과를 내보낸다. 

 

그 다음에 어텐션 매커니즘의 입력값과 출력값의 디멘션은 같아야하기 때문에 각각의 헤드로부터 나오게 된 어텐션 값들을 다시 concat을 수행해서 일자로 쭉 붙인뒤에 마지막으로 Linear레이어를 거쳐서 output값을 내보내게 된다.

 

입력과 출력의 차원이 같도록 만들어서 multi head attention을 사용한 뒤에도 차원이 줄어들지 않도록 만든다.

이런식으로 각각의 어텐션 매커니즘이 사용되는 것이다. 

이러한  multi head attention은 전체 아키텍쳐에서 다 동일한 함수로써 동작한다. 

다른 점은 각 사용되는 위치마다 Q,K,V를 어떻게 사용할지가 달라지는데 그런 점을 제외하고 기본적인 각각의 어텐션 레이어의 동작방식은 같다. 

 

예를 들어, 인코더디코더 어텐션에서는 디코더의 출력단어가 Q가 되는 것이고 각각의 출력단어를 만들기 위해서 인코더 파트에서의 어떤 단어를 참고하면 좋은지를 구하기 위해서 K, V의 값으로는 인코더의 출력값을 쓰겠다는 것이다.

 

다시말해, 각각의 단어를 출력하기 위해서 어떤 단어를 참고해야해? 라고 인코더에게 물어보는 것이기 때문에 디코더에 있는 단어가 Q가 되고 인코더에 있는 각 값들이 K,V가 되는 것이다. 

 

multi head attention 수식

attention score를 시각화해볼 때 h의 개수만큼 어텐션 스코어의 그림이 나오게 된다!

 

결과적으로 각 헤드에 대한 출력값을 구할 수 있고 이것을 일자로 쭉 붙인다음에 마지막으로 output matrix랑 곱해서 결과적인 멀티헤드어텐션의 값을 구해낼 수 있는 것이다. 이런식으로 매번 입력값이 들어왔을 때 기본적으로는 V,K,Q의 값으로 각각 들어가게 되고 나올 때는 입력으로 들어갔던 값과 동일한 차원을 가지기 때문에 이런 멀티헤드어텐션이 포함된 하나의 인코더 혹은 디코더 레이어는 중첩해서 사용될 수 있는 것이다.

 

+ transformer 동작 원리

728x90
반응형
LIST