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

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

[[239303]]

【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 

 

[[239308]]

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

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

 

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2019-04-23 09:00:00

机器学习排序学习人工智能

2023-12-01 10:21:00

机器学习算法

2016-09-30 15:03:13

推荐系统算法

2019-01-28 08:31:47

360架构系统

2016-12-09 08:56:54

2016-11-22 08:50:23

2024-03-25 09:00:00

人工智能深度学习对抗学习

2017-07-11 09:46:29

2015-11-17 09:37:52

网页设计黄金比例

2020-06-29 07:30:00

推荐算法推荐系统

2023-04-24 07:37:28

推荐算法项目

2017-05-10 16:01:39

推荐系统算法实践

2018-07-16 08:29:54

redis集群限流

2023-11-22 19:24:36

2022-05-06 10:11:21

开源游戏桌游

2016-10-27 08:39:35

大数据设计定量

2020-04-02 16:12:56

推荐系统CTR分流

2021-10-13 08:00:00

数据算法人工智能

2021-12-16 08:00:00

推荐系统MovieMat数据

2023-06-20 16:17:40

人工智能
点赞
收藏

51CTO技术栈公众号