论文阅读 (005): Deep Learning CTR Prediction (DSSM)

639 阅读4分钟

阅读论文:2013 Learning Deep Structured Semantic Models for Web Search using Clickthrough Data

背景

文章研究了具有深层结构得到潜在语义模型,将文档和查询投影到一个低维空间(即表示为低维向量),通过低维向量计算查询和文档的相似度;文章使用了CTR任务对模型进行训练;全文使用了基于n-gram的哈希技术用于处理大型词汇表。

问题建模

模型

全文的模型如下图所示(也称之为双塔模型),输入为通过01编码的查询和文档,使用word Hashing进行降维,接着是三层全连接层,输出为128维的向量,通过此向量计算查询和文档和相似度,给出相似的概率。

文中激活函数使用tanh,最终计算形似度如下所示。

R(Q,D)=cosine(yQ,yD)=yQyyDyQyDR(Q, D)=\operatorname{cosine}\left(y_{Q}, y_{D}\right)=\frac{y_{Q}{ }^{y}{y}_{D}}{\left\|y_{Q}\right\|\left\|y_{D}\right\|}

word hashing

使用letter trigams来切分单词(3个字母为一组,#表示开始和结束符),比如将good表示为#good#,再切分为#go, goo, ood, od#,将切分后结果使用01编码,好处是可以压缩编码的空间,三个字母的表达往往能代表英文中的前缀和后缀,而前缀后缀往往具有通用的语义。实验结果如下所示,使用3个字母为一组,较好的考虑了压缩的比例和发生冲突的概率。

实验

文中训练时候使用了query和文档中的title来计算相关度,计算一个查询返回的文档的相关度时进行归一化,如下所示

P(DQ)=exp(γR(Q,D))DDexp(γR(Q,D))P(D \mid Q)=\frac{\exp (\gamma R(Q, D))}{\sum_{D^{\prime} \in D} \exp \left(\gamma R\left(Q, D^{\prime}\right)\right)}

其中γ\gamma用于平滑得分,D中应该包含所有的查询文档,但是为了训练方便,将D分为D+D^{+}DD^{-},其中D+D^{+}为发生点击的文档,DD^{-}为未发生点击的文档中进行抽样,抽取4个{Dj;j=1,..,4}\{D_j^{-}; j=1,..,4\}。通过极大似然估计,最小化损失函数,训练损失函数如下,使用SGD训练。

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

实验结果如下所示,比对方法的介绍和参数设置参考文章,评价指标为NDCG,NDCG用作排序结果的评价指标,评价排序的准确性(越高越好),介绍可见:NDCG及实现。实验中1-8为其他工作中方法,9-12为本文的DSSM模型(具体细节不同)。

具体结论有以下几点

  1. 本文提出的DSSM模型效果最好(L-WH DNN和1-9对比)
  2. 在CTR的数据上使用监督学习获得的模型对于排序结果更好(DNN对比DAE)
  3. word hashing对于大词表的输入排序结果较好,即提升了排序指标也减少了模型参数(L-WH DNN和DNN进行对比)
  4. 使用深度模型表示语义信息较好(非监督方法:DAE对比LSA,监督方法:L-WH DNN对比L-WH linear和L-WH non-linear)

总结

此处抄自:详解深度语义匹配模型DSSM和他的兄弟姐妹(个人没有太深的领悟。。。)

优点:DSSM 用字向量作为输入既可以减少切词的依赖,又可以提高模型的范化能力,因为每个汉字所能表达的语义是可以复用的。另一方面,传统的输入层是用 Embedding 的方式(如 Word2Vec 的词向量)或者主题模型的方式(如 LDA 的主题向量)来直接做词的映射,再把各个词的向量累加或者拼接起来,由于 Word2Vec 和 LDA 都是无监督的训练,这样会给整个模型引入误差,DSSM 采用统一的有监督训练,不需要在中间过程做无监督模型的映射,因此精准度会比较高。。

缺点:上文提到 DSSM 采用词袋模型(BOW),因此丧失了语序信息和上下文信息。另一方面,DSSM 采用弱监督、端到端的模型,预测结果不可控。

参考资料

  1. 详解深度语义匹配模型DSSM和他的兄弟姐妹
  2. NDCG及实现