如何利用DeepFM算法设计推荐系统

编译作者: 汪昊 2018-08-08 13:30:59

如何利用DeepFM算法设计推荐系统

【51CTO.com快译】经过了十几年的发展,推荐系统在互联网行业已经变得越来越流行。从早年没有一个合适的产品形态,到如今在今日头条和抖音等商业产品中发挥重要作用,推荐系统已经越来越受到互联网公司和研究界学者的重视。

早年的推荐算法主要是各种单模型,例如逻辑回归、协同过滤、矩阵分解等等。后来推荐算法演化成了混合模型,例如 GBDT + LR , GBDT + FM 等。而随着深度学习的崛起,深度神经网络越来越深刻地影响了推荐系统领域的发展。

Huifeng Guo 等中国国内学者在 IJCAI 2017 发表了一篇题为《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 》的论文,讲解了如何将 FM 和深度学习模型进行融合之后进行推荐的算法。

DeepFM 主要有以下三个优点:

  1. DeepFM 可以对低阶特征交互和高阶特征交互进行建模,不需要进行特征工程。
  2. DeepFM 可以高效的进行训练,因为模型宽的部分和深的部分,不仅共享输入,也共享嵌入式向量。
  3. 实验数据表明 DeepFM 可以在点击率预估问题上取得优秀的效果。

DeepFM 的输入数据为点击率预估常见的 (X, y) 元组,其中 X 是表示用户和物品的特征向量,可能包括非数值数据,y 是点击数据标签,y = 1 表示用户点击了物品,y = 0 表示用户没有点击物品。

DeepFM 的预测函数如下: , 其实是利用 sigmoid 函数对基于 FM 的预测和基于 DNN 的预测进行了融合。算法模型中的 FM 部分算法架构如下图所示:

DNN 部分的算法架构如下图所示:

在混合模型中,FM 和 DNN 共享同一个特征嵌入层。嵌入层的结构如下图所示:

嵌入层得到的向量记为: ,  该向量参与到后续的DNN计算中: ,以及  。

作者随后在测试数据集合上对近年来的几种不同的点击率预估算法进行了测评,选择的测评标准包括 AUC 和 Log-loss ,测评结果如下图所示:

与 DeepFM 相比,其他几种点击率预估算法有以下缺点:

  1. FNN : FNN 是一个由 FM 初始化的前向神经网络。FM 预训练策略有如下两个问题:1). 嵌入层参数受 FM 影响较大 2). FM 预训练对算法效率有影响。另外,FM 只包含了高阶特征组合。
  2. PNN : PNN 及其变种 IPNN 和 OPNN 忽略了低阶特征的组合。
  3. 宽深网络:宽身网络的 FM 部分需要人工处理特征工程。

DeepFM 设计思路简单,源于 2016 年 Google 的宽深网络方法但是效果出众。自推荐系统诞生以来,人们便设计了各种不同的模型融合方法。从修改主题模型的 Collaborative Topic Regression ,到基于 blending 的 GBDT + LR 再到后面的宽深网络方法, 给我们设计算法提供了不同的思路。算法本身是一个既要考虑模型,又要考虑数据和参数的学科,DeepFM 在如何设计模型层面给我们展示了很好的范例。

原文标题:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction,作者:Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, Xiuqiang He 

汪昊,恒昌利通资深架构师,美国犹他大学硕士,在百度,新浪,网易,豆瓣等公司有多年的研发和技术管理经验,擅长机器学习,大数据,推荐系统,社交网络分析,计算机图形学,可视化等技术。在 TVCG 和 ASONAM 等国际会议和期刊发表论文 8 篇。本科毕业论文获国际会议 IEEE SMI 2008 ***论文奖。

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

推荐系统 DeepFM 算法
上一篇:人能识别“假笑”,那么机器人呢? 下一篇:如何使用Android Things和TensorFlow在物联网上应用机器学习
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

民主化与自动化:降低机器学习门槛的六大工具

以下介绍的六种机器学习工具为那些使用数字、电子表格和数据的人们打开了通向机器学习世界的大门,而且不需要他们成为编程和数据科学方面的专家。

CashCat ·  2019-09-06 09:00:33
真正的大数据问题以及为什么只有机器学习才能解决它

为什么很多公司仍在努力构建从采集数据到获得洞察力的平稳运行的管道?他们希望投资和采用机器学习算法来分析数据,并做出商业预测。

SHARE ·  2019-08-16 10:38:23
谷歌高级研究员Nature发文:避开机器学习三大「坑」

本文将介绍谷歌 Accelerated Science 团队在使用机器学习分析时所面临并解决了的三个问题,以说明展示这种做法。

机器之心 ·  2019-08-01 08:15:06
EasyDL轻松搞定对抗学习 多算法比对临床试验数据

百度EasyDL是百度公司为没有算法基础的开发者和企业提供的AI图像识别方案,其具备少数据量、易于操作、快速训练图像识别类AI模型的优势。EasyDL让中小型企业及个人可以在很短的时间获得AI能力,将图像识别投入到生产或者兴趣制作之中,它可作为一套优秀技术解决方案的基石

宋安旭 ·  2019-07-18 10:06:56
人工智能(AI)对于当今生活的现实意义

提及人工智能,相信大多数人还是一头雾水:是什么?有什么用?和我有什么关系? 人工智能绝对是现代生产力变革的巨大动力,和不远的将来,和你和我都息息相关,现如今它已经在不远的将来向我们招手了。

鉴领育学 ·  2019-07-17 21:46:13
未来 3~5 年内,哪个方向的机器学习人才紧缺?

撇开学术界需求因为大部分人最终不会从事算法研究,而会奋斗在一线应用领域。相较而言,工业界对人才的需求更加保守。这受限于很多客观因素,如硬件运算能力、数据安全、算法稳定性、人力成本开支等。

自律873 ·  2019-07-05 15:23:59
从人工智能 (AI)发展应用看算法测试的测试策略

随着人工智能的发展与应用,AI测试逐渐进入到我们的视野,传统的功能测试策略对于算法测试而言,心有余而力不足,难以满足对人工智能 (AI) 的质量保障。

佚名 ·  2019-07-03 10:21:50
关于机器学习实战,那些教科书里学不到的12个“民间智慧”

机器学习算法被认为能够通过学习数据来弄清楚如何执行重要任务。这意味着数据量越大,这些算法就可以解决更加复杂的问题。然而,开发成功的机器学习应用程序需要一定的“民间技巧”,这在教科书或机器学习入门课程中很难找到。

大数据文摘 ·  2019-05-13 09:55:33
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载