深度语义模型DSSM

1. 概述

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

2. 算法的基本思想

2.1. DSSM的网络结构

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

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

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

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

其中,$W_i$是第$l_i$层网络的权重,$b_i$是第$l_i$层网络的偏置。$f$是第$l_i$层网络的激活函数。

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

$$R\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为$Q$,document为$D$,那么相似的概率$P\left ( D\mid Q \right )$为:

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

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

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

2.3. DSSM模型的训练

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

参考文献