前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【论文笔记】基于LSTM的问答对排序

【论文笔记】基于LSTM的问答对排序

作者头像
zenRRan
发布2019-09-30 10:34:54
7380
发布2019-09-30 10:34:54
举报
文章被收录于专栏:深度学习自然语言处理

【导读】本篇论文使用时间门同步学习文本对之间的语义特征,在 Quasi Recurrent Neural Network (QRNN) 模型的基础上进行创新,提出新的模型Cross Temporal Recurrent Network (CTRN)。论文通过对问题和答案对的遗忘门和输出门的信息中获益,从而学习QA的联合序列对。

QRNN

01

通过结合LSTM和CNN的特征构成的QRNN,其结合了RNN和CNN的特征:

  • 像CNN一样,基于时间步维度和minibatch维度上进行并行计算
  • 像RNN一样,允许输出依赖之前的元素,即过去时间依赖性

与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)

  • Embedding+Projection Layer

模型输入包括两部分(问题q和答案a对),通过embedding层输出一个n维向量,然后通过projection layer输出m维向量

  • Quasi-Recurrent Layer (即QRNN网络)

输入L个向量,并经过3个1D卷积运算获得矩阵Zs,Fs,Os,s={q,a}

  • Light weight Temporal Crossing(LTC)

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的隐藏状态进行点乘计算,即:

  • Temporal Mean Pooling Layer

CTRN的输出为一组隐藏状态[h1s,h2s…hLs],在这一层对 CTRN-Q和CTRN-A进行平均pooling计算

  • Softmax Layer and Optimization

最后,将上层的 输出进行二分类的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相差无几,其他三个模型的时长都相对来说较长。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档