深度学习算法原理——Deep Structured Semantic Models(DSSM)

论文地址:Learning deep structured semantic models for web search using clickthrough data

深度语义模型(Deep Structured Sematic models, DSSM)是在2013年由微软的研究人员提出,主要解决的是在搜索的过程中,对于传统的依靠关键词匹配的方法的弊端(语义上的相似)提出的潜在语义模型。

1. DSSM的网络结构

深度学习算法原理——Deep Structured Semantic Models(DSSM)_第1张图片
其具体的计算过程包括两个方面:

  • 将query和documents映射到同一个低维的向量空间中;
  • 利用余弦计算相似性。

首先将query和documents分别表示成向量 x Q x_Q xQ x D x_D xD,通过深度网络将其表示为同一个空间中的向量 y Q y_Q yQ y D y_D yD。计算query和documents之间的相似性:

R ( Q , D ) = c o s i n e ( y Q , y D ) = y Q T y D ∥ y Q ∥ ∥ y D ∥ 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 \|} R(Q,D)=cosine(yQ,yD)=yQyDyQTyD

x x x y y y之间,通过深层的神经网络连接(注意:上图中 l 1 l_1 l1层时word hashing)。对于正常的过程中, l i l_i li层的输出为:

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

其中, W i W_i Wi是第 l i l_i li层网络的权重, b i b_i bi是第 l i l_i li层网络的偏置。 f f f是第 l i l_i li层网络的激活函数。

至于将query和documents表示成向量 x Q x_Q xQ x D x_D xD,有多种不同的方法,在文章中,作者针对英文文本设计了word hashing的方法。在中文场景下我们也可以使用预训练好的词向量。我们重点需要理解如何去训练这个网络。

2. DSSM的训练

在上面的计算过程中,我们将相似性转换成后验的分布,以保证越相似的概率值越大:
P ( D ∣ Q ) = e x p ( γ R ( Q , D ) ) ∑ D ′ ∈ D e x p ( γ 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 )} P(DQ)=DDexp(γR(Q,D))exp(γR(Q,D))

其中, γ \gamma γ为平滑因子。训练的过程中,对于 Q Q Q,选择一个正样本 D + D^+ D+以及4个负样本 { D j − ; j = 1 , ⋯   , 4 } \left \{ D_j^-;j=1,\cdots,4 \right \} {Dj;j=1,,4},损失函数为:

L ( Λ ) = − l o g ∏ ( Q , D + ) P ( D + ∣ Q ) L\left ( \Lambda \right )=-log\prod _{\left ( Q,D^+ \right )}P\left ( D^+\mid Q \right ) L(Λ)=log(Q,D+)P(D+Q)

在文章的APPENDIX部分,作者给出了网络中参数的具体计算过程。

你可能感兴趣的:(Deep,Learning,深度学习Deep,Learning)