论文名:An Embedding Learning Framework for Numerical Features in CTR Prediction

开源代码:AutoDis

1. 背景介绍

在CTR预估模型中,大多数模型都遵守Embedding & Feature Interaction(FI)的范式。以往的大多数研究都聚焦于网络结构的设计,以更好的捕获显式或隐式的特征交互,如Wide&Deep的wide部分,DCN中的CrossNet, DeepFM的FM部分,DIN的注意力机制。然而却忽视了特征Embedding的重要性,尤其是忽视了连续型特征Embedding。

尽管很多文章中没有怎么研究,但Embedding模块是CTR预估模型的重要组成部分,有以下两个原因:

  1. Embedding模块是后续FI模块的基石,总结影响了FI模块的效果
  2. CTR模型的中大多数参数都在Embedding模块,所以很自然对模型效果有很大影响

但是Embedding模块少有深入研究的工作,特别是连续型特征Embedding的方面。

现有的处理方式由于其硬离散化(hard discretization)的方式,通常suffer from low model capacity。

接下来我将讲解Embedding模块的基本原理,以及CTR预估中数值特征的几种常见处理方式,然后对论文中所提出的AutoDis框架进行介绍。AutoDis框架具有high model capacity, end-to-end training, 以及unique representation.

2、连续特征处理

CTR预估模型的输入通常包含连续特征和离散特征两部分。对于离散特征,通常通过embedding look-up操作转换为对应的embedding (之后我会介绍谷歌对离散特征embedding的改进);而对于连续特征的处理,可以概括为三类:No Embedding, Field Embedding和Discretization(离散化)。

 

2.1 No Embedding

这类处理方法直接使用原始值或者转换后的值作为输入特征,没有学习Embedding。例如,Google发表的Wide & Deep模型,京东发表的DMT模型,分别使用了原始特征和归一化后特征。除此之外YouTube DNN使用了多种方法(平方,开根号等)对归一化特征进行转换

在Facebook发表的DLRM模型中,该模型使用了MLP(multi-lay perception)对所有连续型特征建模

其中DNN的结构为 512--256--d,  这类对连续特征不进行embedding的方法,由于模型容量有限,通常难以有效捕获连续特征中信息。

2.2 Field Embedding

Field Embedding的处理方法为一个域中的所有特征中共享一个field embedding,计算时将field embedding乘以相应的特征值:

由于同一field的特征共享同一个embedding,并基于不同的取值对embedding进行缩放,这类方法的表达能力也是有限的。

2.3 Discretization

离散化(Discretization)方法将连续特征转换成类别特征。对于第j个数据域,其特征embedding可以使用两阶段(two-stage)方法获取:discretization(离散化) 和 embedding look-up(查表)

总的来说,将连续特征进行离散化给模型引入了非线性,能够提升模型表达能力,而对于离散化的方式,常用的有以下几种:

1) EDD/EFD (Equal Distance/Frequency Discretization):即等宽/等深分箱。

2)LD (Logarithm Discretization):对数离散化,其计算公式如下:

3)TD (Tree-based Discretization):基于树模型的离散化,如使用GBDT+LR来将连续特征分到不同的节点。这就完成了离散化。除深度学习模型外,树模型(例如GBDT)被广泛应用于推荐领域。其能高效的处理数值型特征。比如“Feature Selection with Decision Tree”、“Practical Lessons from Predicting Clicks on Ads at Facebook”、“Deep Learning Framework Distilled by GBDT for Online Prediction Tasks”使用了树模型对数值特征进行离散化。

2.4 当前离散化不足之处

尽管离散化在工业界广泛引用,但仍然有以下三方面的缺点:
1)TPP (Two-Phase Problem):将特征分桶的过程一般使用启发式的规则(如EDD、EFD)或者其他模型(如GBDT),无法与CTR模型进行一起优化,即无法做到端到端训练;
2)SBD (Similar value But Dis-similar embedding):对于边界值,两个相近的取值由于被分到了不同的桶中,导致其embedding可能相差很远;
3)DBS (Dis-similar value But Same embedding):对于同一个桶中的边界值,两边的取值可能相差很远,但由于在同一桶中,其对应的embedding是相同的。

40和41岁没有多大区别,但是却有完全不同的embedding;DBS: 18和40岁差距甚远,但是embedding却一模一样!

表1为AutoDis和这三种方法的对比。可以看出这三种方法要么由于模型容量有限,通常难以有效捕获连续特征中信息,要么由于需要离线专门设计的特征工程,可能影响模型表现。因此,论文提出了AutoDis框架,它具有高模型容量,端到端的训练,每个特征独一的表示等优点。

3. AutoDis介绍

为了解决现有方法的不足之处,论文提出了AutoDis框架,其能学习为每个特征值学习独一的表示以端到端的方式训练。下图展示了AutoDis可以作为一个可插拔的Embedding框架,用于数值型特征处理,并且兼容现有的CTR预估模型。

为了实现高模型容量、端到端训练,每个特征取值具有独立表示,AutoDis设计了三个核心的模块,分别是Meta-Embeddings、automatic Discretization和 Aggregation模块。

对于第j个特征域,AutoDis可以为每个特征值学习独一的表示:

3.2 Meta-Embeddings

一种朴素的方法是将连续特征中的每个特征值赋予一个独一的embedding。但是这是不可行的,这将导致参数爆炸且对低频特征训练不足。Field Embedding对同一域内的特征赋予相同的embedding,尽管降低了参数数量,但模型容量也受到了一定的限制。为了平衡参数数量和模型容量,AutoDis设计了Meta-embeddings模块。

为了平衡参数数量和模型容量,AutoDis设计了Meta-embedding模块: 对于第 j 个连续特征,对应 个Meta-Embedding(可以看作是分 [公式] 个桶,每一个桶对应一个embedding)。第j个特征的Meta-Embedding表示为:

对于连续特征的一个具体取值,则是通过一定方式将这 Hj个embedding进行聚合。相较于Field Embedding这种每个field只对应一个embedding的方法,AutoDis中每一个field对应 Hj个embedding,提升了模型容量;同时,参数数量也可以通过 [公式] 进行很好的控制。

3.3 Automatic Discretization

Automatic Discretization模块可以对连续特征进行自动的离散化,实现了离散化过程的端到端训练。具体来说,对于第j个连续特征的具体取值xj,首先通过两层神经网络进行转换,得到Hj长度的向量:

某种softmax变成概率分布:

传统的离散化方式是将特征取值分到某一个具体的桶中,即对每个桶的概率进行argmax,但这是一种无法进行梯度回传的方式。而上式可以看作是一种soft discretization,通过调节温度系数

[深度学习] AutoDis --- KDD2021 连续特征的Embedding学习框架相关推荐

  1. 推荐系统遇上深度学习(四)--多值离散特征的embedding解决方案

    全文共1087字,2张图,预计阅读时间7分钟. 背景 在本系列第三篇文章中,在处理DeepFM数据时,由于每一个离散特征只有一个取值,因此我们在处理的过程中,将原始数据处理成了两个文件,一个记录特征的 ...

  2. 深度学习推荐系统之“输入”特征工程

    1. 前言 从计算机视觉转换赛道到推荐系统,最令我迷惑的不是具体的网络模型,而是大多数论文中往往一笔带过的"输入层".就像一个厨师,知道菜谱,但是不会处理食材.最近一段时间通过查阅 ...

  3. 基于深度学习的文本数据特征提取方法之Word2Vec

    点击上方"AI公园",关注公众号,选择加"星标"或"置顶" 作者:Dipanjan (DJ) Sarkar 编译:ronghuaiyang ...

  4. 深度学习推荐系统中各类流行的Embedding方法

    Embedding技术概览: 对其它Embedding技术不熟悉,可以看我的上一篇文章:深度学习推荐系统中各类流行的Embedding方法(上) Graph Embedding简介 Word2Vec和 ...

  5. 深度学习中不得不学的Graph Embedding方法

    原文链接:https://zhuanlan.zhihu.com/p/64200072 深度学习中不得不学的Graph Embedding方法 王喆 ​ 数据挖掘等 3 个话题下的优秀答主 ​ 关注他 ...

  6. 深度学习推荐系统中各类流行的Embedding方法(下)

    我的个人微信公众号: Microstrong 微信公众号ID: MicrostrongAI 微信公众号介绍: Microstrong(小强)同学主要研究机器学习.深度学习.推荐系统.自然语言处理.计算 ...

  7. [深度学习]Part2 数据清洗和特征工程Ch06——【DeepBlue学习笔记】

    本文仅供学习使用 数据清洗和特征工程Ch06 1. 特征工程 1.1 特征工程介绍 1.2 特征预处理 1.2.1 数据清洗 1.2.1.1 数据清洗-预处理 1.2.1.2 数据清洗-格式内容错误数 ...

  8. 基于深度学习的可解释特征准确预测混凝土抗压强度

    基于深度学习的可解释特征准确预测混凝土抗压强度 Accurate prediction of concrete compressive strength based on explainable fe ...

  9. 创建一列矩阵数字一样吗_吴恩达深度学习笔记(122) | NLP | 嵌入矩阵Embedding Matrix...

    嵌入矩阵(Embedding Matrix) 接下来我们要将学习词嵌入这一问题具体化,当你应用算法来学习词嵌入时,实际上是学习一个嵌入矩阵,我们来看一下这是什么意思. 和之前一样,假设我们的词汇表含有 ...

最新文章

  1. 设计模式系列8--策略模式
  2. Office中如何实现公式颜色的更改?
  3. jooq 事务_将jOOQ与Spring结合使用:排序和分页
  4. 【教程】HTML5+JavaScript编写flappy bird
  5. WEB在线预览PDF
  6. java使用document解析xml文件
  7. 跨时代比较:工业化因素是关键
  8. linux yml文件格式,YML 文件扩展名: 它是什么以及如何打开它?
  9. Highcharts的spline示例
  10. 第七章 问什么巴比伦塔会失败
  11. apache ab linux 下载,linux 下ab压力测试
  12. RFID电子耳标识别棒,牦牛身份识别管理专用设备
  13. cut命令的详细用法
  14. Peter Schiff:如果大饼跌破3万刀,那么它将跌破1万
  15. 每一个JAVA程序员都应该怀揣一个架构师的梦,这样你的职业发展前景一片大好...
  16. “王者荣耀”与大数据平台的产品化思想
  17. 《复联3》的幕后有一位来自中国的角色技术指导!
  18. mongorepository查询条件_mongorepository分页条件查询
  19. MQ实现DEMO-入门
  20. 记录一下:Java 汉字获取拼音或首字母工具类

热门文章

  1. gitbook新版本 build命令导出的html不能跳转?
  2. 易维帮助台:论工业产品售后服务升级转型的正确打开姿势
  3. 二十四种设计模式:访问者模式(Visitor Pattern)
  4. Android内存泄漏
  5. 自己写的 根据编码搜索文件的小工具
  6. 战痕————道具系统介绍
  7. 用Python模拟浏览器操作
  8. 拔号×××与站点×××的配置
  9. Farseer:一个用于Silverlight和XNA的开源物理引擎
  10. Linux使用locate命令查找,Linux如何使用locate命令查找数据(2)