AIQ | 写在校招季,谈谈互联网公司机器学习从业者的 Offer 选择




转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com

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

工作这几年,面了不少人,其中社招面试比较有趣,可以学习到别人成长路线,拓展见识。校招的面试相对套路一些,不过也有不少让人惊喜的好苗子,可惜蘑菇街吸引力不够,很多都没有来。

也带了几年团队,大家来来去去,铁打的营盘流水的兵,不知不觉成了组里待时间最长的。有些同学成长的很快,去了更好的平台,有些同学本来被寄予厚望,却表现平平,暗叹可惜。

今天正好赶上一个合作多年的业务方离职,有些感慨,和大家唠叨几句 offer 选择和职业发展,个人观点,纯当消遣。

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

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

针对互联网公司,针对推荐、搜索、广告场景,我个人有两个观点:

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

这里面的核心逻辑是数据规模和线上实验反馈。规模带来技术深度和业务背书,反馈是建立方法论的基石,没有它没有办法顺利成长为合格的算法工程师。下面来解释下。

先讲最容易的,小公司的问题

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

大公司的问题

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

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

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

中小公司的核心团队

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

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

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

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

大公司非核心业务团队

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

再来聊几个题外话

老板较不较真

是只看收益还是要求将收益讲清楚,只看高大上的模型还是要求真正解决问题,否则就会比较可惜。在业界,ctr 预估一直有两种思路,大规模特征 + 简单模型对比小规模特征 + 复杂模型。但真正对比过这两种方案的,少之又少。当年百度有个哥们去淘宝,想把百度大规模离散特征这一套应用在电商场景,最后是铩羽而归。但深入去了解当时的一些背景,发现尝试的时间很短,结果就很可疑了。

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

因此,不盲从,较真的思考为什么会有提升,为什么会没有提升,去分析,去总结,对一个员工以至于团队都非常重要。

为什么说线上 abtest 反馈很重要

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

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

转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com