基于注意力机制的神经匹配模型用于短文本检索
【导读】在基于检索的问答系统中,很重要的一步是将检索到的答案进行排序得到最佳的答案。
在检索到的答案比较短时,对答案进行排序也成为了一个难题。
使用深度学习的方法,如建立在卷积神经网络和长期短期记忆模型基础上的神经网络模型,不需要手动设计语言特征,也能自动学习问题与答案之间的语义匹配,但是缺陷是需要词汇重叠特征和BM25等附加特征才能达到较好的效果。
本文分析了出现这个问题的原因,并提出了基于值的权值共享的神经网络,并使用注意力机制为问题中的值赋予不同的权值。
专知内容组编辑整理。
1. 如果不结合其他功能,我们是否可以构建深度学习模型,与使用特征工程的方法相比,可以达到相当甚至更好的性能?
2. 通过结合附加功能,我们的模型可以超越问题回答的最先进模型吗?
为了解决这些研究问题,我们分析了现有的深度学习架构,并发现了以下两个事实:
1. 一些深度学习架构,如CNN不是专门为问题/答案匹配而设计的:有些方法使用CNN进行问题/答案匹配。
然而,CNN最初是为计算机视觉(CV)设计的,计算机视觉使用位置共享权重和局部感知滤波器来学习,是因为许多CV任务的空间规律性,图片的像素点的分布很大程度上和周围的像素有关。
然而,问题与答案之间的语义匹配可能不存在这样的空间规律性,由于自然语言的复杂语言特性,问答词之间的重要相似性信号可能出现在任何位置。
同时,基于LSTM的模型依次查看问题/答案匹配问题办法。
如果问题和回答之间没有直接的交互作用,模型可能无法捕捉到足够详细的匹配信号。
对此,本文提出的改进是,将基于位置的权值共享改变成基于值的权值共享。
2. 缺乏建模问题重点:理解问题的重点,例如问题中的重要术语,有助于正确排列答案。
例如,在“汉堡王第一家餐厅在哪里打开”这个问题,关于“汉堡”,“国王”,“开放”等等的答案是至关重要的。
大多数现有的文本匹配模型并不明确模型问题的重点。
例如,基于CNN的模型在匹配回答术语
▪aNMM-1
阵。
那么问题来了,同一个问题的不同答案的词的个数不一样,得到的匹配矩阵的大小不一样,不利于后面神经网络中的全连接计算。
为了将不一样的矩阵的维度变成一致的,参考了CNN+Maxpooling的做法,对矩阵按行处理,最终的得到M*1的一个向量。
2. 使用基于值的权值共享将匹配矩阵编程相同维度。
CNN的关键思想是,相对位置一致的一些结点权值共享,这也是基于图像的像素点和周围像素点关系很大的假设之上的。
使用基于位置的权值共享时,可表示成如下所示,其中同样颜色的边表示相同的权值。
然而,问题与答案之间的语义匹配可能不存在这样的空间规律性,因此,采用相同的值共享权值的方式,来组织网络,如下图所示。
其中,匹配矩阵中相似度为1的所有节点共享一个权值,相似度在[0,0.5)之间的节点,共享一个权值,相似度在[0.5,1)之间的节点,共享一个权值。
通过这样的方式,可以将计算得到的匹配矩阵转换为相同维度的,并且不管输入矩阵的维度怎么样,隐层节点的个数是固定的。
3. 使用问题的注意力机制,学习问题中每个词的重要度,并该问答对最后的分值。
经过前两步,每一个QA对都可以计算得到一个M* 1 的向量,向量中的每一个元素代表了这个答案与问题中的每一个词的相似度,为了计算最后的相似度,我们并不是将这些值直接相加,得到整个问题与答案之间的相似度,而是为每个词赋予不同的权值,然后再加权。
为了完成这一点,我们增加了一个参数v 并使用作为每个问题的权值加权,最后得到问答对之间的相似度。
▪aNMM-2。