上期我们介绍了六种表示型的深度语义匹配模型,本期将为大家带来六种交互型的深度语义匹配模型。
上期我们介绍了六种表示型的深度语义匹配模型,表示型的模型更侧重于对表示层的构建,其特点是对将要匹配的两个句子分别进行编码与特征提取,最后进行相似度交互计算。缺点是分别从两个对象单独提取特征,很难捕获匹配中的结构信息。因此可以更早的将两个对象进行交互,获取交互产生的特征,交互型的深度语义匹配模型完美的应用到了交互特征。
交互型模型摒弃后匹配的思路,假设全局的匹配度依赖于局部的匹配度,在输入层就进行词语间的先匹配,并将匹配的结果作为灰度图进行后续的建模,其基本模型结构如下图所示:
交互型匹配模型的特点是:
交互型匹配模型的代表算法有: ARC-II、MatchPyramid、DeepMatch、ESIM、ABCNN、BIMPM等。
ARC-I,ARC-II 2014年由华为诺亚方舟实验室提出, ARC-I 是表示型匹配模型,上篇有讲解,ARC-II是交互型匹配模型,中文名是卷积网络深度匹配模型,通过中文名称就可以get到两个点:卷积、深度,所以可以理解为多次应用卷积计算来建模,原文传送门https://papers.nips.cc/paper/5550-convolutional-neural-network-architectures-for-matching-natural-language-sentences.pdf
.
句子中每个词表示为词向量后,每个句子构成一个矩阵,用滑动窗口来选择词向量组作为基本单元进行卷积操作。假设有两个句子x和y,首先从sentence x中选取一个向量a,再从sentence y中将每一个向量和a进行卷积操作,通过这种操作,将两个句子中的向量进行两两组合,构成2D矩阵,该矩阵作为两个句子交互作用的一个初步表示。随后的卷积以这个2D矩阵为基础进行“卷积+池化”的操作若干次,最后得到一个描述两个句子整体关联的向量,最终由一个MLP来综合这个向量的每个维度得到匹配值。
ARC-II模型考虑了句子中词的顺序和交互信息,从而可以对两个句子的匹配关系进行相对完整的描述;然而还缺乏对于细微匹配关系的捕捉,在精确匹配上面还存在缺陷。
这篇文章2015年出自University of Trento,也是用CNN模型对文本进行语义表示。原文传送门:https://dl.acm.org/doi/pdf/10.1145/2766462.2767738
.
模型先分别对 query 和 document 做卷积和max池化,得到文本的语义向量,接着通过 M 矩阵变换得到语义向量的相似度,然后把 query 语义向量、query&document 的语义相似度、document 语义向量、外部特征拼接成n维向量,外部特征的加入是作者考虑到可能无法在词表中找到某些专有名词,从而会造成信息缺失,因此文中使用word overlap(单词重叠)和IDF word overlap(IDF加权后的单词重叠)作为外部特征,以加强query和document之间的关联关系。将拼接好的n维向量输入一个非线性变换隐层,最终用 softmax做概率归一化。用softmax 的输出作为监督信号,采用 cross-entropy 作为损失函数进行模型训练。
本文的改进点包括:1. 将 query 和 document 的语义向量及其相似度拼接成新的特征向量输入MLP;2.可以在模型的输入向量中方便地融入外部特征。
虽然ARC-II和PairCNN更早地让两段文本进行了交互,但是这个交互的意义其实并不明确,层次化的过程也比较模糊。MatchPyramid重新定义了两段文本交互的方式---- 匹配矩阵,该模型2016年由中科院提出,原文传送门https://arxiv.org/abs/1602.06359
。作者基于此模型,在2017.3-2017.6 Kaggle的Quora Question Pairs 比赛上,取得了全球第四的好成绩。
MatchPyramid模型的核心思想是层次化的构建匹配过程,借鉴了CNN在处理图像时的原理,因为CNN就是在提取像素、区域之间的相关性,进而提取图像的特征。我们看看文中举的例子:Query1:down the ages dumplings and noodles were popular in China. Query2: down the ages noodles and dumplings were famous Chinese food. 作者将每个单词看成一个像素,那么对于两个单词数为M,N的句子,构建相似度矩阵的大小就是M*N。
文中提出了三种构造匹配矩阵的方法:
利用两层的CNN对相似度矩阵进行特征抽取,这里要注意的是由于上一层的相似度矩阵shape不一致,在第一层CNN后面进行maxpool的时候,要使用动态pool。最后用两层的全连接对CNN的结果进行转换,使用sigmoid激活,使用softmax函数得到最终分类概率。
总的来说,通过多层的卷积,MatchPyramid可以在单词或者句子级别自动捕获重要的匹配模式。
AB为Attention-Based,即基于注意力机制的卷积神经网络。这篇文章来自于慕尼黑大学信息语言处理中心,原文传送门:https://www.transacl.org/ojs/index.php/tacl/article/view/831/194
。本文的作者也采用了CNN的结构来提取特征,并用attention机制进行进一步的特征处理,作者一共提出了三种attention的建模方法。
ABCNN的基础是BCNN(Bi-CNN),BCNN的网络结构如下图所示,四层分别是:输入层、卷积层、池化层和输出层。
BCNN方式就是正常的一个CNN网络架构,并没有进行交互产生交互信息,因此引入了Attention机制,文章提了三种结构:ABCNN-1, ABCNN-2和ABCNN-3.
ABCNN-1是在输入层之后,卷积层之前添加注意力矩阵A,A用来定义两个句子之间词的关系。图中红色矩阵与BCNN的输入层一致,表示word级别的词向量,蓝色矩阵为phrase级,是高一级的词向量表示。蓝色矩阵是由注意力矩阵A和红色词向量矩阵计算生成。注意力矩阵A的计算方式为:
即Matrix A中数值Ai,j的计算是由sentence1第i个单词的向量与sentence2中第j个单词的距离度量。作者使用的是两个向量的欧几里德距离。得到了attention矩阵A,则可以计算句子的attention特征:
接下来将句子的原始词向量表示和Attention特征表示叠加,输入到卷积层进行计算。
ABCNN-2 是在卷积层之后,池化层之前添加注意力矩阵A。其计算方式与ABCNN-1 相同,sentence0第j个词的词权重为a0j,sentence1第j个词的词权重为a1j。
ABCNN-2 模型中的pooling 方法,是根据计算出的Attention权重向量加权求和计算得到的。公式如下:
其中 表示第i个sentence中第r个词池化后的特征, 表示第i句话第r个词卷积后的词向量。剩余层操作和BCNN相同。
从图中可以看出,ABCNN-3是ABCNN-1和ABCNN-2的结合,卷积层和池化层都添加了attention机制,这里就不再多说了。
2017年提出的ESIM, 全称为Enhanced Sequential Inference Model,该模型本身是用来文本推理的,给定前提p和假设h,判断p和h是否有关联,也可以用来作文本匹配。该模型综合应用了BiLSTM 和注意力机制,在文本匹配中效果十分强大,号称短文本匹配神器。原文传送门https://arxiv.org/abs/1609.06038
,下图中左侧为ESIM 的模型结构。
ESIM一共包含四部分,输入层、交互层、聚合层和预测层。
输入一般可以采用预训练好的词向量或者添加embedding层,接下来就是一个BiLSTM,作用是为embedding做特征提取,最后把其隐藏状态的值保留下来。
接下来就是需要分析这两个句子之间的联系了,这层是ESIM的点睛之笔, 主要在句子基础上表征了两个句子词语之间的关系,并凸显了某一句中的单词对另一句各单词之间的产生的影响。首先,使用点积的方式计算a句中第i个词和b句中第j个词之间的attention权重。
然后对两句各单词之间进行交互性计算,该词与另一句子联系越大,则计算出的值也会越大:
上述两步称为Local Inference Modelling,相当于先用attention机制计算出a句某一单词和b句中各个单词的权重,然后再将权重赋予b句各个单词,用来表征a句中的该单词,形成一个新的序列,b句亦然。简单来说可以这样理解:a句中有个单词“boy”,首先分析这个词和另一句话中各个词之间的联系,计算得到的结果标准化之后作为权重,用另一句话中的各个词向量按照权重去表示"boy"。
得到了新的序列之后进行差异分析,判断两个句子之间的联系是否足够大,将每句话的原BiLSTM序列和新序列进行差和积操作,并将所有序列拼接起来形成一个序列。这步称为Enhancement of local inference information。
在综合所有信息之后进行一个全局分析,使用一个组合层来合成增强的局部推断信息。此处再用BiLSTM进行一次编码,将新序列信息内容在内部进行一个融合,使用relu函数降低模型复杂度。
对聚合层输出进行一个pooling操作,并将pooling后的结果简单拼接为最后进入分类器的向量。
将向量V放入一个多层感知器进行分类,输出层使用softmax,得到最后的预测结果。
Bimpm(Bilateral Multi-perspective Matching) 即双向多角度匹配,2017年由IBM提出,原文传送门:https://arxiv.org/pdf/1702.03814.pdf
。 相信在阅读了ESIM之后对“双向”有了一定的理解,该模型的亮点在于如何“多角度”进行匹配。
该模型的输入层与ESIM略有差别:字向量经过一层LSTM,取最后一个time作为char embedding ,然后与预训练好的词向量进行拼接,拼接之后经过BiLSTM,保存两个query(P,Q)的每个time-step值。
在匹配层,模型采用了4种方法进行匹配BiLSTM输出的上下文向量,每种都是双向的,下面仅从一个方向P->Q解释匹配算法,另一方向与其相同。
获得16个匹配向量后(P->Q,Q->P各8个),再次使用BiLSTM将两个序列的匹配向量聚合成一个固定长度的匹配向量。经过两层全连接层后,softmax输出最终匹配结果。
本文介绍了六种交互型的深度语义匹配模型。交互型匹配模型的共同特点是:不存在单个文本的表达,从模型的输入开始两段文本就进行了交互,得到细粒度的匹配信息。其优点是:保持细粒度的匹配信息,避免在一段文本抽象成一个表达时,细节的匹配信息丢失。但缺点是:
因此这类模型一般都是用于类似问答系统、翻译模型、对话系统这种语义匹配程度高、句式变化复杂的任务中。
说了这么多原理,深度语义匹配模型如何在工业界中应用?下期精彩:【深度语义匹配模型】实践篇:匹配在智能客服中的应用。
卢新洁,2018年毕业于澳大利亚新南威尔士大学,毕业后加入贝壳找房语言智能与搜索部,主要从事NLP及智能客服相关工作。
相关文章
下期精彩
【深度语义匹配模型】实践篇:匹配在智能客服中的应用
推荐阅读
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载
数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。