机器学习中模型优化不得不思考的几个问题

本文根据美团点评算法工程师胡淏4月22日在“携程技术沙龙”上的分享整理而成。文字综合了“携程技术中心”微信公众号的版本和胡淏本人在微博上发表的文章,并有少量编辑加工。

图1 机器学习工程师的知识图谱

图1列出了我认为一个成功的机器学习工程师需要关注和积累的点。机器学习实践中,我们平时都在积累自己的“弹药库”:分类、回归、无监督模型、Kaggle上面特征变换的黑魔法、样本失衡的处理方法、缺失值填充……这些大概可以归类成模型和特征两个点。我们需要参考成熟的做法、论文,并自己实现,此外还需要多反思自己方法上是否还可以改进。如果模型和特征这两个点都已经做得很好了,你就拥有了一张绿卡,能跨过在数据相关行业发挥模型技术价值的准入门槛。

在这个时候,比较关键的一步,就是高效的技术变现能力。所谓高效,就是解决业务核心问题的专业能力。本文将描述这些专业能力,也就是模型优化的四个要素:模型、数据、特征、业务,还有更重要的,就是它们在模型项目中的优先级。

项目推进过程中,四个要素相互之间的优先级大致是:业务>特征>数据>模型。

图2 四要素解决问题细分+优先级

一个模型项目有好的技术选型、完备的特征体系、高质量的数据一定是很加分的,不过真正决定项目好与坏还有一个大前提,就是这个项目的技术目标是否在解决当下核心业务问题。

业务问题包含两个方面:业务KPI和deadline。举个例子,业务问题是在两周之内降低目前手机丢失带来的支付宝销赃风险。这时如果你的方案是研发手机丢失的核心特征,比如改密是否合理,基本上就死的很惨,因为两周根本完不成,改密合理性也未必是模型优化好的切入点;反之,如果你的方案是和运营同学看bad case,梳理现阶段的作案通用手段,并通过分析上线一个简单模型或者业务规则的补丁,就明智很多。如果上线后,案件量真掉下来了,就算你的方案准确率很糟、方法很low,但你解决了业务问题,这才是最重要的。

虽然业务目标很关键,不过一般讲,业务运营同学真的不太懂得如何和技术有效的沟通业务目标,比如:

  1. 我们想做一个线下门店风险评级的项目,希望运营通过反作弊模型角度帮我们给门店打个分,这个分数包含的问题有:风险是怎么定义的、为什么要做风险评级、更大的业务目标是什么、怎么排期的、这个风险和我们反作弊模型之间的业务关系你是怎么看的?

  2. 做一个区域未来10min的配送时间预估模型。我们想通过运营的模型衡量在恶劣天气的时候每个区域的运力是否被击穿(业务现状和排期?运力被击穿可以扫下盲么?运力击穿和配送时间之间是个什么业务逻辑、时间预估是刻画运力紧张度的最有效手段么?项目的关键场景是恶劣天气的话,我们仅仅训练恶劣天气场景的时间预估模型是否就好了?)。

为了保证整个技术项目没有做偏,项目一开始一定要和业务聊清楚三件事情:

  1. 业务核心问题、关键场景是什么。
  2. 如何评估该项目的成功,指标是什么。
  3. 通过项目输出什么关键信息给到业务,业务如何运营这个信息从而达到业务目标。

项目过程中,也要时刻回到业务,检查项目的健康度。

要说正确的业务理解和切入,在为技术项目保驾护航,数据、特征便是一个模型项目性能方面的天花板。garbage in, garbage out就在说这个问题。

这两天有位听众微信问我一个很难回答的问题,大概意思是,数据是特征拼起来构成的集合嘛,所以这不是两个要素。从逻辑上面讲,数据的确是一列一列的特征,不过数据与特征在概念层面是不同的:数据是已经采集的信息,特征是以兼容模型、最优化为目标对数据进行加工。就比如通过word2vec将非结构化数据结构化,就是将数据转化为特征的过程。

所以,我更认为特征工程是基于数据的一个非常精细、刻意的加工过程。从传统的特征转换、交互,到embedding、word2vec、高维分类变量数值化,最终目的都是更好的去利用现有的数据。之前有聊到的将推荐算法引入有监督学习模型优化中的做法,就是在把两个本不可用的高维ID类变量变成可用的数值变量。

观察到自己和童鞋们在特征工程中会遇到一些普遍问题,比如,特征设计不全面,没有耐心把现有特征做得细致……也整理出来一套方法论,仅供参考:

图3 变量体系、研发流程

在特征设计的时候,有两个点可以帮助我们把特征想的更全面:

  1. 现有的基础数据。
  2. 业务“二维图”。

这两个方面的整合,就是一个变量的体系。变量(特征),从技术层面是加工数据,而从业务层面实际在反应RD的业务理解和数据刻画业务能力。“二维图”,实际上未必是二维的,更重要的是我们需要把业务整个流程抽象成几个核心的维度,举几个例子:

外卖配送时间业务(维度甲:配送的环节,骑手到点、商家出餐、骑手配送、交付用户;维度乙:颗粒度,订单粒度、商家粒度、区域城市粒度;维度丙:配送类型,众包、自营……)。

反作弊变量体系(维度甲:作弊环节,登录、注册、实名、转账、交易、参与营销活动、改密……;维度乙:作弊介质,账户、设备、IP、WiFi、银行卡……)。

通过这些维度,你就可以展开一个“二维图”,把现有你可以想到的特征填上去,你一定会发现很多空白,比如下图,那么哪里还是特征设计的盲点就一目了然:

图4 账户维度在转账、红包方面的特征很少;没有考虑WiFi这个媒介;客满与事件数据没考虑

数据和特征决定了模型性能的天花板。deep learning当下在图像、语音、机器翻译、自动驾驶等领域非常火,但是deep learning在生物信息、基因学这个领域就不是热词:这背后是因为在前者,我们已经知道数据从哪里来,怎么采集,这些数据带来的信息基本满足了模型做非常准确的识别;而后者,即便有了上亿个人体碱基构成的基因编码,技术选型还是不能长驱直入——超高的数据采集成本,人后天的行为数据的获取壁垒等一系列的问题,注定当下这个阶段在生物信息领域,人工智能能发出的声音很微弱,更大的舞台留给了生物学、临床医学、统计学。

图5 满房开房的技术选型、特征工程roadmap

模型这件事儿,许多时候追求的不仅仅是准确率,通常还有业务这一层更大的约束。如果你在做一些需要强业务可解释的模型,比如定价和反作弊,那实在没必要上一个黑箱模型来为难业务。这时候,统计学习模型就很有用,这种情况下,比拼性能的话,我觉得下面这个不等式通常成立:Glmnet>LASSO>=Ridge>LR/Logistic。相比最基本的LR/Logistic,ridge通过正则化约束缓解了LR在过拟合方面的问题,lasso更是通过L1约束做类似变量选择的工作。

不过两个算法的痛点是很难决定最优的约束强度,Glmnet是Stanford给出的一套非常高效的解决方案。所以目前,我认为线性结构的模型,Glmnet的痛点是最少的,而且在R、Python、Spark上面都开源了。

如果我们开发复杂模型,通常成立第二个不等式RF(Random Forest,随机森林)<=GBDT<=XGBoost。拿数据说话,29个Kaggle公开的winner solution里面,17个使用了类似GBDT这样的Boosting框架,其次是DNN(Deep Neural Network,深度神经网络),RF的做法在Kaggle里面非常少见。

RF和GBDT两个算法的雏形是CART(Classification And Regression Trees),由L Breiman和J Friedman两位作者在1984年合作推出。但是在90年代在发展模型集成思想the ensemble的时候,两位作者代表着两个至今也很主流的派系:stacking/ Bagging & Boosting。

一种是把相互独立的CART(randomized variables,bootstrap samples)水平铺开,一种是深耕的Boosting,在拟合完整体后更有在局部长尾精细刻画的能力。同时,GBDT模型相比RF更加简单,内存占用小,这都是业界喜欢的性质。XGBoost在模型的轻量化和快速训练上又做了进一步的工作,也是目前我们比较喜欢尝试的模型。

胡淏,美团算法工程师,毕业于哥伦比亚大学。先后在携程、支付宝、美团从事算法开发工作。了解风控、基因、旅游、即时物流相关问题的行业领先算法方案与流程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【美团语音交互部】 NLP/知识图谱/语音识别等算法职位开放招聘!

致力于连接最靠谱的算法岗与最强的求职者招聘贴投放请联系微信xixiaoyao-1部门介绍&#xff1a;语音交互部负责美团语音和智能交互技术及产品研发&#xff0c;面向美团业务和生态伙伴&#xff0c;提供对语音和口语数据的大规模处理及智能响应能力。团队以建设业界一流的语音交互…

LeetCode 289. 生命游戏(位运算)

文章目录1. 题目2. 解题2.1 复制数组解法2.2 原地解法2.3 位运算1. 题目 链接&#xff1a;289. 生命游戏 2. 解题 2.1 复制数组解法 很简单&#xff0c;按照题意模拟即可 class Solution { public:void gameOfLife(vector<vector<int>>& board) {if(board…

论文浅尝 | S3QLRDF: 用于大规模RDF数据分布式SPARQL查询的关系分割架构

笔记整理 | 孙磊&#xff0c;天津大学硕士。动机RDF形式的语义网的繁荣对高效、可伸缩以及分布式的存储和高可用和容错并行策略都有着要求。RDF数据的飞速增长提升了在分布式数据管理系统上高效划分策略的需求来提升SPARQL查询性能。亮点本文提出了新的用于RDF的关系分割架构Pr…

美团DSP广告策略实践

近年来&#xff0c;在线广告在整个广告行业的比重越来越高。在线广告中实时竞价的广告由于其良好的转化效果&#xff0c;占有的比重逐年升高。DSP&#xff08;Demand-Side Platform&#xff09;[1]作为需求方平台&#xff0c;通过广告交易平台&#xff08;AdExchange&#xff0…

推荐几个出论文的好方向

如果你准备发AI方向的论文&#xff0c;或准备从事科研工作或已在企业中担任AI算法岗的工作。那么我真诚的向大家推荐&#xff0c;贪心学院《高阶机器学习研修班》&#xff0c;目前全网上应该找不到类似体系化的课程。课程精选了四大主题进行深入的剖析讲解&#xff0c;四个模块…

LeetCode 414. 第三大的数

1. 题目 给定一个非空数组&#xff0c;返回此数组中第三大的数。如果不存在&#xff0c;则返回数组中最大的数。要求算法时间复杂度必须是O(n)。 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1.示例 2: 输入: [1, 2] 输出: 2 解释: 第三大的数不存在, 所以返回最大的…

论文浅尝 - ICLR2021 | BERTology 遇上生物学:在蛋白质语言模型中解释注意力

来源&#xff1a;ICLR2021链接&#xff1a;https://arxiv.org/abs/2006.15222v3一.动机Transformer架构已经被证明可以学习有用的蛋白质分类和生成任务表示。然而&#xff0c;在可解释性方面存在挑战。二.亮点本文通过attention分析蛋白质Transformer模型&#xff0c;通过atten…

Vuex框架原理与源码分析

Vuex是一个专为Vue服务&#xff0c;用于管理页面数据状态、提供统一数据操作的生态系统。它集中于MVC模式中的Model层&#xff0c;规定所有的数据操作必须通过 action - mutation - state change 的流程来进行&#xff0c;再结合Vue的数据视图双向绑定特性来实现页面的展示更新…

在错误的数据上,刷到 SOTA 又有什么意义?

文 | Severus编 | 小轶小编注&#xff1a;前段时间&#xff0c;小屋介绍了吴恩达老师近期发起的以数据为中心的 AI 竞赛&#xff08;参见《吴恩达发起新型竞赛范式&#xff01;模型固定&#xff0c;只调数据&#xff1f;&#xff01;》&#xff09;。吴恩达老师认为&#xff1a…

论文浅尝 | BoxE:一种基于Box的知识图谱表示学习模型

笔记整理 | 耿玉霞&#xff0c;浙江大学直博生。研究方向&#xff1a;知识图谱&#xff0c;零样本学习等。论文链接: https://arxiv.org/pdf/2007.06267.pdf本文是发表在NeurIPS 2020上的一篇基于Box的知识图谱表示学习模型的文章。在以往知识图谱表示学习&#xff08;KG Embe…

LeetCode 127. 单词接龙(图的BFS/双向BFS)

文章目录1. 题目2. 图的BFS解题2.1 单向BFS2.2 双向BFS &#xff01;厉害了1. 题目 给定两个单词&#xff08;beginWord 和 endWord&#xff09;和一个字典&#xff0c;找到从 beginWord 到 endWord 的最短转换序列的长度。 转换需遵循如下规则&#xff1a; 每次转换只能改变…

Leaf——美团点评分布式ID生成系统

在复杂分布式系统中&#xff0c;往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中&#xff0c;数据日渐增长&#xff0c;对数据分库分表后需要有一个唯一ID来标识一条数据或消息&#xff0c;数据库的自增ID显然不能满足…

@开发者,第二届马栏山杯国际音视频算法大赛高分攻略请查收,心动大奖等你来战!...

一秒让墙上的广告消失&#xff0c;保留完整墙面&#xff1b;户外大屏幕显示LOGO被擦除后&#xff0c;背景毫不违和……欢迎来到魔法世界——停&#xff01;这其实并不是什么魔法&#xff0c;而是由弗吉尼亚理工大学提出的基于流的视频补全算法FGVC的一项应用。作为视频的“橡皮…

论文小综 | Attention in Graph Neural Networks

作者 | 方尹、杨海宏&#xff0c;浙江大学在读博士&#xff0c;主要研究方向为图表示学习近年来&#xff0c;图卷积神经网络(Graph Convolutional Network, GCN)利用图卷积从图结构数据中提取特征&#xff0c;成功应用于节点分类、图分类、链接预测等任务&#xff0c;用途广泛。…

LeetCode 126. 单词接龙 II(图的BFS)

1. 题目 给定两个单词&#xff08;beginWord 和 endWord&#xff09;和一个字典 wordList&#xff0c;找出所有从 beginWord 到 endWord 的最短转换序列。 转换需遵循如下规则&#xff1a; 每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。 说明: 如果…

外卖订单量预测异常报警模型实践

外卖业务的快速发展对系统稳定性提出了更高的要求&#xff0c;每一次订单量大盘的异常波动&#xff0c;都需要做出及时的应对&#xff0c;以保证系统的整体稳定性。如何做出较为准确的波动预警&#xff0c;显得尤为重要。 从时间上看&#xff0c;外卖订单量时间序列有两个明显的…

聊一聊“超大模型”

文 | 金雪锋源 | 知乎最近经常被问&#xff0c;你看“万亿的模型都出来了&#xff0c;你们训练的千亿模型是不是落伍了&#xff1f;”我想说&#xff1a;“虽然都叫超大模型&#xff0c;但是类型是不一样的&#xff0c;虽说每一类模型训出来都不容易&#xff0c;不过澄清一下概…

技术动态 | 不确定性知识图谱的表示和推理

本文转载自漆桂林知乎。作者 | 张嘉韬、漆桂林、吴天星文章链接 | https://zhuanlan.zhihu.com/p/369068016

LeetCode 665. 非递减数列(双指针)

1. 题目 给定一个长度为 n 的整数数组&#xff0c;你的任务是判断在最多改变 1 个元素的情况下&#xff0c;该数组能否变成一个非递减数列。 我们是这样定义一个非递减数列的&#xff1a; 对于数组中所有的 i (1 < i < n)&#xff0c;满足 array[i] < array[i 1]。…

数据还是模型?人类知识在深度学习里还有用武之地吗?

文 | Severus编 | 小戏近些年来&#xff0c;随着数据量越来越多&#xff0c;算力价格越来越便宜&#xff0c;根植于数据算力的深度学习茁壮成长。在这种背景下&#xff0c;作为一种强有力的表示学习方法的深度学习让人们惊讶的发现&#xff0c;只要投喂足够多的数据&#xff0c…