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

计算 g^l 时用到了 h^,表示第 l-1 层除了第 1 个词外所有词的表征,这是为了保证标签不泄露;计算 h^ 时用到了 h{:}^,表示第 l-1 层所有词的表征,这和标准的 Transformer 计算表征的过程一致。

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

图3/6

但上述做法在堆叠多层自注意算子时仍然会带来标签泄露。

虽然计算 g^ 时我们已经采取措施防止 h^ 的信息泄露到 g^ 中,但是考虑两层自注意力算子的计算:

我们看到第 l-2 层第 1 个词的表征 h^ 会通过第 l-1 层的所有表征 h^ 泄露给 g^。

和将 Transformer 应用到自回归语言模型的情况类似,我们还需要对每层的注意力使用注意力掩码 (Attention Mask),根据选定的分解排列 z,将不合理的注意力权重置零。我们记 z 为分解排列中的第 t 个词,那我们在词 z 的表征时,g^ 和 h^ 分别只能看到排列中前 t-1 个词 z 和前 t 个词 z,即

推荐阅读