文本匹配模型TextMatching

2,533 阅读3分钟

0. 写在前面

本次分享一篇NLP文本匹配的经典文章,主要思路是借鉴图像识别的思路来解决NLP文本匹配问题,毕竟计算机视觉技术的发展在当时异常迅猛。

个人心得:

  1. 文本匹配问题可转化为二分类问题,输出概率则为相似度
  2. 将图像识别的思路应用于文本匹配任务中,利用卷积抽取文本特征

论文地址:

arxiv.org/pdf/1602.06…

1. 背景

文本匹配广泛用于搜索引擎、问答系统、信息流相关文章推荐等场景中,目的是为了在文本库中找出与目标文本类似或相关的文本。本文即将介绍的TextMathcing模型是一种端到端的文本匹配方法,将计算机视觉领域图像识别任务的解决方案思路引入文本匹配模型中,让我们一起来看看作者是如何设计和实现的。

2. 模型架构

TextMatching模型架构如图所示。

我们将模型架构拆解为如下几个步骤:

  1. 文本嵌入 本文方法首先利用词向量模型得到文本或者句子中的每个词的embedding向量,这一步也是非常通用的步骤,目前主流的词向量模型为word2vec/fastText/glove/bert等,本文选用glove。

  2. 计算相似度矩阵 对待匹配的文本(具体而言是一个二维数组,每一维是文本中每个词的embedding向量)进行外积,得到每个词之间的相似度得分。如果两个文本分别由M,N个词组成,那么,相似度矩阵大小为M*N。作者提供了三种词与词之间的相似度得分计算方法:

    a. 0-1类型,对应的词相同为1,否则为0。这种方法的缺点在于无法捕获相似词间的语义匹配关系。

    b. cosine相似度

    c. 点积

    经实验,方案3的效果最佳。

  3. CNN特征提取

    为什么说本文的思路是像图像识别一样作文本匹配呢?关键一步就是作者使用了图像识别中常用的CNN卷积层来提取文本特征。TextMatching模型使用了两层CNN从相似度矩阵中抽取特征。这里需要注意的一点是,不同的文本对产生的文本相似度矩阵大小是不一致的,为了让CNN抽取的feature map在输入到全连接层时能够在尺寸上保持一致,作者在第一层CNN后使用了一层动态pooling层来动态调整feature map尺寸。

  4. 全连接层

    经CNN抽取特征后,TextMatching将特征送入两层全连接层,再经softmax得到模型推理结果,输出的概率值即可认为是文本对的匹配程度。

3. 模型评估

作者将本文模型与其他主流文本匹配模型进行对比,可以看出,本文提出的TextMatching模型效果还是优于当时的主流模型的。

4. 总结

本文介绍了一种文本匹配的经典工作,其思路是将基于CNN的图像识别思路引入文本匹配模型中,进而提升文本匹配效果。