今天讲下目前在推荐领域非常火的一种特征组合的方式Wide&Deep,这个思路其实是源自GOOGLE的一篇PAPER《Wide&Deep Learning for RecommenderSystems》,短短的四页但是讲得特别好,非常推荐大家阅读。
Ok,我们开始今天关于wide&deep这个方法的介绍,大家一看这个词的组合,肯定觉得很困惑,什么东西是“越宽越深”呢?
先来说wide,表示的是generalized的推荐系统,传统的推荐系统都是通过线性算法基于离散特征来做推荐的。Wide推荐通常是这样的:系统通过获得用户的购物日志数据,包括用户点击哪些商品,购买过哪些商品,然后通过one-hot编码的方式构成离散特征或者通过对业务的理解衍生出一些特征,具体的方式在特征工程第三篇文章中有介绍。那这种wide推荐方式有非常多的好处,比如对于大规模的稀疏数据有很好的效果,而且模型的解释性很强。什么叫模型的解释性呢?以逻辑回归为例,每个特征都对应模型中的一个权重值,每个特征的权重值的大小跟这个特征对结果的影响是有关的。那么wide方式同样有很多缺点,比如我们一直强调的,特征衍生需要很多人为操作,需要专家经验,另外这种推荐只对用户操作过的商品有效。
接着讲下deep,这里的deep表示的是通过深度学习学习出来的一些向量,这些向量是隐性特征,往往是没有明确可解释性的。这些向量也可以作为特征的一部分参与到训练中。通过deep方式产生的特征会有以下好处,其一可以拟补人为提取特征造成的人力思考维度的限制,试想下一个人可以轻易的思考出二阶乘法的结果,如果是五阶呢?其二这部分特征是深度学习框架自动生成的,无需人力干预。
接下来就是wide&deep的融合了,这个思想的精髓就是把wide特征和deep特征和到一起组成训练数据。这里有一点需要强调,在预测的过程中两个模型融合其实是有很多方式的,一种方法是两个模型分别对全量数据进行预测,然后根据权重组合最终的预测结果。另一种方式是wide和deep的特征合一,构成一个模型进行预测。Wide&deep选用的是第二种方式:
通过上图可以看到,deep特征和wide特征合起来构成了1200维的模型。
那么运用wide&deep思路生成的模型究竟是否能产生推荐系统效果的提升呢,看下这个图:
此案例是论文中提到的基于GOOGLE PLAY真实业务场景的实验数据,在相同数量的测试样本下,只用wide或者只用deep的模型预测AUC效果都弱于使用wide&deep模型的效果。测试的目标是,推荐一个app给用户看用户是否会安装。
好啦,介绍到这里,wide&deep的思路的具体工程实现其实已经内置到了tensorflow里面,改天有空再给大家做个案例,今天的理论介绍就到这里,再次推荐大家学习这篇paper~
参考:《Wide & Deep Learning for Recommender Systems》
https://arxiv.org/abs/1606.07792
End
为了方便大家学习与交流,凡人云近日已开通机器学习社群!
分享公众号名片到40人以上的大群并截图给小助手,小助手就会拉你入群
在这里你可以得到:
1.各种学术讨论
2.最新的资料分享
3.不定期的征文以及联谊活动!
领取专属 10元无门槛券
私享最新 技术干货