当前位置:文档之家› 深度学习解决 NLP 问题:语义相似度计算

深度学习解决 NLP 问题:语义相似度计算

深度学习解决 NLP 问题:语义相似度计算
深度学习解决 NLP 问题:语义相似度计算

导语

在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度、feeds场景下Doc和Doc的语义相似度、机器翻译场景下A句子和B句子的语义相似度等等。本文通过介绍DSSM、CNN-DSSM、LSTM-DSSM 等深度学习模型在计算语义相似度上的应用,希望给读者带来帮助。

0. 提纲

1. 背景

2. DSSM

3. CNN-DSSM

4. LSTM-DSSM

5. 后记

6. 引用

1. 背景

以搜索引擎和搜索广告为例,最重要的也最难解决的问题是语义相似度,这里主要体现在两个方面:召回和排序。

在召回时,传统的文本相似性如BM25,无法有效发现语义类query-Doc 结果对,如"从北京到上海的机票"与"携程网"的相似性、"快递软件"与"菜鸟裹裹"的相似性。

在排序时,一些细微的语言变化往往带来巨大的语义变化,如"小宝宝生病怎么办"和"狗宝宝生病怎么办"、"深度学习"和"学习深度"。

DSSM(Deep Structured Semantic Models)为计算语义相似度提供了一种思路。

本文的最后,笔者结合自身业务,对DSSM 的使用场景做了一些总结,不是所有的业务都适合用DSSM。

2. DSSM

DSSM [1](Deep Structured Semantic Models)的原理很简单,通过搜索引擎里Query 和Title 的海量的点击曝光日志,用DNN 把Query 和Title 表达为低纬语义向量,并通过cosine 距离来计算两个语义向量的距离,最终训练出语义相似度模型。该模型既可以用来预测两个句子的语义相似度,又可以获得某句子的低纬语义向量表达。

DSSM 从下往上可以分为三层结构:输入层、表示层、匹配层

2.1 输入层

输入层做的事情是把句子映射到一个向量空间里并输入到DNN 中,这里英文和中文的处理方式有很大的不同。

(1)英文

英文的输入层处理方式是通过word hashing。举个例子,假设用

letter-trigams 来切分单词(3 个字母为一组,#表示开始和结束符),boy 这个单词会被切为#-b-o, b-o-y, o-y-#

这样做的好处有两个:首先是压缩空间,50 万个词的one-hot 向量空间可以通过letter-trigram 压缩为一个3 万维的向量空间。其次是增强范化能力,三个字母的表达往往能代表英文中的前缀和后缀,而前缀后缀往往具有通用的语义。

这里之所以用3 个字母的切分粒度,是综合考虑了向量空间和单词冲突:

以50 万个单词的词库为例,2 个字母的切分粒度的单词冲突为1192(冲突的定义:至少有两个单词的letter-bigram 向量完全相同),而3 个字母的单词冲突降为22 效果很好,且转化后的向量空间3 万维不是很大,综合考虑选择3 个字母的切分粒度。

(2)中文

中文的输入层处理方式与英文有很大不同,首先中文分词是个让所有NLP 从业者头疼的事情,即便业界号称能做到95%左右的分词准确性,但分词结果极为

不可控,往往会在分词阶段引入误差。所以这里我们不分词,而是仿照英文的处理方式,对应到中文的最小粒度就是单字了。(曾经有人用偏旁部首切的,感兴趣的朋友可以试试)

由于常用的单字为1.5 万左右,而常用的双字大约到百万级别了,所以这里出于向量空间的考虑,采用字向量(one-hot)作为输入,向量空间约为1.5 万维。

2.2 表示层

DSSM 的表示层采用BOW(Bag of words)的方式,相当于把字向量的位置信息抛弃了,整个句子里的词都放在一个袋子里了,不分先后顺序。当然这样做会有问题,我们先为CNN-DSSM 和LSTM-DSSM 埋下一个伏笔。

紧接着是一个含有多个隐层的DNN,如下图所示:

用Wi 表示第i 层的权值矩阵,bi 表示第i 层的bias 项。则第一隐层向量l1(300 维),第i 个隐层向量li(300 维),输出向量y(128 维)可以分别表示为:

用tanh 作为隐层和输出层的激活函数:

最终输出一个128 维的低纬语义向量。

2.3 匹配层

Query 和Doc 的语义相似性可以用这两个语义向量(128 维) 的cosine 距离来表示:

通过softmax 函数可以把Query 与正样本Doc 的语义相似性转化为一个后验概率:

其中r 为softmax 的平滑因子,D 为Query 下的正样本,D-为Query 下的负样本(采取随机负采样),D 为Query 下的整个样本空间。

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

残差会在表示层的DNN 中反向传播,最终通过随机梯度下降(SGD)使模型收敛,得到各网络层的参数{Wi,bi}。

2.4 优缺点

优点:DSSM 用字向量作为输入既可以减少切词的依赖,又可以提高模型的范化能力,因为每个汉字所能表达的语义是可以复用的。另一方面,传统的输入层是用Embedding 的方式(如Word2Vec 的词向量)或者主题模型的方式(如LDA 的主题向量)来直接做词的映射,再把各个词的向量累加或者拼接起来,由于Word2Vec 和LDA 都是无监督的训练,这样会给整个模型引入误差,DSSM 采用统一的有监督训练,不需要在中间过程做无监督模型的映射,因此精准度会比较高。

缺点:上文提到DSSM 采用词袋模型(BOW),因此丧失了语序信息和上下文信息。另一方面,DSSM 采用弱监督、端到端的模型,预测结果不可控。

3. CNN-DSSM

针对DSSM 词袋模型丢失上下文信息的缺点,CLSM[2](convolutional latent semantic model)应运而生,又叫CNN-DSSM。CNN-DSSM 与DSSM 的区别主要在于输入层和表示层。

3.1 输入层

(1)英文

英文的处理方式,除了上文提到的letter-trigram,CNN-DSSM 还在输入层增加了word-trigram

如上图所示,word-trigram其实就是一个包含了上下文信息的滑动窗口。举个例子:把 online auto body ... 这句话提取出前三个词 online auto,之后再分别对这三个词进行letter-trigram映射到一个3 万维的向量空间里,然后把三个向量concat 起来,最终映射到一个9 万维的向量空间里。(2)中文

英文的处理方式(word-trigram letter-trigram)在中文中并不可取,因为英文中虽然用了word-ngram 把样本空间拉成了百万级,但是经过

letter-trigram 又把向量空间降到可控级别,只有3*30K(9 万)。而中文如果用word-trigram,那向量空间就是百万级的了,显然还是字向量(1.5 万维)比较可控。

3.2 表示层

CNN-DSSM 的表示层由一个卷积神经网络组成,如下图所示:

(1)卷积层——Convolutional layer

卷积层的作用是提取滑动窗口下的上下文特征。以下图为例,假设输入层是一个302*90000(302 行,9 万列)的矩阵,代表302 个字向量(query 的和Doc 的长度一般小于300,这里少了就补全,多了就截断),每个字向量有9 万维。而卷积核是一个3*90000 的权值矩阵,卷积核以步长为1 向下移动,得到的

feature map 是一个300*1 的矩阵,feature map 的计算公式是(输入层维数302-卷积核大小3 步长1)/步长1=300。而这样的卷积核有300 个,所以形成了300 个300*1 的feature map 矩阵。

(2)池化层——Max pooling layer

池化层的作用是为句子找到全局的上下文特征。池化层以Max-over-time pooling 的方式,每个feature map 都取最大值,得到一个300 维的向量。Max-over-pooling 可以解决可变长度的句子输入问题(因为不管Feature Map 中有多少个值,只需要提取其中的最大值)。不过我们在上一步已经做了句子的定长处理(固定句子长度为302),所以就没有可变长度句子的问题。最终池化层的输出为各个Feature Map 的最大值,即一个300*1 的向量。这

里多提一句,之所以Max pooling 层要保持固定的输出维度,是因为下一层全链接层要求有固定的输入层数,才能进行训练。

(3)全连接层——Semantic layer

最后通过全连接层把一个300 维的向量转化为一个128 维的低维语义向量。全连接层采用tanh 函数:

3.3 匹配层

CNN-DSSM 的匹配层和DSSM 的一样,这里省略。

3.4 优缺点

优点:CNN-DSSM 通过卷积层提取了滑动窗口下的上下文信息,又通过池化层提取了全局的上下文信息,上下文信息得到较为有效的保留。

缺点:对于间隔较远的上下文信息,难以有效保留。举个例子,I grew up in France... I speak fluent French,显然France 和French 是具有上下文依赖关系的,但是由于CNN-DSSM 滑动窗口(卷积核)大小的限制,导致无法捕获该上下文信息。

4. LSTM-DSSM

针对CNN-DSSM 无法捕获较远距离上下文特征的缺点,有人提出了用LSTM-DSSM[3](Long-Short-Term Memory)来解决该问题。不过说LSTM 之前,要先介绍它的"爸爸""RNN。

4.1 RNN

RNN(Recurrent Neural Networks)可以被看做是同一神经网络的多次复制,每个神经网络模块会把消息传递给下一个。如果我们将这个循环展开:

假设输入xi 为一个query 中几个连续的词,hi 为输出。那么上一个神经元的输出h(t-1) 与当前细胞的输入Xt 拼接后经过tanh 函数会输出ht,同时把ht 传递给下一个细胞。

不幸的是,在这个间隔不断增大时,RNN 会逐渐丧失学习到远距离信息的能力。因为RNN 随着距离的加长,会导致梯度消失。简单来说,由于求导的链式法则,直接导致梯度被表示为连乘的形式,以至梯度消失(几个小于1 的数相乘会逐渐趋向于0)。

4.2 LSTM

LSTM[4]((Long-Short-Term Memory)是一种RNN 特殊的类型,可以学习长期依赖信息。我们分别来介绍它最重要的几个模块:

(0)细胞状态

细胞状态这条线可以理解成是一条信息的传送带,只有一些少量的线性交互。在上面流动可以保持信息的不变性。

(1)遗忘门

遗忘门[5]由Gers 提出,它用来控制细胞状态cell 有哪些信息可以通过,继续往下传递。如下图所示,上一层的输出h(t-1) concat 上本层的输入xt,经过一个sigmoid 网络(遗忘门)产生一个从0 到1 的数值ft,然后与细胞状态C(t-1) 相乘,最终决定有多少细胞状态可以继续往后传递。

(2)输入门

输入门决定要新增什么信息到细胞状态,这里包含两部分:一个sigmoid 输入门和一个tanh 函数。sigmoid 决定输入的信号控制,tanh 决定输入什么内容。如下图所示,上一层的输出h(t-1) concat 上本层的输入xt,经过一个sigmoid 网络(输入门)产生一个从0 到1 的数值it,同样的信息经过tanh

网络做非线性变换得到结果Ct,sigmoid 的结果和tanh 的结果相乘,最终决定有哪些信息可以输入到细胞状态里。

(3)输出门

输出门决定从细胞状态要输出什么信息,这里也包含两部分:一个sigmoid 输出门和一个tanh 函数。sigmoid 决定输出的信号控制,tanh 决定输出什么内容。如下图所示,上一层的输出h(t-1) concat 上本层的输入xt,经过一个sigmoid 网络(输出门)产生一个从0 到1 的数值Ot,细胞状态Ct 经过tanh 网络做非线性变换,得到结果再与sigmoid 的结果Ot 相乘,最终决定有哪些信息可以输出,输出的结果ht 会作为这个细胞的输出,也会作为传递个下一个细胞。

4.2 LSTM-DSSM

LSTM-DSSM 其实用的是LSTM 的一个变种——加入了peephole[6]的LSTM。如下图所示:

看起来有点复杂,我们换一个图,读者可以看的更清晰:

这里三条黑线就是所谓的peephole,传统的LSTM 中遗忘门、输入门和输出门只用了h(t-1) 和xt 来控制门缝的大小,peephole 的意思是说不但要考虑h(t-1) 和xt,也要考虑Ct-1 和Ct,其中遗忘门和输入门考虑了Ct-1,而输出门考虑了Ct。总体来说需要考虑的信息更丰富了。

好了,来看一个LSTM-DSSM 整体的网络结构:

红色的部分可以清晰的看到残差传递的方向。

5. 后记

介绍完了DSSM 及其几个变种,还要给读者泼点冷水,DSSM 就一定适合所有的业务吗?

这里列出DSSM 的2 个缺点以供参考:

1. DSSM 是端到端的模型,虽然省去了人工特征转化、特征工程和特征组合,但端到端的模型有个问题就是效果不可控。对于一些要保证较高的准确率的场景,用有监督人工标注的query 分类作为打底,再结合无监督的word2vec、LDA 等进行语义特征的向量化,显然比较可控(至少query 分类的准确率可以达到95%以上)。

2. DSSM 是弱监督模型,因为引擎的点击曝光日志里Query 和Title 的语义信息比较弱。举个例子,搜索引擎第一页的信息往往都是Query 的包含匹配,笔者统计过,完全的语义匹配只有不到2%。这就意味着几乎所有的标题里都包含用户Query 里的关键词,而仅用点击和曝光就能作为正负样例的判断?显然不太靠谱,因为大部分的用户进行点击时越靠前的点击的概率越大,而引擎的排序又是由pCTR、CVR、CPC 等多种因素决定的。从这种非常弱的信号里提取出语义的相似性或者差别,那就需要有海量的训练样本。DSSM 论文中提到,实验的训练样本超过1 亿。笔者和同事也亲测过,用传统CTR 预估模型千万级的样本量来训练,模型无法收敛。可是这样海量的训练样本,恐怕只有搜索引擎才有吧?普通的搜索业务query 有上千万,可资源顶多只有几百万,像论文中说需要挑出点击和曝光置信度比较高且资源热度也比较高的作为训练样本,这样就过滤了80%的长尾query 和Title 结果对,所以也只有搜索引擎才有这

样的训练语料了吧。另一方面,超过1 亿的训练样本作为输入,用深度学习模型做训练,需要大型的GPU 集群,这个对于很多业务来说也是不具备的条件。

6. 引用

[1]. Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]// ACM International Conference on Conference on Information & Knowledge Management. ACM, 2013:2333-2338.

[2]. Shen, Yelong, et al. "A latent semantic model with

convolutional-pooling structure for information retrieval." Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management. ACM, 2014.

[3]. Palangi, Hamid, et al. "Semantic modelling with long-short-term memory for information retrieval." arXiv preprint arXiv:1412.6629 2014.

[4]. Hochreiter, Sepp and Schmidhuber, J¨urgen. Long short-term memory. Neural Comput., 9(8):1735–1780, November 1997.

[5]. Gers, Felix A., Schmidhuber, Jrgen, and Cummins, Fred. Learning to forget: Continual prediction with lstm. Neural Computation, 12:2451–2471, 1999.

文本相似度算法

1.信息检索中的重要发明TF-IDF 1.1TF Term frequency即关键词词频,是指一篇文章中关键词出现的频率,比如在一篇M个词的文章中有N个该关键词,则 (公式1.1-1) 为该关键词在这篇文章中的词频。 1.2IDF Inverse document frequency指逆向文本频率,是用于衡量关键词权重的指数,由公式 (公式1.2-1) 计算而得,其中D为文章总数,Dw为关键词出现过的文章数。2.基于空间向量的余弦算法 2.1算法步骤 预处理→文本特征项选择→加权→生成向量空间模型后计算余弦。 2.2步骤简介 2.2.1预处理 预处理主要是进行中文分词和去停用词,分词的开源代码有:ICTCLAS。 然后按照停用词表中的词语将语料中对文本内容识别意义不大但出

现频率很高的词、符号、标点及乱码等去掉。如“这,的,和,会,为”等词几乎出现在任何一篇中文文本中,但是它们对这个文本所表达的意思几乎没有任何贡献。使用停用词列表来剔除停用词的过程很简单,就是一个查询过程:对每一个词条,看其是否位于停用词列表中,如果是则将其从词条串中删除。 图2.2.1-1中文文本相似度算法预处理流程 2.2.2文本特征项选择与加权 过滤掉常用副词、助词等频度高的词之后,根据剩下词的频度确定若干关键词。频度计算参照TF公式。 加权是针对每个关键词对文本特征的体现效果大小不同而设置的机制,权值计算参照IDF公式。 2.2.3向量空间模型VSM及余弦计算 向量空间模型的基本思想是把文档简化为以特征项(关键词)的权重为分量的N维向量表示。

这个模型假设词与词间不相关(这个前提造成这个模型无法进行语义相关的判断,向量空间模型的缺点在于关键词之间的线性无关的假说前提),用向量来表示文本,从而简化了文本中的关键词之间的复杂关系,文档用十分简单的向量表示,使得模型具备了可计算性。 在向量空间模型中,文本泛指各种机器可读的记录。 用D(Document)表示文本,特征项(Term,用t表示)指出现在文档D中且能够代表该文档内容的基本语言单位,主要是由词或者短语构成,文本可以用特征项集表示为D(T1,T2,…,Tn),其中Tk是特征项,要求满足1<=k<=N。 下面是向量空间模型(特指权值向量空间)的解释。 假设一篇文档中有a、b、c、d四个特征项,那么这篇文档就可以表示为 D(a,b,c,d) 对于其它要与之比较的文本,也将遵从这个特征项顺序。对含有n 个特征项的文本而言,通常会给每个特征项赋予一定的权重表示其重要程度,即 D=D(T1,W1;T2,W2;…,Tn,Wn) 简记为 D=D(W1,W2,…,Wn) 我们把它叫做文本D的权值向量表示,其中Wk是Tk的权重,

浅议语义相似度计算

浅议语义相似度计算 摘要语义相似度研究的是两个词语的相似性,被广 泛应用于信息检索、信息提取、文本词义消歧、机器翻译等领域中。本文介绍几种主要的语义相似度计算方法,以供大 一^, 家参考。 关键词语义相似度词义相似度语义距离 、引言 自然语言的词语之间关系比较复杂,我们又时常要把这 种复杂关系进行比较,所以要将其转化为简单的数量关系,再进行比较。语音相似度计算正是这样的方法。 词语的语义相似度计算有3 种方法:基于知识体系的方 法、基于语料库的方法、基于网络的方法。基于知识体系的方法,大多以WordNet 作为基础。WordNet 是语义字典,它根据词条的意义将词语分组,每一个具有相同意义的字条组称为一个synset (同义词集合)。WordNet为每一个synset提 供了简短,概要的定义,并记录不同synset之间的语义关系。 它用概念之间的语义关系形成符合常识和语法的语义关系图。基于信息量的方法主要是通过词语上下文的信息,用统计的方法求解。基于网络的方法,主要是利用搜索引擎的搜索结果进行计算。 二、语义相似度概念

信息论中任何两个词语的相似度取决于它们的共性 Commonality )和个性( Differences )。公式如下: 其中,分子表示描述A,B 共性所需要的信息量;分母表 示完整地描述A,B 所需要的信息量。 刘群、李素建认为语义相似度就是两个词语在不同的上 文中可以互相替换使用而不改变文本的句法语义结构的程度。两个词语,如果在不同的上下文中可以互相替换且不改变文本的句法语义结构的可能性越大,二者的相似度就越高,否则相似度就越低。对于两个词语 W1,W2 如果记其相似度为Sim (W1 , W2),其词语距离为Dis (W1 , Wz),根 据刘群、李素建的公式: 其中a 是一个可变参数,含义是当相似度为0.5 时的词 语距离值。 相似度被定义为一个0到1 之间的实数,当两个词语完 全一样时,相似度为1 ;是完全不同的概念时,它们的相似度 接近于0。 三、语义相似度的计算方法常用计算方法有基于知识体系的计算,基 于大规模语料 库的计算,基于网络的计算。 一)根据分类体系计算词语语义距离的方法 这种方法也称为基于树的语义相似度计算方法,大体分 为两种:一是基于距离的语义相似性测度是基于信息内容

基于知网的语义相似度计算

基于《知网》的语义相似度计算 软件使用手册 1 功能简介 本软件是根据[刘群2002]一文中的原理编写的词汇语义相似度计算程序。 主要实现了以下功能: 1.1基于交互输入的义原查询、义原距离计算、义原相似度计算 1.2基于交互输入的词语义项查询、义项相似度计算、词语相似度计算; 1.3基于文件输入的词语义项查询、词语相似度计算; 1.4相似度计算中的参数调整。 2 安装说明 本软件包一共有四个文件: 《基于<知网>的词汇语义相似度计算》软件使用手册.doc:本使用手册 《基于<知网>的词汇语义相似度计算》论文.pdf:本软件所依据的论文,采用pdf 格式,用Acrobat Reader阅读时需要安装简体中文支持包。 自然语言处理开放资源许可证.doc:本软件包的授权许可证 WordSimilarity.zip:程序文件 软件安装时,将文件WordSimilarity.zip文件解压缩一个目录下即可,解压缩后有以下几个文件: WordSimilarity.exe:可执行程序; Glossary.dat:《知网》数据文件 Semdict.dat:《知网》数据文件 Whole.dat:《知网》数据文件 必须确保《知网》数据文件在程序执行时的当前目录下。 3 界面说明 软件使用简单的对话框界面,如下所示:

4 功能说明 4.1义原操作 4.1.1 义原查询 1.首先在“输入1”框中输入义原名称; 2.点击“察看义原1”按钮; 3.在“义项1”框中将依次显示出该义原及其所有上位义原的编号、中文、英文;类似的方法可以查询“输入2”框中的义原; 4.1.2 义原距离计算 1.首先在“输入1”和“输入2”框中输入两个义原; 2.点击“计算义原距离”按钮; 3.在“输出”框中显示两个义原的距离;

基于《知网》的词汇语义相似度计算

基于《知网》的词汇语义相似度计算1 刘群??李素建? {liuqun,lisujian}@https://www.doczj.com/doc/d14366043.html, ?中国科学院计算技术研究所 ?北京大学计算语言学研究所 摘要: 《知网》是一部比较详尽的语义知识词典。在基于实例的机器翻译中,词语相似度计算是一个重要的环节。不过,由于《知网》中对于一个词的语义采用的是一种多维的知识表示形式,这给词语相似度的计算带来了麻烦。这一点与WordNet和《同义词词林》不同。在WordNet和《同义词词林》中,所有同类的语义项(WordNet的synset或《同义词词林》的词群)构成一个树状结构,要计算语义项之间的距离,只要计算树状结构中相应结点的距离即可。而在《知网》中词语相似度的计算存在以下问题: 1.每一个词的语义描述由多个义原组成,例如“暗箱”一词的语义描述为:part|部件,%tool|用具,body|身,“写信”一词的语义描述为: #TakePicture|拍摄write|写,ContentProduct=letter|信件; 2.词语的语义描述中各个义原并不是平等的,它们之间有着复杂的关系,通过一种专门的知识描述语言来表示。 我们的工作主要包括: 1.研究《知网》中知识描述语言的语法,了解其描述一个词义所用的多个义原之间的关系,区分其在词语相似度计算中所起的作用; 2.提出利用《知网》进行词语相似度计算的算法; 3.通过实验验证该算法的有效性,并与其他算法进行比较。 关键词:《知网》词汇语义相似度计算自然语言处理 1 引言 在基于实例的机器翻译中,词语相似度的计算有着重要的作用。例如要翻译“张三写的小说”这个短语,通过语料库检索得到译例: 1)李四写的小说/the novel written by Li Si 2)去年写的小说/the novel written last year 通过相似度计算我们发现,“张三”和“李四”都是具体的人,语义上非常相似,而“去年”的语义是时间,和“张三”相似度较低,因此我们选用“李四写的小说”这个实例进行类比翻译,就可以得到正确的译文: the novel written by Zhang San 1本项研究受国家重点基础研究计划(973)支持,项目编号是G1998030507-4和G1998030510。

深度学习解决 NLP 问题:语义相似度计算

导语 在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度、feeds场景下Doc和Doc的语义相似度、机器翻译场景下A句子和B句子的语义相似度等等。本文通过介绍DSSM、CNN-DSSM、LSTM-DSSM 等深度学习模型在计算语义相似度上的应用,希望给读者带来帮助。 0. 提纲 1. 背景 2. DSSM 3. CNN-DSSM 4. LSTM-DSSM 5. 后记 6. 引用 1. 背景 以搜索引擎和搜索广告为例,最重要的也最难解决的问题是语义相似度,这里主要体现在两个方面:召回和排序。

在召回时,传统的文本相似性如BM25,无法有效发现语义类query-Doc 结果对,如"从北京到上海的机票"与"携程网"的相似性、"快递软件"与"菜鸟裹裹"的相似性。 在排序时,一些细微的语言变化往往带来巨大的语义变化,如"小宝宝生病怎么办"和"狗宝宝生病怎么办"、"深度学习"和"学习深度"。 DSSM(Deep Structured Semantic Models)为计算语义相似度提供了一种思路。 本文的最后,笔者结合自身业务,对DSSM 的使用场景做了一些总结,不是所有的业务都适合用DSSM。 2. DSSM DSSM [1](Deep Structured Semantic Models)的原理很简单,通过搜索引擎里Query 和Title 的海量的点击曝光日志,用DNN 把Query 和Title 表达为低纬语义向量,并通过cosine 距离来计算两个语义向量的距离,最终训练出语义相似度模型。该模型既可以用来预测两个句子的语义相似度,又可以获得某句子的低纬语义向量表达。 DSSM 从下往上可以分为三层结构:输入层、表示层、匹配层

语义相似度的计算方法研究

语义相似度的计算方法研究 信息与计算科学余牛指导教师:冉延平 摘要语义相似度计算在信息检索、信息抽取、文本分类、词义排歧、基于实例的机器翻译等很多领域中都有广泛的应用.特别是近几十年来随着Internet技术的高速发展,语义相似度计算成为自然语言处理和信息检索研究的重要组成部分.本文介绍了几种典型的语义相似度的计算方法,总结了语义相似度计算的两类策略,其中重点介绍了一种基于树状结构中语义词典Hownet的语义相似度计算方法,最后对两类主要策略进行了简单的比较.关键词语义相似度;语义距离;知网;语料库 The Reseach of Computing Methods about Semantic Similarity YU Niu (Department of Mathematics and Statistics,Tianshui Normal University , 741000) Abstract Semantic similarity is broadly used in many applications such as information retrieval, information extraction, text classification, word sense disambiguation, example-based machine translation and so on.Especially with the rapid development of Internet technology in recent decades, Calculation of semantic similarity has always been an important part of natural language processing and information retrieval research .This paper introduces several main methods of calculating semantic similarity , then two strategies of semantic similarity measurement are summarized, and we focuse on the Hownet based on the stucture of tree and use them to calculate the semantic similarity ,and finally the two strategies are easily compared . Key words Semantic similarity, Semantic distance,Hownet, Corpus

文本预览