今年8月下旬,在澳大利亚墨尔本召开的IJCAI2017会议上,来自华为伏羲推荐团队的专家发表了他们在深度学习推荐算法方面的最新成果。伏羲推荐引擎是华为应用市场联合华为诺亚方舟实验室开发的一款推荐系统。针对华为应用市场的业务特点和数据特征,伏羲推荐算法团队提出的端到端的深度学习推荐模型DeepFM,助力华为应用市场更加精准、个性化的推荐体验。

华为诺亚方舟实验室算法专家在IJCAI2017演讲

特征工程(Feature Engineering)是影响推荐系统的重要因素。相比于其他机器学习系统,推荐系统更依赖于特征工程。传统的大规模线性模型(如逻辑回归),通常依赖于人工方式设计特征。同时由于线性模型无法对特征间的非线性关系进行自动建模,通常依赖于特征组合(Feature combination)来实现二阶或高阶特征的构造。例如,在应用市场场景下:

一些流行的应用比较容易被用户下载,说明应用的标识会影响用户下载 ( 一阶特征 )。

吃饭时间一些外卖类的应用比较容易被用户下载,说明应用的类型和时间综合起来会影响用户下载 ( 二阶特征 )

年轻男性喜欢下载射击类和角色扮演类的游戏,说明应用类型、用户年龄和用户性别综合起来会影响用户下载 ( 三阶特征 )

人工方式的特征工程,通常有两个问题:一个是特征爆炸。以通常使用的Poly-2模型为例,该模型采用直接对2阶特征组合建模来学习它们的权重,这种方式构造的特征数量跟特征个数乘积相关,例如:加入某类特征有1万个可能的取值(如APP),另一类特征也有1万个可能的取值(如用户),那么理论上这两个特征组合就会产生1亿个可能的特征项,引起特征爆炸的问题;如果要考虑更高阶的特征,如3阶特征,则会引入更高的特征维度,比如第三个特征也有1万个(如用户最近一次下载记录),则三个特征的组合可能产生10000亿个可能的特征项,这样高阶特征基本上无法有效学习。另一个问题是大量重要的特征组合都隐藏在数据中,无法被专家识别和设计 (关于这个的一个有名的例子是啤酒和尿片的故事)。依赖人工方式进行特征设计,存在大量有效的特征组合无法被专家识别的问题。实现特征的自动组合的挖掘,就成为推荐系统技术的一个热点研究方向,深度学习作为一种先进的非线性模型技术在特征组合挖掘方面具有很大的优势。

针对上述两个问题,广度模型和深度模型提供了不同的解决思路。其中广度模型包括FM/FFM等大规模低秩(Low-Rank)模型,FM/FFM通过对特征的低秩展开,为每个特征构建隐式向量,并通过隐式向量的点乘结果来建模两个特征的组合关系实现对二阶特征组合的自动学习。作为另外一种模型,Poly-2模型则直接对2阶特征组合建模来学习它们的权重。FM/FFM相比于Poly-2模型,优势为以下两点。第一,FM/FFM模型所需要的参数个数远少于Poly-2模型:FM/FFM模型为每个特征构建一个隐式向量,所需要的参数个数为O(km),其中k为隐式向量维度,m为特征个数;Poly-2模型为每个2阶特征组合设定一个参数来表示这个2阶特征组合的权重,所需要的参数个数为O(m^2)。第二,相比于Poly-2模型,FM/FFM模型能更有效地学习参数:当一个2阶特征组合没有出现在训练集时,Poly-2模型则无法学习该特征组合的权重;但是FM/FFM却依然可以学习,因为该特征组合的权重是由这2个特征的隐式向量点乘得到的,而这2个特征的隐式向量可以由别的特征组合学习得到。总体来说,FM/FFM是一种非常有效地对二阶特征组合进行自动学习的模型。

深度学习是通过神经网络结构和非线性激活函数,自动学习特征之间复杂的组合关系。目前在APP推荐领域中比较流行的深度模型有FNN/PNN/Wide & Deep。FNN模型是用FM模型来对Embedding层进行初始化的全连接神经网络。PNN模型则是在Embedding层和全连接层之间引入了内积/外积层,来学习特征之间的交互关系。Wide & Deep模型由谷歌提出,将LR和DNN联合训练,在Google Play取得了线上效果的提升。

但目前的广度模型和深度模型都有各自的局限。广度模型(LR/FM/FFM)一般只能学习1阶和2阶特征组合;而深度模型(FNN/PNN)一般学习的是高阶特征组合。在之前的举例中可以看到无论是低阶特征组合还是高阶特征组合,对推荐效果都是非常重要的。Wide & Deep模型依然需要人工特征工程来为Wide模型选取输入特征。

DeepFM模型结合了广度和深度模型的有点,联合训练FM模型和DNN模型,来同时学习低阶特征组合和高阶特征组合。此外,DeepFM模型的Deep component和FM component从Embedding层共享数据输入,这样做的好处是Embedding层的隐式向量在(残差反向传播)训练时可以同时接受到Deep component和FM component的信息,从而使Embedding层的信息表达更加准确而最终提升推荐效果。DeepFM相对于现有的广度模型、深度模型以及Wide & Deep模型的优势在于:(1) DeepFM模型同时对低阶特征组合和高阶特征组合建模,从而能够学习到各阶特征之间的组合关系;(2) DeepFM模型是一个端到端的模型,不需要任何的人工特征工程。

DeepFM算法架构

为了验证DeepFM模型的精度,分别在Criteo Kaggle的竞赛数据集和华为应用市场的数据集上进行了实验。Criteo Kaggle的数据集按照9:1的比例划分训练集和测试集。华为应用市场数据集由8天连续数据构成:前7天数据为训练集,后1天数据为测试集。实验结果表明:相比较业界最新的推荐算法,DeepFM模型在华为数据集上,AUC提升0.36%~0.86%,LogLoss提升0.34%~1.1%。

DeepFM算法效果对比

DeepFM算法是华为伏羲推荐算法经过1年多的研究,并同业界深入合作的成果。团队还在深度学习推荐算法方面持续投入,研究更好的深度学习网络架构,实现更好的特征表达和特征交互方式,持续改进深度学习推荐模型,为华为应用市场和华为游戏中心的用户提供更好的个性化、精准化的用户体验,保持华为应用市场推荐系统的技术领先。

DeepFM:深度学习算法助力华为应用市场APP推荐相关推荐

  1. 深圳内推 | 华为诺亚方舟实验室招聘机器学习/深度学习算法实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为 华为诺亚方舟实验室是世界领先的工业实验室,在深圳.香港.北京.上海. ...

  2. 基于深度学习算法的语音识别(华为云)

    基于深度学习算法的语音识别 训练完模型后可反复使用,训练时可以选购云环境,节省时间,本地除非你的服务器性能够强劲,本次教程基本上也是实验级别的,主要是看看代码,本次实验我的小米配置不行,就直接把代码写 ...

  3. 强生进军医疗机器人、Deepmind利用深度学习算法检查乳腺癌X光,AI医疗的风口已到来?...

    合作是AI在医疗领域快速赋能的一大解决方式. 一直以来,强迫症.忧郁症等情绪类精神疾病都被业界认为是没有办法从生理上进行治愈的疾病,最近,在<自然>杂志上公布的最新AI+医疗的神经算法就可 ...

  4. PaddleX 结合 OpenVINO 工具套件 ,优化深度学习算法CPU部署性能

    引言 当今世界,深度学习技术正得以广泛应用,为工业质检.安防巡检.金融.医疗.能源等各行各业降本增效.然而,深度学习算法往往需要较高性能的计算芯片作为支撑,以满足大计算量.高推理速度等产业需求,这为众 ...

  5. 基于深度学习算法和传统立体匹配算法的双目立体视觉

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 01 立体视觉是什么? 在开始之前,我相信很多站友都会有这个疑问, ...

  6. 一文梳理深度学习算法演进

    来源:https://zhuanlan.zhihu.com/p/464515049 作者:Peter潘欣 编辑:蘑菇先生 学习记涉及语音.图像.nlp.强化学习.隐私保护.艺术创作.目标检测.医疗.压 ...

  7. 博世投资张翠波:自动驾驶需要突破芯片、传感器、深度学习算法等关键技术

    来源:36氪 概要:基于博世的很多发现,整个无人驾驶的时间表可能如下:Level3级别的自动驾驶可能会在2020年后:Level4量产的时间是2020到2023年. 全球智能驾驶行业风起云涌,大量资本 ...

  8. 【杂谈】什么是我心目中深度学习算法工程师的标准

    有三AI平台只专心做原创输出很少扯淡也不蹭热点,不过最近询问的朋友多了,不得不统一写篇文章来回答一下这个大家都很关心的问题,当然,这仅仅是个人观点. 作者&编辑 | 言有三 目前利用深度学习这 ...

  9. 岗位推荐 | 实在智能招聘深度学习算法研究员(可实习)

    PaperWeekly 致力于推荐最棒的 AI 相关工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁. 如果你需要我们来帮助你推广实习机会或全职岗位,请添加微信号「pwbot02」. ...

最新文章

  1. 在OSX上安装Erlang
  2. tomcat中的几种log catalina localhost
  3. 三年0故障是如何做到的?
  4. BZOJ 1552/1506 [Cerc2007]robotic sort
  5. 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...
  6. MVC是一种用于表示层设计的复合设计模式
  7. oracle数据库常用的语法与复合函数
  8. 体验式培训之“铁人七项”
  9. 转化关系模型外键_网站数据分析:流量运营分析模型拯救你的广告流量
  10. 贺利坚老师汇编课程33笔记:[bx+idata]对同长度字符串进行同步处理
  11. 深耕智慧园区 看龙田科技与华为的“默契”
  12. java实现图片查看器
  13. Angular 里使用 FormControl 的步骤
  14. JS中数组迭代方法(JavaScript从入门到疯癫)
  15. YYT 0664 - 2008 医疗器械软件 软件生存周期过程
  16. 没有授权,Android App 也能获取你的权限?!
  17. flv + livego + obs 实现简易直播平台(windows版+Linux版)
  18. 公司尽然把cnblogs给屏蔽了,可恶!!!
  19. 七月与安生:不管选择哪条路,都会是辛苦的 — —豆瓣老丑
  20. 关于慕课网上爱心小鱼的讲解

热门文章

  1. OPPO出货量超越苹果跻身全球第四,直逼小米
  2. 使用 Kali Linux 爆破 WiFi 密码
  3. unity3d中隐藏/显示物体方法总结 – unity3d游戏开发
  4. 自定义 Win10 开始菜单磁贴颜色和图片
  5. 使用Android Studio设置调试的外接设备屏幕分辨率
  6. 2022-02-16 工作记录--Swiper-实现跑马灯效果:鼠标经过时停止滑动,鼠标离开后继续滑动
  7. 转一位计算机牛人的心得,谈计算机和数学,很实用~
  8. 数据挖掘的过程有哪些
  9. 基于hi3531、ffmpeg、x264的h264压缩
  10. 15页PPT:摘果式拣选与播种式拣选