专栏首页SAMshare我用特征工程+LR超过了xDeepFM!

我用特征工程+LR超过了xDeepFM!

作者:Data Magic

之前对于特征工程的了解知之甚少,后来和杰少,峰少等朋友聊完之后,也自己跑了一些竞赛,深受启发,之前一直认为特征工程是艺术,但现在我个人更倾向于认为它是一门技术,它与模型相辅相成,特征工程要做的事情就是帮助模型,模型预测不好的地方,那么我们人为的用经验或者构建的特征来帮助它,使得模型能把自己做不好的地方能做好。所以特征工程师95%的技术+5%的艺术(很多真的太难想到了)

最近刚好读了一篇我个人也较为感兴趣的自动化特征的文章(第四范式的),文章通过自动化特征的方式结合LR模型使得LR的效果超过了xDeepFM等最新的神经网络效果。虽然不可思议,但是在某种意义上确实是可以做到的,只要特征足够强。好了,闲话不多说,我们直接阅读一下论文吧。

AutoCross: Automatic Feature Crossing for Tabular Data in Real-World Applications

背景

Motivation

交叉特征通过原始特征的cross乘积的向量化构建得到:

c_{i,j,...,k} = vec(f_i \otimes f_j \otimes ... \otimes f_k)

其中是二元特征向量(hash trick之后套one-hot), 向量化一个张量,一个交叉特征也是一个二元特征向量。如果一个交叉特征使用三个或者更多的原始特征,我们就用高阶的交叉特征来表示它。

基于search的生成方法使用明显的搜索策略来构建特征集合的有用特征,大量的此类方法专注于数值特征并且没有产出交叉特征。

一方面,基于搜索的特征生成方法采用显式搜索策略来构造有用的特征或特征集。许多这样的方法集中于数值特征,而不产出交叉特征。对于现有的特征交叉方法,它们没有被设计成执行高阶特征交叉,因此效率低下。

方案

在这一块,我们详细地看一下AutoCross的算法。

问题定义

我们假设所有的原始特征都是类别的,数据被表示为Multi-field的类别形式,其中每个field是一个从encoding得到的二元向量,给定训练数据, 我们将其划分为子训练集以及一个验证集合,我们用特征集合表示,用学习算法学习一个模型, 我们使用相同的特征集合验证集并计算一个metric, 最终我们就尝试最优化:

我们定义特征交叉问题为:

max_{\mathcal{S} \subseteq A(\mathcal{F}) } \mathcal{E}(\mathcal{L}(\mathcal{D}_{tr}, \mathcal{S}), \mathcal{D}_{vld}, \mathcal{S} )

其中

  • 为原始特征集合;
  • 为原始特征集合和从中产出的可能的交叉特征;

特征集合产出

card(A(\mathcal{F})) = \sum_{i=1}^d C(d,k) = 2^d - 1

所有可能特征集合的数目为:, 这个几乎是无法接受的。所以此处我们使用迭代构建局部最优特征子集的方式来贪心挖掘特征。

我们将两个特征和的交叉表示为, 成对特征的交叉就会产出更加高阶的特征。新的空间考虑中所有可能的特征交叉,同时忽略它的部分子集,搜索一个特征集合等价于从根节点到一个特定节点识别出一条路径。

这可以通过不断加入交叉特征到一个维护的特征集合中,但是,的大小是,其中是生成交叉特征的最大数。所以枚举出所有可能的解也是非常昂贵的。此处我们使用beam search的策略来解决该问题。

beam search的思想:在搜索过程中只扩展最有前途的节点。首先生成根节点的所有子节点,评估其对应的特征集,然后选择性能最好的节点进行下一次访问。在接下来的过程中,我们扩展当前节点并访问其最有希望的子节点。当过程终止时,我们在一个被认为是解决方案的节点处结束.

通过beam search,我们只性需要考虑的节点。

特征集的评估

为了提升模型的评估效率,本文提出了field-wise LR以及连续的mini-batch GD档案。

1. field-wise LR

此处有两种假设:

  1. 我们做了两个近似值。首先,我们使用经过小批量梯度下降训练的logistic回归(LR)来评估候选特征集,并用相应的性能来近似实际跟踪的学习算法L的性能。我们选择logistic回归作为一种广义线性模型,是大规模机器学习中应用最广泛的模型。它具有简单、可扩展、推理速度快、可解释性强等特点;
  2. 在模型训练的时候,我们仅仅学习新增加的交叉特征的权重,其他的权重则被固定。所以训练时“filed-wise”的。举例来说,我们有一个特征集合, 我们希望对候选集进行评估,在训练的时候只有AB的权重会被更新,我们用进行表示,表示之前所有特征,是新增加的交叉特征;他们对应的权重为:, LR会做下面的预测:
p(y=1|x) = s(w^Tx) = s(w_s^Tx_s + w_c^Tx_c) = s(w_c^Tx_c + b_{sum})

其中为sigmoid函数。更新的框架如下:

它的优势如下:

  • 存储,workers只需要存储和;
  • 计算速度:快速,因为我们只需要更新;

2. Successive Mini-batch Gradient Descent

预处理

在数据预处理处,我们使用离散化的策略对数据进行预处理方便后续的特征交叉。为了使离散化过程自动化,避免对专家的依赖,提出了一种多粒度离散化方法,详细地可以参考下图:

终止

AutoCross使用了三种终止条件:

  • 运行时条件:用户可以设置AutoCross的最大运行时间。当时间流逝时,AutoCross终止输出当前解决方案。另外,用户可以随时中断该过程并得到时间的结果;
  • 性能条件:在生成新的特征集后,用LR模型的所有特征进行训练。如果与前一组相比,验证性能下降,则终止验证过程;
  • 最大特征数:用户可以给出一个最大交叉特征数,当达到该数目时自动交叉停止;

实验

1. 效果比较

  • AC+LR和AC+W&D都比LR(base)有显著的改善,AC+W&D也显著提高了deep模型的性能。
  • 这些结果表明,通过生成交叉特征,AutoCross可以使数据更具信息性和区分性,并提高学习性能。AutoCross取得的有希望的结果也证明了filed-wise LR识别有用交叉特征的能力

2. 高阶特征的影响

  • 高阶特征能为模型带来非常不错的提升。

3. 模型的速度和预测时间

  • 模型的特征交叉速度很快;
  • 模型的预测速度相较于神经网络也快了很多;

结论

本文介绍了AutoCross,一种在实际应用中用于表格数据的自动特征交叉方法。它捕捉分类特征之间的有用交互作用,并提高学习算法的预测能力。它利用beam-search来高效地构造交叉特征,从而可以考虑到高阶特征交叉,而这是现有研究中尚未涉及到的。此外,本文提出了连续的小批量梯度下降和多粒度离散化方法,在保持高度简单性的前提下,进一步提高了效率和效率。所有的算法都是为分布式计算而设计的,用于处理现实世界中的大数据。实验结果表明,AutoCross可以显著增强表格数据的学习能力,优于其他基于搜索和基于深度学习的针对同一主题的特征生成方法。

参考文献

  1. AutoCross: Automatic Feature Crossing for Tabular Data in Real-World Applications:https://arxiv.org/pdf/1904.12857.pdf

本文分享自微信公众号 - SAMshare(gh_8528ce7b7e80),作者:Data Magic

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-12-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • KDD 2019 | 自动探索特征组合,第四范式提出新方法AutoCross

    论文:AutoCross: Automatic Feature Crossing for Tabular Data in Real-World Applicat...

    机器之心
  • 双DNN排序模型:在线知识蒸馏在爱奇艺推荐的实践

    近年来随着人工智能的发展,深度学习开始在工业界不同场景落地。深度学习跟以前的机器学习模型相比,其中很重要的特点就是在于能在模型侧自动构建特征,实现端到端学习,效...

    week
  • CTR神经网络特征交叉汇总!

    本篇文章把之前一个月学习的网络特征交叉的文章结合自己平时实践的经验梳理一遍,方便今后学习回顾。

    炼丹笔记
  • XDeepFM 模型,字节跳动短视频内容理解和推荐系统

    一图胜千言,仅一张图片就包含大量信息,难以用几个词来描述,更何况是短视频这种富媒体形态。面对短视频内容理解的难题,字节跳动作为一家拥有海量短视频素材和上亿级用户...

    机器学习AI算法工程
  • 搜推实战-味道渐浓!

    此处我们假设模型训练的大的框架已经固定,同时数据采样的方式也基本已经确定,接下来就是对模型结构进行深入的优化。关于模型结构的优化这块几乎是做不完的做不完的,从最...

    炼丹笔记
  • 深入理解推荐系统:特征交叉组合模型演化简史

    深入理解推荐系统:Fairness、Bias和Debias​mp.weixin.qq.com

    Coggle数据科学
  • ​大厂技术实现 | 腾讯信息流推荐排序中的并联双塔CTR结构 @推荐与计算广告系列

    双塔模型结构中,左侧是User塔,右侧是Item塔,对应的,我们也可以将特征拆分为两大类:

    ShowMeAI
  • CTR模型越来越"深",如何让它变"轻"?

    看了那么多点击率相关模型论文,就会发现模型越来越深,越来越复杂,目标都是为了显式或隐式的挖掘交互特征。然而,复杂的模型会减慢预测推理的速度,提高了服务延迟和高内...

    炼丹笔记
  • xDeepFM架构理解及实现

    本文主要是为了讲解xDeepFM的框架,及如何用tensorflow去实现主干部分,如果需要直接拆箱可用,可以参考:xDeepFM,我的部分代码也来自于其中,这...

    sladesal
  • 推荐系统遇上深度学习(二十二)--DeepFM升级版XDeepFM模型强势来袭!

    今天我们要学习的模型是xDeepFM模型,论文地址为:https://arxiv.org/abs/1803.05170。文中包含我个人的一些理解,如有不对的地方...

    石晓文
  • 深度模型DNN在个性化推荐场景中的应用

    随着深度神经网络在语音和图像识别上取得的巨大成功,AlphaGo 战胜人类围棋顶尖高手,以深度网络为基础的人工智能迎来第三次高潮。与此同时互联网所面临的信息超载...

    美图数据技术团队
  • CTR学习笔记&代码实现6-深度ctr模型 后浪 xDeepFM/FiBiNET

    xDeepFM用改良的DCN替代了DeepFM的FM部分来学习组合特征信息,而FiBiNET则是应用SENET加入了特征权重比NFM,AFM更进了一步。在看两个...

    风雨中的小七
  • 推荐系统常用算法总结(适合刚入门的同学)

    从推荐算法的理论来讲,主要可以从召回层和排序层两个方面来说,虽然召回层和排序层都是使用算法和模型来做,但是针对于不用的阶段,所用的模型也有一定的差...

    黄鸿波
  • 推荐系统常用算法总结(适合刚入门的同学)

    在推荐系统中,算法要从两个方面来考虑:算法本身准确性和算法的效率。相对算法准确性,推荐系统工程化更关注的是算法效率。算法和模型层面主要包含如图所示。

    博文视点Broadview
  • 推荐收藏 | AutoML 在表数据中的研究与应用

    导读:大家好,今天分享的题目是 AutoML 在表数据中的研究与应用。对于 AutoML,大家听到比较多的可能是神经网络结构搜索 ( NAS,Neural Ar...

    Sam Gor
  • xDeepFM:CTR预估之特征交叉的艺术

    xDeepFM:Combining Explicit and Implicit Feature Interactions for Recommender Sys...

    炼丹笔记
  • 一文梳理2019年腾讯广告算法大赛冠军方案

    作为从本次比赛共157队伍中脱颖而出的冠军方案,评分达到87.9683,从数据清洗、模型构建、目标优化等有非常多值得学习的地方。比赛团队也挺有意思,分别来自哈工...

    Datawhale
  • 竞赛经验 | 一文梳理2019年腾讯广告算法大赛冠军方案

    作为从本次比赛共157队伍中脱颖而出的冠军方案,评分达到87.9683,从数据清洗、模型构建、目标优化等有非常多值得学习的地方。比赛团队也挺有意思,分别来自哈工...

    Sam Gor
  • 读了那么多CTR论文, 真正有效的又有几个呢?

    FuxiCTR: An Open Benchmark for Click-Through Rate Prediction (Arxiv20)

    炼丹笔记

扫码关注云+社区

领取腾讯云代金券