汶东震 Bridging the Gap Between Relevance Matching and Semantic Matching for Short Text Similarity Modeling
新闻来源:IR实验室       发布时间:2019/11/8 0:00:00

1 摘要

信息检索(IR)的核心问题是相关性匹配,即根据与用户查询的相关性对文档进行排名。另一方面,许多NLP问题(例如问题回答和释义识别)也可以看作是语义匹配的变体,它可以测量两段短文本之间的语义距离。尽管在高层次上相关性和语义匹配都需要对文本相似性进行建模,但许多现有技术都无法轻易地适用于另一种。为了弥合这一差距,本文作者提出了HCAN(Hybrid Co-Attention Network)模型,该模型包括主要包括三个部分:

(1)混合编码器模块,其中包括基于ConvNet和基于LSTM的编码器;

(2)相关性匹配模块,用于在多个粒度上测量具有重要权重的软术语匹配。

(3)具有捕获上下文感知语义相关性的具有共同注意机制的语义匹配模块。

与不采用外部数据预训练的方法相比,对多个IR和NLP基准进行的评估显示出了最新的有效性。广泛的消融研究表明,无论选择哪种底层编码器,相关性和语义匹配信号在许多问题设置中都是互补的。

2 引言

文本匹配技术广泛应用于信息检索、文本匹配、阅读理解、自然语言推理等任务。文本匹配的应用场合主要为给定两段文本,判定两段文本是否存在一定的相关性、相似性、上下文关系、蕴含关系、推理关系等。常用的文本匹配模型包括:ARC-IARC-IIDSSMCDSSMMatchPyramidMatchRCNNDeepRank等。传统意义上对于深度文本匹配的分类,是从操作角度来对问题进行定义的,一般按照对于输入文本内容的编码和交互方式的不同分为交互型(Interaction)和表示型(Representation)。而在本文中,作者将文本匹配划分为了相关性(Relevance Matching)和语义匹配(Semantic Matching),这样的划分相比于之前对于文本匹配模型的分类方法有所不同。在本文中,作者将交互型和表示型模型都归入相关性匹配模型中,而其对于语义匹配模型的定义如下。语义匹配模型至少包含三种特征:其一,序列化句子编码器能够结合单词上下文以及句子的顺序,针对句子进行更好的表示;其二,使用交互以及注意力机制,用以增强显著词语的交互过程;其三,结构化建模。在本文中,作者将相关性匹配和语义匹配相结合,构建了一个多级编码交互匹配模型,在文本匹配任务上进行研究。其主要贡献如下:

1)系统性地重点研究了相关性匹配和语义匹配技术在短文本匹配上的应用,这是许多IRNLP问题的核心。

2)提出一个全新的模型,HCAN(混合联合注意力网络),用以将相关性匹配和语义匹配技术各自优势结合起来。

3)在多个IRNLP任务上对模型进行验证,任务包括大难选择、重述识别、语义相似度判断、推文检索,与未使用预训练的SOTA模型相比有较好的提升。之后消融实验表明,两种匹配信号在许多问题是互为补充的,将二者相结合能够提高数据的效率。

3 Co-Attention

3.1 Dynamic Co-attention NetworksDCN

针对Co-Attention首先通过论文Dynamic Co-attention Networks for Question Answering一文来进行介绍。

此处先对一些先验概念进行说明,文本匹配任务类似于信息检索过程,一些常用于往往沿用信息检索相关的规范。我们将用户输入的查询文本、对话系统上下文中的上文、阅读理解任务中的目标问题,统一称为查询,英文对应词为Query,常记为。与之对应的检索文本对象、对话系统回复文本、阅读理解中的文章主体,常记为文档,英文为Document,常记为。文本表示技术此处不做过多的赘述,在神经网络文本处理领域,往往将。

问题和文档的编码过程如下。此处记,为问题部分(Query)文本的向量化表示,表示问题中第个词对应的词向量。为文档部分(Document)文本对应的向量化表示,对应表示文档文本中第个词对应的词向量。针对文档的编码,使用LSTM完成,此处文档部分编码过程表示为:,经过LSTM编码后得到的文档对应编码向量为:,此处表示LSTM编码后的向量维度,编码向量维度形式为embedding优先,词表数目在后。为守护向量,避免模型对输入的某个特定词关注过多,其思想来源于Pointer Sentinel Mixture Models

对应问题部分也通过LSTM进行编码。为了获取到问题的编码向量,此处作者首先引入一个中间态的编码结果,相关维度顺序和表示结果与文档编码部分类似。为了与文档编码产生一定区分,此处加入一个非线性层来得到最终的问题编码向量表示:

Co-attention针对文本的编码思想来源于文章Hierarchical Question-Image Co-Attention for Visual Question Answering。用于本文文本任务的Co-attention整体结构如图所示:

图1 Co-attention 机制在问答中的应用

其中Attention权重矩阵通过查询编码矩阵和文档编码矩阵相乘得到的相似矩阵来获得。相似矩阵的构造方法如下:

2 Co-attention详细过程

在相似矩阵基础上,通过在行方向(row-wise)进行Softmax归一化可以通过整个文档方向针对问题中每个词产生attention权重矩阵;相应的,通过在列方向(column-wise)进行Softmax归一化,可以通过整个问题方向针对文档中每个词产生attention权重矩阵。具体公式如下:

 

此处通过图可以看到具体得到attention矩阵以及生成对应的上下文编码向量的方法:

image.png

3 Co-attention 编码过程

此处,通过对相似矩阵在行和列方向进行softmax归一化,我们可以得到针对查询和文档的attention权重矩阵。而对应Query的上下文编码向量可由如下公式得到:

由于DCN原任务旨在完成阅读理解任务,其通过对文档进行编码,后续再通过一个动态指针解码器(DPD)对原问题对应答案位置进行发现,因此DCN部分主要为了得到文档的编码向量。此处为了得到文档编码向量,首先计算,是较为自然的想法,而除过计算之外,此处再次计算了,表示将查询的编码向量映射到文档编码空间中。最后得到两者向量进行拼接,构成最终的文档编码向量。

可以看到,Co-Attention在文本任务上的应用,其核心在于相似矩阵的计算和attention权重的产生,针对行与列进行softmax归一化操作之后,会得到对应位置文本的attention权重矩阵,在此基础上与原始句子的词嵌入矩阵相乘,可以得到对应文本的attention编码向量。

3.2 Hierarchical Question-Image Co-Attention for Visual Question Answering

DCN论文中介绍的Co-Attention机制来源于本篇文章,发表在NIPS2016上,一篇VQA相关的工作。在前人基础上,主要通过引入Co-Attention改进了问题和图像特征向量的编码方式。在词语(word)、短语(phrase)和句子(sentence)三个粒度进行Co-Attention向量的编码。最终将三者集成后进行分类输出,以预测问答结果。

模型整体结构主要分为三个部分,第一个部分主要对问题文本内容进行不同粒度的编码,以获取层次Co-Attention处理时所需的文本编码向量;在获取到不同粒度问题文本的编码向量之后,针对不同粒度文本编码向量来抽取图像上对应不同位置的向量特征;最后一部分则是通过全连接层将不同粒度编码向量集成,进行输出预测。

首先介绍问题文本多粒度编码部分内容。

4 文本编码过程

如图所示,给定一段文本,通过词嵌入层进行处理之后可以得到其编码表示向量:。这部分向量即问题文本的词粒度编码表示向量。在此基础上,作者使用1D卷积层(ngram*embedding_size;沿句子方向滑动)针对句子进行编码,卷积窗口大小分别为123。同时,为了保持编码之后的向量保持原有句子的长度(即T),在使用大于1的卷积核针对句子编码时,用0进行补全(padding)操作。则编码向量为:

公式中的为权重向量,上一步中经过embedding得到的编码表示向量在进行卷积编码前会通过补0来保持输出编码长度维持到T表示,卷积窗口大小为的,句子中第个词组的编码表示向量。而最终的短语粒度编码向量可以表示为:

对应的,句子中第位置的短语编码表示向量为三种不同卷积窗口的编码向量取最大池化来获得,这一步骤相当于针对位置的编码向量,选择不同粒度的编码对其进行表示,最终可以得到编码结果。在此基础上,使用LSTM针对短语粒度向量再次进行编码,其每个时间步的向量即为问题文本的句子粒度表示向量,其中为隐层状态向量。

在句子编码的基础上,作者提出了两种Co-Attention机制来针对文本和图像联合建模。其分别命名为:并行化的Co-AttentionParallel Co-Attention)以及交替性的Co-AttentionAlternating Co-Attention)。

图5 并行Co-attention过程

并行的Co-Attention因文本attention编码过程和图像attention编码过程可并行进行而得名。在Co-Attention计算之前,首先针对文本和图像之间的相似性进行计算,构建相似矩阵

其中0文本的表示向量矩阵,其维度对应为,对应为句子长度,为编码向量的维度(此处编码表示结果为维度优先)。而对应的的维度为,此处为图像编码特征数目,依然表示向量维度。最终得到的相似度矩阵的维度为。得到相似度矩阵之后,计算attention的方式可以针对对应行与列方向取最大值构造对应文本和图像的attention权重向量,而作者在此处使用了另一种策略通过相似矩阵来获取文本和图像的attention向量。

可以看到对应维度为对应维度为。之后乘以两个权重向量之后,对结果进行,可以得到对应的attention权重向量。,而。最终将attention权重与原始的向量进行集成,得到两种模态数据的编码结果,attention编码过程会在三个粒度(词、短语、句子)上进行。

对应的,交替式的Co-Attention机制在构建相似矩阵时有所不同。

6 交替式Co-attention过程

交替式的attention过程主要分为三个步骤,首先将文本向量进行编码集成,构造针对图像attentionguidance向量;在此基础上使用文本编码集成的向量作为guidance对图像向量进行attention编码;最终得到的图像attention编码向量继续作为guidance对文本进行编码,得到最终的文本attention向量。具体过程如图所示。

此处将attention编码得到向量表示的过程抽象为,此处的表示待编码的矩阵,可以输入文本编码结果或者图像编码结果。表示用于attentionguidance向量。具体的编码机制如下:

此处的表示全部为1的向量。这一步操作实际上相当于将乘的对象向量扩展多份构造一个矩阵。在第一步中针对文本编码集成的过程,此处初始的guidance向量为一个零向量。相当于编码集成的向量没有经过guidance指导进行attention加权过程。这一过程之后可以得到编码向量。后续其会被用在进一步的编码表示上。整体的交互式attention过程如下

和并行化的Co-Attention机制一样,交替的Co-Attention也会在词、短语、句子,三个粒度上进行使用,最终得到三个层级的Co-Attention编码表示。

7 聚合输出部分

在前两个步骤基础上,最终编码集成输出的部分如下:

其中[,]操作符表示将向量进行拼接。本文中作者将VQA问题看作一个文本分类问题,因此最终的结果通过softmax进行分类输出。

4 模型

在前文对Co-Attention介绍的基础上,开始对本文中提出的HCAN模型进行介绍。本文针对文本匹配和NLI任务,模型整体输入为两段文本,输出为判定两段文本是否匹配,实际上为二分类任务。模型分为三个部分,文本编码、文本匹配以及输出预测。整体模型图如下:

图8 HCAN模型

查询文本以及文档文本经过词嵌入层之后会被转化为对应的编码向量。对应词嵌入结果会输入不同编码器中进行编码。此处可以看到,作者在编码和匹配阶段会有参数N来控制执行编码和匹配的次数,这一参数会直接参与到编码器部分对编码过程进行调控。在Deep Encoder部分N控制多层CNN的深度,而在Wide Encoder部分N控制CNN中卷积核的窗口大小,在Contextual Encoder部分控制BiLSTM编码次数。查询文本和文档文本编码得到的结果会保存在一个列表对象中,在匹配层对应进行匹配。最终在输出层进行输出时,将N个匹配向量首尾拼接后输入输出层中,详细部分可以参考作者代码:HCAN-output

4.1 混合编码器

编码器部分,作者提出Deep EncoderWide Encoder以及Contextual Encoder三种不同侧重的编码器。其中Deep Encoder使用连续的多层CNN对文本进行编码了,此处使用的卷积编码器窗口大小为。同时,为了保持编码后向量长度与原始句子长度相同,在每个卷积层编码之后使用0对编码结果进行补齐操作。具体公式为:

Wide Encoder方面,作者使用多个不同窗口大小的卷积核进行句子编码,和Deep Encoder中类似,针对卷积之后向量长度变化的问题,使用0进行补全。相对应的,不同层的卷积核大小分别为

而在Contextual Encoder部分,直接将词嵌入得到的向量输入BiLSTM中进行编码,当编码层数为N时,对应前一层编码得到的结果会被输入到后面层中再次进行编码。

4.2 匹配层

匹配层部分作者介绍了两种截然不同的模式,并分别命名为相关性匹配(Relevance Matching)和语义匹配(Semantic Matching)。其中相关性匹配过程,作者使用了无参数的方法,对编码得到的向量通过构造相似矩阵方法,结合词语在整个语料库上的值(逆文档频率值)计算交互的两种向量之间的相似性结果。语义匹配过程则在原有编码基础上结合Co-attention机制进行语义层级的编码。

相关匹配部分,作者通过向量运算的方式进行相关度计算。首先作者通过编码的查询向量构建相似度矩阵。此处的有两个方向的值,沿着行方向为查询方向,而沿着列方向则为文档方向。此处在列方向上进行softmax归一化操作,得到最终的相似度矩阵

在此基础上,此时沿着行方向的向量可以表示当前查询中第个词对应在文档上各个词处的匹配性分数。此处在行方向上进行MaxpoolingMeanpooling,相应的可以得到与当前词最为匹配的文档中对应词项的匹配分数。

在得到查询方向的最大、平均相似度表示向量之后。作者计算了查询文本对应的值内容。用来衡量词在文档集上的信息特性。最终相关匹配表示向如下:

此处的表示向量的逐个元素相乘操作,类似于的计算方法。

语义匹配部分,作者依然首先构建用于Attention权重产生的矩阵,具体公式如下:

和上文中提到的Co-attention机制类似,此处针对查询和文档的attention计算方法以查询到文档,文档到查询两个方向进行。期间的中间结果使用表示。

此处的REP表示将当前的向量重复若干次,构造出和原有矩阵维度相同的矩阵,与上文中提到的全“1”向量相乘作用相同。

最终语义匹配向量的构建可以通过以下方法得到:

在上述编码、匹配基础上,使用全链接层进行输出。

5 实验

实验部分,作者选用多个数据集以及多项任务来对模型效果进行验证。问题选择TrecQA数据集,根据答案于问题的相似性来执行QA过程。重述识别TwitterURL数据集,包含 5w个句子对,需要通过模型判定两个句子是否是重述关系。文本语义相似性Quora数据集,包含40w条问题对,判定两个问题是否表达相同的事情。推文搜索TREC数据集,通过一个短查询文本找到对应的推特文本。

实验设置部分,作者使用300word2vec词向量作为词嵌入表示,优化方法使用SGD。对于集外词(OOV)情况,使用之间的随机值进行随机初始化表示。相关性匹配用到的值是在当前语料库上计算得到的。模型编码层数N设置为4,卷积核大小k初始为2。隐层单元设定为150。学习率方面,分别使用,对应卷积核数目为batch 大小为DropOut比率控制在0.10.5之间。详细内容可以参考作者代码:HCAN

具体实验部分,作者与上述不同任务中的SOTA进行了对比,同时通过消融实验的方式研究了HCAN模型本身不同部分之间的关系以及对任务的贡献。

image.png

表1 文本匹配实验结果对比

1对比了HCAN模型与各SOTA模型的效果,实验设置部分,编码器只使用Deep EncoderRMSM分别表示只使用相关匹配和只使用语义匹配得到的结果。可以看到在部分任务上有较好的表现,但与Bert相比还是差点。

image.png

表2 信息检索实验结果对比

2中作者对比在TREC推文检索数据集上HCAN模型的效果。可以看到,在检索任务上,与对应数据集上的SOTA模型相比,本文提出的模型有着较好的表现。

image.png

表3 消融实验对比

3中作者对模型本身进行了消融实验的对比,可以看到不同编码器和不同语义匹配方式的不同结合有着不同的结果,通过结果本身可以看到模型中各个结构的侧重点各有不同。但整体上来看,相关性匹配方法在任务上效果表现较好。语义匹配部分作为补充,可以进一步提升模型结果的表现。

image.png

图9 编码器层数对结果影响

在编码器层数的选择方面昨儿和通过一系列实验进行了测试,可以看到在Deep EncoderContextual Encoder部分的实验上,随着层数增多结果会有更好的表现。同时可以看到,在相关性匹配和语义匹配方法上,相关性匹配方法还是占有了主导地位。

image.png

图10 训练效率对比

除此之外,作者针对训练效率和数据集规模对模型的影响也做了探究。可以看到,约为1000-1500batch左右HCAN模型基本上能够得到收敛。与上文中结果一致的是语义匹配部分始终难担重任,需要配合相关性匹配机制才有更好的稳定性。

6 总结

本文创新性地将神经文本匹配方法进行了重新划分,打破了传统分类的桎梏,有一定的创造性表现。作者通过翔实的实验对模型进行了多方面验证,一定程度上对模型进行了解释。但就论文本身来讲,还存在一定问题:

1)论文在写作方面存在很多不清晰的地方,在Deep Encoder部分,作者讲述了使用多层CNN进行句子编码的方法,但从实践角度来看,如何解决多层CNN编码时,句子编码长度逐级缩短的问题,作者没有进行明确说明。实际上使用0进行向量长度补齐的方式在很多阅读理解、文本匹配模型中均有所涉及,但本文中对这部分内容描写的疏忽让人难以理解和复现论文。

2)论文中存在一定的图文不符的问题,作者未对模型的各个组成部分进行详细说明,而模型框架总图部分绘制较为混乱(这篇报告中总体图由我重新绘制),让人难以直观看出模型的结构,尤其是编码器部分,作者使用了参数N来控制编码时的层数,而在其总图中N则作为编码和匹配过程的多个blocks控制参量,对于作者论文的理解必须搭配其原始代码来进行参考。

3)其他细节方面,如Dropout位置,Wide Encoder不同卷积核编码之后向量长度问题、编码结果处理问题等,均没有明确写明。

总体来讲,作者为我们提供了一个文本匹配问题的良好解决思路,引入新的标准对原有技术进行定义并研究使我们看到了语义与相关性二者在解决Match问题时的互补特性。同时相比于原有的SOTA(未引入Bert等预训练模型),有着一定提高。