其他分享
首页 > 其他分享> > 阿里巴巴DeepMCP网络详解

阿里巴巴DeepMCP网络详解

作者:互联网

 

阿里巴巴DeepMCP网络详解

被包养的程序猿丶 被包养的程序猿丶 哈尔滨工业大学 信息与通信工程硕士

一、创新点

1、不同于传统的CTR预估模型刻画特征-CTR之间的联系,本文进一步挖掘用户-广告、广告-广告之间的信息从而使得系统对于特征-CTR之间联系的刻画更加准确

2、采用multi-model的方式进行联合训练,不同子网络从不同角度挖掘用户-广告、广告-广告之间的内在联系

二、论文背景

文章在2.1小节具体举了一个例子来说明DeepMCP网络要解决的问题,即通过传统的CTR网络是很难挖掘出用户与用户之间的关联(通过用户-广告之间的信息间接反应)以及广告-广告之间的关联。尤其是当一个新的用户访问的时候以及新的广告投放的时候,我们的模型是很难对这部分用户和广告进行预测的(即冷启动问题),我认为DeepMCP模型通过额外的两个子网络能够从一定程度上捕获用户-广告、广告-广告之间的关联,这对于解决冷启动问题是有帮助的,同时额外的两个子网络也有助于提升prediction网络Embedding层的表征能力。这里给出文章中具体的例子如下

其中u表示用户信息,a表示广告信息,o表示其他信息,从图中可以发现,matching网络主要负责挖掘用户-广告之间的信息,用户1和用户2都点击了广告1和广告2,我们可以认为用户1和用户2之间存在很大的相似,同时用户1点击了广告3,当我们需要预估用户2对于广告3的CTR时,matching网络就可以为我们提供一些有用的信息。对于correlation网络来说也是同理的。所以我认为DeepMCP网络一方面可以从一定程度上解决冷启动的问题,另一方面有效提升了prediction网络的表征能力,从而提升pCTR的准确性。

不是CF咩。。。

三、DeepMCP模型

首先需要说明的是DeepMCP网络中的MCP分别指代三个子网络,即matching subnet(M)、correlation subnet(C)、prediction subnet(P),其中matching subnet负责挖掘用户-广告之间的联系,correlation subnet负责挖掘广告-广告之间的联系,prediction subnet负责挖掘特征-CTR之间的联系。这三个子网络是采用联合训练的方式共同进行训练,同时三个子网络共享Embedding网络,这样matching subnet和correlation subnet网络的更新也会影响到Embedding网络,从而影响prediction subnet的效果。整体的网络结构如下图所示

DeepMCP网络结构

需要指出的是,在训练过程中,各个子网络联合训练,在预测的时候,只需要prediction subnet输出预测的pCTR即可

1、prediction subnet

prediction subnet就是传统的DNN pCTR网络,即各个group的特征经过Embedding网络后得到多个Embedding向量(需要进行pooling操作),然后将这些Embedding向量拼接起来形成向量m,然后将向量m喂给后续的多层全连接网络,最后一层网络的数据就是pCTR,这个是现在最为普遍的pCTR DNN网络。prediction subnet的损失函数如下所示

2、matching subnet

matching subnet负责挖掘用户-广告之间的信息(反应用户与广告是否匹配),该子网络的结构也比较简单,类似于向量化召回里用到的双塔DNN结构。整个网络核心思想就是分别学习得到两个Embedding向量,分别是用户侧Embedding向量和广告侧Embedding向量,然后利用这两个Embedding向量计算得到一个matching score,具体matching score计算公式如下

这里有一些细节问题,首先全连接网络的最后一层的激活函数是tanh而不是relu,主要是因为采用relu的话,最后一层的数据会包括很多零值,这会使得计算得到的matching score更趋近于零。其次,在对matching score进行建模的时候,有两种方式一种是采用point-wise的方式,另外一种是采用pair-wise的方式,文章中采用的是point-wise的方式,这种方式认为用户点击了广告对应的label(matching score)就为1,采用这种方式可以直接复用prediction subnet的训练数据集。 matching subnet的损失函数如下所示

3、correlation subnet

correlation subnet主要负责挖掘广告-广告之间的关联,通常我们认为对于一个用户的广告点击序列来说,在一定的时间窗口内部,广告之间是存在一定的相关性的。这里用到了skip-gram的思路,对于一个广告点击序列来说,最优化的目标是最大化对数似然函数,即

L是序列中广告的数量,C是上下文窗口的大小。对于上式中概率p的建模存在很多种方式,如softmax、hierarchical softmax、降采样等,文章采用的是降采样的方式,所以概率p如下式所示

在此基础上correlation subnet的损失函数被定义为最小化平均对数似然函数的负值,即

4、模型训练过程

由于DeepMCP模型采用的是联合训练的方式,最终在模型训练的时候需要给定一个损失函数,这里定义最终的损失函数为

其中α和β是调节因子,用以调节不同子网络的权重。

5、模型预测过程

模型在预测的时候不需要使用其他子网络,只需要prediction subnet输出最终的pCTR值即可,这就使得在线上部署的时候只需要部署prediction subnet即可

四、实验结果

本文选用Avito广告数据集和阿里的广告数据集来做实验,使用DeepMCP模型与LR、FM、DeepFM等模型进行了效果对比,在这两个数据集上的AUC和Logloss表现如下:

实验结果

从上面实验结果可以发现,只采用matching subnet和prediction subnet就可以取得不错的AUC提升,同时可以证明matching subnet网络相较于correlation subnet网络带来的提升会更大一些,一种直观的解释是matching subnet不只考虑了广告侧的信息同时也考虑了用户侧的一些信息,同时挖掘用户-广告之间联系的matching subnet与最终的任务关联更直接一些。除此之外,文章还对模型中的各种超参数进行了实验,具体的实验结果可以参考论文中的结果。

五、结论

文章采用多任务学习的方式有效挖掘了用户-广告、广告-广告的信息,从而对于Embedding网络的学习提供了帮助,进而提升prediction subnet的表征能力,而且模型在实际线上部署的时候应该也比较简单,只需要单独部署prediction subnet到线上即可,不需要部署全部的子网络,从离线实验结果来看效果还是比较明显的,如果能有线上A/B Test的一些实验效果就更好了,毕竟只有经过线上生产环境检验之后的模型才是真正work的,文章的作者提取提供了一种全新的思路与尝试。

感兴趣的小伙伴可以关注专栏

独立团丶​zhuanlan.zhihu.com图标

感兴趣的小伙伴可以关注微信公众号

 

发布于 01-20 「感谢老板,老板大气」 还没有人赞赏,快来当第一个赞赏的人吧! ctr预估 神经网络 推荐系统

文章被以下专栏收录

独立团丶 独立团丶 享受知识分享的乐趣

推荐阅读

阿里巴巴记忆增强网络——MA-DNN模型详解

被包养的程...发表于独立团丶

Alibaba DIN: 深度兴趣网络预估CTR

张雨石发表于深度学习与...

深度推荐模型之DeepFM

偶而君

(读论文)推荐系统之CTR预估-DSIN模型

Jesse发表于独致-cs...

还没有评论

  写下你的评论...                

标签:subnet,阿里巴巴,用户,网络,prediction,详解,广告,DeepMCP,matching
来源: https://www.cnblogs.com/cx2016/p/13906518.html