拆解XLNet模型设计,回顾语言表征学习的思想演进(15)

在下图中记 "MASK" 对应的词向量为 G,X2 - X4 为各自的词向量,G1, H1 - H4 为各自的表征。图中省略了位置编码 p。

拆解XLNet模型设计,回顾语言表征学习的思想演进

图2/6

上面只是讨论最简单的情况 -- 即一句话只产生一个样本。但我们还希望保证训练效率 -- 我们想和自回归语言模型一样,只进行一次整句的表征计算便可以获得所有样本的语境表征。这时所有词的表征就必须同时计算,此时便有标签泄露带来的矛盾:对于某个需要预测的目标词,我们既需要得到包含它信息以及位置的表征 h (用来进一步计算其他词的表征),又需要得到不包含它信息,只包含它位置的表征 g (用来做语境的表征)。

一个很自然的想法就是同时计算两套表征,这便是 XLNet 提出的双通道自注意力 (Two Stream Self-Attention),同时计算内容表征通道 (Content Stream) h 和语境表征通道 (Query Stream) g。注意这里采用的是意译而不是直译,请读者谅解。

假设我们要计算第 1 个词在第 l 层的语境表征 g^ 和内容表征 h^,我们只关注注意力算子查询向量 Q、地址向量 K 以及内容向量 V 的来源:

推荐阅读