写点什么

算法工程师也会遇到 35 岁这道坎么?

  • 2020-05-25
  • 本文字数:3796 字

    阅读完需:约 12 分钟

算法工程师也会遇到35岁这道坎么?

导读 :这个问题其实对于大多数程序员都是适用的,国内的互联网公司,始终奋斗在一线写代码、跑算法模型的工程师实在是太少了。每年的高校毕业生,持续不断地在为这个行业输入更年轻更新鲜的血液,对比 25 岁刚入职更会加班更能吃苦,关键是薪资更便宜的年轻人,35 岁的算法工程师如果只是工龄更长资历更老,将全方位处于劣势。


想要跨过这道坎,要做的就是努力提升自己的相对不可替代性,从初级渐渐往高级的方向走,个人觉得大体可以分 3 个阶段:

01 初级算法工程师

——关键词:高效执行机器——


算法入行的必经之路,所谓的 SQL Boy、调参侠、数据搬运工、炼丹师,都发生在这个阶段。


这个阶段的算法工程师,很多时候都是在和数据打交道。数据漏报、数据重复上报、埋点有误、多方数据统计口径无法对齐、反作弊口径定义和对齐、异常数据检测和排查、数据缺失处理、样本清洗、特征统计加工、线上指标下降问题排查、bad case 归因分析、数据标注…听起来是不是一点都不 fancy?对于一个负责业务落地的一线算法工程师来说,这些数据工作可能占了日常工作的很大一部分时间。


可就是这些一开始被你看不起的各种所谓 dirty job,这些你在实验室和学校接触不到的工业数据实践,这些在 paper、书本和网络永远不会教你的工作,正是你所累积的技术经验和宝贵的财富,它是驱动你往下一层级改造的主动力。作为一个算法工程师,如果从没有在底层有过基础的开发和数据分析的从业经验,将来站在更高层的时候很难作出对团队方向有利的决策。数据决定了模型的上界,特征和算法只是在逼近这个上界。


不了解你的业务数据特点,很难成为一个好的算法工程师。在业务实践中培养锻炼数据 sense,是一个初级算法工程师的必修课之一。


这个阶段的算法工程师,一般面临的业务问题也比较明确,比如提升召回效果、提升线上 ctr / cvr / gmv / 时长、提升搜索相关性、降低 bad case 率等等。这些明确的业务问题背后,在业界包括团队内一般都有比较明确的技术方向,相对应的就是一些比较明确的算法问题,比如信息流的 ctr 预估、用户兴趣建模、广告出价预估、相关性模型、物品召回、图文标签生成等。


这些不同的算法方向根据团队形态不同,往往会分的更加明细,比如召回方向的可能会有专门的团队,落到每个人头上就是负责其中一种召回策略:用户标签召回、行为序列召回、主题召回、双塔模型召回等。做排序模型的有专门的团队,可能是每个场景有专门的人负责,例如首页/频道页/分类页/热门页/子频道页等;也可能是每个方向的模型是专门的人负责,比如 ctr 模型、gmv 模型、时长模型等。机制策略也可能有专门的团队,每个人负责不同的策略方向。


具体业务和技术形态怎么分工,不需要初级算法工程师操心,那是更高层的算法工程师需要规划和操心的事。这个阶段的算法工程师的主要目标,是要使得自己具备能够高效执行具体任务落地的能力,这其中对动手能力的要求是最高的。


业界 XX 会议又又发表了一篇影响力很大的 paper,实验效果宣称 ( chui niu ) 业界最牛;隔壁 XX 公司的 XX 团队又又又发表 ( PR ) 了最新的算法,声称效果提升巨大 ( 可能是 baseline 很低 );著名程序员大型交友网站某 hub 又开源了最新的模型代码,号称在多项任务中吊打当前各种主流模型。于是老大一句话,你去调研下人家怎么做的,回来落地实现下啊。


接下来就是发挥初级算法工程师能力的时候了。看论文、复现模型、跑实验、调参数、魔改网络、效果不好接着调。这个过程其实也是拉开初级算法工程师们能力的时候,有些人只是做到会用工具,调调 api,调调参数改改网络,或者直接 git clone 下载源码编码后改改直接跑,至于能否有效果完全看天,真真是在"炼丹"。最终没效果还要补充一句,论文作者们真的是在吹牛啊,这个算法在我们这里完全没有效果啊。然后换个模型重新炼丹来过。


有些人在这个过程中不断累积经验,尽可能去找这些方法的共性。以 ctr 模型为例,embedding 参数对自己业务数据效果是否敏感、网络层数的深度对效果的影响、不同正则化方法是否 work、bn/ln/dropout 等方法是否有效、当前的特征体系对于高阶特征交叉是否已经刻画足够、attention 到底收益有多大等等。这些如果能从更本质和通用共性的角度去分析总结,大概率在同样的数据分布上可以作为以后的先验判断,经验是可迁移的,不至于在每一次有新的模型出来就去盲目的做尝试。


判断这个阶段的工程师的标准,就是对于一个明确的算法目标,是否具备足够强的执行能力将其落地。初级的落地能力只是快速实现,更加高级和 solid 的落地能力,是能够 know how 的落地,有无效果都能做出比较 solid 的分析,并且能够为以后的迭代优化提供经验。

02 中级算法工程师

——关键词:算法选型和改造能力——


经过了第一阶段之后,对于明确的算法问题已经具备了足够的经验,这个阶段,需要自己根据在这个领域内的技术累积,对已有的算法问题,进行适当的改造和优化。


以用户画像为例,如果是刚搭建的团队,初期可能更多需要搭建的是整个模型框架,和上下游团队协作沟通,以最小的代价迅速搭建起线上可用的基础 baseline。比如最简单的基于统计的方法,根据用户主动行为的物品标签作为用户的统计画像标签,如 24 小时的统计标签作为短期兴趣,30 天的统计标签并做时间衰减作为长期兴趣。这个阶段的算法工程师,如果不顾团队的现状,一上来就想做能够体现技术深度的各种模型,对团队的进展其实是负向的。 确保算法能够快速落地并取得收益才是主要目的。


而团队发展到了一定阶段,有了一定的基础属性画像和统计画像之后,可以根据团队的人力做些深度的发展,从基础的统计,可以做无监督的隐语义理解 ( lda, w2c 等 )、有监督的双塔建模、加入特征的用户兴趣建模,到用户序列建模,甚至各种图方法知识图谱的手段。而具体选择哪些方法进行尝试需要中级算法工程师根据此前在初级阶段累积的经验做预判,例如假如还没有用户 embedding 的表示,将用户的行为序列作为 sentence 尝试在很多公司的业务都有过收益的 word2vec 可以作为 baseline;引入更多特征的双塔模型得到用户的行为 embedding 大概率能进一步提升效果。而如果用户有些社交属性关联,可以考虑图方法做进一步的挖掘等等。


作为该方向的负责人,需要根据团队发展阶段,进行合理的技术选型,并做适当的改造。例如该不该用序列模型,lstm、rnn、transormer、bert 等序列模型如何选择,位置特征如何设计融入等等。关于细节的参数调优需要具体执行的初级算法工程师进行实验,而大方向的技术选型以及改造方向,则需要中级算法工程师把握和指导。


技术深度绝对不是考察中级算法工程师的主要手段,判断这个阶段算法工程师的标准,主要是是否具备在某个算法方向,独立承担整个算法从选型、改造、应用到落地取得成果的能力。

03 高级算法工程师

——关键词:业务抽象能力——


前面两个阶段的工程师做的事情,严格意义上来说,都是在执行这个阶段的算法工程师定下来的算法指标。这个阶段的算法工程师,需要更多的是对整个业务的理解,去抽象和定义业务问题。比如当前阶段,业务是否需要专门的团队做用户画像,需要多少的人力做素材理解,rank 模型是否还有空间、需要投入多少人力持续优化等。如果战略目标制定不明确,影响的将是整个团队的努力。


对于更上层的管理层来说,算法团队的存在意义,绝对不是说一定需要有 ctr 预估团队,需要有用户画像团队和视频理解团队,需要有人做 nlp、有人做特征等等。 整个算法团队存在的意义,就是能够最终从算法的层面,解决实际的业务问题。 在某个阶段需要做的是提升用户点击率,可能需要有 ctr 模型方向团队和有用户画像方向团队等;在某个阶段引入更多的多媒体素材可能需要有团队做视频理解和图像理解;某个阶段需要做用户增长和留存,可能需要有团队做专门的数据分析影响用户留存的因素,有团队做留存模型有团队做增长模型等等。


这也就决定了不同时期,对于算法团队的目标是不同的,需要的人员配备也不同,而这些,都需要高级算法工程师去站在整个业务层面去理解和拆解,然后将目标层层传递到整个团队去。 判断这个阶段算法工程师的标准,主要是对于所负责的业务,能否制定合理的算法可达目标,并带领团队完成实现。

04 结束语

——关键词:深耕岗位——


个人觉得,如果 35 岁了还处在第一阶段,也就是只能执行明确的算法模型,和刚毕业的年轻人比可以说完全没有竞争力,个人职业生涯的进一步发展会很受限。


如果已经进入第二阶段,不可取代性还是很强的,毕竟这个阶段的合理算法技术选型和推动落地能力,是很多刚毕业和工作不久的年轻算法工程师难以做到的。


如果已经到了第三阶段至少已经是业务方向的算法负责人了,都这种 title 了,考虑的是怎么往公司的中上层走了,根本不会担心年龄这种坎。


35 岁对于我个人而言还有几年的时间,也只有几年的时间。 无论是算法工程师还是其他岗位,深耕该岗位目前而言可能还是最优的选择,也可以说是没得选的选择。 持续不断的去提升自己在技术、技能、经验、资源上的累积,努力去提升自己的相对不可替代性。


至于年龄,不过是个数字而已。就算是个坎,它也远不是终点。


今天的分享就到这里,谢谢大家。


本文来自 DataFunTalk


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247500212&idx=1&sn=7095ef4e39c2be4ca3da2ef6bc808e08&chksm=fbd773d8cca0facef78433698bd00fe27087058e5ded583d02e17dda2e1f56b708e61cd0b50e&scene=27#wechat_redirect


2020-05-25 10:061986

评论

发布
暂无评论
发现更多内容

从Purge机制说起,详解GaussDB(for MySQL)的优化策略

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号2024年6月PK榜

漆包线行业你了解多少?专业漆包线工厂智能化生产管理系统

万界星空科技

mes 万界星空科技 漆包线mes 漆包线 漆包线工厂

win版Agisoft Metashape Professional (3D建模软件) v2.1.2 特别版

iMac小白

淘宝官方商品、交易、订单、物流接口列表(淘宝oAuth2.0接口),API稳定、QPS高的方案

tbapi

淘宝店铺订单接口 淘宝店铺订单交易接口 淘宝店铺订单详情接口 淘宝店铺订单物流接口

研发团队的「技术债」如何进行量化管理?

LigaAI

团队管理 研发管理 技术债务 研发度量 企业号 6 月 PK 榜

win版Fast Screen Recorder(录屏软件) v2.0.0.9 直装版

iMac小白

win版Broadgun pdfMachine Ultimate(PDF编辑办公软件) v20.25 注册版

iMac小白

win版Adobe Lightroom Classic 2024(LrC2024) v13.3.1.1(x64)直装版

iMac小白

win版JetBrains CLion 2024(C/C++集成开发环境) v2024.1.3 中文特别版

iMac小白

mac苹果电脑游戏推荐:fm足球经理Football Manager 2023 中文版

你的猪会飞吗

Mac游戏下载 Mac游戏推荐

FreeRTOS简单内核实现5 阻塞延时

EquatorCoco

Linux FreeRTOS

Shell test [] 命令:条件判断的艺术

左诗右码

Shell

Git是如何保存和记录数据的——数据对象

AntDream

Git Submodule git merge git 规范 git hook

Android面试题之Kotlin协程到底是什么?它是线程吗?

AntDream

面试 kotlin 协程 协程原理 android jetpack

win版Icecream PDF Editor Pro(pdf编辑器) v3.24 激活版

iMac小白

万界星空科技MES打造数字化生产车间

万界星空科技

数字化转型 数字化 mes 万界星空科技 数字化车间

分布式系统如何做到海量数据边云协同?看 TDengine 油气领域解决方案

TDengine

数据库 tdengine

通过技术优化财务规划报告,重塑企业体验

智达方通

企业管理 全面预算管理 财务规划 财务报告 财务办公

win版Enscape (3D渲染器) v4.1特别版

iMac小白

win版Adobe Photoshop 2024 (PS2024) v25.9.1直装版

iMac小白

win版Tracktion Software Waveform 13 Pro(音乐制作软件) v13.1.2 直装版

iMac小白

神州数码与 EMQ 达成合作,共创 AI 时代的行业数据解决方案

新消费日报

mac菜单栏应用管理软件:Bartender 4 for Mac v4.2.25中文免激活版

你的猪会飞吗

Mac软件下载站 mcc软件

算法工程师也会遇到35岁这道坎么?_文化 & 方法_DataFunTalk_InfoQ精选文章