气之争,聊聊算法岗位的门户之见!
大家好,今天给大家聊点有意思的。
以前在读金庸先生《笑傲江湖》的时候,总觉得有一个地方有点扯,就是华山派的剑气之争。按说有人喜欢耍贱(剑),有人喜欢用气,这其实是个人喜好,怎么会上升到门户纷争,还因此自相残杀呢?所以我之前的时候一直觉得这个是金庸先生剧情需要,不然怎么会有风清扬传功令狐冲的情节呢?
但是当我长大了步入职场之后,我对这个问题发生了看法。因为我在工作岗位上也看到了一点门户之见的影子,虽不像小说里那样你死我活苦大仇深,但是还是挺有意思的,所以今天就和大家聊聊这个话题。
就我的观察,职场当中的算法工程师也可以分为两派。一派是学院派,一派是实践派,下面和大家分别聊一聊。
学院派
学院派这个词应该不难理解,也可以理解成学术派。简而言之,就是喜欢从学术领域寻找解决方法或者是灵感,比较直接的体现就是看paper。
我发现这个派别和学历有一点关系,学历越高,越是根正苗红的身上的学院派风格越浓。言必称paper,口必提复现,经常给出的解决方案是,我们可以follow一下某一篇论文当中的方法来尝试一下,看看是否能够解决当前的问题。日常的工作当中,也经常会抽空看看各类学术期刊和论文。
大到某某场景使用某某模型,小到某个特征如何处理,如何做采样,都势必要找到援引、出处。简而言之,我们的一切做法都不是空穴来风的,都是有迹可循,可以找到理论凭证的。有点像是小说里的剑宗,非常看重套路(剑法),觉得只要套路耍得好,就可以解决问题。反过来说就是输了一定是剑招没练到家,或者是学的剑法不行,绝不是内功不济。
这个派别的好处是看起来比较光鲜,无论是学历还是做法,都看起来非常高大上。言语当中也是中英夹杂,逼格甚高。说服力很强,无论是和外行交流还是和上司汇报,只要当当当抛出几个术语和paper名称,就可以镇住场子。外人与之交谈,如果没有一点援引出处很难不心虚,觉得自己的耍的是野狐禅好像登不上大雅之堂。
但缺点也很明显,只会耍套路实战往往很堪忧。道理也简单,因为我们能找到的paper、期刊当中的真材实料其实不多。虽然paper当中会讲明model的设计方法甚至会附上代码,但是只有这些是一点用也没有的。中台的数仓、特征的设计和处理,这些真功夫的东西都是不会透露出来的。只仿照模型起到的效果非常非常有限,甚至一些极端情况下是有害的。
还有更重要的一点是,所有的paper都是不成体系的。我之前也写过几篇paper剖析,虽然都是推荐领域著名的paper。但是讲来讲去基本上都只局限于模型这一块,关于整个推荐系统当中从上到下、从浅入深是没有一个完整的介绍和内容的。我个人感觉读paper有一种管中窥豹的感觉,对于大牛而言心中已经有了豹子的全图,瞄一眼看几个关键点就足够了。但对于大多数不那么资深的从业者来说,想要通过这一孔见方窥得全图几乎是不可能的。
实践派
和学院派对立的就是实践派,也可以简单理解成野路子。
我之前在阿里的时候感觉比较明显的就是阿里的企业文化比较崇尚野路子,大家可以听听它的标语,“什么平凡人做非凡事”,“因为相信所以看见”,就可以一窥端倪。
实践派的作风是实践出真知,不管那些条条框框的束缚。我讲一个我自己的故事给大家体会一下,我刚去阿里没多久的时候,那时候我也才刚入门,大约是读过几本机器学习书籍的水平吧。当时接到一个任务,让我预测一个用户喜好的类目。完全没有想过去看下paper里是怎么做的,或者是前人都有过哪些方案,全自己来。简单设计了一下方案和特征,大部分特征都是现成的,其中一些分布有点问题,我做了一些one-hot或者是multi-hot处理,然后随便套了一个还不错的模型(XGboost)。
我自己都觉得做得太草率了,也可能我当时把做模型想得太高大上了,感觉我这三板斧说不出来的low,颇有些羞愧。我现在都还记得,我当时训练完第一版的AUC是0.82,我当时也没觉得有什么。其实以现在的眼光来看,这种场景下的预测AUC能上0.8,只有两个字就是离谱。简单看了一眼效果,感觉还可以。又拿新的数据算了一下覆盖率,也很不错,大部分用户点击的类目都命中了。
更离谱的还在后面,这个模型做完之后我就抛在脑后了,但没想到的是从那之后就一直有各路大佬钉钉找我请教我这个模型是怎么做的,他们对比了一下自己的数据都觉得非常准,想要学习学习。更夸张的是,后来据说要做一个广告预测模型,专门找了阿里妈妈广告算法的同学来做,搞了半天还不如这个模型的效果好。我当时听说这事的时候,真的震惊得下巴都要掉下来了。
现在回想起来当初,虽然仍然有些不可思议,但冷静下来想想,也是有一些原因的。当时拍脑袋定的几个值和做法都定对了,比如正负样本比当时定的1:3,再比如当时正负样本的选择,以及一些分布不太均匀的特征做离散化处理等等,其实都是对的。只是当时基本上凭的感觉和推测,不像现在这么底气足。
总体来说实践派喜欢自己想方法,自己设计方案来解决问题,而不是一味参考paper。比如模型效果不太好,第一想法肯定不是换一个模型或者是参考一下paper,想的一定是这个场景下还有哪些有用的特征,或者是模型的哪些参数是不是要调整一下。有点像是华山派当中的气宗,以气驭剑,实践决定理论,效果好比那些花拳绣腿管用。
我的思考
我之前是站实践派的,因为技术是为了业务服务的,在大小公司都是如此。也就是说有实际的效果和产出,比花里胡哨的先进技术有用得多。当然这当中有一部分原因是因为我是本科生,没有经过正统的学术氛围的洗礼和锻炼。
后来随着我读过的paper越来越多,加上视野越来越开阔,我对这个问题有了新的想法。paper当中先进的巧妙的做法很多,如果弃之不顾,只是闭门造车也一样是不行的。其实这不是一个二选一的问题,一个优秀的算法工程师不应该只能解决问题,对于当今业界的发展情况以及前景都应该心中有数。既能解决实际问题,也可以展望行业发展,这个才能称得上是专业。所以现在对这个问题,我感觉应该三七分成,三分学院派,七分实干家。
写这篇文章呢不是为了分个谁高谁低,只是给大家提供一个新的视野,审视一下自身对照一下他人,如果能够开阔一点视野,找到一点共鸣,突破一点桎梏就更好了。
今天的文章就到这里,衷心祝愿大家每天都有所收获。如果还喜欢今天的内容的话,请来一个三连支持吧~(点赞、关注、转发)