@TOC
论文名称:Wide & Deep Learning for Recommender Systems
原文地址:Wide&Deep
⚡本系列历史文章⚡
【推荐系统论文精读系列】(一)--Amazon.com Recommendations
【推荐系统论文精读系列】(二)--Factorization Machines
【推荐系统论文精读系列】(三)--Matrix Factorization Techniques For Recommender Systems
【推荐系统论文精读系列】(四)--Practical Lessons from Predicting Clicks on Ads at Facebook
【推荐系统论文精读系列】(五)--Neural Collaborative Filtering
【推荐系统论文精读系列】(六)--Field-aware Factorization Machines for CTR Prediction
【推荐系统论文精读系列】(七)--AutoRec Autoencoders Meet Collaborative Filtering
【推荐系统论文精读系列】(八)--Deep Crossing:Web-Scale Modeling without Manually Crafted Combinatorial Features
【推荐系统论文精读系列】(九)--Product-based Neural Networks for User Response Prediction
【推荐系统论文精读系列】(十)--Wide&Deep Learning for Recommender Systems
【推荐系统论文精读系列】(十一)--DeepFM A Factorization-Machine based Neural Network for CTR Prediction
【推荐系统论文精读系列】(十二)--Neural Factorization Machines for Sparse Predictive Analytics
一、摘要
具有非线性特征转化能力的广义线性模型被广泛用于大规模的分类和回归问题,对于那些输入数据是极度稀疏的情况下。通过使用交叉积获得的记忆交互特征是有效的而且具有可解释性,然后这种的泛化能力需要更多的特征工程努力。在进行少量的特征工程的情况下,深度神经网络可以泛化更多隐式的特征组合,通过从Sparse特征中学得低维的Embedding向量。可是,深度神经网络有个问题就是由于网络过深,会导致过度泛化数据。
本篇论文,作者提出了一个新型网络结构,Wide & Deep learning,该模型的特点就是能够共同的学习线性模型和深度神经网络,它能够结合记忆化和泛化两个优点。
作者将这个网络结构投入到了实际生产中,平且评估它使用谷歌商店的推荐系统平台。
二、介绍
推荐系统可以看成是一个搜索排序系统,输入是一个带有用户和上下文信息的请求,然后返回的是一个排序的物品列表。给定一个请求,推荐系统的任务就是从数据库中找到相关的物品,然后按照某种业务需求,将这些物品进行排序,例如点击率或者购买量。
推荐系统面临的挑战和搜索排序是非常相似的,都是为了实现记忆化和泛化能力。
记忆化可以被简单的定义为学习特征的共现频率,可以理解为学习某些特征组合对标签的影响,如果某些特征出现的频率非常高,那么一旦在遇到这个特征组合,那么就认为该样例对应的标签极大程度和之前那些组合对应的标签一致。
泛化是基于多样性来讲的,去探索新的特征组合在过去从未见过或者很少出现的。
基于Embedding的模型,例如FMs或者是深度神经网络能够泛化先前为观察到的特征组合通过为每条搜索学习到一个低维稠密的向量。可是,它是非常困难去学习到有效的低维特征当矩阵是极度稀疏。这种情况下很多用户和物品没有交互导致模型学习起来十分困难。
本篇主要论述:
- Wide&Deep learning学习框架结合了线性模型和深度学习模型
- 将新型模型结构投入到Google Play实验测评
- 我们开源了这个网络结构使用TensorFlow
尽管这个想法是简单的,但是在模型训练和线上服务器提供服务阶段我们需要更多努力去满足速度要求。
三、推荐系统综述
一个用户的请求Query包括不同的用户和上下文特征,当一个用户访问app商店时就会产生。这个推荐系统就会返回一系列的app(也被叫做impressions)。这些用户的行为和query和impression将会被写入日志中作为训练数据喂给学习器。
因为在数据库中存在几百万的app,所以它是非常棘手的去为每个app针对每个query进行计算评分在延迟需求时间内(10毫秒内)。因此,第一步通常是要进行检索。检索系统会返回一个小的物品列表,这些物品能够匹配用户,通过使用不同的特征,通常是机器学习模型或者是人工定义的规则。在减少了物品候选池后,排序系统会为所有待返回的物品计算评分。
四、Wide&Deep学习
4.1 Wide部分
wide部分就是简单的线性模型,
4.2 Deep部分
Deep部分是一个前馈神经网络,对于分类特征,这些特征都会被转化成一个低维的稠密Embedding向量,Embedding嵌入的维度通常为10-100维,Embedding向量初始时会随机初始化,然后模型训练通过最小化损失函数。
4.3 联合训练 Wide&Deep Model
wide部分和deep部分被结合到一起通过使用一个权重对于它们输出的对数几率作为最终的预测,通常是使用逻辑回归损失函数联合训练。注意到有个明显的区别在联合学习和集成学习。
对于集成学习,独立的模型会被分别的训练,彼此之间不影响,并且它们只有在推断使其才会被结合,在训练时候不会结合。
相反,联合训练会同时训练所有模型的参数。
联合学习通过反向传播进行更新参数,使用mini-batch stochastic进行优化,我们使用的是带有L1正则化的FTRL算法,而Deep部分使用的是AdaGrad进行优化。
Preference
[1] J. Duchi, E. Hazan, and Y. Singer. Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12:2121–2159, July 2011.
[2] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. Proc. IEEE Conference on Computer Vision and Pattern Recognition, 2016.
[3] H. B. McMahan. Follow-the-regularized-leader and mirror descent: Equivalence theorems and l1 regularization. In Proc. AISTATS, 2011.
[4] T. Mikolov, A. Deoras, D. Povey, L. Burget, and J. H. Cernocky. Strategies for training large scale neural network language models. In IEEE Automatic Speech Recognition & Understanding Workshop, 2011.
[5] S. Rendle. Factorization machines with libFM. ACM Trans. Intell. Syst. Technol., 3(3):57:1–57:22, May 2012.
[6] J. J. Tompson, A. Jain, Y. LeCun, and C. Bregler. Joint training of a convolutional network and a graphical model for human pose estimation. In Z. Ghahramani, M. Welling, C. Cortes, N. D. Lawrence, and K. Q. Weinberger, editors, NIPS, pages 1799–1807. 2014.
[7] H. Wang, N. Wang, and D.-Y. Yeung. Collaborative deep learning for recommender systems. In Proc. KDD, pages 1235–1244, 2015.
[8] B. Yan and G. Chen. AppJoy: Personalized mobile application discovery. In MobiSys, pages 113–126, 2011.