2024年,算法工程师必备的能力是什么?

推荐业务影响模型表达的case

在feeds流排序推荐模型训练中,算法工程师要做的很重要的一步就是校验数据的有效性,我就业务过程中踩到过的,数据源层面可能会影响最终点击率的坑:

  • 正/负样本错判:

多内容展示无尽流场景下用户下滑的时候,有些情况会导致在展示时,有些内容/商品只在底部露了一个头,没有完全进入用户视角内。这时候用户切换了界面,如果不做任何处理的话,这个样本就成为了“曝光未点击”的负样本,会对训练过程产生一些偏置。

  • 不一致问题:

如果训练的模型表和特征表没有部署在同一个节点下,或者因为其他的原因更新出现了时间上的差异,那么这段时间的推荐结果数据就出现不一致导致的异常。

整体来说,算法工程师建模和模型优化能力确实很重要,某种意义上来说顶会论文发表证明有优秀的模型能力和英文表达能力。但是在工作中,一名优秀的算法工程师,也需要具备数据分析能力,和代码工程能力,从而能够在实际应用中发挥对应模型的上限。

02

淘系技术部 | 算法技术 琦舞

“除了必备的工程能力,一个合格的算法工程师必须要有业务owner和产品的视角“

我从事推荐算法行业五年左右,当年侥幸入行。现就职于阿里巴巴首页猜你喜欢推荐算法团队,身边有一群特别优秀的同事,他们每个人的业务和技术都十分出彩。自职业生涯伊始,我身边不乏有一群优秀的伙伴。

他们大致可以分为两种,一种热爱技术,热爱代码,热爱钻研,热爱算法,擅于将现实业务问题抽象成算法模型,对代码和算法情有独钟;另外一种情商高,擅长管理,对下的疏通和对上的汇报都极其出色,很快就做到了管理层,这种需要有一定的机遇和智慧,我身边多数人属于第一种。

聊聊工程能力的重要性

拿舞蹈来举例,如果我们把算法训练出的模型比作一支成品舞,那么工程能力就是舞蹈基本功。如果完全没有练习过基本功,或者基本功差,手脚不协调,通过努力,你也可以学会这支成品舞,但却离艺术和美感度相差甚远。如果基本功非常扎实,那么你学任何一支新舞,皆是水到渠成自然而然之事。如果你工程能力很强,基本功扎实,在工作过程中需要解决一些实际问题时,便可以很快上手解决,理论和实践之间,就差一双手。

聊聊工作中必备的工程能力。(一个算法工程师不会写代码,正如一个裁缝不会裁剪。)

一名合格的算法工程师必须要具备的工程能力:

  1. debug。快速定位问题的能力十分宝贵。这点是最重要的。

  2. python、java、c++等,这三种编程语言很重要,使用的频次从高到低。模型离线训练时需要用到python(无论是tensorflow还是pytorch框架),线上serving或者实现定制化的算法策略时,一般用java实现,线上Query predict服务一般用c++实现。

  3. 推荐多看一些优秀的语言类书籍,对自己编程习惯的养成很有帮助,多看书多思考多写代码多实践,代码肯定会越来越6的。后面我会写一个专题,与大家分享对我有帮助的一些算法/语言类技术书籍。

  4. hive sql。这是工作中使用频次很高的语言,我们都是sql boy/sql girl。

  5. shell、Awk等。快速处理数据以及调用一些python、java脚本时,经常会用到。

  6. scala:在我工作的前几年用spark比较多,训练非深度模型很方便,与hive sql的交互也十分方便。

  7. 对分布式框架的理解。这个非常重要。比如tensorflow框架中的ps/worker/chief是怎么协同工作的,参数更新在哪里,模型训练在哪里?

除了必备的工程能力,一个合格的算法工程师,并不仅仅是算法工程师,他必须要有业务owner和产品的视角。

有些时候,算法效果提升遇到瓶颈时,不妨想想,从用户角度出发,从产品层面出发,是否还有更好的切入点。我们也应该深入思考业务运行机制,从投放供给端,通过冷启,到召回,到粗排,到精排,最后到排序机制,哪个链路都有可能出问题,哪个链路都有优化点,所以说,一个全栈全链路的算法工程师是稀缺的人才。供给/召回/精排/机制的联动优化,才有可能使线上效果取得质的飞跃。

一个优秀的算法工程师,既可以玩转模型,又对产品有独到的见解和思考。比如信息流推荐场景的优化,当你作为一个真实的用户去体验推荐视频流时,就会很容易发现一些产品或者系统层面的问题,然后再回归到算法,用技术手段或与产品合作去解决这些问题。只有这样,公司的产品才有可能越做越好,算法优化的天花板才会越来越高。

03

淘系技术部 | 算法技术初类

“对一名有技术追求的算法工程师而言,一定要保持一颗好学的心。“

本科4年,计算机专业,主要是入门计算机领域、接触了C++和python等编程语言;硕士3年,计算机专业,主要是入门机器学习和深度学习算法(图像识别方向);现为淘系技术部的一名算法工程师(应用算法),入职时间约为600+天,主要涉及的算法是销量预估和人群选品。我们是一支离业务非常近的算法团队,核心定位是“业务认知top1,沉淀差异化的技术壁垒”。也就是说,我们的算法策略在很大一定程度上决定了业务结果。

我从事推荐算法行业五年左右,当年侥幸入行。现就职于阿里巴巴首页猜你喜欢推荐算法团队,身边有一群特别优秀的同事,他们每个人的业务和技术都十分出彩。自职业生涯伊始,我身边不乏有一群优秀的伙伴。

从一名紧密贴近业务的算法工程师来回答该问题,观点如下:

业务认知&问题定位

首先要清楚你所要解决的问题是什么,是否需要复杂的算法求解。问题的定义来源于你对业务的认知和理解。我们经常陷入一种误区,觉得自己是一名算法工程师,遇到任务问题都想要用复杂的算法去求解。正所谓一顿操作猛如虎,得来的效果却很一般。因此,做事之前一定要在理解业务的基础上,把问题定位清楚,用合适的方法求解。

数据挖掘&分析

深度学习的应用能够突飞猛进的一个重要原因就是大数据的支撑。当前获取数据的成本很低,而数据清理和挖掘的成本很高,但非常重要。数据是模型的输入,是模型能够拟合的上限。在入模之前,你需要花一定的精力用于数据工作,这是必要也是值得的。因此,掌握数据能力也是一名算法工程师的必经之路。

算法策略

这是每位算法工程师的硬实力,有了清晰的问题和可用的数据后,我们需要选择合适的算法策略求解问题。就销量预估而言,由于特征大部分都是表格型,树模型及其变体成为首选的方案。通过树模型,你能够快速拿到一个不错的baseline。但千万不要停滞不前,你需要调研更多的先进的方案进行优化,即使此时能够拿到的收益不多,但请坚持专研的精神(近期时序模型中,热度很高的informer值得尝试)。此外,“人工智能,有多少人工就有多少智能”这句话在实际应用领域体现得淋漓尽致。策略也属于算法的一部分,人工策略有时候能够带来很大的受益,也能够找到更适合的算法优化方向。例如,我们在优化首猜的货品池时,考虑到首猜目前的推荐算法已经非常优秀了,但消费者的成交来源主要是搜索,我们通过人工分析选择了做增量货品供给的方式,拿到了不错的业务效果。基于此,我们也找到了更合适的选品算法优化方向。

离线实验和线上AB实验

实验是验证理论的最佳手段,也是最具有说服力的。我们需要找到几个合适的指标进行优化,并且要保证离线效果跟线上效果没有太大的gap。例如,销量预估领域主要用到的指标有WMAPE,结合选品业务的指标有topk商品的召回率。离线实验得到优化后,还需要到线上进行严格的AB Test。此时,我们就拿到了一个完整的实验及其结论。通过不断地迭代优化,沉淀各种优质的算法策略。

领域前沿论文

对一名有技术追求的算法工程师而言,一定要保持一颗好学的心。作为打工人,我们可能很难像在校期间投入大量的时间和精力去研究和复现前沿的论文。但一定要谨记,养成跟进前沿技术的习惯,每周至少花一定的时间去看论文,了解科研学者们在做些啥。高质量的论文,能够带来很充足的信息量。

其他

  • 好记性不如烂笔头

及时梳理和总结很重要。组织架构可能会发生调整,导致你的方向发生改变。因此,我们要养成阶段性的总结和沉淀。

  • 勤学好问

身边有很多优秀的小伙伴,跟大家融洽地相处,更多的交流和讨论,这或许会加快我们成长的速度。

  • 参与技术分享

听别人讲,讲给别人听。我们团队有融洽的技术分享氛围,互相分享近期专研的技术。你可以从别人身上学到很多宝贵的经验和知识,也检验自己是否真正了解某项技术。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

image

image

其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
-1712084182218)]

其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值