#Paper Reading# Wide & Deep Learning for Recommender Systems

论文题目: Wide & Deep Learning for Recommender Systems
论文地址: https://dl.acm.org/citation.cfm?id=2988454
论文发表于: DLRS 2016(RecSys 2016的Workshop,CORE B类会议)

论文大体内容:
本文主要提出了WDL(Wide & Deep Learning)模型,将wide侧的线性模型,和deep侧的深度模型进行融合训练(joint trainging),以达到更好的效果。通过实验发现,在Google Play的推荐上,能明显提升用户对app的购买率;

1. 这里使用的是融合训练(joint trainging)方式,ensemble与joint trianing的不同在于:
①ensemble,两个model是单独训练,内部间需要较多feature和变换,才能取得好的效果,只在最后一步将两个model的结果merge起来,主要体现在inference中;
②joint trianing,两个model可以同享feature,在train过程中相互作用;

2. WDL的模型结构如下,主要包括3个Relu的隐层,DNN中embedding vector选择32维,训练样本量达到5000亿;
#Paper Reading# Wide & Deep Learning for Recommender Systems

3. 实验结果
AUC提升千分之二,线上效果提升3.9%
#Paper Reading# Wide & Deep Learning for Recommender Systems
对每次打分请求进行拆分,比如ranking的item共200个,拆分成4个请求,每个请求50个,rt从31ms下降到14ms;
#Paper Reading# Wide & Deep Learning for Recommender Systems

4. 本文一直说2个keyword:记忆Memorization和扩展Generalization。映射到模型里面,Wide侧负责记忆,Deep侧负责扩展(泛化)。
Wide侧记住的是历史数据中那些常见、高频的模式,是推荐系统中的“红海”。实际上,Wide侧没有发现新的模式,只是学习到这些模式之间的权重,做一些模式的筛选。正因为Wide侧不能发现新模式,因此我们需要根据人工经验、业务背景,将我们认为有价值的、显而易见的特征及特征组合,喂入Wide侧,如对电商网站,<中国人,春节,饺子>、<美国人、感恩节、火鸡>、<夏天、冰欺凌>,都是历史常见模式,匹配上任何一条,都有推荐价值,至于价值多少?在推荐列表中排名如何?就是Wide侧学习到的权重决定的了。[1]所以Wide侧需要人工特征工程。
Deep侧的扩展/泛化能力,就是应对低频、长尾的模式,是推荐系统中的“蓝海”。通过embedding+深层交互,能够学到国籍、节日、食品各种tag的最优的向量表示,推荐引擎给<中国人,感恩节,火鸡>这种新组合,可能会打一个不低的分数(比<美国人、感恩节、火鸡>打分低,而比<中国人、感恩节、冰激凌>打分高),从而有机会推荐给中国用户。简单来说,Deep侧是通过embedding将tag向量化,变tag的精确匹配,为tag向量的模糊查找,使自己具备了良好的“扩展”能力。[1]
总的来说,Wide负责记忆,Deep负责长尾:其中Wide部分输入的是LR、GBDT阶段常用的一些细粒度统计特征。通过较长周期统计的高频行为特征,能够提供很好的记忆能力。Deep部分通过深层的神经网络学习Low-Order、高维度稀疏的Categorical型特征,拟合样本中的长尾部分,发现新的特征组合,提高模型的泛化能力。


参考资料: 
[1] https://zhuanlan.zhihu.com/p/61827629

 

以上均为个人见解,因本人水平有限,如发现有所错漏,敬请指出,谢谢!