Deep Learning Recommendation Model for Personalization and Recommendation Systems
这篇文章出自facebook,主要探索了如何利用类别型特征(categorical features)并且构建一个深度推荐系统。值得注意的是,文章还特别强调了工业实现上如何实现并行,也很良心地给出了基于Pytorch和Caffe2的模型实现。
引言
目前的个性化推荐系统深度模型主要有两种方式:
- 推荐系统角度:这类系统使用内容过滤,即由专家对物品分类,然后根据用户的喜好进行匹配推荐。该领域随后发展为协同过滤方法,或者是其它基于邻居和隐语义(Latent factor)方法。
- 预测分析角度:这类方法依靠统计模型基于给定数据对事件进行分类或者预测发生概率。这类方法使用embedding对类型数据转换为稠密向量
本文提出的推荐方法是上述两种方法的结合,该模型(DLRM)使用embedding处理稀疏特征,并使用MLP处理稠密特征,然后显式考虑这些特征的交互,最后再使用一个MLP预测事件概率。
模型设计与架构

模型整体的架构如图所示,主要组件包括Embeddings,Matrix Factorization,Factorization Machine以及Multilayer Perceptrons。
Embeddings的思路很简单,就是每个稀疏特征都会转换成一个one-hot或者n-hot向量,然后利用这个向量在embedding表中查询:
\[
\mathbf{w}_i^T = \mathbf{e}^T_i \mathbf{W}
\]
Multilayer Perceptrons用于更复杂的特征交互和预测,形式如下:
\[
\hat{y} = W_k \sigma(W_{k-1} \sigma(\dots \sigma(W_1 \mathbf{x} + \mathbf{b}_1)\dots)+ \mathbf{b}_{k-1})
\]
Matrix Factorization主要是用于学习用户和物品的向量表示,其学习目标可以用下式表示:
\[
\min \sum_{(i,j)\in \mathcal{S}}r_{ij} - \mathbf{w}_i^T \mathbf{v}_j
\]
其中\(r_{ij} \in \mathbb{R}表示第\)i\(个物品和第\)j$个用户的得分, \(\mathbf{w}_i\) 和 \(\mathbf{v}_j\) 分别表示物品和用户的向量
Factorization Machine用于对特征进行交叉,对稀疏数据比较有利:
\[
\hat{y} = b + \mathbf{w}^T \mathbf{x} + \mathbf{x}^T \text{upper}(VV^T)\mathbf{x}
\]
并行
在DLRM中,稀疏特征(类别型特征)都要转换为embedding,这部分产生了大量参数,因此整个模型需要并行处理。本文中,DLRM同时使用模型并行和数据并行。其中,模型并行用于embedding模块,数据并行用于MLP模块。由于现有的PYtorch和Caffe2中都没有这方面实现,因此论文也给出了自己的方案。

数据和实验
论文使用了三种类型的数据,随机数据、合成数据和公开数据集。论文的实验在Big Basin AI platform上进行,使用了8块Nvidia Tesla V100 16GB GPU,对精度也有一些调整。实验的代码已经在GitHub上公开。最终的实验结果如下图所示:

其中数据集是Criteo Ad Kaggle数据集,DCN是指Deep and Cross network。
结论与感想
看到这篇论文是因为paperweekly的推荐,但是通读下来并没有太多惊艳的地方,模型构建方式也比较地传统。但对于工程实现来说应该具有不错的指导价值,尤其是也有实现的代码。
Deep Learning Recommendation Model for Personalization and Recommendation Systems的更多相关文章
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works(笔记)
注意:论文中,很多的地方出现baseline,可以理解为参照物的意思,但是在论文中,我们还是直接将它称之为基线,也 就是对照物,参照物. 这片论文中,作者没有去做实际的实验,但是却做了一件很有意义的事 ...
- Wide and Deep Learning Model
https://blog.csdn.net/starzhou/article/details/78845931 The Wide and Deep Learning Model(译文+Tensorlf ...
- Edge Intelligence: On-Demand Deep Learning Model Co-Inference with Device-Edge Synergy
边缘智能:按需深度学习模型和设备边缘协同的共同推理 本文为SIGCOMM 2018 Workshop (Mobile Edge Communications, MECOMM)论文. 笔者翻译了该论文. ...
- Geometric deep learning on graphs and manifolds using mixture model CNNs
Monti, Federico, et al. "Geometric deep learning on graphs and manifolds using mixture model CN ...
- Wide & Deep Learning Model
Generalized linear models with nonlinear feature transformations (特征工程 + 线性模型) are widely used for l ...
- Predicting effects of noncoding variants with deep learning–based sequence model | 基于深度学习的序列模型预测非编码区变异的影响
Predicting effects of noncoding variants with deep learning–based sequence model PDF Interpreting no ...
- 论文翻译:2021_Towards model compression for deep learning based speech enhancement
论文地址:面向基于深度学习的语音增强模型压缩 论文代码:没开源,鼓励大家去向作者要呀,作者是中国人,在语音增强领域 深耕多年 引用格式:Tan K, Wang D L. Towards model c ...
- (转)分布式深度学习系统构建 简介 Distributed Deep Learning
HOME ABOUT CONTACT SUBSCRIBE VIA RSS DEEP LEARNING FOR ENTERPRISE Distributed Deep Learning, Part ...
随机推荐
- Magma中ECC的点乘实例
a:=-3;b:= 41058363725152142129326129780047268409114441015993725554835256314039467401291;E:= Elliptic ...
- P1057 传球游戏——小学生dp
P1057 传球游戏 设f[i][j]为第i次传到j的方案数: f[0][1]=1; 单独处理开头和结尾: #include<cstdio> #include<cstring> ...
- postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库
最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...
- Page directive: invalid value for import
原有项目启动正常,正常访问:后来换成tomcat7.0.70:后启动正常,登陆正常,然而点进去任何菜单都会报错: java.lang.IllegalArgumentException: Page di ...
- VOT-2016 代码评测工具的使用说明
VOT-2016 代码评测工具的使用说明 2018-10-14 09:37:04 VOT-2016 官网:http://www.votchallenge.net/vot2016/ 评测代码链接:htt ...
- Acer笔记本如何装系统?
一.准备工作 1.一个有win7或者XP系统的电脑(制作启动盘用) 2.一个8G以上的U盘 3.win7&win8系统包(win8.1下载地址:http://pan.baidu.com/s/1 ...
- GIS地理工具案例教程——批量去除多边形的之间的间隙
GIS地理工具案例教程--批量去除多边形的之间的间隙 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 问题:几乎所有的手工生产的数据,都存在多边 ...
- Hive跨集群迁移
Hive跨集群迁移数据工作是会出现的事情, 其中涉及到数据迁移, metastore迁移, hive版本升级等. 1. 迁移hdfs数据至新集群hadoop distcp -skipcrccheck ...
- Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
Arthas 用户文档 — Arthas 3.1.0 文档https://alibaba.github.io/arthas/ alibaba/arthas: Alibaba Java Diagnost ...
- oracle连接-会话-进程
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;CREATE PROFILE kyc_pro LIMIT IDLE_TIME 2;alter user kyc_acc pro ...