导语
0. 提纲
1. 背景
2. DSSM
3. CNN-DSSM
4. LSTM-DSSM
5. 后记
6. 引用
1. 背景
以搜索引擎和搜索广告为例,最重要的也最难解决的问题是语义相似度,这里主要体现在两个方面:召回和排序。
在召回时,传统的文本相似性如 BM25,无法有效发现语义类 query-Doc 结果对,如”从北京到上海的机票”与”携程 ”的相似性、”快递软件”与”菜鸟裹裹”的相似性。
在排序时,一些细微的语言变化往往带来巨大的语义变化,如”小宝宝生病怎么办”和”狗宝宝生病怎么办”、”深度学习”和”学习深度”。
DSSM(Deep Structured Semantic Models)为计算语义相似度提供了一种思路。
2. DSSM
DSSM [1](Deep Structured Semantic Models)的原理很简单,通过搜索引擎里 Query 和 Title 的海量的点击曝光日志,用 DNN 把 Query 和 Title 表达为低纬语义向量,并通过 cosine 距离来计算两个语义向量的距离,最终训练出语义相似度模型。该模型既可以用来预测两个句子的语义相似度,又可以获得某句子的低纬语义向量表达。
DSSM 从下往上可以分为三层结构:输入层、表示层、匹配层
这样做的好处有两个:首先是压缩空间,50 万个词的 one-hot 向量空间可以通过 letter-trigram 压缩为一个 3 万维的向量空间。其次是增强范化能力,三个字母的表达往往能代表英文中的前缀和后缀,而前缀后缀往往具有通用的语义。
这里之所以用 3 个字母的切分粒度,是综合考虑了向量空间和单词冲突:
用 Wi 表示第 i 层的权值矩阵,bi 表示第 i 层的 bias 项。则第一隐层向量 l1(300 维),第 i 个隐层向量 li(300 维),输出向量 y(128 维)可以分别表示为:
最终输出一个 128 维的低纬语义向量。
2.3 匹配层
Query 和 Doc 的语义相似性可以用这两个语义向量(128 维) 的 cosine 距离来表示:
其中 r 为 softmax 的平滑因子,D 为 Query 下的正样本,D-为 Query 下的负样本(采取随机负采样),D 为 Query 下的整个样本空间。
在训练阶段,通过极大似然估计,我们最小化损失函数:
如上图所示,word-trigram其实就是一个包含了上下文信息的滑动窗口。举个例子:把<s
> online auto body … <s
>这句话提取出前三个词<s
> 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 的表示层由一个卷积神经 络组成,如下图所示:
(2)池化层——Max pooling layer
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!