이번 논문은 구글 AI팀에서 발표한 논문으로 2019년 6월 발표 당시 20개 자연어 처리 부분 최고 성능을 기록한 논문이다.
19년 1월 나온 TRANSFORMER-XL: ATTENTIVE LANGUAGE MODELS BEYOND A FIXED-LENGTH CONTEXT 후속버젼의 논문으로 저자들 또한 완벽히 일치한다.
본 논문은 당시 최고 성능을 자랑하던 BERT보다 20개의 nlp task에서 더 좋은 성능을 보였으며 그중 18개 task에서 SOTA를 달성하였으며 기존 language model들이 갖고 있던 Autoregressive 한 특성을 유지, 다양한 context의 방향에서 학습한 모델을 구현하였다.
1. Introduction
Pretraining method를 크게 2가지로 본다면 Autoregressive(AR) / AutoEncoding(AE) 로 볼 수 있다.


AR 모델
- 데이터를 순차적으로 처리하는 기법 (예 : ELMO, GPT) - 단방향(forward, backward) 학습
- 이전 단어 입력 후 다음 단어 출력
- text generation에서 좋은 성능

AE 모델
- 입력값을 복원 처리하는 기법 (예 : BERT) - 양방향 학습
- mask 단어를 예측하기 위해 앞뒤 문맥을 모두 학습 후 예측
- (단점) - masking된 token들을 서로 independent라 가정해야 한다
- (예) - New York is a city라는 문장에서 New와 York를 서로 독립시킨다면 New다음 York라는 단어가 나올 확률과 New가 나오지 않았을 경우 York가 나올 확률이 달라짐
- language understanding에서 좋은 성능

2. Proposed Method
AR모델과 AE모델의 단점을 극복하고 장점을 살리기 위하여 새로운 방법 제시
Permutation Language Modeling
inputsequence:x=(x1,x2,...,xT)
likelihood:EZ∼ZT[ΠTt=1p(xzt|xz<t)]
training objective:maxθ EZ∼ZT [∑Tt=1 log pθ(xzt|xz<t)]
input sequence index(순서)의 모든 permutation을 고려한 AR 방식을 이용
ex)
- input sequence [x1,x2,x3,x4]에 대해 index의 permutation의 집합 총 4! = 24
- ZT = [x1,x2,x3,x4], [x1,x2,x4,x3] ...
- ZT 에 대해 AR Language Model objective 적용

위의 예처럼 토큰이 4개인 문장일 경우 왼쪽 위 그림처럼 3->2->4->1처럼 shuffle 된 sequence의 첫 번째 단어(3)를 맞춰야 하는 상황일 경우 3의 토큰 정보를 주지 않는다 (문제가 너무 쉬워지기 때문)

실제 구현에서는 토큰들을 섞지 않고 attention mask로 구현한다.(XLNet의 구조는 transformer network 이기 때문)
Architecture: Two-Stream Self-Attention for Target-Aware Representations

예시로 들은 New York is a city라는 문장을 다시 한번 예시 설명하면
MLM(Masked Language Method)을 사용하면 'New'와 'York'을 모두 mask 하게 되었을 경우 서로 independent 하다는 가정이 깔리기 때문에 New가 있을 때 York이 나올 확률과 New가 없을 경우 York이 나올 확률이 서로 달라지게 된다는 문제점이 생긴다. 본 논문에서는 이의 문제점을 해결하기 위해 Permutation Language Model을 사용하였다.
하지만 Permutation Language Model을 사용하였을 경우의 문제점도 생기게 된다.
아래 그림처럼 다음에 예측할 token이 몇 번째 token인가에 대한 정보가 없다는 문제가 생긴다.

따라서 본 논문에서는 Two-Stream Self Attention이라는 기법을 사용하였다.
Two-Stream Self Attention
query stream attention과 content stream attention 두 가지를 혼합한 self-attention 기법
content stream attention(기존 self-attention과 유사하다)
- 예측하고자 하는 토큰의 실제 값 정보를 같이 사용하여 예측
- h(m)zt←Attention(Q=h(m−1)zt,KV=h(m−1)z≤t;θ
- z : 원래 문장 순서를 random shuffle 한 index list
- zt : z의 t번째 요소


query stream attention
- 토큰, position 정보를 활용한 self-attention 기법
- g(m)zt←Attention(Q=g(m−1)zt,KV=h(m−1)z<t;θ
- content stream attention과는 다르게 예측하고자 하는 target 토큰 이전 정보들의 값(position embedding, random initialization 된 값)을 가지고 예측



Incorporating Ideas from Transformer-XL
기존 Transformer 는 fixed size의 sequence(context) 길이를 넘을 경우 최대 sequence 이후의 token들을 학습에서 제외하는 단점을 갖고 있었으며 Transformer-XL에서는 Extra-Long size의 context 정보를 활용 가능하도록 segment recurrence 기법을 활용하였다.
context를 작은 segment 단위로 자른 후 첫번째 segment를 기존 Transformer 처럼 학습, cache에 저장, 두번째 segment 학습(첫번째 segment 정보 활용 - memory라고 부름) 하는 방식을 반복하여 진행한다.
(현재 segment 계산시 메모리 학습X -> loss를 줄이기 위해 gradient에 memory 반영 X)


3. Experiments




4. Conclusions
- 기존 Transformer-XL이 Language modeling에는 좋지만 downstream task에도 좋은가에 대한 의문점을 해결한 논문
- 기존 좋은 성능을 보여주던 masking 방식 없이 permutation 방식을 활용
- AR(auto-regressive language)모델의 형식을 갖고왔으며 auto-encoder(AE)의 bidirectional context 정보를 활용함으로써 AR과,AE의 모든 장점을 가져온 모델 소개
본 게시물은
https://www.youtube.com/watch?v=koj9BKiu1rU , https://ratsgo.github.io/natural%20language%20processing/2019/09/11/xlnet/
을 참고하여 게시하였습니다.
'ML 관련 > 자연어 처리 관련' 카테고리의 다른 글
[논문 리뷰] SNS에서 단어 간 유사도 기반 단어의 쾌-불쾌 지수 측정 (0) | 2020.06.03 |
---|---|
[논문 리뷰] OpinionFinder: A system for subjectivity analysis (0) | 2020.05.23 |
[논문 리뷰] Beating Atari with Natural Language Guided Reinforcement Learning (2) | 2020.04.13 |
[논문 리뷰] Attention is all you need (0) | 2019.12.05 |
[논문 리뷰] Bidrectional Transformers for Language Understanding(BERT) (4) | 2019.12.04 |
댓글