版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法工程师的技术成长今天分享的内容分为以下几个部分,首先Beta阶段可以认为是研究生阶段和算法工程师实习生阶段,接下来是特征调研、在线应用、模型训练。这四个部分是我在算法领域的技术成长中不同阶段的相关工作总结。最后一部分是深度学习,深度学习模型虽是众多模型中的一种,由于最近比较火所以特意专门分享一下。Beta阶段就是在研究所做研究或者去公司实习做模型调研性质工作,主要偏学术,与工业界存在一定差距。这个阶段的一个主要工作是尝试不同的模型。学术界可以尝试使用和改进很多复杂的模型而工业界换模型比较困难,原因有:学术界实验数据一般是固定的,如参加比赛数据是现成的,可以直接使用训练工具或平台训练出模型;工业界面临的问题就是机器有限,数据足够多,很多时候一个简单的模型用足够多的训练数据训练出来的效果不一定比复杂的模型差。还有一个就是时间成本,一般越简单的模型训练时间越短。学术界可能训练一个模型可以用几天,但是工业界很难接受。工业界的问题对模型时效性都有要求。学术界比如比赛过程中评估的标准和模型的目标非常一致,而工业界把模型应用到一个系统中,系统收益的评估标准和模型目标不一定很一致。以广告系统的CTR预估为例。整个广告系统是非常复杂,CTR预估只是其中的一部分。一个简单的广告系统CTR预估越准确,点击率和收入提升也越明显。但是实际系统中CTR预估后有很多后续处理,假设有一些业务对预估CTR的稳定性要求很高可能对CTR预估结果分段处理,CTR预估精度提升并不能带来点击率和收入的明显提升。实际系统中线上换模型,实现是有成本的,因此工业界换模型比较慎重。Beta阶段的工作除了尝试不同的模型外,一个重要的工作就是调参,主要是需要人工设置的超参。超参有模型结构的参数,如LR模型的正则化系数,GBDT模型树的深度和个数;还有优化算法的参数,如学习率、步长等。Beta阶段工作的模型评估的特点是:主要是离线指标,一般不涉及线上应用。实际上离线指标与线上指标差异比较大,离线评估的好,线上不一定好。总结一下:Beta段的工作重点是尝试不同的模型和调参,而实际上工业界的算法工程师的重点并不在这一块,而是数据和特征工程。当前是一个大数据时代,数据是承载信息的载体,大数据特点是数据量大、维度多。大数据常见的处理方式是分布式处理,经常使用的平台有Hadoop、Spark,也可能用到Hive,避免直接写MapReduce。大数据分布式处理是一个算法工程师基本的工作技能,模型训练是有监督的,需要有样本,样本要包含label得到label涉及到的基本操作有拼接,有时候也需要将不同维度的数据拼接到一起。高级处理有去噪、采样、SA算法,因为实际业务数据可能含有大量噪声和具有不平衡的特点。有了大数据处理能力,接下来就是特征调研。这一阶段就是通过增加特征提高模型精度,这一阶段的特点就是要高效,只有为了性能问题才会去删减特征,正常的都是增加特征。加特征要考虑便捷性问题,能改配置文件的尽量别改代码,如果需要改代码要考虑是不是可以简单实现,还有就是代码改动后能够很快的跑出特征,但是现在数据海量,模型训练数据时间周期长,有可能是半月或几个月,所以特征抽取的性能很关键。因此为了方便加特征,一般都会开发一些通用的特征抽取框架,目的就是为了加特征变的很方便。为了高效跑出模型,特征抽取的性能很关键,除了优化特征抽取框架本身的性能和特征抽取过程的性能外,还有一些技巧比如只抽取新增加的特征,然后与基线做一个拼接,这样的好处第一个是快,第二个是避免多次抽取基线特征。多次抽取基线特征会有两个问题:多次抽取不一定抽取的都对,存在一些连续值特征的时候可能不小心特征会抽错;一个团队如果好多人同时做特征调研,每个人都跑出所有的特征,这是对计算资源和存储资源的一种很大的浪费。接下来介绍下特征调研的一些事情,主要是特征设计和特征分类。特征设计没有通用的方法论,特征的设计依赖于对产品的理解。如果不想在特征设计上花费太多时间,简单的方法就是引入更多的数据,还有就是利用端到端的深度学习去学习进行特征设计,但是它不能完全取代特征设计,有时还是需要人工进行特征组合。特征分类有连续值和离散值,大数据中大部分数据(比如IP、操作系统、机型)是离散的,因此离散模型在工业界较多,如LR模型、FM等。特征分类也可以分成单边特征和组合特征,单边特征就是一些原始字段,组合特征就是多个维度去组合。刚开始做特征调研由于特征较少不会去做特征选择,但是随着特征增多必然会删减特征。特征选择分为两类,一种是删掉一些特征类;第二种就是特征值的选择,就是特征类不变,删除无用的特征值:有两种方法,一种是模型的正则化,这类方法坏处就是训练完才知道特征无用,还有一种方法是训练前,如Fea-G算法,以及基于新特征过滤的方法。训练出模型后应用到线上,如果算法工程师生成一个模型后不管了,生成的是一些模型文件,这对算法工程师成长是不利的,算法工程师对整个系统的影响也是无法控制的。模型优化没有带来产品指标的提升不一定是模型的问题,有可能是应用出问题。常见的问题第一个就是一致性问题,最严格的就是打分一致性。但是有时并不一定能完全实现,比如预测的时候只能用请求的时间,可能训练的时候用的是曝光的时间;还有就是位置,预测的时候还不知道位置。特征一致性就是模型训练的特征和在线打分的特征要一致,正常情况下绝大部分特征是要做到离线和在线一致的。还有一种一致性就是离线和在线的AUC的一致性。解决特征一致性最根本的解决方法是在线预测的时候把特征打印出来,离线不再抽取特征,实际中要解决在线打印特征的性能问题。第二个就是关注应用场景,分两点介绍,第一个就是对系统影响有多大,比如CTR预估,从N条素材中选一条,N有多大决定选择的空间。第二个就是预测出的打分如何被使用,如果打分高的排在后面,这种预测越精准效果越差。不同产品要求不同,比如话语权较高的广告商的广告位置变化不能太大,但是CTR预估是不能保证这一点的,这就需要在后续做一些处理。还有一个快速迭代实验也是比较关键的,模型训练上线,要做多个实验,这样能够提高效率,依据你的流量大小看同时能做多少组A/Btest。第一个就是一个业务有很多环节,多个环节是否能并行做实验,因此不能所有的实验都平分百分之百的流量,这样就要分层进行实验。第二个就是要关注上线的实验效率,最好的模式是模型训练后直接修改配置文件就可以上线。第三点就是实验数据的置信度,虽然系统运行能支持并行,效率也很高,但是实验要观察多少时间,数据可不可信。一种简单有效的方法是可以做AA实验,看策略上相同的实验需要观察多长时间数据效果一样。最后就是线上性能问题,第一点就是在线打分性能情况,面临的是一个超时问题,超时一般发生在候选队列很长,竞争激烈,这样意味着都是商业价值高的请求,这种对线上的损失比较严重,因为最有商业价值的流量减少。第二点是模型大部分是单机存储,要关注模型的加载方式。第三点就是模型的更新方式,一个是更新频率,另一个是全量更新还是增量更新。模型训练的数据处理能力和训练速度很重要。海量数据一般是采用分布式训练的方式,实现方法要保证数据量增加了通过增加机器仍然可以训练出模型。第二个就是提高训练速度,以及提高收敛的速度,优化算法有GD、LBFGS等,除了优化算法实际过程中还有一些经验。如模型训练初始权重不要设为0或者随机,基线特征权重不要设为0,利用老的模型能够加快收敛速度和使用更少的历史数据。另外一种方法就是增量训练,只用最新一天的数据,同时注意老数据的衰减。在线训练一定程度降低了资源需求,可以提高模型更新的频率,在实际应用中对模型的时效性都是有要求;简单模型如果更新频率较快也不比复杂模型效果差。学习算法典型的就是FTRL,SOA算法。算法工程师对模型训练工具的开发必须具备定制需求升级能力,你并不需要重新开发一个工具或平台,但在实际应用都需要一些定制需求。深度学习火热的一个原因就是它解决了特征学习的问题,特征挖掘方面比较典型的就有DANOVA算法。深度学习除了可以做各种预估,还可以生成一些向量化的东西,隐层输出可以是User/Ad/Doc/Image的矢量化vector,这个可以用到召回阶段,还可以做聚类。如果映射的vector在空间都可比,应用场景会更广。在实际应用中DNN也会遇到各种问题,常见的就是在线打分性能问题,在线预测可以看成是一个矩阵运算;还有一个就是其收益不一定很大,DNN模型复杂,但是需要足够的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合伙人技术入股协议书合同
- 大班音乐《小白船》课件
- 2024年辽宁驾驶员客运从业资格证考试题及答案
- 2024年重庆2024年客运从业资格证考试试题
- 2024【房屋拆除合同范本】建筑拆除合同范本
- 2024职工食堂承包合同范本
- 2024家居工程装修合同范本
- 2024农村水库承包合同书
- 2024项目投资咨询合同版
- 深圳大学《游泳俱乐部》2023-2024学年第一学期期末试卷
- DB31-T 540-2022 重点单位消防安全管理要求
- 儿化音变课件
- 国家开放大学《传感器与测试技术》实验参考答案
- NY∕T 3349-2021 畜禽屠宰加工人员岗位技能要求
- 工程造价司法鉴定实施方案
- 材料成型工艺基础习题答案
- 剧本写作课件
- 计算方法第三章函数逼近与快速傅里叶变换课件
- 五年级上册英语课件-Unit7 At weekends第四课时|译林版(三起) (共13张PPT)
- 2022年秋新教材高中英语Unit2SuccessTheImportanceofFailure教案北师大版选择性必修第一册
- 初三九年级青骄第二课堂期末考试题及参考答案
评论
0/150
提交评论