【NLP-语义匹配】详解深度语义匹配模型DSSM

所谓语义匹配,就是在语义上衡量文本的相似度,在产业界有很多的应用需求。例如,在FAQ场景中需要计算用户输入与标问之间的相似度来寻找合适的答案。本文介绍一种经典的语义匹配技术,DSSM,主要用于语料的召回和粗排。

作者&编辑 | 小Dream哥

1 DSSM的提出 

较早期的语义匹配模型都是基于关键词的匹配,例如LSA等,无法匹配语义层面的信息。基于此,DSSM(Deep Structured Semantic Models)提出深度语义匹配模型,期望能够在语义层面匹配query之间的相似性。

顾名思义,DSSM是一种用于语义相似度计算的深度网络,我们来看看它的庐山真面目到底是怎么样的。

2  整体看结构

我们先来整体来看一下DSSM的网络结构,以整体上对它有一个把握和感觉。如下图所示,是DSSM的网络架构图:

论文原文:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2013_DSSM_fullversion.pdf

整体上来看,DSSM网络总共有6层:

1.第一层是输入层,DSSM用的词袋模型,后面再详细介绍;

2.第二层经过word hashing,将维度由500K降为30K;

3.第三,四,五层是3个全连接层,通过这三个全连接层,进行语义特征的提取,并降维度降低到128维;

4.第六层为输出层,计算Q和D之间的余弦相似度之后,输出他们之间的相似度。

3 输入层及word hashing  

DSSM的输入层结合了词哈希(word hashing)和语义匹配,我们在讲词向量的时候详细介绍了词袋模型,忘记的同学可以点击如下链接先了解:

【NLP-词向量】词向量的由来及本质

总的来说词袋模型就是把文本看成是一个装着词的袋子,记录一个文本中,有这个词几个,那个词几个。前提到过,当词典非常大时,用词袋模型会造成维度灾难。所以DSSM还引入了word hashing。

Word hashing主要目的是为了减少维度,在英文里,采用letter-ngams来对单词进行切分,如下图所示,加入采用letter-trigams来对词进行切分,则boy这个词可以切分为(#bo,boy,oy#)三个。按这个方法,再将上述词袋里的进行转化。因为英文只有26个字母,这样可以极大的减少维度,如论文中所示将维度从500K转化为30K。

也许反应快的同学很快就会问,英文可以这样做,但是好像中文没有办法这样处理呀?总不能按照偏旁来拆吧?当然不会按照偏旁来拆了,加入汉字部首偏旁特征的研究目前还不很成功。

那么中文怎么处理呢?其实很简单,在单纯的DSSM模型中,中文是按照“字袋模型”来处理的,参考词袋模型,也就是将文本转化成,有几个某某字,有几个某某字。因为中文字个数是有限的,常用的字大概有15K左右,因此这种做法不会有维度过大的问题。

4  特征提取层和相似度计算

熟悉深度学习的朋友,应该很容易看明白DSSM的特征抽取层,其实就是3个全连接层串行的连接起来。看看数学:

可以看出,在DSSM中采用tanh作为激活函数。

通过计算各个Q及D的特征表征,得到了一些128维的特征向量。随后在DSSM中,通过计算Q和D之间的余弦距离来评价他们之间相似度,计算公式如下图所示:

5  DSSM的训练

那么DSSM训练的过程是怎么样的呢?细心的同学会发现,DSSM网络结构图中,DSSM的输入是一个Querry和一个文本集DD中包含正样本和负样本。

其中 r 为 softmax 的平滑因子,D 为 Query 下的正样本,D 为 Query 下的整个样本空间。

上述公式,计算一个样本空间内正样本的平滑概率,R(Q,D)为两个文本之间余弦距离。

在训练阶段,通过极大似然估计,最小化损失函数为:

总结

DSSM的优点在于能够快速的计算多个query和Doc对之间的语义相似度;相对于词向量的方式,它采用有监督的方法,准确度要高很多。

但是DSSM也有它的缺点,首先,它采用词袋模型,没有考虑词的位置关系,这对语义理解是一个大的损失;此外,采用弱监督、端到端的模型,预测结果不可控。

基于DSSM的上述特点,它最适合应用的场景就是召回和粗排。例如在FAQ中,因为标问会非常多,将标问和用户输入一一匹配时几乎不可能的事情。通常的做法就是,首先基于ES和DSSM做一遍召回和粗排,得到一定数目的标问后再用精排模型得到答案。

除了使用它,更关键的是albert模型的实现和理论。我们会在知识星球讨论相关的内容,感兴趣的话可以扫描下面的二维码了解。

(0)

相关推荐

  • 基于一种改进的Wide&Deep 文本分类在用户身份识别上的实践

    导读 在互联网平台中,通常包含C端和B端两种客户.为了更好地服务C端用户,识别出用户身份十分重要.本文详细介绍了在用户身份识别过程中如何解决冷启动时少样本的问题,并比较了关键词匹配.XGBoost.T ...

  • 阿里文娱搜索在深度语义相关性计算的探索

    编辑整理:韩佳 出品平台:DataFunTalk.AI启蒙者 导读:大家都知道视频作为4G以及5G时代最便捷的信息载体.它在给用户带来极大便利的同时也会给搜索带来了更大的挑战.视频不论从制作.存储.计 ...

  • 美团搜索NER技术启示

    随着文本层面的搜索向语义向量召回迭代(可能不少新人都不知道文本搜索了吧?),NER任务在搜索中的地位好像有所下降,但是作为关键的理解和抽取技术,仍有重要的应用场景,因此好好掌握还是非常关键的. 这次给 ...

  • 电商搜索:召回篇

    文章作者:阿里CBU技术部 内容来源:<阿里巴巴B2B电商算法实战> 导读:搜索引擎已经广泛应用于电商网站,我们为什么需要搜索引擎?搜索引擎又是如何工作的呢?电商网站中存在着上亿的商品,想 ...

  • 阿里妈妈:品牌广告中的 NLP 算法实践

    出品社区:DataFunTalk 导读:本次分享的主题为阿里妈妈品牌广告中的 NLP 算法实践,主要内容包括: 1. 品牌广告业务模式与技术架构的简要介绍 2. NLP 算法在品牌搜索广告中的实践,以 ...

  • 特征工程|四种主流的embedding特征技术

    特征工程系列文章目前已经更新: 特征工程|数据的分类.特征工程的定义.意义和应用 特征工程|特征设计.特征可用性评估 特征工程|特征获取.特征规范和特征存储 特征工程|数据清洗.特征生成.特征拼接 特 ...

  • 一文详解深度相机之双目成像

    干货第一时间送达 文章导读 本文通过介绍双目立体视觉的成像过程,带大家了解双目视觉如何从两个不同视角的成像平面中恢复出物体三维几何信息,重建周围景物的三维形状与位置. 在说双目视觉之前,我们先聊一下单 ...

  • 龙头战法之:卡位与被动跟随详解 深度教程(附图)

    一.先说何为卡位: 板块内先有一个公认的大哥在上涨,有一群小弟在跟随. 当有一天,大哥开始分歧,走弱,此时如果有个小弟逆流而上,不断走强(下跌时可能跟随大哥下跌,但上涨时先于大哥走强),而且从某个节点 ...

  • 四万字全面详解 | 深度学习中的注意力机制(完结篇)

    本部分介绍Attention机制的各种变体.包括但不限于: 「基于强化学习的注意力机制」:选择性的Attend输入的某个部分 「全局&局部注意力机制」:其中,局部注意力机制可以选择性的Atte ...

  • 【阿里云课程】详解深度学习优化:数据增强

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中一节,介绍如下: 数据增强 本节课内容为:数据增强,讲述数据增强的重要性,基于几何和颜色变换的增强操作,以及自动学习 ...

  • 【阿里云课程】详解深度学习优化:优化目标与评估指标

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中一节,介绍如下: 优化目标与评估指标 本节课内容为:优化目标与评测指标,讲述分类任务与回归任务中常见的损失函数与模型 ...

  • 【阿里云课程】详解深度学习优化:泛化与正则化,学习率与最优化

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中两节,介绍如下: 第1节:泛化与正则化 第1节课内容为:泛化与正则化,讲述泛化的概念与重要性,各种正则化方法,包括显 ...

  • 【阿里云课程】详解深度学习优化:参数初始化,激活函数,标准化,池化

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中两节,介绍如下: 第1节:激活函数与参数初始化 第1节课内容为:卷积神经网络的上篇,简单介绍卷积神经网络的生物学机制 ...

  • 四万字全面详解 | 深度学习中的注意力机制(上)

    作者丨蘑菇先生 来源丨NewBeeNLP 编辑丨极市平台 极市导读 本文介绍了基础的Attention模型的应用,并通过论文讨论了Attention机制的各种变体.文章讲述详细,能够帮助大家对注意力机 ...

  • 四万字全面详解 | 深度学习中的注意力机制(二)

    目前深度学习中热点之一就是注意力机制(Attention Mechanisms).Attention源于人类视觉系统,当人类观察外界事物的时候,一般不会把事物当成一个整体去看,往往倾向于根据需要选择性 ...