Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

2021. 5. 6. 19:37논문 리뷰

728x90
반응형

Abstract

기존의 Transformer는 longer-term dependency의 학습에 있어 좋은 잠재력을 보였지만 fixed-length context의 language modeling에서는 제한되었다. 우리는 새로운 neural architecture인 Transformer-XL을 제안한다. 이 방법은 longer-term dependency를 catch 하는 것을 가능케 해줄 뿐만 아니라 context분열 문제도 같이 해결해 줄 수 있다. 결과적으로 Transformer-XL은 기존의 RNN에 비해 80% 더 길게, vanilla Transformer보다 450% 더 긴 cotext에 의존성을 잘 파악할 수 있었으며, sequence 길이가 짧던, 길던 다 좋은 성능을 보였다.

속도 역시 1800배 이상 vanilla Transformer보다 빨랐으며, bpc/perplexity 0.99 on enwiki8, 1.08 on text8 등 다양한 분야에서 SOTA를 달성했다.

 

Introduction

Language modeling에 있어서 long-term dependency는 핵심 요소다. 그러나 long-term dependency를 sequential한 data에서 잘 catch 해내는 것은 굉장히 challenge한 일이다. RNN이나 특히 LSTM 같은 network들은 language modeling의 standard로 자리 잡고 여러 benchmark에서 좋은 성능을 거두었지만 RNN의 경우 gradient vanishing 문제나 explosion문제, LSTM의 경우 gate mechanism을 사용하는데 효율성에 대한 문제가 지속적으로 대두되어 왔다.

 

gate mechanism 대신 direct로 long-distance word pair들을 연결한 attention mechanism은 long-term dependency를 학습하는데 효과적이었고 optimization역시 잘 수행되었다. 최근에 auxiliary losses를 둬서 deep Transformer network를 학습하는 방법이 소개됐는데 character-level의 language modeling으로 진행했으며 LSTM의 성능을 크게 뛰어넘는 결과를 보인바 있다. 비록 좋은 성능을 거뒀지만 이 방법은 수백개의 character들로 나누어져 구성되어 있다. 그렇기 때문에 이미 정의 된 길이만큼에 대해서는 강하지만 좀 더 길어지면 dependency를 잘 찾아내지 못한다. 또한 character level로 보기 때문에 문맥적인 정보를 놓치기 쉽다. 이 논문에서 이 문제점을 "context fragmentation" 이라 칭하도록 하겠다.

 

앞서 언급한 문제점들을 보완한 Transformer-XL 모델을 제안한다. 새로운 segment별로 hidden state를 계산하는 것이 아니라 이전의 hidden state들을 재활용하는 방법을 사용했다. 재사용된 hidden state들은 현재의 segment에서 memory처럼 사용된다. 결과적으로 recurrent connections를 통해 아주 긴 dependency를 학습하는 것이 가능해졌다. 게다가 이전의 segment에서 다음 segment로 정보를 전달해줌으로서 문맥적인 정보 또한 놓치지 않았다. 이때 중요한 것은 재사용시 temporal한 혼동이 없게 하기 위해서 abolute positional encoding보다는 relative positional encoding을 사용하는 것이 더 필요하다는 것을 보였다. 그래서 우리는 간단하지만 더 효율적인, 그리고 더 긴 attention lengths를 일반화 할 수 있는 relative positional encoding기법을 소개할 것이다.

 

Transformer-XL은 word-level에서 character level로의 변화하는 다섯가지 dataset에 대해 좋은 결과를 보인다. 또한 일관된 긴 text 기사를 만드는데 사용이 가능한데 이때 학습 데이터는 100M개만 가지고도 만들 수 있다.

 

기술적인 main contribution은 recurrence in a purely self attentive model과 novel positional encoding 기법이다. 이 두가지 기술로 해결책을 제안했으며 Transformer-XL은 RNN을 character-level과 word-level 둘다 뛰어넘는 최초의 self-attention모델이다.

 

Related Work

최근 몇년동안 language modeling은 better encode the context, improving regularization, optimization algorithms, speeding up the Softmax computation 등 다양한 방면으로 발전되어 왔다. 긴 context에 대해서는 네트워크에 추가적인 긴 input을 넣어줘서 학습을 시켰다. 그러나 long-term dependency를 찾기 위한 문제는 아직 남아있었다. LSTM에서는 vanishing gradient 문제를 해결하기 위해 많은 시간을 들였다. 이를 위해서 더 나은 initialization, 추가적인 loss signal, augemented memory 구조 등 다양한 방면으로 노력해왔다. 이와는 다르게 우리의 work은 Transformer 구조에 기반을 두고 있고 longer-term dependency에 대해 더 잘 학습하는 능력이 실제 세상에서 더 좋은 능력을 갖출 language model이라는 것을 보인다.

 

Model

기존 모델은 고정된 길이 segment에 대해서만 수행하고 고정된 context 길이의 결과로, 모델은 사전 정의된 context 길이를 초과하는 long-term dependency를 캡처할 수 없다. fixed-length segments 문제로 잘린 segment들끼리의 경계를 고려하지 않고 연속적인 기호 덩어리를 선택하므로 상황 정보가 부족하여 문맥상의 정보는 알 수 없다.

 

기존 Transformer 구조의 문제점

Transformer-XL의 경우

  • Recurrence를 활용하여 길이 fixed-length problem 해결
  • segment 정보를 효과적으로 주고받기 위해 Relative Positional Embeddings를 활용
  • segment를 학습할 때 그 전 segment를 계산할 때 사용한 Hidden State를 활용
  • 직전 segment의 모든 정보를 캐시로 가지고 있어 속도도 기존의 vanila transformer에 비해 1800배 이상 빠름

hidden state에 대한 정보를 recurrence mechanism을 적용했기 때문에 segment level의 hidden state들 간에 연결성이 생기는 것을 알 수 있다.

Transformer-XL의 구조

한 번 계산할 때 하나의 토큰만 예측하지 않고 하나의 segment를 통으로 예측해버린다. 이 때 직전 segment를 캐시로 가지고 있어서 빠르다.

 

 

Transformer-XL 전체 구조

 

Positional Encoding 같은 경우도 absolute로 설정할 경우 이전의 hidden state에서 정보를 가져올때 position이 꼬이는 문제가 있다.

 

Transformer-XL에서는 이 문제점을 해결하고자 학습가능한 파라미터로 대체해 relative positional encoding을 사용했고, 이는 모델로 하여금 정보가 어디서 왔는지 시간적인 정보를 같이 전달해 준다.

 

Experiment

 

실험내용을 보면 다양한 분야에서 SOTA를 달성한 것을 볼 수 있다. model 사이즈는 기존의 Transformer모델들과 비슷하게 설정해서 진행하였다.(head 갯수 layer 갯수 등등)

728x90
반응형