建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

DemingY

发帖: 1粉丝: 0

发消息 + 关注

发表于2019年08月15日 17:26:10 1778 2
直达本楼层的链接
楼主
显示全部楼层
深度学习推荐模型PIN:诺亚推荐黑科技

       深度学习目前是大数据人工智能领域的研究前沿,它通过构建深层的大规模神经网络模型结合大数据训练从而取得卓越的模式识别和预测效果。在经典数据挖掘领域,例如个性化推荐系统和互联网精准广告等应用问题中,深度学习的解决方案也在被尝试提出。和图像识别、语音识别等深度学习已经广泛应用的领域不同,在推荐系统和计算广告这类问题中,预测所基于的数据大都是离散的类别型数据(Categorical Data)。例如一位正在浏览手机页面的用户,她的当前场景数据是一系列的类别描述:“深圳、星期五、晚上10点、曾经下载过英语四级君和携程旅行、华为P20”;我们希望根据此信息预测该用户是否喜欢一个华为应用市场里的马蜂窝旅游。

 

       华为应用市场是华为终端消费者云最重要的业务和产品之一,同时也是诺亚方舟实验室推荐搜索项目组落地验证先进技术的最重要场景之一。华为应用市场基于上百万应用,服务于上亿全球用户,有着极大的数据规模以支撑大规模机器学习算法,包括基于深度学习的推荐算法。在2018年初,诺亚方舟实验室的研究员自研的深度学习模型DeepFM [5]受到了业界极大的关注,并且在华为应用市场商用上线,在线上AB测试中非常显著地提升了应用的下载转化率(详情见前篇“深度学习推荐模型DeepFM:助理华为应用市场APP推荐”)。与此同时,华为诺亚方舟实验室推荐搜索项目组的研究员与上海交通大学Apex数据和知识管理实验室俞勇教授和张伟楠教授的研究团队,研发出了效果更加优秀的深度学习推荐模型PIN (Product-network In Network) [1],该工作于2018年被信息检索顶级期刊TOIS (ACM Transaction on Information Systems) 接收,已申请专利,并在华为应用市场中商用上线,效果非常优秀。该工作已经公布于Arxiv:https://arxiv.org/pdf/1807.00311.pdf


       基于深度学习的推荐模型可以总结为:表达层、表达交互层、全连接层、单模型输出层、整合计算层 (可选)、最终输出层 (可选),如图1所示。

  • 表达层的作用是将每个域离散的类别数据映射为适合神经网络输入的表达,一般采用分布式表示(DistributedRepresentation),也即是将一个特征映射到一个低维稠密空间中。深度学习框架将此特征作为第一层网络输入,在接下来的表达交互层以及全连接层中完成高阶模式识别,并最终在输出层给出预测。

  • 表达交互层的作用是研发人员基于领域知识设计特征的交互逻辑,引导特征的(初步)交互,使得神经网络较为方便地学习出高效的特征交互,为之后的全连接层做准备。该模块算是整个学习框架中最具有科研价值的模块,它决定了神经网络的表达范围,并且很大程度影响了网络参数能收敛到怎样一个局部最优点。

  • 全连接层的作用是在表达交互层之后自由地学习模式,算是深度学习的黑箱部分。对于全连接层的设计主要考虑的是层数、每层节点规模、激活函数以及Dropout率。这些设计需要结合数据规模以及表达交互层的设计来调试。

  • 输出层的设计较为简单。对于二分类问题一般是一个Sigmoid激活函数;对于多分类问题一般是一个Softmax分布给出每个类的预测概率。在训练单模型的任务中,该输出就是模型的预测值。在训练过程中,设计合理的损失函数来计算输出和目标值之间的损失并将其反向传播回前面的每层进行参数更新是深度学习模型成功学习的关键。

  • 神经网络是天然的整合计算(Ensemble)模型,可以自动寻找到多个模型的输出和真是目标值之间的关系,使得整合输出层的输出更加接近目标值。整合计算层的设计依赖于单模型的数量和种类。整合计算层的输入除了单模型的输出值外,还可以是一些输出数据的特征,这些特征能够帮助整合计算层学习如何选择或者变换各个单模型的输出。



图1 基于深度学习的推荐模型框架

 

       PIN模型最主要的创新点来自于表达交互层。不设计表达交互层会导致神经网络的学习无法控制,很难搞清楚网络是否能学习到有效特征;而过度的设计表达交互层则可能使得网络的建模空间显著减小,无法学习到研发人员考虑之外的有效模式。FNN [3]和Wide & Deep Network [2]并没有设计表达交互层,它们直接将全连接层接到了分布式表达层上面;PNN [4]和DeepFM [5]有基于向量內积和外积的表达交互层,这个设计就是源于研发人员对FM [6]的向量乘法交互的领域知识。以上两种欠拟合的特征交互建模方式无法非常高效地学习特征之间的关系。我们了解到FFM [7]模型在FM的基础上加入了特征域 (field)的信息,用更多的参数去建模特征之间的交互关系。具体来说,在FFM模型中,每一个特征都有(m-1)个隐式特征表达(m为特征域的个数),其中每一个特征表达用于该特征与其他任意一个域的特征进行交互。因此用于特征表达的参数总数来说,FFM模型是FM模型的(m-1)倍。因为其精确的特征交互建模能力,FFM模型受到工业界的广泛关注,但是因为其容易过拟合的缺陷,在工业界的大规模应用还需要做一定的改进。PIN模型将FFM的思想引入模型,但是没有像FFM那样为每个特征做分域的特征表达。在PIN模型中,每个特征依然只有一个特征表达(和FM, PNN, DeepFM一致),但是在做特征交互时,不是简单的向量内积或者外积,而是用子神经网络来建模特征之间的交互关系。这种建模方式,比简单使用向量内积或者外积(例如PNN, DeepFM)要更加复杂有效,而比为每个域分别存储(m-1)个特征向量要简洁(例如FFM)。PIN的网络结构图2所示:


图2 PIN网络结构图


       图2(a)表示一个网络架构图,其中product operator可以有不同的定义:如果定义为向量内积,则为PNN,这里成为IPNN(图2(b)所示);如果定义为矩阵乘法,则为KPNN(图2(c)所示);如果定义为子神经网络,则为PIN(图2(d)所示)。

 

       我们对PIN模型在4个数据集上进行了离线测试,其中包括三个公开数据集Criteo, Avazu和iPinYou和一个华为数据集。在这4个数据集上的测试,都充分显示出了PIN模型的优越性。


图3 离线测试结果(Criteo, Avazu, iPinYou, Huawei)

 

       更进一步地,我们将PIN模型应用在华为应用市场的游戏推荐中,经过多天的观测,相比于基础模型,PIN模型将下载率提升30%以上;相比于DeepFM模型,PIN模型也有10%左右的提升。

 

       为了让学术界的学者和工业界的同行们更好地了解我们的PIN模型,该模型投稿TOIS的版本代码公开在上海交通大学Apex实验室学生曲彦儒的个人Github上,具体网址是:

https://github.com/Atomu2014/product-nets-distributed


 华为云用户可通过使用推荐系统服务中的排序策略,免费体验PIN算法。


截图4.JPG


创建算法训练链接如下:

https://console.huaweicloud.com/res/?agencyId=7e2975e1cc6041339c9bc7700b54cd2b&region=cn-north-1&locale=zh-cn#/main/createSort


详情请参考华为云推荐系统开发指南,链接如下:

https://support.huaweicloud.com/usermanual-res/res_01_0022.html

  


举报
分享

分享文章到朋友圈

分享文章到微博

Joey啊

发帖: 84粉丝: 16

发消息 + 关注

发表于2019年08月29日 17:57:41
直达本楼层的链接
沙发
显示全部楼层

点赞 评论 引用 举报

Joey啊

发帖: 84粉丝: 16

发消息 + 关注

发表于2019年08月29日 17:57:00
直达本楼层的链接
板凳
显示全部楼层

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册