Transformer-xl

Transformer-xl

原文:https://blog.csdn.net/Magical_Bubble/article/details/89060213

循环机制

训练阶段,每个隐层接收两个输入

  1. 该段下层隐藏层的输出,与原始Transformer相同
  2. 前段下层隐藏层的输出,使其建模长期依赖关系

\mathbf{q}_{\tau+1}^{n}, \mathbf{k}_{\tau+1}^{n}, \mathbf{v}_{\tau+1}^{n}=\mathbf{h}_{\tau+1}^{n-1} \mathbf{W}_{q}^{\top}, \widetilde{\mathbf{h}}_{\tau+1}^{n-1} \mathbf{W}_{k}^{\top}, \widetilde{\mathbf{h}}_{\tau+1}^{n-1} \mathbf{W}_{v}^{\top}

相对位置编码

若是每个段继续使用相同的位置编码,比如段1的编码[0, 1, 2],段2的编码也是[0, 1, 2],则组合后,位置编码变成了[0, 1, 2, 0, 1, 2],而每个位置的语义在整个序列中应当是不一致的。

在原Transformer中,计算查询与键之间的注意力方式为:

\mathbf{A}_{i, j}^{\mathrm{abs}}=q_{i}^{\top} k_{j} \\ =\left(W_{q}\left(E_{x_{i}}+U_{i}\right)\right)^{T} \cdot\left(W_{k}\left(E_{x_{j}}+U_{j}\right)\right) \\ =\underbrace{\mathbf{E}_{x_{i}}^{\top} \mathbf{W}_{q}^{\top} \mathbf{W}_{k} \mathbf{E}_{x_{j}}}_{(a)}+\underbrace{\mathbf{E}_{x_{i}}^{\top} \mathbf{W}_{q}^{\top} \mathbf{W}_{k} \mathbf{U}_{j}}_{(b)}+\underbrace{\mathbf{U}_{i}^{\top} \mathbf{W}_{q}^{\top} \mathbf{W}_{k} \mathbf{E}_{x_{j}}}_{(c)}+\underbrace{\mathbf{U}_{i}^{\top} \mathbf{W}_{q}^{\top} \mathbf{W}_{k} \mathbf{U}_{j}}_{(d)}

其中,是词的词向量,是对应的位置向量。

而在Transformer-XL中

\mathbf{A}_{i, j}^{\mathrm{rel}}=\underbrace{\mathbf{E}_{x_{i}}^{\top} \mathbf{W}_{q}^{\top} \mathbf{W}_{k, E} \mathbf{E}_{x_{j}}}_{(a)}+\underbrace{\mathbf{E}_{x_{i}}^{\top} \mathbf{W}_{q}^{\top} \mathbf{W}_{k, R} \mathbf{R}_{i-j}}_{(b)}+\underbrace{u^{\top} \mathbf{W}_{k, E} \mathbf{E}_{x_{j}}}_{(c)}+\underbrace{v^{\top} \mathbf{W}_{k, R} R_{i-j}}_{(d)}

对比来看,主要有三点变化:

  • 在(b)和(d)这两项中,将所有绝对位置向量都转为相对位置向量,与Transformer一样,这是一个固定的编码向量,不需要学习。此外,与其他相对位置编码方案不同,该公式使用具有可学习变换的固定嵌入,而不是可学习嵌入,因此更适用于在测试时使用较长的序列。
  • 在(c)这一项中,将查询的向量转为一个需要学习的参数向量,因为在考虑相对位置的时候,不需要查询的绝对位置,因此对于任意的,都可以采用同样的向量。同理,在(d)这一项中,也将查询的向量转为另一个需要学习的参数向量。
  • 将键的权重变换矩阵转为和分别作为content-based key vectors和location-based key vectors。
    从另一个角度来解读这个公式的话,可以将attention的计算分为如下四个部分:

a. 基于内容的“寻址”,即没有添加原始位置编码的原始分数。
b. 基于内容的位置偏置,即相对于当前内容的位置偏差。
c. 全局的内容偏置,用于衡量key的重要性。
d. 全局的位置偏置,根据query和key之间的距离调整重要性。

整体计算过程

\mathbf{q}_{\tau}^{n}, \mathbf{k}_{\tau}^{n}, \mathbf{v}_{\tau}^{n}=\mathbf{h}_{\tau}^{n-1} \mathbf{W}_{q}^{n \top}, \widetilde{\mathbf{h}}_{\tau}^{n-1} \mathbf{W}_{k, E}^{n}, \mathbf{\tilde { h }}_{\tau}^{n-1} \mathbf{W}_{v}^{n \top}

\mathbf{A}_{\tau, i, j}^{n}={\mathbf{q}_{\tau, i}^{n}}^T\mathbf{k}_{\tau, j}^{n}+{\mathbf{q}_{\tau, i}^{n}}^T\mathbf{W}_{k, R}^{n} \mathbf{R}_{i-j}+u^{\top} \mathbf{k}_{\tau, j}+v^{\top} \mathbf{W}_{k, R}^{n} \mathbf{R}_{i-j}

你可能感兴趣的:(Transformer-xl)