论文地址:
https://arxiv.org/abs/2205.09921arrow-up-right
本文利用PD kernel来构造相对位置编码,得到了非常好的外推效果(训练长度为512,inference长度为1024),定义这里不再复述,理一下论文思路:
相对位置编码形式:k(m,n)=f(m−n)k(m,n)=f(m-n)k(m,n)=f(m−n);
CPD kernel可以描述高维空间中的距离,这一点和相对位置编码很像,但是由于无法表述内积,所以和Attention无法兼容;
CPD kernel通过平移可以转换为PD Kernel,即对于CPD kernel k~\tilde kk~,存在ccc,使得c+k~c+\tilde kc+k~为PD kernel,尽管ccc无法直接给出,但是由于Softmax的平移不变性,可以在计算的时候再使用;
常见的CPD kernel:
k~(x,x′)=−a∥x−x′∥p with 0<p≤2 and a>0\tilde{k}\left(\mathbf x, \mathbf x^{\prime}\right)=-a\left\|\mathbf x-\mathbf x^{\prime}\right\|^{p} \text { with } 0<p \leq 2 \text { and } a>0k~(x,x′)=−a∥x−x′∥p with 0<p≤2 and a>0
k~(x,x′)=−b⋅log(1+a∥x−x′∥p) with 0<p≤2 and a,b>0\tilde{k}\left(\mathbf x, \mathbf x^{\prime}\right)=-b \cdot \log \left(1+a\left\|\mathbf x-\mathbf x^{\prime}\right\|^{p}\right) \text { with } 0<p \leq 2 \text { and } a, b>0k~(x,x′)=−b⋅log(1+a∥x−x′∥p) with 0<p≤2 and a,b>0
实际计算公式:
sm,n=qm⊤kn+k~(m,n)s_{m,n}=\mathbf q_m^{\top} \mathbf k_n + \tilde k(m, n)sm,n=qm⊤kn+k~(m,n)
不变。
暂无,但是实现起来很简单。
适用于所有场景,论文测了LM,结果是外推性非常好。
暂无。
非常好的想法,将理论和实际结合,这里给出一个小问题:
为什么外推性比较好,没有给出理论或者直觉解释;
Last updated 3 years ago