BERT와 같이 양방향 문맥을 모델링하는 능력으로 사전학습을 기반으로 한 denoising autoencoding은 autoregressive LM을 기반으로 하는 사전학습된 접근보다 훨씬 좋은 성능을 보였다. 그러나 인풋을 마스크로 denoising하는 것에 기반하면서 BERT는 마스크된 자리 사이의 의존을 무시했고, pretrain과 finetune 사이 차이가 존재했다. 이러한 BERT의 장단점과 관련해 XLNet을 제안한다. XLNet은 일반화된 qutoregressive pretraining method로 다음과 같은 특징을 갖는다.
Realted Work
AR model의 장점(독립 가정 필요 없음, pretrain - finetune 간 차이 나타나지 않음), bidirectional contexts를 모두 유지하는 objective
길이 의 sequence x에 대해, 의 다른 순서를 사용한다.
만약, 모델 파라미터가 모든 인수분해 순서(factorization order)를 갖고 있는다면, 모델은 모든 위치에서 각 양 방향의 정보를 모을 수 있도록 학습될 것이다.
x(text sequence)에 대해 factorization order z를 때마다 샘플링 할 것 이고, 이 factorization order z에 따라 를 순서에 맞게 분해할 것이다.
는 모든 factorization order에 거쳐 훈련동안 공유되기 때문에 는 모든 가능한 요소 일 것이다. 그래서 양 방향의 문맥을 다 잡아낼 수 있다.
이 objective는 AR 프레임워크에 맞춰져있기 때문에 자연스럽게 독립 가정, 사전학습과 파인튜닝 사이의 간극을 피할 수 있게 된다.
제안한 objective는 오직 factorization order의 순서를 바꾸고, sequence의 순서를 바꾸지 않는다!
아래 그림은 token 를 예측하는 예시인데 같은 input sequence x이지만 다른 Factorization order를 사용하는 것을 보여주는 예시이다.
각 순서들에 대해 x3 를 예측하는 부분(초록색)을 보면 x3 를 예측하기 위해 [x4],[x2,x4],[x1,x2,x4] 를 이용합니다. 모든 permutation()에 대해 위 과정을 수행하면 x3를 제외한 [x1,x2,x4] 의 모든 부분집합에 conditional한 x3 의 probability를 계산할 수 있습니다. 그러므로 특정 token에 대해 양방향 context를 고려한 AR Modeling이 가능해지고 기존 AR방식의 한계를 극복할 수 있습니다. (https://blog.pingpong.us/xlnet-review/)
같은 형식의 AR LM은 단방향으로 진행되기 때문에 target index position이 명확함.
그러나 XLNet의 object는 index를 permutation한 후 진행하기 때문에 이전까지 Index가 같더라도 여러 target index position이 존재할 수 있음.
Input sequence [x1,x2,x3,x4]와 index의 permutation =[[1,2,3,4],[1,3,2,4],…[4,3,2,1]] 에 대해 학습을 진행한다고 가정해 보겠습니다.
[2,3,1,4]의 경우 p(x1∣x2,x3)을 계산하기 위해 hθ(x2,x3) 과 같은 representation을 이용합니다.[2,3,4,1]의 경우에도 p(x4∣x2,x3)을 계산하기 위해 hθ(x2,x3) 과 같은 representation을 이용합니다.결과적으로 같은 representation을 이용하여 x4과 x1을 예측해야 하는 문제가 발생합니다.
2번 조건을 충족하기 위한 = 는 Content representation로, 기존의 Transformer와 비슷한 역할을 한다. 이 representation은 context와 둘다 인코딩한다.
target position 정보인 과 t시점의 content를 담고있는 토큰인 를 사용한다.
Content Stream은 Query로 이전 layer의 h state(),
Key, Value로는 이전 Layerdml h state()를 사용한다.
기본 Transformer의 self attention과 Q,K, V가 동일, t index 이후의 token state들은 making하여 연산 진행.
SEP, CLS 두개의 special symbol과 A, B라는 두개의 segments를 이용한다.
BERT와 다른 것은 완전한 segment embedding을 각 자리에 word embedding에 더한다는 것이다.
Transformer-XL의 relative encoding의 idea를 이어받아 segments를 인코딩한다.
relative segment encoding의 장점
[참고1](https://blog.pingpong.us/xlnet-review/](https://blog.pingpong.us/xlnet-review/)