Transformer(셀프어텐션부터 미완)

yuns_u·2021년 10월 28일
0

Transformer : Attention is All You Need

트랜스포머(transformer)는 기계번역을 위한 새로운 모델로 이전에 등장했던 attention 매커니즘을 극대화하여 뛰어난 번역 성능을 기록했다.
최근 자연어처리 모델 SOTA(State-Of-The-Art)의 기본 아이디어는 거의 모든 트랜스포머를 기반으로 하고 있다.
Transformer : Attention is All You Need는 이러한 트랜스포머를 소개한 논문이며 3년동안 18000번 이상 인용된 만큼 각광받는 기술이라고 할 수 있다.
트랜스포머가 자연어처리뿐만 아니라 다른 문제도 잘 풀고 있기 때문에 최근에는 컴퓨터 비전 쪽에서도 적용하려는 시도가 있으며 멀티모달(Multi-Modal)모델에도 적용되고 있다.

RNN 기반 모델이 가진 구조적 단점은 단어가 순서대로 들어온다는 점이다.
그렇기 때문에 처리해야하는 시퀀스가 길수록 연산 시간이 길어진다.
트랜스포머는 이런 문제를 해결하기 위해 등장한 모델이다.
모든 토큰을 동시에 입력받아 병렬연산하기 때문에 GPU 연산에 최적화 되어 있다.

아래는 트랜스포머의 구조를 단순하게 시각화한 그림이다.
인코더, 디코더로 표현된 사각형을 각각 인코더 블록과 디코더 블록이라고 한다.
트랜스포머는 인코더 블록과 디코더 블록이 6개씩 모여있는 구조를 하고 있다.

트랜스포머의 구조

인코더 블록 하나와 디코더 블록 하나만 가져와 트랜스포머의 구조를 살펴보면 아래와 같은 그림으로 표현할 수 있다. 왼쪽의 회색 블록은 인코더 블록이고 오른쪽의 회색 블록은 디코더 블록이다.

인코더 블록은 크게 2개의 sub-layer(multi-head(self)attention, feed forward)로 나눌 수 있고
디코더 블록은 크게 3개의 sub-layer(masked multi-head(self)attention, multi-head(encoder-decoder)attention, feed forward)로 나눌 수 있다.

Positional Encoding(위치 인코딩)


트랜스포머에서는 병렬화를 위해 모든 단어 벡터를 동시에 입력받는다.
이로인해 컴퓨터는 어떤 단어가 어디에 위치하는지 알 수 없게 된다.
따라서 컴퓨터가 이해할 수 있도록 단어의 위치 정보를 제공하기 위한 벡터를 따로 제공해주어야한다.
이러한 단어의 상대적인 위치 정보를 제공하기 위한 벡터를 만드는 과정을 positional encoding(위치 인코딩)이라고 한다.

위치 인코딩을 수식으로 표현하면 아래와 같다.

PEpos,2i=sin(pos100002i/dmodel)PEpos,2i+1=cos(pos100002i/dmodel)\begin{aligned} \text{PE}_{\text{pos},2i} &= \sin \bigg(\frac{\text{pos}}{10000^{2i/d_{\text{model}}}}\bigg) \\ \text{PE}_{\text{pos},2i+1} &= \cos \bigg(\frac{\text{pos}}{10000^{2i/d_{\text{model}}}}\bigg) \end{aligned}

아래는 postional encoding을 통해 만들어진 벡터를 시각화한 자료이다.
이를 통해 일정한 패턴이 있는 벡터가 만들어지는 것을 볼 수 있다.
컴퓨터는 이를 통해 단어의 상대적인 위치를 파악하게 된다.

self-attention(셀프 어텐션)


트랜스포머의 주요 매커니즘인 self-attention에 대해 정리해보고자 한다.
아래와 같은 문장이 있다고 해보자.
The animal didn't cross the street because it was too tired
이 문장을 번역하려면 지시대명사 it이 어떤 대상을 가리키는지 알아야한다.
그렇기 때문에 트랜스포머에서는 번역하려는 문장 내부 요소의 관계를 파악하기 위해서 문장 자신에 대해 어텐션 메커니즘을 적용한다. 이를 셀프 어텐션이라고 지칭한다.

아래는 it이 어떤 단어와 가장 연관되어 있는지를 시각화한 것이다.

셀프 어텐션도 쿼리-키-밸류의 아이디어가 동이라헤 등장한다.

profile
💛 공부 블로그 💛

0개의 댓글