본문 바로가기
NLP

[논문 리뷰] Self-Attention with Relative Position Representations

by cuda 2023. 3. 6.

이번 게시물에서는 transformer 구조에서 위치 정보를 추가해주기 위해 사용되는 position representation을 절대적인 위치 정보가 아닌 상대적인 위치 정보로 나타낸다는 아이디어를 담은 논문인 Self-Attention with Relative Position Representations을 리뷰해보겠다.

원문 링크는 다음과 같다.

 

Self-Attention with Relative Position Representations

Relying entirely on an attention mechanism, the Transformer introduced by Vaswani et al. (2017) achieves state-of-the-art results for machine translation. In contrast to recurrent and convolutional neural networks, it does not explicitly model relative or

arxiv.org

Introduction

Sequence를 다루기 위한 방법론들은 꾸준히 제안되어왔는데, recurrence(RNN 계열)를 이용하거나, convolution(CNN), attention, recurrence+attention과 같은 방법론들이 그 예이다.

RNN의 경우, sequential한 구조로 인해 time dimension에서의 position을 직접적으로 담을 수 있고, CNN구조의 경우에도 convolution의 kernel size와 함께 자체적으로 relative position을 담을 수 있다.

그러나, attention으로만 구성된 transformer 구조의 경우, convolution과 reccurence 모두 사용하지 않기 때문에 위치 정보를 추가해주는 것이 중요하다.

본 논문에서는 이러한 transformer 구조에 상대적인 위치 정보를 효과적으로 추가해주는 방법을 제시한다.

 

 

Background

논문에서는 relative position representation의 방법론을 설명하기 전에, transformer와 self-attention에 대해 간략히 소개한다.

이에 대해서는 기존에 transformer를 제시한 논문인 Attention is all you need 논문에 대해 리뷰했던 게시물 링크를 걸어놓도록 하겠다.

 

[논문 리뷰] Attention is all you need - transformer란?

이번 글에서는 Attention is all you need 논문을 살펴봄과 동시에 논문에서 제시하는 아키텍처이자, 현재로서는 매우 중요해진 transformer에 대해 살펴보도록 하겠다. 논문 링크는 아래와 같다. Attention I

gbdai.tistory.com

 

 

Proposed Architecture

이제부터는 본격적으로 논문에서 제안하는 방법론에 대해 알아보자

 

Relation-aware Self-Attention

논문에서는 기존 self-attention에 추가로 각각의 input element끼리의 관계를 고려하는 개념을 추가하는 것을 제안한다

이를 위해, self-attention을 하나의 labeled, directed, fully connected graph로 modeling한다.

How are you? 라는 문장이 존재할 때, 이에 대한 self-attention을 graph로 나타내면 다음과 같다.

이때, 각 node를 구성하고 있는  input element들 중, 임의의 두 input element 사이를 연결하는 edge는 vector로 표현된다.

위 예시에서 1번 (How)와 2번 (are) 노드만 생각해보자.

이때, 각 node를 연결하는 edge는 $a_{ij}^V, a_{ij}^K \in \mathbb{R}^{d_a}$ 와 같은 vector 형식으로 표현된다.

즉 위 예시에서는 아래와 같은 방식으로 표현된다.

이렇게 vector로 표현함으로써, 각각의 input element끼리의 관계를 node를 이어주는 edge vector로 나타낼 수 있다

(이 때, edge vector는 model의 hidden vector와 동일한 shape을 가진다)

이러한 edge representation은 attention head의 parameter matrix들과 다르게 attention head간 공유된다

 

이러한 input element끼리의 관계를 나타내주는 edge vector를 self-attention에 반영한 수식은 다음과 같다.

sublayer output인 $x_jW^V$에 edge vector $a_{ij}^V$를 더해준 이후 weight coefficient값을 곱해준다.

weight coefficient의 값은 다음과 같이 구한다.

여기서, $e_{ij}$는 다음과 같이 구한다.

이해를 돕기 위해 그림으로 나타내보겠다.

위에서 사용했던 예시인 How are you?가 word embedding을 통해 다음과 같은 input representation으로 변환되었다고 가정해보자.

먼저, $\alpha_{ij}$와 $e_{ij}$를 구하기 위해 다음과 같은 과정을 거친다.

이후, 이렇게 구해진 $e_{ij}$를 바탕으로 $\alpha_{ij}$를 구하고, 결과적으로 self-attention의 결과물을 구할 수 있게 된다.

 

 

Relative Position Representative

위에서 소개한 graph의 edge는 다른 두 input element의 상대적인 위치의 차이에 대한 정보를 담을 수 있다.

그러나 논문에서는 특정 거리 이상에서는 정확한 상대 위치 정보가 유용하지 않을 것이라고 가정하고, 고려하는 두 input element 사이의 최대 거리를 $k$로 제한한다. 이렇게 maximum distance로 clipping하는 것은 training시 학습하지 못한 sequence length에 대한 일반화를 돕는 효과도 얻을 수 있다. (task마다 input sequence length는 다양한데, 고려하는 두 input element 길이를 $k$로 제한하게 되면 다양한 길이의 length여도 결국 training시에는 0부터 $k$사이의 거리만을 고려하기 때문이다.)

결론적으로, 모델은 $2k+1$의 고유한 edge label들만을 고려하게 된다. 이에 대한 수식은 다음과 같다.

 

 

Experiments

논문에서는 Absolute Position Representation과 Relative Position Representative에 대해 비교 실험을 진행하였다.

결과는 아래와 같다.

 

 

 

 

 

 

 

댓글