XLNet
Introduction
现在主流的预训练模型可以被分为两类:autoregressive(AR)和autoencoding(AE)
- 
AR:recurrent model 单向模型 
- 
AE:reconstruct the original data gap between pretraining and finetuning 假设:被mask的词无关 
XLNet尝试使用一个新的预训练任务来解决AR和AE预训练模型现存的一些问题。
Contribution:
- 预训练任务Permutation:不使用前向/后向的顺序,而是使用打乱后的单词顺序
- 使用Transformer-XL里面的segment recurrence mechainism和relative position encoding
- 调整Transformer-XL使得其结构适用于permutation-based LM
Objective: Permutation Language Modeling
如果序列$\textbf{x} = [x_1, ...,x_T]$, 那么一共会有T!种排列方式,记为 $Z_T$ 。那么, $z_t$ 和 $\textbf{z}_{<t}$ 就是permutation$\textbf{z}\in Z_t$中的第t个元素,和前t-1个元素(在原始序列的的位置)
那么,建模的目标就可以设置为:

其中,$\theta$是所有的permutation所共享的
Remark
训练的目标是把输入序列的顺序打乱了的,因此我们需要记住原始序列的顺序:positional encoding只使用原始序列中的位置
另外,在finetuning的时候,只使用原始序列
?是否仍然存在pretraining-finetuning gap?
对Transformer的修改
由于XLNet是permutation language modeling,因此不能使用传统的softmax作为输出层:

其中$h_\theta$是X_z<t的隐藏状态。这样的话,会导致对于相同前缀的permutation,其下一个token的概率永远是一样的:
[1,2,3 | 4,5] vs [1,2,3 | 5,4]
因此需要加入位置信息$z_t$,上式变为:

这里就是所谓的Two-Stream Self-Attention的来源:同时考虑$g_\theta$和$h_\theta$
Two-Stream Self-Attention
这里带来了一个问题:预测$x_{z_t}$,就只能考虑位置信息$z_t$;预测$x_{z_j}, j > t$,那么就可以考虑整个t位置上面的context信息$x_{z_t}$
所以,XLNet提出同时维护两套隐状态:$h_\theta(x_{z_{<=t}})$和$g_\theta(x_{z_{<t}}, z_t)$,后面使用$h_{z_t}$和$g_{z_t}$表示,即content stream和query stream。
对于第一层,g0被设为一个可训练的向量,h0就直接使用第一个词的embedding。在训练的时候,两个stream共同使用一套参数$\theta$



整体模型的结构:

Partial Prediction
由于实际训练时,permutation LM收敛很慢,因此在每一个permutation序列中只预测一部分词
Incorporating Ideas from Transformer-XL
从Transformer-XL中借鉴了两个非常重要的机制:
- 
relative positional encoding 用来记录原始序列中的顺序 
- 
segment recurrence mechanism  
Modeling Multiple Segments
对于多segment的训练,XLNet会随机采样两个segment,然后把它们接起来 - [CLS, A, SEP, B, SEP],作为PLM中的一个序列来训练
Relative Segment Encoding
只考虑两个位置是否在同一个segment中,记为s_ij
对于两个位置i,j,Attention weight $a_{ij}=(q_i+b)^Ts_{ij}$ ,其中q_i是Transformer的query,b是bias
Experiment
Setup
- 
tokenizer: sentencepiece 
- 
Pretraining sequence length: 512 
- 
512TPU v3, 500K steps 
- 
optimizer: Adam weight decay optimizer 
- 
Batch size: 8192 
- 
pretraininig cost 5.5 days 
Performance
好于BERT/RoBERTa