1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【NLP-语义匹配】详解深度语义匹配模型DSSM

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

时间:2020-03-23 06:34:19

相关推荐

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

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

作者&编辑 | 小Dream哥

1 DSSM的提出

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

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

2 整体看结构

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

论文原文:/en-us/research/wp-content/uploads//02/cikm_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模型的实现和理论。我们会在知识星球讨论相关的内容,感兴趣的话可以扫描下面的二维码了解。

读者们可以留言,或者加入我们的NLP群进行讨论。感兴趣的同学可以微信搜索jen104,备注"加入有三AI NLP群"

下期预告:暂无

知识星球推荐

扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。

知识星球主要有以下内容:

(1) 聊天机器人。包括对话系统,FAQ以及闲聊型机器人。

(2) 知识图谱。介绍知识图谱的理论和世纪搭建。

(3) NLP预训练模型,包括BERT,ALBERT等模型的理论及实践。

转载文章请后台联系

侵权必究

往期精选

【完结】 12篇文章带你完全进入NLP领域,掌握核心技术

【年终总结】有三AI NLP做了什么,明年要做什么?

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

【NLP-词向量】从模型结构到损失函数详解word2vec

【NLP-NER】什么是命名实体识别?

【NLP-NER】命名实体识别中最常用的两种深度学习模型

【NLP-NER】如何使用BERT来做命名实体识别

【NLP-ChatBot】我们熟悉的聊天机器人都有哪几类?

【NLP-ChatBot】搜索引擎的最终形态之问答系统(FAQ)详述

【NLP-ChatBot】能干活的聊天机器人-对话系统概述

【知识图谱】人工智能技术最重要基础设施之一,知识图谱你该学习的东西

【知识图谱】知识表示:知识图谱如何表示结构化的知识?

【知识图谱】如何构建知识体系:知识图谱搭建的第一步

【知识图谱】获取到知识后,如何进行存储和便捷的检索?

【知识图谱】知识推理,知识图谱里最“人工智能”的一段

【NLP实战】tensorflow词向量训练实战

【NLP实战系列】朴素贝叶斯文本分类实战

【NLP实战系列】Tensorflow命名实体识别实战

【NLP实战】如何基于Tensorflow搭建一个聊天机器人

【NLP实战】基于ALBERT的文本相似度计算

【每周NLP论文推荐】从预训练模型掌握NLP的基本发展脉络

【每周NLP论文推荐】 NLP中命名实体识别从机器学习到深度学习的代表性研究

【每周NLP论文推荐】 介绍语义匹配中的经典文章

【每周NLP论文推荐】 对话管理中的标志性论文介绍

【每周NLP论文推荐】 开发聊天机器人必读的重要论文

【每周NLP论文推荐】 掌握实体关系抽取必读的文章

【每周NLP论文推荐】 生成式聊天机器人论文介绍

【每周NLP论文推荐】 知识图谱重要论文介绍

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。