【导读】本篇论文使用时间门同步学习文本对之间的语义特征,在 Quasi Recurrent Neural Network (QRNN) 模型的基础上进行创新,提出新的模型Cross Temporal Recurrent Network (CTRN)。论文通过对问题和答案对的遗忘门和输出门的信息中获益,从而学习QA的联合序列对。
QRNN
01
通过结合LSTM和CNN的特征构成的QRNN,其结合了RNN和CNN的特征:
与LSTM和CNN一样,QRNN可以分解为2个组件:卷积和池化
与LSTM相比,并行化提高了QRNN的速度,因此作者论文中提出的模型基于QRNN,因为门是预先学习的,它能够容易的在两个QRNN之间对齐时间门。而在LSTM中对齐时间门可能非常麻烦且低效。更重要的一点是QRNN的时间门具有关于整个序列的全局信息而LSTM不具有全局信息。
给一组长L的序列,每个向量的维度为m,QRNN的卷积内部结构遵循如下公式:
X表示维度为m,长度为L的序列,都是R^{k×n×m}的张量,*表示是以k为宽度的序列维度上的窗口滑动。
Bradbury et al. 2016在论文中池化部分提到了3种方案:f-pooling(动态平均池化)、fo-pooling(基于动态平均池化)、ifo-pooling,本篇论文作者提到了fo-pooling(基于动态平均池化),具有一个独立的输入门和遗忘门:
用公式表示:
这里,c_t表示为神经元状态,h_t表示为隐藏状态,f_t,o_t分别表示为t时刻的遗忘门和输出门。
CTRN
02
作者在论文中提出的模型为 Cross Temporal Recurrent Network (CTRN)
模型输入包括两部分(问题q和答案a对),通过embedding层输出一个n维向量,然后通过projection layer输出m维向量
输入L个向量,并经过3个1D卷积运算获得矩阵Zs,Fs,Os,s={q,a}
LTC是作者模型的创新点,在QRNN的基础上进行延伸,在这一层中,有两个CTRN cell,分别是CTRN-Q,CTRN-A,分别代表问题和答案两个部分。从图中可以看出这层中CTRN cell的出入包括5部分,拿CTRN-Q来说,一部分来自自身卷积的输出zq,fq,oq,另一部分来自answer的卷积输出oa,f_a,具体情况如下所示:
这个CTRN-Q包括两步,首先在Zq上应用Fq,Oq,其次将Fa,Oa应用到Zq上,具体计算如下:
t∗ 在这里表示问题和答案的对齐时间,因为他们的序列长度可能不同,计算公式为:
又因为CTRN-Q和CTRN-A是对称的,所以我们可以写出CTRN-A的计算公式:
然后,我们对得到的问题和答案用一个公式表达,对于每个t的隐藏状态进行点乘计算,即:
CTRN的输出为一组隐藏状态[h1s,h2s…hLs],在这一层对 CTRN-Q和CTRN-A进行平均pooling计算
最后,将上层的 输出进行二分类的softmax计算:
损失函数:
θ 包含所有的参数,优化器为Adam Optimizer。
实验
03
作者在3个数据集上进行对比:YahooQA、QatarLiving、 TrecQA
TrecQA 数据集有两种训练集:TRAIN、TRAIN-ALL。TRAIN-ALL中包含更多的QA对,同时也包含更多的不利因素。
不同数据集采用不同的评估指标。对于YahooQA,采用 P@1 (Precision@1) 和 MRR (Mean Reciprocal Rank);对于QatarLiving,采用n P@1 和 MAP (Mean Average Precision);对于TrecQA,采用MAP和MRR。
对于CTRN模型,将输出维度(filter的数量)调整为128的倍数,并且使用单层的CTRN和QRNN,MLP的层数从[1,3]中调整,学习率在{10−3,10−4,10−5},批量大小调整为{64,128,256,512},dropout设置为0.5,L2正则化设置为4×10−6。
从上述表格我们可以看到:在这个数据集上,LTC机制比soft-attention更有效;这个评价指标更能看出CTRN与QRNN之间的差异。
作者将CTRN模型与其他模型在数据集TRECQA进行比较,可以看出CTRN的效果更胜一筹。
从时间上边看,完成一个epoch的训练时长相差甚远,QRNN与CTRN相差无几,其他三个模型的时长都相对来说较长。