基于表示的匹配模型的基本结构包括:

(1)嵌入层,即文本细粒度的嵌入表示;

(2)编码层,在嵌入表示的基础上进一步编码;

(3)表示层:获取各文本的向量表征;

(4)预测层:对文本pair的向量组进行聚合,从而进行文本关系的预测

对于对称的文本匹配任务,采用共享的编码器和文本表示DNNs无疑是合理的选择,从而也可以获取各文本在统一语义空间的表示方法。

基于表示的匹配模型结构紧凑,可变的花样并不多,主要集中在:

(1)如何更好的获取文本表征,即图中编码器和DNNs如何构造;

(2)如何更好的比较文本表征间的相似度。

这也是各典型模型主要的差异点,下面依次介绍这些典型模型:

1 DSSM及其变种
1.1 DSSM

Deep Structured Semantic Models(DSSM)是一种基于网络检索点击数据来获取query和title间语义相关性的模型,也是表示型匹配模型的鼻祖,其架构基本定义了后续各表示型匹配模型的基本范式。

DSSM主要的结构模块和要点包括:

(1)word hash:原始输入层为50w词汇构成的one-hot编码向量,为了保证训练的可行,本文提出了一种word hashing算法,通过对英文词进行n-letters的切分(如将word改写为#word#,采用3-letters切分为#wo,wor,ord,rd#),从而实现了term-level维度的压缩。word hash,类似于BPE,是一种常见的英文单词编码方式,但这种做法无法直接移植到中文embedding中;

(2)多层的MLP:表示层通过全连接的方式独立的对qurey和doc进行信息压缩和特征提取,最终得到句子和文档的语义表征;

(3)softmax预测层:DSSM损失函数的构造采用了list-wise rank的做法,采样得到一个正例和若干负例作为sample,通过计算query与doc语义表征的夹角余弦作为相似度logits,然后通过softmax进行归一化,最后通过MLE进行参数的学习。

DSSM的模型简单高效,采用海量点击曝光日志数据的监督学习进行训练,能够快速获取IR结果,但其存在如下不足:

(1)点击曝光日志并不能意味着着q-t间语义的近似程度,因此用起作为语义相似模型训练的依据是值得推敲的;

(2)期嵌入层简单采用了one-hot编码型式,忽略了语法和意义层面的表征;

(3)多层MLP的方式参数众多、形式单一,影响模型训练的效率;

(4)预测层仅仅通过夹角余弦的方式判断相似性,其表达能力稍弱。

1.2 CDSSM

针对DSSM在网络架构方面的局限性,后续提出了各种变种,首先介绍采用CNN进行表示的CDSSM模型:

CDSSM主要的结构模块和要点包括:

(1)嵌入层:在text sequence的首、尾添加了特殊的<s> token,以补充句子的边界特征,各token仍采用word hashing策略进行编码;

(2)编码层:采用n-gram的滑动窗口选取local term特征(原文直接拼接3-gram的向量表征,3*30k=90k);

(3)表示层:卷积— >池化—>卷积的表示层编码器。具体而言:通过MLP将高维度的local term特征映射到低维特征,然后在sequence length维度进行max pooling,从而将变长的文本统一为相同长度的向量特征,借着再通过一个MLP进一步压缩特征维度,以此作为文本向量表征;

(4)预测层:与DSSM采取相同损失函数、相似度计算策略。

CDSSM在编码层采用n-gram获取滑动窗口内的上下文信息,在表示层采用全局最大池化获取全文的上下文信息,从而能更好的获取语义表征,但由于滑动窗口大小的限制,仍无法获得较长距离的上下文依赖关系。

1.3 LSTM-DSSM

LSTM-DSSM模型将DSSM中的MPL层替换为LSTM层,将最后一个token的隐藏层输出作为句子表征,模型其它的设定与DSSM和CDSSM类似,这里不加赘述。

1.4 MV-DSSM

Multi-View DSSM将DSSM推广到用户推荐领域,其保留了DSSM的模型架构,创新点在于将不同信息源在统一语义空间进行编码。

2. SiamCNN和SiamLSTM

前文提及对称的文本匹配任务中常采用共享的编码器和文本表示DNNs,SiamCNN和SiamLSTM就是针对QA问题分别采用CNN模块和LSTM模块的经典模型。

2.1 SiamCNN

SiamCNN的提出者针对表示型文本匹配模型的两个核心步骤,分别对比了大量的CNN双塔模型方案以及相似性计算的方法。

在CNN双塔模型方案中,共对比了如下6种方案:

(1)q-a分别采用单独的Hidden-Layer(MLP+tanh激活函数)+ 单独的CNN + 1-D最大池化

(2)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化

(3)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化 + 单独的Hidden-Layer

(4)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化 + 共享的Hidden-Layer

(5)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化 + 共享的CNN

(6)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 共享的CNN + Skip-Connection + 1-D最大池化 +

在文本向量相似度的计算中,共对比了如下9种方案:

(1)夹角余弦;(2)多项式核函数;(3)sigmoid核函数;(4)高斯核函数;(5)欧氏距离;(6)指数核函数;(7)曼哈顿距离;(8)GESD;(9)AESD

本文采用了pair-wise rank的损失计算方法,即一对正、负样本的Hinge Loss。在文章采用的数据集上,模型方案(2)取得最佳结果,而GESD和AESD的相似度计算方法表现更好。

2.2 SiamLSTM

SiamLSTM的提出者采用LSTM的文本表征,并直接以文本表示pair的e−∣x1−x2∣e^{-|x_1-x_2|}ex1x2作为最终归一化的相似度结果。

3. ARC-I

ARC-I模型采用重复堆叠的"CNN+k-Pooling"获取相邻n-gram间的语义关系,最后通过MLP得到句子相似度。

4. Multi-view

Multi-view是一种适用于多轮对话匹配的表示型模型。

对于多轮对话文本,该模型采用了两种文本表示方案(因此被成为Multi View):

(1)word-level的文本表示:对上下文utterance进行拼接,中间以特殊的 token划分,然后采用GRU模型取最后一个token的隐藏层输出作为整个文本的语义表征;

(2)utterance-level的文本表示:采用类似HAN的层级架构,首先利用CNN+1D Max-Pooling获取每个utterance的向量表示,然后再利用GRU结构获得上下文各utterance序列的最终语义表征。

同样的对response文本也进行如上的计算。分别对两个层级的文本表示利用一个sigmoid函数表示其相似度,两者之和即为最终的相似度。

5. InferSent

本文探究在NLI语料上采用什么样的模型能够更好的实现文本pair在同一语义空间的映射,从而可以实现下游任务的迁移学习。文章总结了Siamese结构的统一架构:

模型在文本pair的文本向量基础上,进行了更细致的相似度计算,即将文本向量、文本向量的点乘结果、文本向量差的绝对值等进行拼接(该方案最早鉴于交互型文本匹配模型ESIM),再进行MLP+softmax分类。

同时给出可用做表示层的各种特征抽取器:

(1)LSTM and GRU:采用单向LSTM/GRU隐藏层在最后一个token位置的输出向量;

(2)BiLSTM :采用双向LSTM/GRU隐藏层在各自最后一个token位置的输出的拼接向量;

(3)BiLSTM with mean/max pooling:采用双向LSTM/GRU在各token位置隐藏层的输出拼接向量,然后取sequence length方向的max-pooling或者mean-pooling结果;

(4)Self-attentive network:定义若干组可学习的文本query向量参数(可视为multiple view),然后将BiLSTM在各token的隐藏层输出作为key和value向量,然后基于attention机制得到整个文本在各query作用下加权平均后的语义向量,最后进行拼接得到最终的语义向量;

(5)Hierarchical ConvNet:采用层次化的卷积层,即多层CNN+Max Pooling的迭加,每层中Max Pooling的输出作为文本语义向量的一种表征,最后将多层的向量进行拼接得到最终的语义向量;

本文横向对比了上述各种特征抽取器,结果显示在所采用的语料基础上采用BiLSTM with mean/max pooling的结果更适合迁移学习。

6. SSE

SSE采用Stacked BiLSTM + Max Pooling作为文本向量抽取器,预测层采用了和SentInfer一样的组合策略。

7. 总结

前文介绍了在IR、QA和NLI等领域提出的典型表示型文本匹配模型,其整体架构均满足Embedding->Encoding->Representation->Prediction的层级顺序,所做的工作集中在:

(1)改进Encoding和Representation层,增强模型对文本向量的表达能力,可采用CNNs、RNNs、Pooling、Attention等机制,并在网络的深度以及网络各层信息的利用等层面进行尝试;

(2)改进Prediction层对文本向量pair相似度的计算,比如可以选择简单的计算夹角余弦、欧式距离、核距离等,也可以对文本向量pair进行更花哨的向量和矩阵计算。

【Reference】

  1. DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
  2. CDSSM: A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval
  3. LSTM-DSSM: Semantic Modelling with Long-Short-Term Memory for Information Retrieval
  4. MV-DSSM: A Multi-View Deep Learning Approach for Cross Domain
    User Modeling in Recommendation Systems
  5. ARC-1: Convolutional Neural Network Architectures for Matching Natural Language Sentences
  6. SiamCNN: Applying Deep Learning to Answer Selection: A Study and An Open Task
  7. SiamLSTM: Siamese Recurrent Architectures for Learning Sentence Similarity
  8. Multi-view: Multi-view Response Selection for Human-Computer Conversation
  9. InferSent: Supervised Learning of Universal Sentence Representations from Natural Language Inference Data
  10. SSE: Shortcut-Stacked Sentence Encoders for Multi-Domain Inference
  11. 文本匹配相关方向打卡点总结(数据,场景,论文,开源工具)
  12. 谈谈文本匹配和多轮检索
  13. 贝壳找房【深度语义匹配模型 】原理篇一:表示型

【文本匹配】表示型模型相关推荐

  1. 文本匹配与ESIM模型详解

    ESIM(Enhanced Sequential Inference Model)是一个综合应用了BiLSTM和注意力机制的模型,在文本匹配中效果十分强大,也是目前为止我见过结构最复杂的模型,下面将会 ...

  2. 文本匹配之SimCSE模型

    目录 前言 模型结构 模型原理 模型训练 特别说明 模型效果 参考 前言 论文全名:SimCSE: Simple Contrastive Learning of Sentence Embeddings ...

  3. 【文本匹配】ESIM模型

    ESIM实现 ESIM模型训练包含以下模块: 数据处理加载模块 模型实现模型 pytorch_lightning 封装训练模块 模型训练和使用模块 相关源码可以参见我Github上的源码.下面主要说明 ...

  4. nc65语义模型设计_文本匹配方法系列––多维度语义交互匹配模型

    摘要 本文基于接着多语义匹配模型[1]和BERT匹配模型[2]介绍一些多维度语义交互匹配模型,包括2017 BiMPM模型[3]和腾讯出品的2018 MIX[4].这些方法的核心特征都是在多语义网络的 ...

  5. 文本匹配模型ESIM

    ESIM是一个综合应用了BiLSTM和注意力机制的模型,在文本匹配中效果十分强大. 文本匹配说就是分析两个句子是否具有某种关系,比如有一个问题,现在给出一个答案,我们就需要分析这个答案是否匹配这个问题 ...

  6. 【NLP】深度文本匹配综述

    目  录 1.研究背景与意义  2.深度学习在自然语言处理的应用  3.深度文本匹配与传统文本匹配  4.深度文本匹配国内外研究现状  4.1基于单语义表达的文本匹配 4.2基于多语义表达的文本匹配 ...

  7. laravel 分词搜索匹配度_DSSM文本匹配模型在苏宁商品语义召回上的应用

    文本匹配是自然语言处理中的一个核心问题,它不同于MT.MRC.QA 等end-to-end型任务,一般是以文本相似度计算的形式在应用系统中起核心支撑作用1.它可以应用于各种类型的自然语言处理任务中,例 ...

  8. 文本匹配开山之作--双塔模型及实战

    作者 | 夜小白 整理 | NewBeeNLP 在前面一篇文章中,总结了Representation-Based文本匹配模型的改进方法, 基于表征(Representation)的文本匹配.信息检索. ...

  9. nmt模型源文本词项序列_「自然语言处理(NLP)」阿里团队--文本匹配模型(含源码)...

    来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-14 引言 两篇文章与大家分享,第一篇作者对通用文本匹配模型进行探索,研究了构建一个快速优良的文本 ...

最新文章

  1. Windows Phone 7中用好Silverlig“.NET研究”ht开发利器
  2. Linux 查看磁盘或文件夹及文件大小
  3. 解决 An invalid domain was specified for this cookie
  4. Ubuntu16.04安装QQ机器人
  5. SpringBoot2.1.5 (32)--- SpringBoot整合 Freemaker 模板引擎
  6. JavaScript基础和记背内容 Day1
  7. htmlspecialchars_decode 和 htmlspecialchars
  8. error:there‘s no Qt version assigned to project please assign a Qt installation in qt project settin
  9. 【自学笔记】三维copula的构建与分布函数的求解
  10. Java软件开发技术交流群
  11. dp动态规划分类详解
  12. php导出word文档图片不显示,word文档几种不显示图片的解决方法
  13. SCI期刊图片分辨率与清晰度修改,以及拼图
  14. Linux系统打印机打印乱码,Linux输入中文乱码问题(亲测有效)
  15. 腾讯游戏10大经典案例(二):天堂等于天下
  16. 【可救砖】CM211-1/201-1等S905L3(B)_安卓9-通刷极致精简免拆语音-线刷固件及教程202208
  17. 用IMAP4访问Exchange邮箱
  18. 微信小程序绑定银行卡功能
  19. ipadpro分屏怎么操作_iPad到手后必备的高效设置技巧(iPad Pro、iPad Air、iPad mini学习生产工具...
  20. GNSS测量原理与应用(复习)

热门文章

  1. Pycharm 安装及使用教程
  2. python手机版代码-手机黑名单Python简单代码
  3. MNIST数据集手写数字识别(CNN)
  4. python 大小端转换_Python 字节串转换以及大小端相关的几个方法
  5. 解决AD原理图中无法输入中文的问题
  6. php限制数组长度,PHP限制数组中每个字符串的长度
  7. 基于 Spring Boot + Vue 实现的可视化拖拽编辑的大屏项目
  8. C语言,同时对多个变量同时赋值
  9. JMeter5.3安装配置教程(附链接)
  10. c语言中的float类型,C语言中float类型详解