2017년 Google에서 Attention Mechanism만을 사용한 encoder-decoder 구조의 새로운 언어모델 Transformer를 제시하였다. Transformer는 Residual connection을 갖는 feedforward network에서 중간에 attention mechanism을 사용한 모델이며, 다음과 같이 핵심 요소 3가지가 있다.
가장 인상 깊었던 점은 self-attention 기법만으로 문장의 context를 뛰어난 이해를 보였고 representation 성능을 높였다는 점이다. 최근 NLP의 SOTA LM들은 대부분 Transformer 기반이라는 점을 꼭 알아두자
차원을 늘리는 과정에서 더 많은 연산을 수행해서 크게 확장하기 때문에 숨겨진 내용을 찾을 수 있다.
실제로 코드를 봤을 때는 일반 FeedForward Network은 차이는 없었다.
그러면 굳이 왜 position-wise(=element-wise)라고 했을까? 저자가 다른 관점에서 생각하여 각 token(position)이 각자의 weight로 계산되어 커지고 작아지는 연산이 수행된다는걸 강조하고 싶었던 게 아닐까라고 추측한다.
residual connection이란 잔차 연결로, weight layer를 통과한 F(x)와 weight layer를 통과하지 않은 x의 합을 지칭한다.
왜쓸까?
x+F(x)
를 x
로 미분하면 최소 gradient를 1로 갖게된다. 따라서 layer가 아무리 깊어도 최소 gradient가 1 이상 가지기 때문에 vanishing gradient 문제를 완화한다.
layer normalization은 vanishing gradient 문제를 해결하기 위해, 매순간 input을 평균 0, 표준편차 1인 정규분포로 바꿔준다. 그리고 variance와 bias를 조절할수 있는 scale and shift를 수행한다.
왜쓸까?
아무리 input layer에서 정규분호를 가지는 입력을 줘도 hidden layers를 지나면서 그 분포가 저점 정규분포를 벗어나게 된다. 치우친 상태에서 backpropagation을 하게 되면 대부분의 분포가 gradient가 0인 부분으로 치중되기 때문에 vanishing gradient 문제가 발생한다. 따라서 vanishing gradient를 완화하기 위해 layer normalization를 사용한다.
Sin, cos 함수를 사용하여 각 token마다 (1, 𝑑_𝑚𝑜𝑑𝑒𝑙) 크기의 위치 벡터를 생성하는 것이 positional encoding이다.
왜 필요한가?
RNN이 단어의 position에 따라 단어를 순차적으로 입력받아서 처리하기 때문에 각 단어의 위치 정보를 가질 수 있었다. 하지만, Transformer는 단어를 순차적으로 입력받지 않는다. 그래서 Transformer의 encoder와 decoder에게 문장의 순서 정보를 주기 위하여 positional encoding을 사용한다.
Self-attention 즉 자기 자신 위치에서 문장 내 다른 token들과의 유사도를 비교하여(dot product) 의미론적으로 가까운 token을 찾기 위해 attention mechanism을 사용한다. 그러므로, Attention mechanism을 하는 이유는 입력 문장의 각 token에서의 어떤 token으로의 의미가 집중(attention)되는지 알 수 있다. 그래서 encoder layers가 깊을수록 자기 자신의 token이 주변 token들과의 attention이 높아지는 걸 확인할 수 있다.
의미론적으로 가까운 token이 무엇일까?
그러면 실제로 pre-trianed Transformer Encoder의 Multi Head Attention Layer에서 각 head 에 대한 attention score matrix를 시각화를 수행해보면 어떨까?
사용한 pre-trained model
- OpenNMT 에서 공개한 pre-trained Transformer
- Attention Is All You Need 에서 공개한 Transformer base model 과 아키텍처 , 학습방법 , 사용한 Machine Translation dataset 이 동일함 (BLEU 26.89)
- Dataset : WMT 2014 English German dataset
input : The log file can be sent secretly with email or FTP to a specified receiver
ly token
에서 전체 tokens 의 attention 이 높은 현상이 일어남추천하는 순서대로 리스트를 작성하였다