深度语义模型DSSM

1. 概述

深度语义模型(Deep Structured Sematic models, DSSM)是在2013年由微软的研究人员提出,主要解决的是在搜索的过程中,对于传统的依靠关键词匹配的方法的弊端(语义上的相似)提出的潜在语义模型。DSSM算法在实际工作中也被证明是卓有成效的算法,不仅在搜索中得到广泛的应用,同时也被使用在推荐系统的召回中。

2. 算法的基本思想

2.1. DSSM的网络结构

DSSM算法的网络结构如下所示:

在这里插入图片描述

从上述的网络结构图中可以看出,DSSM的核心思想是将不同的对象映射到统一的语义空间中,并在该空间中计算对象之间的相似度。 在其具体的计算过程包括两个方面:第一,将query和documents映射到同一个低维的向量空间中;第二,利用余弦计算相似性。

首先将query和documents分别表示成向量xQx_QxDx_D,在参考文献的论文中,作者针对向量的构建过程给出了一些具体的建议,针对具体的任务可以有选择的采用。得到query和documents的对应向量后,通过深层神经网络将其表示为同一个空间中的向量yQy_QyDy_D,即所谓的语义特征(Semantic feature)。具体的计算过程如下所示:

li=f(Wili1+bi)l_i=f\left ( W_il_{i-1}+b_i \right )

其中,WiW_i是第lil_i层网络的权重,bib_i是第lil_i层网络的偏置。ff是第lil_i层网络的激活函数。

在得到query和documents的语义特征后,通过cosine计算query和documents之间的相似性:

R(Q,D)=cosine(yQ,yD)=yQTyDyQyDR\left ( Q,D \right )=cosine\left ( y_Q,y_D \right )=\frac{y_Q^Ty_D}{\left \| y_Q \right \|\left \| y_D \right \|}

2.2. DSSM模型的损失函数

假设给定的query为QQ,document为DD,那么相似的概率P(DQ)P\left ( D\mid Q \right )为:

P(DQ)=exp(γR(Q,D))DDexp(γR(Q,D))P\left ( D\mid Q \right )=\frac{exp\left ( \gamma R\left ( Q,D \right ) \right )}{\sum _{{D}'\in \mathbf{D}}exp\left ( \gamma R\left ( Q,{D}' \right ) \right )}

其中γ\gamma为平滑系数。在模型训练的过程中,我们希望使得相似的文档的概率较大,即对于正样本(Q,D+)\left ( Q,D^+ \right ),使得其概率最大,通过最大似然,可以得到最终的损失函数:

L(Λ)=log(Q,D+)P(D+Q)L\left ( \Lambda \right )=-log\prod _{\left ( Q,D^+ \right )}P\left ( D^+\mid Q \right )

以上的损失函数是原始论文中提及的损失函数,同样,可以采用其他的损失函数形式,如直接使用相似性或者采用Triplet loss。

2.3. DSSM模型的训练

在训练的过程中,样本的构建也至关重要,对于QQ,选择一个正样本D+D^+以及4个负样本{Dj;j=1,,4}\left \{ D_j^-;j=1,\cdots,4 \right \},除了样本选择之外,需要计算损失函数的梯度,以便计算除网络中的参数WiW_ibib_i

参考文献

[1] Learning deep structured semantic models for web search using clickthrough data