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的准确性。
三、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的方式,另外一种是采用paire-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的,文章的作者提取提供了一种全新的思路与尝试。