附近有什么好吃的、推荐什么样的路线、看到什么样的新闻...... 算法已经深入到了我们生活的方方面面。
算法,不限于计算机,但因在计算机上的应用而闻名。算法在互联网领域的应用成就了一批科技公司的崛起,也让算法工程师这个岗位迅速变得炙手可热。算法工程师曾经是前卫和高薪的代名词。但经过多年发展,算法几乎成为每个程序员的基本技能,相关人才越来越多。内卷严重、批判声变多,算法工程师也不再是很多人的第一选择,大家也对算法泛滥开始反感。在未来,算法还能“香”吗?
我们邀请得物 App 算法负责人祁斌川做客《大咖说》,跟我们讲讲“算法”那点事儿。
InfoQ:随着算法的普及,普通的业务开发程序员在面试和工作中分别需要掌握哪些算法?:
祁斌川:算法在计算机领域可以算是一个垂直领域,数据结构等这些都是最基础的。对于非算法岗的开发同学,从我的面试经验来看,是否一定要掌握机器学习算法倒没有特殊要求。
InfoQ:在面试和实际的应用中会有差别吗?
祁斌川:这主要取决于两点。第一是,公司要招聘的同学处在什么样的阶段。比如,公司对校招应届生和社招已经有经验的同学,在目标、要求等方面完全不一样。对于应届生,大概会看候选人的编程基础、数学基础,以及对算法基础的掌握情况。而对于已经有经验的同学,就会根据候选人的经验和岗位需求,做更加精确的专业评估。不同的公司或同一个公司不同的部门对候选人相关技能的要求也会存在比较大的差异。
InfoQ:互联网大厂们主要在使用哪些算法?不同的算法对应着哪些不同的应用场?整个研发落地的流程是怎么样的?
祁斌川:大厂主要还是以人工智能算法为主,这是最成熟、落地也比较成功的。分发的历史算是最久的,同时也是很成功的。搜索也是人工智能在信息检索方面一个古老的应用了。现在所有的信息,包括电商平台都会做个性化推荐,这种推荐和搜索在本质上是一样的,也是对信息进行分发和检索,这可以认为是人工智能算法在实际的落地场景中最成功的一个。
大厂对算法的应用主要还是看业务需求。不同的业务应用的算法也不一样,很难有套统一的算法可以适用所有的业务场景。
目前,人工智能算法在绝大多数场景里更多的是一个自动化决策的角色。比如用户打开淘宝、得物后,看到里面展示的商品信息流,这些都是机器在背后做的决策,人工决策已经被替代了。又比如人脸识别,以前判断 A 同学是不是 A 同学要靠门口的保安,现在安装上识别机器后,这个决策权就交给了机器算法。
我们再以人工智能算法做决策场景为例,来说说大厂会用到哪些算法。
机器决策的核心是数据。数据宏观上包括文字、图片、视频、语音等,这些数据的采集以及对其进行处理就会涉及到很多算法。比如搜索要全网检查,可能会涉及盘虫技术。处理数据可能需要知道如何处理自然语言、文本、视频、图片等,这些背后都会衍生出一个相对较大的算法领域方向,比如思维方向处理图片视频的,祁斌川 IP 处理自然语言等。
只针对数据处理就涉及到很多算法,再根据这些信息做决策就又会涉及到另一个领域的大专算法。决策方式主要两种:机器学习和强化学习。以推荐场景为例,推荐里有两个核心环节:召回和清盘,单单召回就可以罗列出几十种算法。
InfoQ:这个领域对知识积累的要求在变高吗?
祁斌川:这个说下我自己的一个感受。在 13 年、14 年的时候,深度学习刚刚兴起。那时候的招聘要求没有那么严,如果我们去问一个候选人说,你懂不懂逻辑回归?只要他大概了解逻辑回归是什么、通过什么优化就可以了。但现在如果我们去招聘一个候选人,除了增加面试的难度,还会有笔试等,对应届生的要求也比五六年前高了很多。随着算法领域越来越成熟,人才供给量越来越大,这个门槛我们也一直在不停地往上提。
InfoQ:现在很多人就会觉得算法岗与开发岗相比,学历要求很高但在业务上不够务实。您如何看待这个观点?
祁斌川:深度学习代表人工智能浪潮兴起的时候,我们都对它有着很高的期待,像当初阿尔法狗获得了巨大的成功,就会有人预计有些产业完全可以用机器替代人工。但是随着这些年的技术落地,实际情况却并不像我们开始预期的那么好。
在有大量人工操作的工厂里面还可以,但到了线上做机器决策可能还是不太行。比如各种 App 里,人工智能主要还是一个辅助决策,没有达到人们预期的完全靠人工智能做决策,现实情况离我们的预期还远得很。而对机器人的研究,其实一直在做强化学习、深度学习,背后的目标一直没变,这与 20 年前、30 年前比,没有太大变化。
InfoQ:开始期望太高,现在落差就很大。
祁斌川:现在落差是会有点大,不过刚刚也提到了,在很多领域我们也取得了一些成果,很大程度上提升了生产效率。
比如,商品真假的鉴别以前都是人工来做,而且是需要经过培训、非常资深的人才可以。但现在,这个工作有一定比例是机器在做,而且机器的鉴别准确率已经超过了人工,包括专业从事该工作的鉴别师。鉴别师需要反复查看、触摸,通过视觉、手感等信息进行判断,整个流程耗时很长,成本也相当高。采用机器识别极大地提升了整个操作的效率。还有像大家一直在用的推荐、搜索这些,无论是百度是还是谷歌,与 5 年前相比效率都有了非常大的提升。
我觉得还是要能找到算法和业务结合的一个教程切入点,找到这个切入点之后努力推动这件事。一个东西出来之后不会是百分之百的完美,总会这样或那样的问题。但是,在我们实际的工作或生产中,只要它能解决 50%的问题,那它就有巨大的价值。
InfoQ:这其实是需要更多的算法工程师去了解公司的业务流程的。
祁斌川:这是必须的。
InfoQ:那现在算法工程师在一个项目里的参与度有多大?
祁斌川:这个要看公司的业务发展阶段。很多大公司分工特别细,一个人可能只负责某一个部分,他只是整个业务环节中的一个组成部分。如果是这样,要求他们对整个业务很懂肯定没错,但可能谈不上有多精深。
对业务理解的深度与工作内容有非常强的联系。刚开始的时候,我们(得物)的推荐搜索,包括刚才说的基于人工智能做鉴别等,总共加起来大概有 20 多个场景,但我们当时只有 12 个人来做,这样的工作量使得每个人要同时做很多事情,这些事情是直接面向用户、面向业务的。这种情况就要求我们对每个业务场景非常熟悉。比如做机器鉴别,如果你不知道不知道人工鉴别是怎样做的,就不可能想到一个更好的方案。这种复杂度反而是一个筛子,可以说是一个门槛。
InfoQ:在 2022 年这一年,算法工程师的岗位要求发生了什么变化吗?
祁斌川:人工智能方向上没有什么特别大的一个突破,但在技术更新迭代上特别明显,这对算法工程师来说需要不断学习。去年疫情对线上公司可能是一个红利,线下企业会比较难过一些。发展好的行业,由于有非常好的业务支撑,对人才的需求也随之扩大。
InfoQ:总体来看,互联网行业里面,人才需求是在增加还是在减少?
祁斌川:应该还是在增加。现在的互联网就是消费互联网,工业还有很大的进步空间。去年下半年的时候,有很多在专门去做这种工业互联网的公司,有的也做得不错。按我的理解,工业互联网的发展基本会和消费互联网一样,都是通过互联网形式将数据打通,将这些信息利用起来,同时基于这些信息提高整个机器决策的效率。对于算法同学来说,这是最大的智能。
但从微观层面看,我个人会稍微悲观一些。如果把时间线再拉长,如 5 年、10 年来看的话,人工智能会像以前的计算机或者说计算机上的软件一样普遍。
现在企业平台化做得越来越好,从数据采集、决策,再到报表,这一套流程耗时会越来越少,门槛也在变得越来越低。阿里、谷歌等公司都在做人工智能,结合算法做一个可以快速上手的决策工具越来越成熟。长期来看,这对算法工程师来说可能不是一个利好的趋势,因为门槛越来越低也就意味着大家都很容易掌握这项技术,算法工程师自然就没那么有稀缺性了。
InfoQ:除了门槛变低,还有一个事情就是开源。现在很多底层算法都是开源的,这个对算法工程师来说是好事还是坏事?
祁斌川:当你不是开源设计者的时候是好事,当你成为开源设计者的时候,可能就变成了一件坏事。
互联网把信息在人与人之间进行传播,每个人都可以了解到。开源也一样,只是把互联网信息变成了算法知识,让想学的人都可以学习到。对于群体来说,我们可以收益于开源。
但对于个人来说,可能会觉得自己掌握的技术不值钱了,因为大家都可以轻易学到。这其实潜在地改变了人才供需关系。这么看的话,其实公司是开源的最大受益者。开源文化“生产”批量的同质算法工程师,公司就拿到了很好的议价权,然后人们愿意会付出非常高的代价去获取能得到安全感的东西。
不过,再放大到整个社会的生产效率层面,这种知识的传播对于社会是有很大价值的。
InfoQ:那您觉得算法工程师的竞争力主要体现在什么地方?相比其他岗位,薪资会高一些吗?
祁斌川:薪资更高确实是存在的。招聘有经验同学的时候,压力还感觉蛮大的。对于那些不差钱的公司,算法工程师薪资一直处在相对较高的水平,同时能拿到这个薪资的门槛也会越来越高。
算法工程师的高薪资本质上还是供求关系的结果。企业想要的人才在市场上比较少,所以就会提供更好的待遇。比如随着推荐、机器鉴别的出现,虽然使员工数量减少了,但整体的效率却提高了,最直接的反映就是企业收益也随之提高。这样,企业也会愿意付出相对较高的薪资。
InfoQ:什么技能可以拿到更高的薪水?算法工程师之间薪资出现差额的原因是什么?
祁斌川:说的虚一点,是解决问题的技能。我们刚刚也聊到了开源,在开源背景下,信息传输非常快,你能掌握的东西别人都不会、只有你可以搞定的可能性极低。
具体来说,首先就是发现问题的能力,其次就是掌握算法技能,并且能够运用这些技能去解决发现的问题、为企业带来收益。这样的人目前来说还是非常稀缺的,当然不会一直稀缺下去。掌握算法的数量、深度没办法具体量化,研究是高校的特长,而在产业链里,解决问题、带来收益是最核心的东西。
InfoQ:现在算法有发展为组件化或模块化工具化,再进行封装的趋势吗?如果有,是不是意味着做算法的职位会减少?
祁斌川:有的,而且这个也是必然趋势。不管是以前的软件行业、硬件行业还是云服务、大数据都是这样的趋势,任何行业都是这样。这样的核心要点是,这么做能够带来效率的提升。绝大多数的人会是人工智能产品的使用者,高效生产也就成为其中的重要一环。
InfoQ:随着越来越多的人进入这个行业,算法内卷还是比较严重的。这种情况下,您还会建议其他人进入这个行业吗?
祁斌川:现在人工智能些许还有一些门槛,再过几年它就会像 Word、EXcel 一样,绝大多数人都会,进入门槛极低,这其实会使从业人员变多。如果把现在使用 Word、EXcel 的人都称为专业从业人员的话,这个数量是很多的。而 Word、EXcel 就已经变成一个工具,一个解决问题的工具了。现在还有一些企业会招聘算法工程师,自己做从底层上生产工具,再基于这个工具去解决业务问题。后面工业生产这块可能就很少了,但是解决业务问题这块应该会越来越多。
InfoQ:那算法工程师如何保值呢?相对其他岗位,算法工程师对“35 岁”焦虑是更多还是更少?
祁斌川:其实不止算法工程师,快递小哥也会考虑 50 岁之后怎样。算法技术更新迭代的速度越来越快,会不断地把前浪“拍在”沙滩上。随着年龄的增长,身体承受能力下降,在同样的工作强度下,对应的风险也会变高。
这种情况下,企业也会做筛选,但这个问题如何解决?我也不知道。不过每个人可以做的就是调整好心态,适当降低要求,解决自己能解决的问题。每个人都有自己的焦虑,要调整好心态,不用太消极。
另外,不管你是被迫的、还是主动的,持续性学习是实实在在的,一定程度上可以解决问题。也可以留一些时间和精力给工作之外的兴趣研发上,或许会变成另一个契机。
InfoQ:2022 年,算法工程师们可能会面对怎样的行业发展情况?蕴含哪些机会和挑战?
祁斌川:有家公司做产业互联网,祁斌川轮就融到了一个亿,我觉得已经说明问题了。现在国家政策支持工业互联网、产业互联网,这也给人工智能带来很高的提升,这其实是一个蛮大的市场和机会。
在消费互联网领域,算法工程师主要做工具、做平台,这样的需求以后会越来越少,当然这些工具也会给公司带来很大的价值。所以,能够掌握足够的技能,并对业务有足够的了解,可以将两者结合起来去解决实际问题的算法工程师还有很大的机会。