NLP

XLNet [Generalized Autoregressive Pretraining for Language Understanding] - 논문리뷰

김다응 2022. 7. 25. 15:44
728x90

[youtube] PR-175: XLNet: Generalized Autoregressive Pretraining for Language Understanding : https://www.youtube.com/watch?v=koj9BKiu1rU 참고

 

 

Abstract

abstraction

이전의 Transformer XL 과 똑같은 저자분들이 등장함 (reject)

Pretraining model 을 크게 두개로 나누어서 설명하고 있음

  • Autoregressive
    yt = ayt-1 - ut
    Y 는 현시점 Y 에 영향을 주는 자기 자신에 대한 함수가 됨 (forward, backward 가 존재)
    (한방향으로 가기 시작하면 그 다른 정보는 볼 수 없다는 단점이 존재 bidirectional rnn 결과도 forward 따로 backward 따로였기 때문에
    진정한 의미의 bidirection 은 아니었음 (text generation 시에 기존의 token 을 가지고 다음을 예측하는 것과 잘 맞기 때문에 좋은 성능을 내고 있음))
    이 모형을 특별히 1st order autoregressive model 이라고 함
    input seq = x = (x1, x2, ..., xT) 로 가정하면 likelihood 의 값이 곱의 형태로 나오게 됨 (독립이라는 가정이 존재)
    기존 확률들의 누적으로 현재의 형태가 표현되는 구조임
    목적함수로는 로그 확률로 각각이 더해지는 형태로 구성할 수 있음

 

  • Autoencoding
    AE 는 주어진 input 에 대해 모델을 통과한 값이 원래 input 을 그대로 예측하는 문제를 풀어감
    (전체 seq 를 가지고 일부를 masking 을 하고 token 이 실제로 어떤 것이었는지 맞추는 방식)
    Denoising AE 의 경우 noise 가 섞인 input 을 원래의 input 으로 예측하는 문제를 품
    BERT 의 경우 input seq 에 대해 각 mask 의 정답 token 이 등장할 확률은 독립이 아니지만 각 확률의 곱을 나타내기 위해 독립이라고 가정함
    그래서 애매하게 같다는 등호를 사용

 

 

기존 BERT 의 문제
  • BERT : bidirectional contexts, denoIsing autoencoding based pretraining
  • BERT 가 autoregressive LM 보다 훨씬 성능이 좋았음
  • BERT 는 masked positions 와 pretrain-finetune 시의 불일치 문제가 있음

 

 

XLNET 이 제안하는 바
  • 전체에 대한 예상 likelihood 를 최대화하여 bidirectional contexts 를 학습함
  • 자기 회귀 공식을 통해 BERT 의 한계를 극복
    • masked token 사이에 있는 값들은 제대로 담아내지 못함
    • 아래 공식과 같이 NEW 가 나오고 YORK 이 곱해질 확률과 YORK 이 나오고 NEW 가 곱해질 확률은 달라야하는데 가정을 independent 하다고 하였기 때문에 둘의 확률이 같게 나옴
  • XLNET 은 Transformer-XL 에서 착안된 아이디어로 pretraining 에서 sota 를 달성하였음
  • XLNET이 BERT 의 task 중 20 개를 뛰어넘음

 

 

1. Introduction

  • AR 과 AE LM 은 가장 뛰어난 pretraining objectives 들임
Auto Regressive Language modeling

  • auto regressive model 을 통해 text corpus 의 확률 분포를 추정함
  • AR language modeling 은 조건부 분포에 의해 학습됨
  • AR Language model 은 uni-directional 한 모델을 학습시키기 위해 사용되었음
  • language understanding task 의 경우 bidirectional context information 이 필요함

 

Likelihood 와 Objective (AR 세부 설명)
  • input seq 의 likelihood 는 forward backward 방향의 conditional probability 들의 곱으로 나타냄
  • 모델은 이러한 conditional distribution 을 objective 로 학습함 (negative-log likelihood)
  • AR 은 forward, backward 에 대한 방향이 정해져야 함
  • 한쪽 방향의 정보만을 이용할 수 있음 (ELMo 의 경우 양방향을 이용하지만 각 방향에 대해 독립적으로 학습된 모델을 이용하므로 얕은 이해만 가능함)

 

Auto Encoder Language modeling

  • AE 기반 사전 훈련은 명시적으로 density estimation 을 수행하지 않음
  • denoising 된 입력에서 원본 데이터를 재구성하는 것을 목표로 함
  • input token 이 주어지면 랜덤한 부분의 token 들이 [MASK] 토큰으로 대체됨
  • model 은 원래 token 을 복원하도록 훈련 됨
  • BERT 는 density estimation 의 목표와 어긋남 (BERT는 bidirectional contexts 를 재구성 함)

 

 

Denoising Auto Encoder

  • input 그대로 예측하는 문제를 풀고 noise 가 섞인 input 을 원래의 input 으로 예측하는 문제를 품
  • noise token 이 주어졌을 때 [mask] 토큰을 원래 input 으로 복구하고자 함
  • p(x- | x^) 와 이를 Maximize 하는 objective 를 이용함
  • 이것을 계산하는 과정에서 차이점이 존재
  • independent assumption
    • 주어진 input seq 에 대해 각 [MASK] token 의 정답 token 이 등장할 확률은 독립이 아니지만 독립으로 가정
    • 독립으로 가정하면 확률의 곱으로 표현할 수 있음
  • xt 가 [MASK] token 일 경우 mt = 1, 나머지 경우에는 mt = 0 mask 토큰에 대해서만 prediction 을 진행함
  • mt 를 둬서 [mask] token 만 예측하는 objective 는 denoising autoencoder 의 objective (input + noise 에 대해 input 을 복원 noise 의 위치와 관계없이 input 전체를 복원)
  • noise 자체는 실제 fine-tuning 과정에는 등장하지 않으므로 pre-training 과 fine-tuning 사이의 불일치가 발생
  • 모든 token 이 독립적으로 예측되어 이들 사이의 dependency 학습 불가능

 

 

Pros Cons
  • AE 를 사용하면서 얻을 수 있는 장점은 AR 언어 모델링에서 앞서 언급한 bidirectional information 격차를 해결할 수 있다는 것
  • BERT 에 의해 사용된 MASK 는 finetuning 시 사용되지 않음 (pretrain-finetune 불일치 문제 발생)
  • BERT 는 AR language modeling 에서 사용한것 처럼 joint probability 를 사용할 수는 없음
  • BERT 는 각각의 unmasked tokens 들에 대해 tokens 를 독립적으로 예측됨
  • high-order, long-range dependency 가 지나치게 단순화됨

 

 

XLNET 의 제안
  • 앞서 언급했던 두가지 AR, AE 모두의 장점을 최대한 활용하면서 한계를 피하는 일반화된 자동회귀 방법

  • 새로운 Objective 를 제안
    • AR model 의 forward, backward factorization 을 수정
    • XLNet 은 seq 의 log likelihood 를 극대화
    • 모든 factorization order 의 permutations 가 가능해짐
    • Permutation operation 에 의해 left / right 의 모든 position 을 가질 수 있게 됨 (capturing bidirectional context)
  • 일반적인 AR LM 에서 XLNet 은 data corruption 에 의존하지 않음
  • XLNET 은 pretrain-finetune discrepancy 를 겪지 않음
  • autoregressive model 은 예측 token 에 대해 joint probability 를 사용하므로 BERT 의 예측의 독립성을 제거한다.
  • novel pretraining objectives 에 대해서 XLNet 은 pretraining architectural designs 를 개선시킴
  • AR Language modeling 에 착안하여 XLNet은 Transformer-XL의 세그먼트 반복 메커니즘과 인코딩 체계를 사전 훈련에 통합함
    더 긴 텍스트 시퀀스와 관련된 작업의 성능 향상을 실험적으로 확인하였음
  • 단순히 Trasformer architecture 를 permutation-based lM 에 적용하였을 때 정상적으로 동작하지 않음
    • factorization 의 순서가 임의적이며 대상이 모호함
    • ambiguity 를 지우기 위해 Transformer network 를 reparameterize 함

 

 

Related Work

- permutation 기반 AR modeling 아이디어는 32번 12번에서 탐구되었음

- 순서가 없는 귀납적인 bias 를 적용하여 density estimation 을 개선하는 것을 목표로함

- XLNet 은 AR 언어 모델이 양방향 컨텍스트를 학습할 수 있도록 하여 동작하게 함

- target 을 예측하기 위해 XLNet 은 2 stream 을 통해 target position 을 hidden state attention 으로 통합함

- 이전 permutation AR model 은 고유한 position awareness 에 의존하였음

- NADE 와 XLNet 모두 순서가 없음이 seq 가 무작위 permutation 으로 구성될 수 있음을 의미하는 것이 아닌 모델이 분포의 다른 factorization 의 차수를 활용한다는 것을 의미함

- XLNet 에서는 고정된 순서만 고려하는 text generation된 context 에서 autoregressive denoising 을 수행함

 

 

2. Proposed Method: XLNet

2-1. Background

  • 일반적인 AR 의 objective function h(seta)(x1:t-1) 은 model 의 context representation임 (RNN, Transformers 와 동일)
  • e(x') 는 x 의 embedding 이다.
  • BERT 는 x^ 이 random 하게 setting 되었다.
  • x- 은 mask 된 token 을 말한다
  • training objective 는 x- 을 x^ 을 통해 복원하는 것이다.
  • XLNet 은 AR 과 AE 를 아래 3가지 관점에서 비교하여 각각의 장점만 취득함
    • Independence Assumption
      AE 의 objective function 은 조건부 확률을 계산하는 것임 모든 x- 에 대해 reconstruction 이 independent 하게 이루어진다는 가정하에 이루어짐.
      반면 AR 의 objective function 은 이러한 가정이 없이도 성립함.
    • Input noise
      AE 에서는 [Mask] token 과 같이 실제 input 에 없던 token 들이 추가되게 됨
      pretraining 때에만 존재하는 token 으로 fine-tuning 과정에서는 존재하지 않음
      이러한 pretraining 과 fine-tuning 사이의 괴리를 해결하기 위해 BERT 에서는 masking에 대해 모두 [mask] 로 처리하지 않고 orginal 을 그대로 두는 등의 방법을 사용했으나 의미 있는 결과를 도출할 수 없었음
      AR 에서는 input 에 대한 변경이 없기 때문에 이러한 문제가 발생하지 않음
    • Context dependency
      AE 는 bidirectional context 를 모두 학습할 수 있지만 AR 은 undirectional context 만 학습함

 

 

2-2. Permutation Language Modeling Objective

  • AR 의 장점은 모두 취하면서 AR 의 단점을 해결하는 (Bidirectional Context) Objective Function 을 정의하기로 함
  • ZT 는 길이가 T 인 seq 의 모든 순열 집합을 뜻함
  • Zt 는 ZT 에서 t 번째 element 를 의미함
  • Z<t 는 ZT 에서 0~t-1 번째 원소들을 의미함
  • Objective function 은 xi 에 대해 xi 를 제외한 모든 xt 를 전체 집합으로 하는 순열에 대해 likelihood 를 구하게 됨
  • AR 의 구조를 채택했으나 permutation 을 사용해 bidirectional context 까지 학습하도록 한 것

Permutation 은 input 이 될 때에 조합을 섞어놓고 학습을 진행한다.
8개의 seq 가 있다면 가능한 조합은 8! 가 됨
Forward 와 Backward 둘다 조합에 들어가게 됨

x3 을 예측한다고 하였을 때
3이 제일 처음에 나와있는 값이므로 해당 값을 관심값으로 setting 함 3은 제일 처음에 있는 값이므로 이전의 정보를 들고오지 않음
왼쪽의 회색 박스는 이전 정보를 저장해둔 memory 같은것이라고 이해
두번째 리스트의 경우 3의 이전에 2 4 가 있으므로 해당 값을 가짐
이렇게 계속 반복된다

permutation 은 계산을 조합한 뒤에 앞에 값들을 가지고 뒤에 값을 예측하게 됨 (auto regressive 함)
permutation lm 은 is a city 를 통해 new 를 예측하고 또 다시 new 까지 합친 것에서 York 를 예측한다.
이렇게 수행하면 치명적인 단점이 존재하게 됨

 

 

2-3. Architecture: Two-Stream Self-Attention for Target-Aware Representations

permutation LM 은 input token 들이 이렇게 섞은 뒤에 판단하므로 다음에 나올 token 이 어느 위치에 있는 token 일지 알 수가 없음
2134 를 가지고 판단해야한다고 가정하면 조합의 순서에 따라 5일 수도 있고 6일수도 7일 수도 있게 된다.
이 정보를 사전에 입력할 수가 없음
이것을 해결하기 위해 Two-stream self-attention 을 사용
2가지의 self attention 을 사용함

 

 

  • 일반적인 Transformer 의 Self-Attention 구조에서는 Q, K, V 가 모두 같은 값으로 시작되게 됨
  • 하나의 hidden state 의 값을 공유함 XLNet 에서는 구조상 Query, Key, Value 가 모두 같은 값으로 시작됨
  • XLNet 에서는 구조상 Query 의 값과 Key, Value 의 갓이 분리되어야 한다.
  • Z1 에서 T = 4 일 때 두가지 순열이 결정되었다고 가정하면 t = 3 에 대한 조건부 확률을 구하고
  • Z2 에서 T = 3 에 대한 조건부 확률을 구하게 된다.
  • 위의 두 조건부확률식은 완전히 같은 식임. x1 가 x4 가 같은 word 라면 완전히 같은 조건부 확률을 계산하는 상황이 발생함
  • 직전 시점 t-1 까지의 정보 embedding 을 저장하는 representation 만으로는 이러한 문제를 해결할 수 없음.
  • 현재 시점위 위치정보까지 받는 새로운 representation g 를 추가함

 

 

Content Representation

h seta 는 기존 Transformer 의 hidden state 와 동일한 구조임
현재 시점 (t) 의 정보까지 포함해 입력으로 받음 -> Content Representation 이라고 하고 Key, Value 에 사용
g 는 현재 시점 t 의 정보를 제외하고 입력으로 받음
대신 현재시점의 위치정보는 입력으로 받음 (Query Representation)

 

 

Permutation Language Modeling with Two Stream Attention

Query 의 초기값은 wieght key value 의 embedding 된 input 값 e임.
이후 Query Stream 은 현재 시점 t 의 위치정보는 알 수 있지만 실제 xz 는 알지 못하는 상태로 구해짐
Content Stream 은 현재 시점 t 의 위치정보는 물론 실제 값도 사용해 구해짐

기존의 selft attention 과 다르게 두개를 사용 Query 와 Content 를 사용 Content stream 은 예측하고자 하는 token 을 같이 학습함
predict 해야할 정답 라벨을 같이 학습시킨다는것은 말이 안됨
그래서 Query stream 으로 함께 학습하게 됨
Query stream 은 전에 있는 정보들을 활용하되 마지막의 예측해야할 토큰에 대해 위치 토큰 임베딩만 가져와서 사용하게 됨

m 은 Multi-head Attention Layer 의 현재 Layer Number 임

 

 

세부 설명

왼쪽 위 부분이 (self attention) standard transformer 임
Q K V 를 다 구해서 Q 를 weight sum 하게 되면
b 번을 확인해 보면 기존처럼 맨 처음에 토큰들을 가져오지 않고 이후 token 들을 가져오고 g1 에는 random initialize 값과 position 에 대한 정보만 가질 수 있도록 하는 attention 이 됨
masked two stream attention 이라고 함

  • content 의 경우에 자기 자신을 볼 수 있고
  • Query 의 경우에는 자기 자신을 볼 수 없음

 

 

2-4. Modeling Multiple Segments

해당 부분은 transformer-XL 에서 정의된 방식이다.

  1. segment recurrence
    • 고정된 시퀀스가 있을 때 해당 sentence 에 대해서만 문장을 가져오는 것은 한계가 있음
    • 실제 task 는 조금 더 긴 context 를 가져와야한다는 문제에서 나옴
    • segment 를 쪼갠다음 이전 segment 를 다음 segment 로 이어져서 가져온다는 것
    • new segment 가 들어왔을 때 fixed 에 대한 이전 정보를 cache 로 갖고 있다가 다음의 결과를 내는 것임
  • BERT 의 Input 과 동일한 구조를 채택함
  • [CLS, A, SEP, B, SEP] 의 구조임
  • A 와 B 는 각각 sentence A, sentence B 이다.
  • BERT 와의 차이점은 NSP 를 Pretraining 에 적용하지 않은 것 (BERT 에서 유의미한 성능 향상이 없었기 때문)

 

 

2-5. Relative Segment Encodings

  • BERT 의 segment embeddings 는 Sa 와 Sb 등으로 A 문장인지 B 문장인지를 드러냈음
  • XLNet 에서는 Transformer-XL 의 relative positional encoding 의 idea 를 segment 에도 적용해 relative 한 값으로 표현함
  • XLNet 의 segment Encoding 은 두 position i, j 가 같은 segment 라면 다른 segment 라면으로 적용된다.
  • 이러한 relative segment encoding 은 재귀적으로 segment encoding 을 찾아내면서 generalization 한 표현이 가능하다는 점 segment input 에 대한 처리 가능성을 열었다는 점에서 의의가 있음

 

 

2-6. Discussion

  • 구체적인 예시를 들어 BERT 와 비교 "New York is a city" 라는 문장을 pretraining 하는 상황
  • [New, York] 의 두 token 을 predict 하는 것이 목표임

  • XLNet 은 순열을 특정해야 objective 를 구체화 할 수 있음
  • XLNet 은 AR Model 이므로 input sentence 에 변형을 가하지 않았고 predict target word 사이의 dependency 역시 학습할 수 있음
  • 위의 예시에서는 York 를 예측할 때 New token 의 정보를 활용함