论文要点
- 结合TENER和Lattice LSTM的改进工作:改LSTM为Transformer,这样匹配词就可以通过在Transformer的Self-Attention的时候引入,并通过调整position encoding用以计算Attention时作单词对齐
模型结构
单层Transformer,改进Self-Attention部分以适配词信息
1. 每个token表示为emb + pos【begin、end】
2. Self-Attention计算,以词w_i和词w_j间Attention为例
- 计算position encode:
A. 计算词w_i和词w_j的头尾距离:
B. 基于头尾距离计算相对位置编码(R_ij):
- 计算Attention矩阵:其中E表示Emb,R为相对位置编码,其他为Attention的权值参数
由此可以看出,计算的Attention权值中,会同时考虑Emb相关性与相对位置编码【不过,后面两项意义存疑】
模型效果:
YJ和LS分别表示不同词库,FLAT的下标msm和mld分别表示mask self-match和mask long distance(>10),所以从mld结果上看,长距离依赖的作用比较微弱,可考虑使用local attention的方式去计算。
从上图可看出,该模型下性能上存在比较大的优势,同时,还可进一步通过量化提升其性能。附几种网络的计算复杂度:
其中Path length指的是要获取窗口为n的信息要经过的路径长度。cnn需要增加卷积层数来扩大视野,rnn需要从1到n逐个进行计算,而self-attention只需要一步矩阵计算就可以。所以可以看出,self-attention可以比rnn更好地解决长时依赖问题。当然如果计算量太大,比如序列长度n>序列维度d这种情况,也可以用窗口限制self-attention的计算数量
模型缺点:
- 词向量需训练,同样无法解决新词问题
- 从Self-Attention计算复杂度中,若句子长度大于hidden_size,其计算复杂度会更高,使用Local Attention性能能够更稳定
- position encoding的设置无论是解释性还是计算上都存在一定的困惑。