首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

卷积网络深度匹配模型在语言匹配中的应用简介

与前两个模型(主题深度匹配模型与树深度匹配模型)不同,卷积网络深度匹配模型(DeepMatch_cnn)以词向量表示的句子作为输入,在此之上构建一个一维或二维的卷积神经网络,逐层地从局部到整体表达句子和句子之间的匹配关系。在这个模型中,有两个相互关联的架构—架构-1和架构-2。

卷积神经网络句子表示:

卷积神经网络一般用于图像或者音频等连续数据,而用于文本的卷积神经网络只是在近年才被提出,并且没有统一的架构。卷积神经网络句子模型(CNN_sen)首先把句子表达为句中单词的向量的序列;然后用滑动窗口来选择词向量组作为基本单位,依次进行卷积操作,并依次用池化方法对两个相邻窗口的卷积进行筛选。这两种操作分别对应着卷积层和池化层。在一个深度的卷积神经网络中,这种“卷积+池化”的操作会进行若F次,最后得到一个描述整个句子的向量。需要注意的是,由于句子的长度不同,我们会设定一个最大句子长度(如64个词),同时对长度小于这个最大长度的句子后面进行填零操作(zero padding)。CNN_sen模型的训练需要一个来自特定任务(如匹配任务)的监督信号,然后用反向传播算法来完成。

两种代表性架构:

架构-1: Siamese网络

在这个架构中,首先用CNN_sen将两个待匹配的句子表达为两个定长的向量,拼接两个向量并输入到一个全连接的多层神经网络,从神经网络的输出得到最终的匹配值。这个模型可以充分利用CNN_sen对整个句子的表示能力进行高精度的句子匹配。由于模型中只使用了一维卷积,因此训练和预测的速度都相对较快。但是由于架构-1先学习匹配中两个句子的表示,再学习两个句子的匹配关系,所以匹配过程中出现的一些小粒度的对应信息可能被忽略。这促使我们提出了架构-2。

架构-2:二维卷积神经

网络与架构-1不同,架构-2用一个二维卷积神经网络来逐层描述两个句子的表示及其相互作用的表示,最终得到两个句子匹配的全局表示。在这个全局表示之上,再通过一个全连接的神经网络来得到两个句子的最终匹配值。具体地讲,我们先在两个句子所有滑动窗口的组合上进行卷积操作,得到一个三维的张量,作为两个句子相互作用的一个初步表示。其中,前两维分别表示滑动窗口在两个句子中的位置,第三维表示两个句子相互作用的特征。这样的架构可以保留局部匹配在两个句子中的相对位置,从而对两个句子的全局匹配关系拥有更强的表示能力。随后的卷积将会以这个三维张量为基础进行,操作过程与图像处理所使用的卷积神经网络类似。

该架构具有如下优点:

(1)可以充分描述两个句子中各种粒度的对应关系,包括细粒度(发生在较低层)和粗粒度(发生在较高层)的对应。而各种粒度的选择和组合完全取决于任务和数据的特性,并通过学习自动判定。

(2)架构-2更具一般性,架构-1可以作为其特例,这意味着架构-2也进行了单边的从简单语义(词)到复杂语义(短语和句子)的组合和表达。

卷积网络深度匹配模型基于词向量,可以对两个句子的匹配关系进行比较完整的描述,这使得它与基于词包的匹配模型相比具有明显的优势。与其他基于词向量的匹配模型(如浅层的卷积神经网络、递归自动编码模型)相比,卷积网络深度匹配模型存在较大的优势。在两个架构中,架构-2始终以一定优势领先于架构-1。这可能是因为架构-2直接建立在句子的相互作用空间上,比较善于捕捉细微的匹配关系。值得注意的是,树深度匹配模型和卷积网络深度匹配模型各有优势:前者善于处理精确的匹配,但灵活性和覆盖范围可能不足(这一点可以靠大规模的挖掘来弥补);后者胜在灵活性和统的学习框架上(无须挖掘的环节),但在精确匹配方面(比如句子中命名实体的匹配)还有待提高。

深度学习可以很好地实现语言对象的表示和匹配模式的表示,因而它可以较好地完成像自然语言匹配这样的复杂任务。前面介绍的模型都涉及其中一点或两点的表示,但又有很大的不同。深度语义结构模型、卷积深度语义结构模型和DeepMatch_cnn的架构-1侧重对语言对象本身(从词、句子到文章)的表示,在此基础上完成匹配。这种思路更多继承了传统方式,并且和自然语言处理中分类、机器翻译等对语言对象(如句子)的表示脉相承。这类模型的优点是可以借助训练数据中的监督信号完成对语言对象表示的学习,学习速度较快。其缺点是,由于两个语言对象的表示是完全独立定义的,因此不能很好地刻画一些匹配的细节,对相对复杂的语言对象的匹配尤其如此。比如,在判定句子A“广州天气晴朗”和句子B“深圳天气晴朗”是否是对方更改时,句子A表示中的“广州”和句子B表示中的“深圳”往往比较相似,不具充分区分度,这使得一个类似DeepMatch_cnn的架构-1很可能会判定这两个句子是同一个意思,即使在模型得到充分训练的情况下依然如此。为了解决此问题,我们认为需要在模型中直接建立匹配模式的表示,继而对匹配进行深度的综合刻画,而不是让匹配只依赖语言对象的表示。动态池化和可伸展递归自动编码方法、主题深度匹配模型、树深度匹配模型和DeepMatch_cnn的架构-2都是基于这方面的考虑而设计的。由于它们是建立在对象表示与匹配表示的基础上,往往可以捕捉到对匹配任务最有价值的信息,从而进行充分的匹配处理。在上面的例子中,如果模型可以较早地发现(广州,深圳)不匹配,并把这个信息表达在两个句子的匹配模式中,就有可能做出正确的判断。当然,同时建立匹配表示也可能带来坏处,比如会阻碍对语言对象本身的表示。因此,如何结合这两类思路的优点,避免各自的缺点,是下一步研究的重点。

从另一个角度来看,以上模型除了树深度匹配模型之外都是基于词向量表示(wordembedding)的。通常,基于词向量表示的模型有较好的泛化能力和合成能力,但是可能存在精确性问题。与此相对应,由于树深度匹配模型以匹配规则为特征,要完成一个较好的覆盖所用特征往往数量巨大(在我们的工作中是千万量级)。当覆盖达到一个较好的程度时,这种模型可以发挥其精确性上的优势,产生不错的匹配效果。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200427A0LQ5500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券