我们可以一起来聊聊算法工程师当前选哪个方向好?

链接:https://www.zhihu.com/question/398876586

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

当前2020年 ,从社会需求,工资待遇,未来发展方面讲,算法工程师哪个方向好?1,计算机视觉;2,自然语言处理;3,风控;4,推荐系统?

作者:Yan Chi
https://www.zhihu.com/question/398876586/answer/1348837580

今年跳槽到某银行,看到很多答主都在说风控可以把银行作为后路,我就抛砖引玉,讲一下银行业里对CV NLP  风控 推荐这四个领域的应用情况吧。

先说风控。银行的风控在模型层面不会太复杂,lr是最主流的,用得相对复杂一点的就是xgboost,绝绝绝大部分时候不会上深度学习的模型。在运行层面上,部分风控模型对时效要求非常高,实时交易风控模型一般都是50ms之内就要出结果,这一方面就决定了不可能上特别复杂的模型,另一方面,模型外面必定会套一层兜底规则,以应对模型超时的问题。

在模型的建模和分析层面,风控模型会特别注重PSI,KS,AUC,LIFT,GINI等指标,还会对每个变量的重要性,偏移等进行非常细致的分析,非常强调可解释性。因此风控主要还是结合业务场景做数据分析和特征工程这一块,还有一个非常重要但是很多做机器学习出身的人鄙视的,就是强业务规则,其实很多场景强业务规则if else就已经解决了一大部分问题了。现在不少业务规则还是先用数据分析的各类方法跑出来一些结果,然后手工把这些结果配进规则引擎里运行的。

另外, 虽然模型可能是python写的,但是结果分析与模型检验很多时候还是基于SAS来做的…至于这边用的一些新技术,主要还是基于图的一些算法,近一两年来也是逐步在落地在类似信用卡套现团伙侦测等场景。

再说推荐。当你打开银行的APP时,一堆眼花缭乱的弹窗、活动栏位就是银行的推荐系统推的东西了。这一块在大行或者股份制银行里面的都是有推荐系统在后面支撑的,其实近年来这一块倒是逐渐脱离手工化,一般手工只配兜底规则,不配/少配具体的栏位了。而用上机器学习的场景,模型也是推荐系统常见的例如非深度学习用GBDT+LR,深度学习用deepFM之类的模型,相对而言与互联网的工业界在模型层面还不那么落后。

不过问题在于,虽然银行一般都会有一定的数据基础(至于数据脏不脏另计)可以用于推荐系统的模型食粮,但银行APP的核心还是转账交易与账单查询,推荐系统做的东西还不是银行APP的核心功能。换句话说,如果今日头条和抖音没了推荐系统在背后支撑,那这两款产品就完了,但是银行APP没了推荐系统,还是照样跑,只是盈利增长没那么快而已。因此,推荐系统在系统层级的重要性,以及领导的重视程度方面,其实是不及风控的。不过推荐系统也有一些好,比如做法整体更偏互联网化,比如更习惯于A/B test来看模型效果,而不是像风控条线喜欢做统计检验,等等。

最后说CV和NLP。CV和NLP在银行中的应用地位相对有限。CV通常就是OCR和刷脸等,OCR用于识别一些进件材料,例如身份证,银行卡的卡面信息识别等,这些都是非常成熟的产品,所以往往这些产品是直接外购的,不需要银行内部再造轮子。NLP的应用亦是如此,比如一些应用内的搜索,还有智能客服对话等等。一般来说,CV和NLP解决的问题相对而言更标准化,银行会更倾向于外购现有产品,或者通过外购+驻场定制化开发的方式来应用落地CV和NLP场景。换句话说,如果做CV或者NLP来到银行,更有可能做的是类似项目管理的工作,而不是实际的搭模型、算法开发方面。

所以综上所述,在银行里面,这4个方向中风控无疑是最接近核心的一个方向,但是这个方向其实和互联网行业的“算法工程师”做的区别还是不小的,无论是方法论方面还是语言(python<->sas)方面。推荐系统角色定位相对边缘,但是做事的方法和互联网更贴近,不过DAU,PV等数据量肯定不如互联网企业,反过来说,对于系统时效性要求也没有那么高。而CV和NLP来了很大可能不是做本行,而是转PM方向,能不能进,看有没有坑位,而不在于技术上的要求。不过现在在银行科技在转型的形势下,估计这种养老职位会越来越少。

PS:这个答案说的是答主在某银行看到的现状,在银行业可能可能有一定的共性,但切勿套用在互联网和独角兽企业上。需要看互联网和独角兽的情况请参照其他回答。

作者:纳米酱
https://www.zhihu.com/question/398876586/answer/1325455486

公司东搞搞西搞搞,我横跨超多业务线,以上领域全都做过。我建议是都别选了,多刷leetcode多跳槽,每天划水刷题搞开源,坑资本家三年钱,累积足够100万,回老家当老师公务员,或者搞其他事情吧。

自然语言诸如bert一类服务都被中台化服务化了,和各种号称几百亿节点的graph工具搭配起来,各种抽取知识,你连学习nlp的动力都没有了,直接查表就是了。训练?成套训练可视化界面都给你做得出来,几毫秒inference时间,几个小时的fintune时间,你只要会点run便可。现在就差压缩这些巨无霸还有搞头

视觉各类基础模块全都服务化了,而且这东西走集中调度比较坑,中台搞了人家业务方也不一定会用,github调包太方便了,完全可以自己启动,现在中台血拼视觉能力靠的是大量gpu服务器和低成本并发能力,你要10个gpu跑多少qps,我做到5个,拼这种能力,没人关心性能,只关心成本。视觉适合做2b项目,然而做2b在公司生存不下的,特别是政府的,都是项目制,做一个算一个,没啥爆发性,领导一换全都凉了,2b成了二逼代言词,公司做视觉也就剩视频还有搞头,又有几家公司能有直播带货呢?

风控两年前做过,这个技术门槛太低,xgboost横行天下,走纯业务,以后要去银行还好,qps不过1000的业务都不是纯正互联网业务,以后走互联网技术栈被锁死。

推荐系统和广告,广告作弊太普遍了,到处都是保量刷量,跪舔广告主爸爸,现在有搞头的,也就学习在各种爸爸约束下搞流控,pacing,强化学习啥的,一个目标后面搭配10个爸爸约束,经常发现又不数学太难一时半会解不出来,有不就是无解,最后解决方案是找到爷爷,让爸爸都听爷爷的,约束一下子少了很多,然后又成了社会工程学问题,没啥技术含量。

推荐系统,现在主播帮你解决内容生产和用户兴趣挖掘,顶层做好流控就行了,剩下搞搞用户行为分析和归因分析,不过这两个方向不直接面向指标,公司35岁开除你没商量。推荐系统工程师最后只需要会调权,流控,强插广告,数据分析便可。冷启问题又回到前面nlp和视觉上来,你调公司服务就行了。做rank?业界人士都知道,大部分公司压根都好久不优化rank了,roi太低,瓶颈压根不在于此。然后现在招聘大头兵,经常要求能不能给我搞全链路强化学习出去吹牛,想得美,试一个人工策略没这么简单,试work都要一个月去判断,人肉强化学习还差不多

最后,做nlp和视觉的同学拼不过开源速度,做广告和推荐同学,人家已经不关心你的算法能力,你必须要有带业务线的经历,负责一个业务线包括工程和算法还有组织管理,简直要你啥都会。做风控纯粹业务逻辑,没啥技术含量,反而想去银行还好

最后,比来比去,还是比刷题能力

作者:想早睡早起https://www.zhihu.com/question/398876586/answer/1260778223

选方向不如选部门。进大公司的搜索、推荐、广告部门的话,干的活直接涉及流量和变现,任何方向都很有前途。去一些人工智能实验室之类的部门的话,如果团队没有能为公司赚钱的业务,可能就只剩下“体面”了。

实在纠结方向的话,推荐>NLP>=CV>风控。

作者:刘文杰
https://www.zhihu.com/question/398876586/answer/1327427549

平时不怎么看知乎,第一次作答,被大佬点名,就针对风控写一点思路吧。

对于互联网风控在下算是做得比较早的一批人了,我看了很多其他人的回答,总体感觉很多人对算法应用的理解陷入了一个误区。

为什么很多人把风控排的相对靠后

直观来看很简单,首先问题封闭,几乎解决的就是怎么优化坏账/N日逾期率这一个核心问题上。技术深度上,由于金融场景对模型可解释性要求很高,所以,xgboost+lr基本已经到头了,新一点的技术全都没法用。So,看上去是个轻松愉快的工作,花3天时间随便搞个简单打分服务上线,反正也没啥并发,然后再花两个月一边划划水一边搞搞图特征,收敛了,没了。

风控方向真的没啥可做的了吗

在下抛出一些问题,无论做没做过风控,都可以一起讨论一下:

- 既然可解释性要求高,有没有办法兼顾可解释性和深度学习带来的效果收益呢?如果有,是不是NLP和CV 等领域的新技术也能用到风控了?

- 既然风控对数据的依赖强,大量的数据资源都在第三方(前年可能有数千家公司,现在估计很少了),那么实际上是效率制胜,衍生出的问题是:如何快速接入数据?对于各种不同的数据形态如何快速地清洗并评估出对模型的价值?如何评估新数据源的商业价值?

- 如何优化模型外的策略层?

- 用户行为数据用好了吗?如何迭代?

- 风控引擎对借款流程的优化能有什么帮助?对流量获取有什么帮助?应该以什么样的计费模式获取流量使得公司ROI最高?我们能跟流量方做哪些合作?

- 信审为什么存在?为什么有些场景要淘汰掉?本质是什么?有什么办法能更好地利用信审的数据吗?

- 催回率有多少办法优化?催收团队的人效如何提升?

方向与价值@li Eta同学有句话非常关键:对于工业界从业者来说,核心工作其实在于“适配”,主要是针对业务环境选择合适的方法。

上面列的这些问题,其实每解决掉一个,都能带来非常直接的业务收益,但是我接触到的大多数风控从业者,思维太局限在模型上,导致看到的也是很局限的问题。真实的业务场景有着海量的机会,合适的架构+合适的算法,用到最需要的场景,才是真正的能力。

当然,那个风控如日中天的时间点已经过去了,这点其实很多人已经提到,机会相对以前已经少了一些,但也会冒出来一些新的机会,就看谁能抓得住了。

总结一下

任何大方向的业务中都还是充满各种机会的,主要还是要有眼光,有技巧,有执行力去做起来。

最后忍不住解析一下一个挺火的回答(风控部分):

“风控两年前做过,这个技术门槛太低,xgboost横行天下,走纯业务,以后要去银行还好,qps不过1000的业务都不是纯正互联网业务,以后走互联网技术栈被锁死。做风控纯粹业务逻辑,没啥技术含量。”

自己菜还是不要怪业务方向了吧,错误引导太多人了。

作者:li Eta
https://www.zhihu.com/question/398876586/answer/1327357883

推荐/广告

因为恰好在一家推荐广告做的还行的公司,对这方面还是有一定的了解。

推荐和广告技术在ctr cvr这方面技术有一点重叠,就一起讲。ctr cvr模型无论是说样本还是模型训练,都有很多细致入微但是收益巨大的改进点。这个方向是可以持续优化的,并且它本身的上限和上下游的改进也有关,这个过程会持续好几年,然后进入瓶颈期,等待下一次技术大爆发。

在这个领域应当避免强行附和流行的模型(比如强化学习),不是说时髦的技术没用,我个人相信强化学习在推荐领域会有大作用,我只是反对不能言之有物的“支持”和“反对”。

此外,推荐/广告算法也不仅仅只服务于把流量分配准,还有很多涉及作者、广告主的算法和策略,这块不像ctr cvr一样广为人知,但其实是根本中的根本。

从事这个领域,最重要的能力,不是熟悉多少模型套路,是业务理解+不断学习新技术,掌握这种能力,类比一下,那么你也许就是下一个发明新套路的人(就如发明如何用机器学习做ctr的人一样,现在看来是成熟套路,当年可不是)。

建议选择流量正在崛起的公司,这样的公司很多基础技术都还处于迭代中,薪资高,机会多,成长空间大。

风控

这个我不懂,我帮at下真正懂风控的@刘文杰

cv/nlp

这两兄弟一起说。cv nlp 发展几十年了,cv真正实用是得益于深度学习,在dl之前,cv好多方向只是有一个well-define的问题,但是结果很差(比如detection segmentation)。nlp在dl之前比较work的可能只有分词、ner这类这样相对不那么复杂的任务,nmt还是dl时代才做到“看起来不那么糟”。

目前确实有不少非常work,且成本不高,容易被标准化的套路,比如nlp的bert(或者别的pretrain)+ fine-tuning,cv 的 imagenet分类数据集(或者MoCo一类的pretrain)+ fine-tuning。

但学术上讲,这并不是终点,我们尚未实现给定数据集的“无人驾驶train模型”。

对于工业界从业者来说,核心工作其实在于“适配”,主要是针对业务环境选择合适的方法,有时候带有一些微创新。乍一看,可能让人觉得“适配”很low,其实不是这样。简单举个的例子,抖音那么多实时的特效,背后原理,做cv的同行能猜个八九不离十吧,但是你能按照这个badcase率和同样的流畅度实现到手机上吗?(这里面不仅仅是工程问题)。这样的工作一点都不容易,未来也有很强的技能迁移机会,工业界有为数众多的特殊场景,也愿意为此付出高工资。

总之,目前互联网还是一个朝阳产业,并且这个领域里面推荐 cv nlp都已经证明了自己的长期价值,对于做技术的人来说是一波时代发展带来的红利,一如特殊年代的石油工人、90年代选择下岗经商。

作者:潇湘夜雨
https://www.zhihu.com/question/398876586/answer/1325857961

小公司的话,啥都得做一点。大公司的话,推荐系统第一,风控第二,计算机视觉第三,nlp第四。纯做nlp这种东西,感觉还不如不做。。。你做推荐系统,会用到部分nlp的东西,你做纯nlp,想去抢推荐的饭碗,难度有点大。nlp的产出多是标签,表征向量这种,目的就是给推荐或者搜索用。。。还不如直接去做推荐。。。

作者:Milano
https://www.zhihu.com/question/398876586/answer/1326490193

刚好在其中两个领域呆过,还有一个领域算半混过吧。就抛砖引玉一下。总的来讲,个人认为推荐 > NLP > 风控 > CV.

推荐目前应用最广,技术深度虽然比不上NLP,CV但是也有一定的护城河。另外,推荐不止模型,一些其他的落地点也很有挑战,比如如何面对信息茧房的问题。推荐还有一个优势,可以以很小的代价转为广告领域,广告作为目前互联网公司营收的大头,业务上,技术上都有成长空间。目前来看还没有其他更有效的营销手段,因此在职业发展上说,算的是比较持久。一句话,目前互联网时代只要没有大规模的代际升级,推荐是信息门面,广告是收入门面。技术栈相通,不论是深度还是广度都是可以的。

NLP次之的原因是目前竞争激烈,技术上迭代较快,需要不断学习但商用落地目前没有太主流的成功案例。另外,如果去做推荐,NLP可以作为基础模块来增益模型效果,也可以顺势了解NLP的领域。总的来说,NLP有应用点,鉴于现在nlp的模型往大而全的方向发展,因此大规模的成功应用目前没有,更多是作为基础数据部分进行特征生产。如果引申到asr,tts等领域,可能智能设备公司应用会更多。

风控第三的原因之一很多人已经提及,技术护城河太浅,一个lr,gbdt就已经能够满足要求。要求解释性的原因深度学习应用很少。整体数据量级较低,处理方法也比较简单。学习推荐或其他领域在工业上还可以涉猎一些分布式及大规模数据应用的工程领域,风控则不太可能有,基本上python打天下,很多公司的工程架构也是基于python上的。数据处理上spark,hadoop应用较少,jupyternotebook基本够用。另外,现在更多的风控公司都是强规则,辅以模型,因此在金融风控公司策略算法比模型算法更加吃香。有句话形容风控挺好的,风控就是个厨子,自己不产菜,菜新鲜做出来的东西就香,菜不行咋整都不行。现在风控模型基本是靠特征工程,前几年可以找各种第三方公司拿数据,这两年不行了。想走这条路,以业务为主较好,技术为主越走越窄。好处就是,实在不行,传统银行保险企业可退。

CV排在最后,主要是因为深度学习的应用让cv这边鱼龙混杂。cvpr已经成为灌水最严重的顶会之一了吧。因为深度学习的风靡很多人学个皮毛就去炼丹,找一个懂滤波,算子的都没那么容易了。另外,现在cv因为行业的原因,模型过大,部署困难,真实商业环境的光线,数据传输中的压缩都会让算法大打折扣,能够应用的领域也比较受限。很多公司的cv应用有公司具体业务场景的做做魔法表情,做做特征搞搞聚类,没有业务场景的靠 卖api,设备过活。也就安防领域可能比较成熟。无人驾驶方面现在看还是个大坑。可能搞搞端智能,移动端部署也不错吧。

总结一下,推荐(广告)各项均衡,各种课题可研究性也不错,是目前互联网公司主要的营销和获利手段,还可以顺势了解nlp。风控,技术深度不够,但胜在业务规模大,进可能不太可攻但退一定可守。NLP低级应用点较多,但高级应用点较少,应用领域较cv更多,技术难度大。CV应用领域较少,目前看灌水严重。

从公司角度来说,

推荐:内容,产品主打的公司都行。可选择面太广了。

风控:互联网金融公司(要仔细甄别),传统银行,保险

NLP:主推有业务场景的公司,第三方技术方案服务商不太推荐。另外,主打内容公司也可以,做基础数据支持

CV:主推有业务场景的公司,第三方技术方案服务商不太推荐。

作者:匿名用户
https://www.zhihu.com/question/398876586/answer/1327776823

风控不懂,说几个CV, NLP,推荐的问题。

计算机视觉:从就业角度看,最大的问题还是学CV的太多太多了,顶会泛滥贬值,人才过剩,岗位增长跟不上从业人数增长。第二是门槛低护城河太浅,人脸识别,分类定位分割检测,模型压缩量化,开源代码一抓一大把,你能做的别人也能做,而且别人做的更便宜。

自然语言处理:从业人数多和门槛低的问题和CV一样,只是CV比NLP更早火起来,更先暴露出问题。今天的CV就是明天的NLP。另外的问题是,NLP难以单独产生实际价值,更多的是作为其他系统(如推荐系统)的附属品。

推荐系统:和CV,NLP相比,国内专门做推荐系统的组太少了。很多从业者是从别的方向转过来的。然而就业竞争并不低。

附一个美团今年各个岗位的投递录用比:推荐才是真的火葬场。

现在算法岗和开发岗薪资已经差不多了,但是竞争压力相差近十倍。何必去赶这算法火葬场呢?iOS开发安卓开发它不香吗?Web前端开发和后端开发它不香吗?

- end -






你可能感兴趣的:(广告,算法,大数据,编程语言,机器学习)