1、DSSM背景
DSSM,全称Deep Structured Semantic Model,就是我们通常所说的双塔模型,是微软公司提出的一种基于深度神经网络的语义模型,其核心思想是将query和doc映射到到共同维度的语义空间中,通过最大化query和doc语义向量之间的余弦相似度,从而训练得到隐含语义模型,达到检索的目的。
潜在语义模型的意图是在语义级映射一个query到它的相关documents中,然而这种基于关键词的匹配经常失败。为此,一系列的新的基于深度结构的潜在语义模型被提出,这类模型能够映射query和documents到共同的低维空间中,而且给定query对应的document的相关性可以通过距离的方式计算出来。提出的DSSM模型可以通过”使用点击数据最大化给定query点击过的documents的条件概率“进行训练。为了使模型适用于更大规模的网络检索,DSSM使用了一种词哈希的方法,该方法能够有效地缩减语义模型的规模。DSSM模型通过一个真实数据集的网络文档排序实验进行了评估,结果表明DSSM模型明显优于当前阶段的其他潜在语义模型。
虽然DSSM的提出是为了解决搜索问题,但是在推荐系统领域,DSSM也表现出了强大的竞争力,其效果不错并且对工业界十分友好,所以被各大厂广泛应用于推荐系统中。通过构建user和item两个独立的子网络,将训练好的两个“塔”中的user embedding 和item embedding各自缓存到内存数据库中。线上预测的时候只需要在内存中计算相似度运算即可。DSSM双塔模型是推荐领域中非常值得掌握的一个重要模型。
论文的introduction部分首先介绍其他模型的一些不足:PLSA模型和LDA模型通过一个松散耦合的目标函数以一种无监督的方式进行训练,很难达到符合预期的表现。其次,给出了潜在语义模型的两条研究线:基于点击数据、基于深度自编码。基于点击数据的BLTM模型和DPM模型,前者在文档排序上并不能达到最佳表现,后者在训练过程中涉及一个大规模矩阵乘法问题,因此训练时间会很大。基于深度学习的模型采样的是无监督训练的方法,其表现不能过明显优于基于关键词匹配的baseline召回方法,同时这些模型也面临着同样的矩阵乘法问题。
综合上述两条研究线,解决文档排序的DSSM模型问世了。
首先,通过一个非线性投影将query和documents映射到一个共同的语义空间。其次,对于给定query和每个documents的相关性,通过语义空间下向量间的一个余弦相似度计算出。神经网络模型使用点击数据进行训练,因此给定query的点击documents的条件概率能够最大化。不同于之前的一些无监督方式学习的潜在语义模型,DSSM直接针对网络文档排序进行优化,因此得到了不错的表现。而且在处理大规模词汇表时,DSSM采用了一种词哈希的方法,在没有任何损失的情况下,将高维的queries和documents向量映射到低维letter-n-gram向量。在语义模型中增加了这一层,词哈希方法能够支持大规模词汇表,这在网络检索中尤为重要。
2、DSSM Related Work
论文的这部分主要介绍了“Latent Semantic Models and the Use of Clickthrough Data”和"Deep Learning"这两类模型,没啥干货,pass了。
3、DSSM算法细节
3.1 DNN for Computing Semantic Features
首先给出DSSM结构图:
DSSM网络结构解释:
- Term Vector:表示文本的embedding向量。
- Word Hashing:为解决term vector太大问题,对bag-of-word向量降维。
- Multi-layer nonlinear projection:表示深度学习网络的隐层。