这篇论文参考了Encoding Gated Translation Memory into Neural Machine
Translation。建议先阅读这篇论文之后再阅读本论文。
传统的NMT(Neural machine translation)模型的泛化能力很强,但是对于专业领域的翻译或者罕见词汇的翻译就不那么准确了。如何解决这个问题?本文作者是这样做的,在decoder阶段加入一些具有专业领域或者罕见词的知识,这些知识可以用来影响NMT的句子的生成,从而提高专业领域的翻译的准确性。这样的模型本文作者称之为半监督模型(Semi-parametric NMT )。
Semi-parametric NMT的目标
NMT模型依赖于seq2seq框架,也就是给定一个源句子
X=(x1,x2,,,,xT)和目标句子
Y=(y1,y2,,,,yT),NMT的目标是建模概率分布
p(yt∣X,y1,y2,,,yt−1)。
那么Semi-parametric NMT的目标就是建模概率分布
p(yt∣X,y1,y2,,,yt−1,ΦX)。其中
ΦX就是前面提到的外部知识,
ΦX=[(X1,Y1),(X2,Y2),,,,,(XN,YN)]。其中,
Xi是源句子,Yi目标句子,
Xi是通过某种相似度度量从训练集中检索出的句子。
检索的方式
基于IDF的句子检索
对于token
t,其IDF(逆文档频率)
ft=lognt∣∣C∣∣,其中,
C是训练集中句子对的个数,
nt是token t出现的次数。对于语料中的两个句子对
(Xi,Yi)和(Xj,Yj),其相似性度量公式是:
sim(Xi,Xj)=2t∈(Xi∩Xj)∑ft−t∈(Xi∪Xj)∑ft(1)
对于语料中的每个句子,都会为其检索出N个最相似的句子对,对于句子
X,其
ΦX通过公式(1)得到。
基于N-Gram的检索方式
在这种检索方式中,每个句子都被它的n-gram集合代替,设句子
X=(t1,,,tT), 它的n-gram集合记为
SXn=[(ti,,,ti+n),1<=i<=T],
SXn中包含很多冗余的n-gram,所以要按照一定的方式去除一部分,去除之后的集合记为
S^Xn=[(ti,,,ti+n),1<=i<=T,i%2n=1]。
对于
S^Xn中的每一个n-gram,我们通过(1)式在训练集中检索出最相似的,对于每一个被检索出的n-gram,找到相应的句子对加入
ΦX集合。若有多个句子,则随机选择一个。
基于N-gram的稠密向量检索方式
使用预训练好的Transformer对句子编码,然后每一个n-gram被表示成其组员的向量的平均。然后使用L2距离度量相似性。值得注意的是,这里每个单词都被表示成sub-words的形式。
本文的NMT模型
Conditional Source Target Memory
注意信息流动是从最右边的cell编码后逐渐流入最左边的cell,所以最后编码source sentence的时候是融入了retrieved sentence(包括源和目标句子)的信息。
对于
Φ中的targets 的编码
[Yi,1<=i<=N],将所有的target的编码按照时间序列拼接在一起就是Conditional Source Target Memory。
Gated Multi-Source Attention