【导读】这篇发表在自然语言处理领域顶级会议的NAACL的文章,提出了一种新的端到端神经网络架构,用于对候选回答进行排序。该文章提出的模型,文本分别按照词和块的级别进行编码,有效地捕捉了整句话的含义。在此基础之上,增加了话题聚类模块,从回答中提取语义信息,将回答进行分组,进一步提升了排序的性能。
【NAACL 2018 论文】
Learning to Rank Question-Answer Pairs using Hierarchical Recurrent Encoder with Latent Topic Clustering
简介
最近神经网络已经在许多机器学习领域取得了巨大成功,如图像分类,语音识别,机器翻译,聊天机器人,问答等领域。其中,自动问答(QA)任务一直被认为是人工智能的主要目标。
在商业领域,通常通过使用预先组织的知识库和/或使用基于信息检索(IR)的方法来处理QA任务。而在学界,研究人员不断研究QA系统核心技术:问答对排序任务。排序任务是指,从知识库或基于检索的模块中选择候选回答中的最佳答案。有许多端到端的神经网络试图来解决这一任务。这些作品侧重于匹配句子级别的文本对。因此,他们在理解更长的文本(如多回合对话和解释性文档)方面存在局限性,文本变长时,排序性能随之下降。为了解决这个问题,这篇文章的创新点在于:
• 引入分层递归对偶编码器(HRDE)模型来计算问答对之间的匹配度来确定排名。通过使用分层体系结构将文本从单词级别编码为块级别,HRDE可以防止在理解更长的文本时性能下降,同时支持其他最先进的神经网络模型。
• 提出了一个潜在主题聚类(LTC)模块来从目标数据集中提取潜在信息,并将这些额外的信息应用于端到端的训练。该模块允许每个数据样本找到最近的话题聚类,从而帮助神经网络模型分析整个数据。 LTC模块可以与任何神经网络相结合,作为额外信息的来源。这是一种利用潜在话题集群信息进行QA任务的新颖方法,特别是通过将HRDE和LTC的组合模型应用于QA对排名任务。
该论文在Ubuntu对话语料库和三星官方网站抓取的真实QA数据上对提出的模型进行评估,可以看出达到了state of art 的效果。
模型
首先解释模型中的几个词语,解释之后,模型的结构以及为什么这样设计就很容易理解了。
• Dual :Dual是“对偶”的意思,在排序任务中,需要分别对问题和候选回答会进行编码,这就体现了“Dual”
• Recurrent:循环,代表RNN循环神经网络,在文本处理时,充分考虑了上下文的关系,在对当前词语进行编码的时候,还会加入到前几个词的编码信息,并加入一些遗忘机制(LSTM,GRU)等。
其实用循环神经网络编码问答对前人已经做过(Lowe 2015),而由于RNN的遗忘的机制,针对长文本编码时往往不能顾及全局的信息,因此,本文的作者提出了分层结构。
• Hierarchical 所谓的分层结构,就是首先将一整个回答首先按照句子或其他方式切分成几个部分,首先对各部分的词分别进行编码,然后在结合整个词的编码作为整个部分的编码,完成了所谓的分层编码的效果。这种做法避免了在处理长文本时由于“遗忘”而导致排序性能下降的问题。
模型的框图如下所示,右边蓝色框中的即展示了分层编码: 表示第i个部分的中的t个词, 表示对第i个部分中第j个词用RNN编码的结果。 表示在对词编码的基础上,对这部分进行编码的结果。
LDT( Latent Topic Clustering )
而为了进一步提高排序的性能,在HRDE的基础上,还进行了分组。这一操作只应用于回答。在HRDE输出的基础上,首先将输入与代表K个“主题”的向量做内积,并softmax,得到该回答与所有主题的“相似度”(或“权值?”),然后用“相似度”和K个主题”构造“输入的向量中的主题特征,即按照相似度对“主题“进行加权求和,和原始输入拼接在一起,作为下一步排序的输入。
LDT的结构图如下所示(蓝色虚线框):
实验结果
文章中使用了Ubuntu 数据集和从三星官网上爬的数据来验证模型。数据的特点如下所示:
句子的样例如下所示,可见回答都是较长的文本:
在三个数据集上的实验结果如下所示,可见加入了分层结构对实验结果有十分明显的提升,而后期主题聚类又在此基础上有微弱的提升。
参考链接:
https://arxiv.org/pdf/1710.03430.pdf
更多教程资料请访问:专知AI会员计划
-END-