社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

写在校招季,谈谈机器学习岗的Offer选择问题

夕小瑶的卖萌屋 • 3 年前 • 253 次点击  

星标/置顶小屋,带你解锁

最萌最前沿的NLP、搜索与推荐技术

文 | 吴海波 


现在校招开始的越来越早,今年的实习生招聘还是异常火爆,简历一堆,而且是越来越没有区分度,以前面个xgboost的论文细节,就能区分很多人,现在大部分人都能讲的不错,哎,面试越来越难。

也在蘑菇街带了几年团队,有些同学成长的很快,去了更好的平台,有些同学本来被寄予厚望,却表现平平,暗叹可惜。大家来来去去,铁打的营盘流水的兵,不知不觉成了组里待时间最长的,颇有感慨,今天就和大家唠叨几句offer选择和职业发展,个人观点,纯当消遣。

从面试的情况来看,学生质量两级分化一年比一年严重。估计到时候offer又是旱的旱死,涝的涝死。回想自己刚毕业的情况,如果来面现在的蘑菇街,大概率是过不了的。除了公司在发展,用人的选择余地大了,更多的是那时候机器学习还不像现在这么火,从业者不多。大家只能看NG在斯坦福录制的课程,还没有cousera,你在简历上写个拿到cousera ng的machine learning课程,各大公司可能还会面面你,但现在就呵呵了。

对于很多同学来讲,这个时候有个终极的问题要讨论了,到底是去大公司还是小公司?

先说应届生offer选择。针对互联网公司,针对推荐、搜索、广告场景,我个人的建议是:

大公司核心业务团队 > 中小公司核心业务团队 > 大公司边缘业务团队 > 小公司

根据公司、部门选择的不同,会有不同的成长路径,岗位推荐程度由高到低分别是:

  1. 经历核心团队业务规模从小到大的过程,比如跟着头条、抖音成长起来的一些同学,现在的发展都不会差。但这个看命,大部分小公司会挂掉,好不容易成长到中小公司,还会遇到瓶颈,迟迟突破不了,真正到大公司的,凤毛麟角。而且还要这么多年待得住。
  2. 参与大公司主要业务瓶颈突破的过程,有点绕,而且好像离应届生比较远,理想情况这种任务都是老员工搞,但很多时候由于种种原因(大多是风险偏好),可能是一个经验丰富的老员工带着一批应届生搞,若轮到你,大赚。
  3. 经历团队、业务规模从小到中的过程,也能得到不少的锻炼。
  4. 一直在大公司做边缘业务,这个对自己的悟性和驱动力要求太高,大部分人的成长都会明显慢下来。
  5. 在没有数据和挣钱业务的小公司,自求多福

以上排序的核心逻辑是数据规模大小和是否有线上实验反馈(A/B test)。规模带来技术深度和业务背书,反馈是建立方法论的基石,没有它就很难顺利成长为合格的算法工程师。

为什么如此强调线上A/B test?

首先,很多同学从学校出来,并没有真正做过一个实际的业务提升,是非常需要从线上A/B test拿到结果,建立信心,确认机器学习真的很有用。有些同学在大公司,干了几年,一个线上收益都没有拿到,对信心的打击是很大,直接转岗了。

其次,大家都不是神,机器学习还是有非常大的不确定性,因此A/B test的准确度、有效性,以及同时能做多少实验是非常重要的。 假设一个公司一次能做100种实验,一个只能做10种,在idea的实验效率上,就存在着巨大的差距。而这里的关键,就是数据规模有没有到一定的量级,到了你的A/B test就能做的更多,且更准确,更快拿到反馈,从而修正自己的认知和方法论。

明确了标准之后,面临选择时就更好把握。接下来说下各个选择可能存在的问题。

大公司

老生常谈,分工太细了,该做的事情,大部分都做掉了,很多时候找你进来是搞维护工作的。有些同学不服气,面试也有遇到工作一两年,说自己给公司提升了多少多少,详细聊下来做的事情又很普通。那么事实就很明显了,要么他们原来不重视这块,做的水(现在越来越少了),要么你在吹水。

重要的是:大部分人的悟性不足以通过现有的系统,理解在其曾经的发展逻辑及面对问题的方案选择。 而后者,才是将来你面对新业务时候的底气,人不可能在同一个业务上做一辈子。

为什么还要去呢,有两个方面的原因。第一个是上面已经提到过的,万一赶上被拉壮丁去解决核心问题,虽然业绩风险大,但好歹有了战点,有困难,有成长。第二是,这个东西就像当年大家去美国留学,先看看先进的东西是怎么样的。比如在头条,在凤巢,你们会看到离散化模型的特征规模到了千亿,读书的时候怎么可能想到他们会这么搞。会看到原来要用ps训练模型,需要用类似淘宝iGraph的系统来处理用户侧的实时特征。A/B test是怎么做的。待上一阵子,如果没有战点,找家中小规模的公司,去那里把技术和业务结合实际,形成自己的认知和方法论,也是极好的路线。

中小公司的核心团队

在中小公司的核心团队,对比大公司,会更“累”一些,需要做的事情会更多,这里的更多指的是数据质量和系统工程上。大公司的核心业务,一般会有一个规模不小的ETL组为你清洗数据,还会有不同团队搞出来的机器学习训练平台求着你用。而在中小公司,想用个PS,去看看开源吧,还好腾讯的angel还不错。想搞个tensorflow的分布式,对方一脸怀疑,先拿效果出来看看?

因此,要靠刷这张老脸,工程的同学都是不见兔子不撒鹰的主。画风很容易就变成了,我们需要个在线预估服务,算法同学先搞个初级版本出来吧,线上拿到收益了,工程的人进来优化重构;我们需要搞用户实时特征,先搞个原始版本证明有收益,工程再进来重构。还好每次结果还不错,最近开始搞大规模LR模型,大家支持力度比以前好多了,不再要先看结果了,毕竟这次也没有办法先看结果了,不是单打独斗能搞的了。所幸,上线后收益很明显。

调侃归调侃,在资源有限的情况下,这样的方式非常合理,大公司才能养的起超前的团队,而我们要精打细算。但对个人的成长也是非常有好处,首先是魔武双修了,算法和工程都不错,*其次是逼着你想清楚到底要干嘛,对算法和业务的理解更为深刻,因为每一次决策失败,都是消耗大家对你的信任,如果次数多了,估计就混不下去了。

最后,大部分来中小公司的,都是去不了一线大公司核心组的,这个是现实。但不要妄自菲薄,人生是长跑,不必争一时瑜亮。

大公司非核心业务团队

这个就要担心了,首先,很多大公司应届生招聘时候,同学们不知道自己面的是什么部门,所以一定要问清楚。现实中很多非核心团队,本身没有什么积累,因为留不住好的人,一直被核心团队压制,资源分配的很少,还不如中小公司。这个时候去,一定要想清楚,自己是不是看好这一块。当然,凡是不能绝对,也有非核心业务发展的很快,成长为核心业务的,这个看自己的眼光和运气了。

小公司

举个常见例子,假设要做推荐,首先要有数据,这点已经可能干掉很多小公司了,没有数据玩个毛线。其次,大家做模型一定是需要做A/B test的,那么最好场景的DAU是大于百万(又干掉了很多小公司),一个是数据质量会高很多,A/B的时候波动小,另一个是不容易动不动搞个模型提升x倍(我们在小场景上会遇到),从而飘飘然,不知道自己几斤几两。最后,场景的物料规模要大,才有推荐的空间,后续模型才有持续优化的可能。举个不恰当的例子,在一个卖xx的电商平台,如果只有几十款商品,用户几下就能浏览完,还做什么推荐。


再来聊个题外话,老板较不较真

除了公司、部门之外,和个人成长最相关的因素之一就是上级了。这里给大家提供一个指标:老板的较真程度。

怎么评判呢?看在项目里,Ta是只看收益还是要求将收益讲清楚,只看高大上的模型还是要求真正解决问题。不盲从,较真的思考为什么会有提升,为什么会没有提升,去分析,去总结,对一个员工以至于团队都非常重要。

举个例子,在业界,ctr预估一直有两种思路,大规模特征 + 简单模型对比小规模特征+复杂模型。但真正对比过这两种方案的,少之又少。当年百度有个哥们去淘宝,想把百度大规模离散特征这一套应用在电商场景,最后是铩羽而归。但深入去了解当时的一些背景,发现尝试的时间很短,结果就很可疑了,这就是不够较真。

由于长期受淘宝的影响,我街的基线模型和淘宝的思路非常接近,但到瓶颈了。而且我们和另外一家巨头的模型线上pk过,效果要好于他们。为了突破瓶颈,在分析了各种模型的优缺点,选择做大规模离散模型,前前后后花了好几个月,将数据链路上的各个环节重搞了一遍,尝试了很多离散化特征,线上预估系统改造了好几版,最后上线效果明显。主要原因是该模型带来了更多的特征工程空间。这就是较真带来的收益。

除了以上因素之外,offer的选择还受到种种顾虑的影响,比如想要户口、想离男/女朋友近、不想996等,最后还是要自己分配权重去做决策。祝大家的秋招都硕果累累,收获心仪的offer。


 文末福利 
后台回复关键词入群
加入卖萌屋NLP/IR/Rec与求职讨论群
有顶会审稿人、大厂研究员、知乎大V和妹纸
等你来撩哦~

夕小瑶的卖萌屋


关注&星标小夕,带你解锁AI秘籍

订阅号主页下方「撩一下」有惊喜

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71980
 
253 次点击