前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Deep Learning Recommendation Model(DLRM)

Deep Learning Recommendation Model(DLRM)

作者头像
felixzhao
发布2022-05-12 15:54:37
1.1K0
发布2022-05-12 15:54:37
举报
文章被收录于专栏:null的专栏null的专栏

1. 概述

DLRM(Deep Learning Recommendation Model)[1]是Facebook在2019年提出的用于处理CTR问题的算法模型,与传统的CTR模型并没有太大的差别,文章本身更注重的是工业界对于深度模型的落地,在文中介绍了很多深度学习在实际落地过程中的细节,包括如何高效训练。在此我们更多的是关注模型本身,尝试揭开DLRM模型的本质。在DLRM模型中,突出解决两个问题:

  • 第一,如何处理离散特征。CTR的训练样本中包含了大量的离散的类别特征,这样的数据是不能直接放入到深度学习模型中,在DLRM中,通过Embedding层将离散的特征转化成稠密的特征;
  • 第二,如何做特征交叉。特征交叉对于CTR问题的求解具有重要的作用,在DLRM模型中,模仿着FM算法中的做法,对向量两两做点积。

2. 算法原理

2.1. DLRM模型的网络结构

DLRM模型的网络结构如下图所示:

在这里插入图片描述
在这里插入图片描述

在DLRM模型的网络结构中,从下而上,包括了输入层,Embedding层,特征交叉层,以及FNN输出层。

2.2. DLRM模型的优化点

2.2.1. 特征处理

在CTR问题中,通常特征包括两种类型,第一类为类别、id类的离散特征,对于这类特征通常是利用one-hot编码对其进行编码,生成稀疏特征;第二类为数值型的连续特征。对于第一类的离散特征,通过one-hot编码后会变得特别稀疏,深度学习模型是不适合从稀疏数据中学习的,通常的做法是通过Embedding将其映射成一个稠密的连续值。假设one-hot编码后的向量是e_i ,向量中除了第i 个位置为1外,通过Embedding后得到的embedding向量w_i 为:

w_i^T=e_i^TW

其中,W\in \mathbb{R}^{m\times d} 。而对于连续特征,DLRM中选择的处理方法是通过MLP多层感知机将所有的连续特征转化成一个与离散特征同样维度的embedding向量,如图中的黄色部分。

2.2.2. 特征交叉

通过Embedding层后,所有的特征,包括离散特征和连续特征,可以通过MLP神经网络层做进一步转换,如图中的三角部分。经过MLP处理后进入到interaction特征交叉层。从文中的介绍可知,在interaction层,首先会将所有的embedding结果两两做点积,以此实现特征的交叉。然后将交叉后的特征和之前embedding结果组合在一起,以此同时实现了线形特征和交叉特征。最终通过MLP得到最终的输出。

3. 总结

在DLRM模型中,没有太多复杂的操作,都是一些基本的操作流程,这一点也比较符合工业界的思维。这里没有介绍工程实践方面的细节,详细的可以参见参考文献[1]。

参考文献

[1] Naumov M, Mudigere D, Shi H J M, et al. Deep learning recommendation model for personalization and recommendation systems[J]. arXiv preprint arXiv:1906.00091, 2019.

[2] DLRM: An advanced, open source deep learning recommendation model

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概述
  • 2. 算法原理
    • 2.1. DLRM模型的网络结构
      • 2.2. DLRM模型的优化点
        • 2.2.1. 特征处理
        • 2.2.2. 特征交叉
    • 3. 总结
    • 参考文献
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档