摘要

通过将稀疏数据的非线性转化特征应用在广义线性模型中被广泛应用于大规模的回归和分类问题。通过广泛的使用交叉特征转化,使得特征交互的记忆性是有效的,并且具有可解释性,而然不得不做许多的特征工作。相对来说,通过从稀疏数据中学习低纬稠密词向量(embedding)特征,并应用到深度学习中,只需要少量的特征工程就能对潜在的特征组合具有更好的范化性。 但是当用户项目交互是稀疏和高纬数据的时候,利用了词向量(embeddings)的深度学习则表现得过于笼统(over-generalize),推荐的都是些相关性很低的物品(items)。在这篇文章中,我们提出了一个宽且深(wide and deep) 联合学习模型,去结合推荐系统的记忆(memorization)和泛化(generalization)。我们评估在Google Play上评估了该方法,在线实验结果显示,相比于单个的wide或者deep模型,WD模型显著的增加了app获取率。我们在tensorflow上开源了该源码。

关键词

宽且深学习,推荐系统

1、介绍

推荐系统可以被看做是一个搜索排序系统,其中输入的查询(query)是一系列的用户和文本信息,输出是物品(items)的排序列表。给定一个查询(query),推荐的任务就是到数据库中去找出相关的物品(items),然后对这些物品(items)根据相关对象,如点击或者购买行为,进行排序。

和传统的搜索排序问题一样,在推荐系统中,一个挑战就是区域同时达到记忆(memorization)和泛化(generalization)记忆(memorization) 可以被大概定义为学习物品(items)或者特征(features)之间的相关频率,在历史数据中探索相关性的可行性。泛化(generalization) 的话则是基于相关性的传递,去探索一些在过去没有出现过的特征组合。基于记忆(memorization)的推荐相对来说具有局部性,是在哪些用户和物品(items)已经有直接相关联的活动上。相较于记忆(memorization),泛化(generalization)尝试去提高推荐物品(items)的多元化。在这篇paper中,我们主要关注Google Play 商店的app推荐问题,但是该方法对推荐系统具有通用性。

在工业中,对于大规模的在线推荐和排序系统,想逻辑回归这样的广义线性模型应用是相当广泛的,简单,伸缩性好,可解释性强。可以喂给它一些one-hot编码的稀疏特征,比如二值特征‘user_installed_app=netfix’表示用户安装了Netflix。记忆(memorization) 则可以通过对稀疏特征做交叉积转换获得,就是求交叉特征,比如AND操作 (user_installed_app= netflix, impression_app=pandora )这两个特征,当用户安装了Netflix并且之后展示在Pandora上,那么得到特征的值为1,其余为0.这个交叉特征就展示了特征对之间的相关性和目标lable之间的关联。泛化(generalization) 可以通过增加一些粗粒度的特征实现,如AND(user_installed_category=video, impression_category=music ),但是这写都是需要手工做特征工程实现。交叉积转换的一个限制就是他们不能生成从未在训练数据中出现过的query-item特征对。

像FM或者DNN,这种基于embedding的模型,是对预先没出现的query-item特征对有一定范化性,通过为每个query和item特征学习一个低纬稠密的embedding向量,而且不需要太多的特征工程。但是如果潜在的query-item矩阵是稀疏,高秩的话,为query和items学习出一个有效的低纬表示往往很困难,比如基于特殊爱好的users,或者一些很少出现的小众items。在这种情况下,大多数的query-item没有交互,但是稠密的embedding还是会对全部的query-item对有非零的输出预测,因此能做出一些过范化和做出一些不太相关的推荐。另一方面,利用交叉积特征的线性模型能用很少的参数记住那些‘exception_rules’。

在这篇paper里,我们提出一个wide&Deep学习框架,以此来同时在一个模型中获得Memorization和generalization,并联合训练之。
本文的主要贡献:
1.联合训练使用了embedding的深度网络和使用了交叉特征的线性模型。
2.WD系统在Google Play上投入使用。
3.在Tensrolfow开源代码。
尽管idea简单,但是wd显著的提高了app获取率,且速度也还可以。

2、推荐系统综述

图2展示了app推荐系统的概括图。
query:当用户访问app store的时候生成的许多用户和文本特征。 推荐系统返回一个app列表(也被叫做展示(impressions)),然后用户能在这些展示的app上进行确切的操作,比如点击或者购买。这些用户活动,以及queries和impressions都被记录下来作为训练数据。 因为数据库中有过百万的apps,所以对全部的app计算score不合理。因此,收到一个query的第一步是retrieval(检索)。检索系统返回一个items的短列表,这个列表是通过机器学习和人工定义的大量标记找出来的,和query最匹配的一个app列表。然后减少了候选池后,排序系统通过对这些items按score再对其进行排序。而这个scores通常就是给定的特征x下,用户行为y的概率值 P(y|x)。特征x包括一些用户特征(国家,语言。。。),文本特征(设备。使用时长。。。)和展示特征(app历史统计数据。。。)。在本论文中,我们主要关注的是将WD模型用户排序系统。

3、宽且深学习模型

3.1 宽度部分

宽度部分是一种广义线性模型,形式y = wT x + b,如图1(左)所示。y是预测值,x = [x1,x2,…,Xd]是一个具有d个特征的向量,w =[w1,w2,…,Wd]为模型参数,b为偏差。特征集包括原始输入特征和转换特征特性。最重要的转变之一是叉积变换,定义为:

其中,cki是一个布尔变量,如果第i个特征是k次变换φk的一部分,则为1,否则为0。对于二元特性,一个叉积转换(例如,“AND(gender=female, language=en)”)当且仅当组成特征。(“gender=female"和"language=en”)均为1,否则为0。这捕获了相互作用,在二元特征之间,并添加非线性广义线性模型。

3.2 深度部分

深度组件是前馈神经网络,如如图1(右)所示。对于分类特性,原始输入是特性字符串(例如,“language=en”)。每一个这些稀疏的,高维的分类特征是首先转换成低维稠密实值向量,通常被称为内嵌向量。嵌入的尺寸通常是在O (10)–O(100)。随机初始化嵌入向量,然后训练其值使最终值最小化模型训练时损失函数。这些低维然后将密集的嵌入向量输入隐藏层一个神经网络的前向传递。具体来说,每个隐藏层计算:

其中l是层数,f是激活函数,常整流线性单元(ReLUs)。a(l) b(l)和W (l)是第l层的激活、偏差和模型权重。

3.3 广深联合训练模式

通过将Wide模块和Deep模块的对数加权输出作为预测值,然后将其喂(fed)给一个常规的逻辑损失函数中,用于联合训练。需要注意的是,联合训练和ensemble是有区别的。在集成方法中,模型都是独立训练的,模型之间没有关系,他们的预测输出只在最后才合并。但是,联合训练的话,两个模型是一起训练所有参数。对于模型大小来说,集成方法,因为模型之间独立,所以单个模型的大小需要更大,即需要更多的特征和特征工程。以此起来获得合理的精度。但是联合训练,两个模块只要互相补充对方不足即可。WD模型的联合训练通过反向传播将输出值的误差梯度通过最小批随机梯度同时传送给Wide和Deep模块。在实验中,我们使用带L1正则​ 的FTRL算法作为wide模块的优化器,使用AdaGrad更新deep模块。结合的模型在图1(中)。对于逻辑回归问题,我们模型的预测是:

其中Y为二分类标签,σ(·)为sigmoid函数,φ(x)为原始特征x的叉积变换,b为偏项。W wide是所有模型权重的向量,W deep是应用在最终激活函数a(lf)的权重。

4、系统实现

App应用推荐系统管道的实现分为三个阶段:数据生成、模型训练和模型服务,如图3所示

4.1、数据生成

在这个阶段,用户和app印象数据在一个时期内的时间用来生成训练数据。每一个例子这符合一个印象。标签是应用获取:如果安装了令人印象深刻的应用程序,则为1,否则为0。
词汇表是将分类特性字符串映射到整数id的表,也在这个阶段生成。系统计算所有出现次数超过最小次数的字符串特性的ID空间。连续实值特征被归一化到[0,1]通过将特征值x映射到其累积分布函数
P(X≤X),分为nq个分位数。归一化值

表示第i位分位数的值。分位数的界限在数据生成过程中计算。

4.2、模型训练

实验中使用的模型结构如图所示图4。在训练过程中,我们的输入层接受训练数据和词汇表,并生成稀疏和稠密的特征连同一个标签。宽部分包括用户安装应用的跨产品转型应用程序和印象。对于模型的深层部分,A 32 -对每个类别学习维度嵌入向量特性。我们把所有的嵌入连接在一起密集的特征,产生了一个大约1200维的密集向量。连接的向量是输入3个ReLU层,最后是物流输出单元。
广深模型的训练对象超过5000亿的例子。每次有一组新的训练数据到达,该模型需要重新培训。然而,再培训的每次刮擦在计算上都是昂贵的和延迟的从数据到达到为更新的模型提供服务的时间。为了应对这一挑战,我们实施了温暖起步系统,它用嵌入初始化一个新模型线性模型的权重来自于前一个模型。在将模型加载到模型服务器之前,先进行干燥运行模型以确保它不会引起服务实时流量的问题。我们通过经验验证对先前的模型进行模型质量的完整性检查。

4.3、模型服务

模型训练和验证之后,我们将其加载到服务器模型。对于每个请求,服务器接收一个集合从应用程序检索系统和用户的应用程序候选人为每个应用程序评分。然后,应用程序排名最高分到最低分,我们把应用展示给用户按此顺序。分数是通过跑步来计算的一个前向推理传递了Wide & Deep模型。为了满足每一个10毫秒的要求,我们使用多线程并行优化性能通过并行运行更小的批次,而不是对所有批次进行评分单个批处理推理步骤中的候选应用程序。

5、实验结果

评估广泛和深度学习的有效性。这是一个真实的推荐系统,我们进行了现场实验,并从应用获取和服务表现两个方面对系统进行了评估。

5.1 应用所得

我们在A/B测试框架下进行了为期3周的在线实时实验。对于对照组,1%的用户被随机挑选出来,并被呈现由前一版本排名生成的推荐。该模型是一个高度优化的宽唯逻辑回归模型,具有丰富的跨产品特征转换。对于实验组,1%的用户被呈现,由Wide & Deep模型产生的建议,用同一组特征训练。如表1所示:

Wide & Deep模式提高了应用获取率,应用商店的主登陆页面同比增长3.9%对照组(有统计学意义)。结果是这也与另外1%的只使用深度的组相比部分模型具有与神经网络相同的特征结构,宽&深模式有+1%的收益,只有深度模型(统计上显著)。除了在线实验之外,我们还展示了Area Under夹具的接收算子特征曲线(AUC)设置离线。而Wide & Deep的线下市场份额略高AUC,对在线流量的影响更显著。一个可能的原因是印象和标签在离线数据集是固定的,而在线系统可以生成数据通过混合泛化和记忆,并从新的用户响应中学习新的探索性建议。

5.2 服务性能

服务高吞吐量和低延迟是挑战与高水平的流量面临我们的商业移动应用商店。在高峰流量,我们的推荐服务器,每秒获得超过1000万个应用程序。与单线程,对单个批中的所有候选人进行评分需要31毫秒。我们实现了多线程,并将每个批处理分成更小的批处理,这大大减少了客户端延迟到14ms(包括服务开销)如表2所示。

6、相关工作

将广义线性模型与叉积特征变换和深度神经网络相结合的思想与密集嵌入的灵感来自于以前的作品,如将一般化添加到线性的因式机器[5]模型通过因式分解两个变量之间的相互作用,作为两个低维嵌入之间的点积向量。本文对模型容量进行了扩展学习嵌入之间高度非线性的交互作用,用神经网络代替点乘。

在语言模型中,采用n gram的循环神经网络和最大熵模型联合训练,特征被提出以显著减少RNN,通过直接学习权值来提高复杂度(例如,隐藏层的大小),在输入和输出之间的[4]。在计算机视觉中,深度残差学习[2]被用来降低训练更深入的模型和提高准确性的捷径,跳过一个或多个层的连接。联合训练的带有图形模型的神经网络也得到了应用,对[6]图像进行人体姿态估计。在这项工作中,我们探讨了前馈神经网络的联合训练而线性模型,具有直接的稀疏联系功能及输出单元,供通用推荐以及基于稀疏输入数据的排序问题。

在推荐系统文献中,协作深入通过将深度学习与内容信息和协同过滤(CF)评级矩阵[7]。也有之前的工作手机应用推荐系统,如AppJoy在用户的应用使用记录[8]上使用CF。不同于基于cf或基于内容的方法,我们共同培训宽深模型的用户和印象应用推荐系统的数据。

7、 结论

记忆和概括都很重要推荐系统。宽线性模型可以有效地使用跨积特征变换,来记忆稀疏特征交互,而深度神经网络可以通过低维嵌入,将以前未见的特征交互一般化。我们介绍了广与深学习框架结合两种类型的优势的模型。我们对框架进行了产品化和评估谷歌Play,是一个大规模的推荐系统商业应用程序商店。在线实验结果显示广深模型带来了显著的改进,关于应用收购的广泛性和深度性模式。

8、参考文献

[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.

【翻译】Wide Deep Learning for Recommender Systems--推荐系统的广泛深度学习相关推荐

  1. Google推荐系统Wide Deep Learning for Recommender Systems论文翻译解读

    Wide & Deep Learning for Recommender Systems 推荐系统中的Wide & Deep Learning 摘要 Generalized linea ...

  2. 论文笔记 【Wide Deep Learning for Recommender Systems】

    标题 * 表示未完成 论文原文传送门 文章提出了 m e m o r i z a t i o n a n d g e n e r a l i z a t i o n memorization\ and ...

  3. Wide Deep Learning for Recommender Systems【论文记录】

    特点在于联合学习,将线性模型和神经网络联合在一起共同学习 线性模型作用于所给的特征,直接记忆专家给的有效特征 神经网络作用于所有特征,挖掘新特征,进行泛化 也就是结合 人为发现的规则和机器探索的联系 ...

  4. 5.Wide Deep Learning for Recommender Systems论文详细解读和代码实现

    一.总述 Wide & Deep作为一篇推荐领域的经典论文,不仅具有很高的研读价值,而且在推荐和广告领域得到了极大的推广和应用.该论文的思想归结起来就是两个词:Wide & Deep. ...

  5. 【RS-Attack】Data Poisoning Attacks to Deep Learning Based Recommender Systems NDSS‘21

    Data Poisoning Attacks to Deep Learning Based Recommender Systems NDSS'21 首个在基于深度学习的推荐系统中进行投毒攻击的研究.文 ...

  6. #论文 《Wide Deep Learning for Recommender System》翻译

    只是为了深化个人理解,翻译了一下梗概.不追求信达雅,只翻译大意. 概要: 使用非线性特征的广义线性模型(GLM)广泛应用在大规模,输入变量稀疏的回归和分类问题中.其中,通过关于交叉特征的wide模型, ...

  7. Data Poisoning Attacks to Deep Learning Based Recommender Systems论文解读

    1 摘要 在这项工作中,作者对基于深度学习的推荐系统的数据中毒攻击进行了首次系统研究.攻击者的目标是操纵推荐系统,以便向许多用户推荐攻击者选择的目标项目.为了实现这一目标,作者将精心设计的评分注入到推 ...

  8. 【读点论文】Deep Learning Face Representation by Joint Identification-Verification,深度学习应用在优化问题上,deepid2

    Deep Learning Face Representation by Joint Identification-Verification 人脸识别的关键挑战是开发有效的特征表示,以减少个体内的差异 ...

  9. Deep learning with python notebooks 笔记 第一章 深度学习基础

    第一章 深度学习基础 好的图表比文字传达的信息量多 图1-1帮助理清了人工智能.机器学习和深度学习之间的关系. 图1-2 清晰的阐述了经典程序设计范式和机器学习一种新的编程范式的不同.两种范式引出了两 ...

最新文章

  1. CentOS 7 相关命令
  2. python列表修改数据_使用列表理解修改数据框架列
  3. CS0136 无法在此范围中声明名为“channel”的局部变量或参数,因为该名称在封闭局
  4. java css_JavaWeb中基本的CSS的使用
  5. 【C++】字符串中运算符的重载问题
  6. 容器编排技术 -- Kubernetes kubectl create clusterrolebinding 命令详解
  7. 国产木乃伊走进CTO编辑部
  8. 【API进阶之路】破圈,用一个API代替10人内容团队
  9. Linux Man手册的使用示例
  10. C语言实训作业PPT,C语言实训作业.docx
  11. 一个年轻人为什么毫无欲望?
  12. H265分辨率解码概述
  13. npm安装opencv4nodejs(Windows)
  14. 图像放大的三种处理方法:最近邻插值,双线性插值 ,双三次插值算法
  15. nginx 499状态码
  16. 边境的悍匪—机器学习实战:第七章 集成学习和随机森林
  17. 构建股票交易平台专业术语
  18. js实现获取前12个月份的数组
  19. 数据库学习:数据模型
  20. 高一下学期计算机考试知识点,高一第一学期计算机期末考试-基础模块(含答案)...

热门文章

  1. RabbitMQ介绍与延时队列
  2. 好不容易找到工作,还给期权,要去吗?
  3. html手机怎么刷机,一键刷机,小编教你手机怎么一键刷机
  4. 【论文笔记】多任务学习(Multi-Task Learning)
  5. GOP、IDR、CAR、BLA、RASL、RADL
  6. SVN客户端 创建分支/合并分支/切换分支
  7. PyCharm控制台显示unicode乱码(python程序)
  8. iOS 九年,技术迭代迅捷下如何保持核心竞争力?
  9. register_chrdev_region、alloc_chrdev_region、register_chrdev区别
  10. Docker实现Canal MySQL增量日志订阅消费环境搭建