导读:在这篇文章中,咱们阐述进行有效的数据产品开发的关键要素。数据产品都是算法工程师们开发出来的,咱们就从算法工程师的算法水平开始聊聊。
最近两年,我一直跟IT公司里面的算法工程师们一块儿工做,本身也算一名算法工程师,也面试过各个级别的算法工程师。来了IT公司以后,我刚开始面临的一个很大的问题,短期内很难看清楚申请人真实的算法水平。主要难点有两个:面试
这两个难点就是短期内,没有一个可信的标准来衡量对方的算法水平。算法
我在学界作了快20年的研究,培养了一批人才,一部分人去了学术界(NYU,UNC,Emory,UoT,Purdue,Yale,UoA,FSU等),另外一部分人去了工业界(像Uber,DiDi,高盛等)。在我实验室的几年中,他们都是跟我一块儿研究某个应用场景内的一些有意思的问题,收集和/或处理相关数据,设计各类算法,与推导相关的理论。在学界中,我也面试了许多青年才俊们,主要看他们的推荐信,发表的文章,与面试的交谈和学术演讲。在这种情形下,高水平的文章/专著一直是在学界中找到好工做的必要条件。在顶刊/顶会发表文章的数目以及被引用的次数通常被认为是可信的标准,由于这些地方大部分审稿人的要求都是很是高的,标准基本上就两个:编程
我如今考察面试人的算法水平, 主要是基于面试人经常使用的算法来问以下几个基本问题:安全
许多没有受过严格算法训练的同窗们常常到第二个问题的时候就卡住了。对于中高阶的算法工程师,最好还要有高质量的学术论文/专著或被行业所普遍承认的产品,这些积累反映了他/她对一类问题的深度思考,这就是一种可信的硬性标准。相对应地,在Google的Deepmind工做过几年的同窗,你们通常会认为其实力应该不错,由于Deepmind自己就表明了一个可信的软性标准。一个好的算法团队最好有许多有软硬实力的算法工程师,但问题是高效的数据产品开发到底须要什么样的算法工程师呢?架构
更进一步地,这几年咱们接触了许多算法同窗,每天跟他们一块儿工做,几乎天天都听他们聊各类模型(像X-learner,XG-boost,CNN,Transformer,GCN,U-net等)以及它们的各类技术指标(像AUC,F-score等),最后也说离线和在线的业务指标(像ROI,GMV等)。可是,咱们几乎不可能把他们的算法都拿来跑跑,对全部的算法细节都把关,那咱们如何保证数据产品开发的质量?机器学习
首先,在数据产品开发中,选取好的业务指标是保证数据产品质量最重要的标准,定好合理的业务指标是全部数据产品应用层实现技术落地的核心。函数
其次,在数据产品开发中,咱们要考虑两类技术指标:算法的技术指标和模型的诊断统计量。大部分数据产品都是能够拆解为一系列分类和回归模块的有机组合。工具
有了这些准备,咱们再谈谈在数据产品开发中技术指标和业务指标之间的关系。学习
作好一个数据产品,另外一个重要的是如何有效地把业务指标拆解成各个模块,找到一条清晰的解决思路,依此进行相关的数据建设,算法开发与系统优化。为了达到这点,有两个关键点:测试
在每一个模块的开发中,咱们通常收集一组/几组训练数据集,构建一组模型,用交叉验证法从算法的技术指标和诊断统计量获得反馈,选择模型,改进模型,直到达到必定的准确度。
通常来讲,全部模块上取得好的技术指标不能自动地转化为好的业务指标,这个依赖于对业务指标的有效拆解。拆解好了,一些模块的技术指标作得差点对提高业务的指标影响可能不必定很大,因此作产品的过程当中,咱们必定把整个流程跑通。再找到一些关键模块来优化,可是在必定成本之下,你们仍是都但愿把每一个模块的技术指标作到极致。这个问题是落地最难的点,须要更多的案例来剖析其中的深度。
最后,咱们以阿尔法围棋这个数据产品为例. 它的业务指标就是下赢对手, 它被拆解成四个模块,造成一个完整的系统。
在算法层面上,AlphaGO结合了深度学习,强化学习和蒙特卡洛树搜索法等多个方法,并对这些方法进行了开创性的发展,使其实力有了实质性飞跃,以取得战胜多名世界冠军的记录。这些成果都是来源于AlphaGo团队对指标的高效拆解、高深的算法水平和有效的底层数据建设。
北卡罗来纳大学教堂山分校生物统计学终身教授 ,2018年加入滴滴出行,带领工程师们为滴滴出行平台的运营打造一套双边市场的创新理论和平台。
北卡州立大学统计博士,2018年加入滴滴出行,主要从事统计和机器学习在双边交易市场的研究和应用。
欢迎对大数据底层引擎(如 Spark、Flink 等)有研究和实践经验的工程师/专家加入滴滴大数据架构部,一块儿面对互联网+出行行业的天天万亿级海量数据处理挑战。
投递邮箱 | diditech@didiglobal.com
邮件主题请命名为「姓名+应聘部门+应聘方向」
欢迎关注滴滴技术公众号!
本文由博客群发一文多发等运营工具平台 OpenWrite 发布