1. 概述
深度语义模型(Deep Structured Sematic models, DSSM)是在2013年由微软的研究人员提出,主要解决的是在搜索的过程中,对于传统的依靠关键词匹配的方法的弊端(语义上的相似)提出的潜在语义模型。DSSM算法在实际工作中也被证明是卓有成效的算法,不仅在搜索中得到广泛的应用,同时也被使用在推荐系统的召回中。
2. 算法的基本思想
2.1. DSSM的网络结构
DSSM算法的网络结构如下所示:
从上述的网络结构图中可以看出,DSSM的核心思想是将不同的对象映射到统一的语义空间中,并在该空间中计算对象之间的相似度。 在其具体的计算过程包括两个方面:第一,将query和documents映射到同一个低维的向量空间中;第二,利用余弦计算相似性。
首先将query和documents分别表示成向量和,在参考文献的论文中,作者针对向量的构建过程给出了一些具体的建议,针对具体的任务可以有选择的采用。得到query和documents的对应向量后,通过深层神经网络将其表示为同一个空间中的向量和,即所谓的语义特征(Semantic feature)。具体的计算过程如下所示:
其中,是第层网络的权重,是第层网络的偏置。是第层网络的激活函数。
在得到query和documents的语义特征后,通过cosine计算query和documents之间的相似性:
2.2. DSSM模型的损失函数
假设给定的query为,document为,那么相似的概率为:
其中为平滑系数。在模型训练的过程中,我们希望使得相似的文档的概率较大,即对于正样本,使得其概率最大,通过最大似然,可以得到最终的损失函数:
以上的损失函数是原始论文中提及的损失函数,同样,可以采用其他的损失函数形式,如直接使用相似性或者采用Triplet loss。
2.3. DSSM模型的训练
在训练的过程中,样本的构建也至关重要,对于,选择一个正样本以及4个负样本,除了样本选择之外,需要计算损失函数的梯度,以便计算除网络中的参数和。
参考文献
[1] Learning deep structured semantic models for web search using clickthrough data