"Attention is all you need"中有一个位置编码方案,目的是消除绝对位置的影响。本文尝试从数学角度验证该编码方案可使两位置的编码相关性只受相对位置影响,而不受绝对位置影响。
-
假设条件:
- p 表示第p个单词
- dm 为词嵌入向量的维数,假设为偶数,即 dmmod2=0
- n 表示维度,n=0,1,...,dm−1
- i=0,1,...,2dm−1
-
简化表示,记
f(n)=10−dm4⋅n
得到,
PE(p,n)={sin(f(n)⋅p)cos(f(n)⋅p),,n=2i(偶数)n=2i+1(奇数)(2.1)
此时某一单词的位置编码为
PE(p,:)=[sin(f(0)⋅p), cos(f(0)⋅p), ..., sin(f(n)⋅p), cos(f(n)⋅p), ..., sin(f(dm−1)⋅p), cos(f(dm−1)⋅p)]
发现 \sin 和 \cos 总是成对出现,使用
g(p,i)=[sin(f(i)⋅p), cos(f(i)⋅p)]
简化表示,得到
PE(p,:)=[g(p,0), ..., g(p,i), ..., g(p,2dm−1)](2.2)
PE(p,:)简记为PE(p)
从(2.1)到(2.2)强烈建议,实际推算一下体会其巧妙,可假设dm=10
-
明确任务:位置编码的相关性只受相对位置影响
假设存在一个矩阵T(k), 满足
T(k)×PE(p)=PE(p+k)
此时,命题“位置编码的相关性只受相对位置影响”可表示为,
PE(p+k)⋅PE(p)=T(k)×PE(p)⋅PE(p)=N⋅T(k)(2.3)
其中N为常数
因此,只要我们能构建出T(k),并且PE(p)⋅PE(p)=N,则该命题成立
-
分析$ PE§ \cdot PE§ $
PE(p)⋅PE(p)=g(p,0)⋅g(p,0)+...+g(p,2dm−1)⋅g(p,2dm−1)=i=0∑2dm−1g(p,i)⋅g(p,i)=i=0∑2dm−11=2dm
即 N=2dm
-
构建T(k),
T(k)=⎣⎢⎢⎡Φ(k,0)0000Φ(k,1)00⋯⋯⋱⋯000Φ(k,2dm−1)⎦⎥⎥⎤
其中,Φ(k,i)
Φ(k,i)=[cos(rik)sin(rik)−sin(rik)cos(rik)]
此时,T(k)⋅PE(p)=PE(p+k)具体到第i项为Φ(k,i)×g(p,i)=g(p+k,i),(该步推导强烈建议实际推算一下),即
[cos(rik)−sin(rik)sin(rik)cos(rik)][sin(f(i)⋅p)cos(f(i)⋅p)]=[sin(f(i)⋅(p+k))cos(f(i)⋅(p+k))](2.4)
如果我们找到ri如何计算,则矩阵T构建完毕。计算 sin(f(i)⋅(p+k)),
cos(rik)sin(f(i)⋅p)+sin(rik)cos(f(i)⋅p)=sin(f(i)⋅(p+k))=sin(f(i)⋅p)cos(f(i)⋅k)+cos(f(i)⋅p)sin(f(i)⋅k)
对应项相等可以得到,ri=f(i),此时矩阵T构建完毕
-
至此我们构建一个矩阵T,可以使下式成立,
PE(p+k)⋅PE(p)=T(k)×PE(p)⋅PE(p)=2dm⋅T(k)
因此可以证明:该位置编码方案中,两个位置编码的相关性只受相对位置影响。