工业界推荐系统必读论文:基于深度学习的推荐模型——DLRM
作者丨纪厚业
单位丨北京邮电大学博士生
研究方向丨异质图神经网络及其应用
引言
模型架构
本文所设计的推荐系统架构如 Fig 1 所示。整个模型主要包含:特征工程(包含 spare 和 dense 特征),用于特征建模 Embedding 和 Embedding Lookup,用于特征转换的 NNs,用于特征交互的 Interactions 以及最后的预测 NNs。
特征表示 Embedding
在实际的推荐场景中,用户和商品通常都有丰富的特征信息。用户的特征通常用性别,年龄,居住地等。如何将这些类别特征转为模型可以处理的向量呢。本文的做法是将这些类别特征编码为 one-hot 的向量,然后通过 embedding lookup 来得到其表示。
以用户的性别为例,性别男的 one-hot 编码为 [1, 0] 性别女的 one-hot 编码为 [0,1]。然后,我们针对性别初始化一个关于性别的 embedding matrix,该矩阵大小为 2*d,2 代表性别的可能取值,d 代表 embedding 的维度。那么通过 embedding lookup,性别男的 embedding 其实就是 embedding matrix的第一行,性别女的 embedding 就是 embedding matrix 的第二行。通过上述操作,我们就将难以处理的类别特征转化为了神经网络方便处理的向量。
上述过程得到是类别特征的初始 embedding,我们可以通过 MLP 对其进行非线性转换。初始的特征 embedding 会在模型优化过程中学习到具有区分度的特征表示。
特征交互 Interaction
在得到特征的表示后,我们通过内积等简单操作实现模型的预测:
但是,如果我们能够抓住的描述特征关联性,那么模型的预测能力可能会进一步提升。例如,经典的 FM:
特征交叉的好处到底在哪呢?这里给一个形象的例子:经度和纬度分开看并不能精准定位某个地区,但是当经纬度结合起来就可以精准定位地区,该地区的每一部分拥有的类似的特性。
模型预测 NNs
有了特征的表示及其交互之后,我们可以将其送入到 MLP 中,并利用 Sigmoid 函数预测最终的点击概率。
可以看出,本文所提出的 DLRM 模型其实并没有很复杂,但是却将工业界的一些实践方法给出了清晰的介绍。
模型实现
DLRM 实现所需要的相关接口在 PyTorch 和 Caffe2 中都有实现,见 Table 1。
模型并行
在工业界的大规模数据下,模型并行是必不可少的一个步骤。DLRM 模型的主要参数来自于特征的 embedding,后面特征交互和模型预测部分的参数其实很少。假设我们有一亿个用户,如果对其 ID 进行 embedding,那么 embedding matrix 就会有一亿行,这是一个非常大的参数矩阵。
对于特征 embedding 部分,这里采用的是模型并行,将一个大的embedding 矩阵放到多个设备上,然后更新相应的特征 embedding。
对于特征交互和模型预测部分,这里的参数量相对较少而且用户/商品的数量无关,本文采用的是数据并行的方式。在多个设备上计算梯度,然后将梯度合并来更新模型。
实验
本文在随机数据,合成数据和公开数据上进行了实验。对比算法主要是Deep cross network。整个实验运行在 Facebook 的 Big Basin platform 上。
具体实验结果如下:
可以看出,本文所提出的 DLRM 算法明显超越谷歌的 DCN。
总结
本文提出了一种工业级推荐系统 DLRM 并实验验证了其优越性。同时,作者也给出了工业界推荐系统的最佳实践,相关代码和超参数设置也进行了开源。可以说,本文是在工业界做推荐系统的必读论文之一。
点击以下标题查看更多往期内容:
KDD 2019 | 基于异质图神经网络的用户意图推荐
深度学习推荐系统是否真的优于传统经典方法?
知其所以然:基于多任务学习的可解释推荐系统
推荐系统阅读清单:最近我们在读哪些论文?
近期必读的12篇「推荐系统」相关论文
基于小样本学习的意图识别冷启动
#投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。
???? 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
???? 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 所有文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
????
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。
▽ 点击 | 阅读原文 | 下载论文 & 源码
工业界推荐系统必读论文:基于深度学习的推荐模型——DLRM相关推荐
- 深度学习的推荐模型(DLRMs):设计孪生掩码层高效学习维度自适应的Embedding...
猜你喜欢 0.2021年10月份热门报告免费下载1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.全民K歌推荐系统架构.算法及后台设计4.微博推荐算法实践与机器学习平台演进5.腾讯 ...
- CTR预估系列:DeepCTR 一个基于深度学习的CTR模型包
在计算广告和推荐系统中,CTR预估一直是一个核心问题.无论在工业界还是学术界都是一个热点研究问题,近年来也有若干相关的算法竞赛.本文介绍一个基于深度学习的CTR模型包DeepCTR,具有简洁易用.模块 ...
- 基于深度学习的推荐系统研究
基于深度学习的推荐系统研究 论文信息:北京邮电大学 陈达 14年硕毕论 目的:深度网络学习算法应用到推荐系统 . 为此工作: 1)研究分析基于内容的推荐系统和基于协同过滤的推荐系统,包括基于相似 ...
- 基于深度学习的图像识别模型研究综述
基于深度学习的图像识别模型研究综述 摘要:深度学习是机器学习研究中的一个新的领域,其目的在于训练计算机完成自主学习.判断.决策等人类行为并建立.模拟人脑进行分析学习的神经网络,它模仿人类大脑的机制来解 ...
- 热门论文| 基于深度学习的黑色素瘤自动检测系统
论文概述 该论文提出了一种基于深度学习的方法实现黑色素瘤病变的自动检测和分割.该方法包含一种增强的编码-解码网络用于提取特征,该网络通过一系列跳步路径(skip pathway)连接编码子网络 ...
- [论文]基于强化学习的无模型水下机器人深度控制
基于强化学习的无模型水下机器人深度控制 摘要 介绍 问题公式 A.水下机器人的坐标框架 B.深度控制问题 马尔科夫模型 A.马尔科夫决策 B.恒定深度控制MDP C.弯曲深度控制MDP D.海底追踪的 ...
- 基于深度学习的图像识别模型发展
一.简介 AlexNet:(2012)主要贡献扩展 LeNet 的深度,并应用一些 ReLU.Dropout 等技巧.AlexNet 有 5 个卷积层和 3 个最大池化层,它可分为上下两个完全相同的分 ...
- 基于深度学习的推荐(二):基于FM初始化的FNN
公众号 关注公众号:推荐算法工程师,输入"进群",加入交流群,和小伙伴们一起讨论机器学习,深度学习,推荐算法. 前言 论文地址:https://arxiv.org/pdf/1601 ...
- 论文笔记---深度学习之VGG模型解读
本文是对 VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 论文的解读,论文下载地址为:https://arxiv. ...
最新文章
- TensorFlow Frontend前端
- 《Advanced PHP Programming》读书笔记
- vb.net与matlab的混合编程
- 微众银行殷磊:AI+卫星,从上帝视角洞察资产管理|BDTC 2019
- IDEA真牛逼,900行又臭又长的类重构,几分钟搞定
- 极端值目标值(exterem or outlier target)对应的核心特征的分布差异分析+结合catboost特种重要度(top10)
- Trie(前缀树/字典树)及其应用
- 2019杭电暑假多校训练 第六场 Snowy Smile HDU - 6638
- VTK:Filtering之ImplicitBooleanDemo
- python程序员工作时间_Python程序员是怎么找工作的?怎么最快时间找到自己想要的工作?...
- BZOJ 4753 二分+树形DP
- centos7 安装mysql8_CentOS 下 MySQL 8.0 安装部署,超详细!
- 今天发个技术贴,增加自信心
- 减速箱箱体尺寸是怎样计算的_手把手教你解剖减速机
- 【Pytorch】LeNet的pytorch写法
- 拓端tecdat|R语言回归中的Hosmer-Lemeshow拟合优度检验
- 如何利用systrace分析Android App的死锁问题
- qqkey获取原理_通过call获取qqkey支持最新版
- java pdf转jpg字体问题_java生成pdf字体的坑
- mysql atlas 文档_Atlas首页、文档和下载
热门文章
- python上传图片到服务器_Flask入门之上传文件到服务器的方法示例
- php redis decr_对于高并发的问题你知道怎么处理吗?php接口如何处理并发问题
- 网络爬虫入门系列(3) httpClient
- winform窗体 小项目【安装程序】
- UIDevice通知,键盘通知
- 如何使得WIN7下用VS2010做出的MFC程序具有XP风格(摆脱传统界面的效果)
- 心态很容易受别人影响_为什么说缠论中的走势中枢容易影响短线买卖交易心态?...
- c实现多语言编程,C/C++编程中多国语言处理
- window挂载到linux服务器上,Windows服务器目录挂载到linux服务器
- java对xml文件的解析_Java对XML文件的解析