在抖音推荐算法组工作的体验怎么样?

Posted by Yezhiwei on June 23, 2020

原文地址:https://www.zhihu.com/question/285747864/answer/1260550639

主要说了在抖音推荐算法组工作的体验

之前在 Snapchat 工作了2年,去年回国加入了抖音的推荐算法团队。我先列一下主要的工作内容,针对每一项说说我个人的体验;再说一些不具体到哪项工作内容的、general 的体验吧。去年选择换工作加入抖音主要是冲着更好的锻炼机会,现在呆了一年感觉是符合当时预期的,重新选择十次应该也会十次做同样选择,所以我是坚定的“劝入”党。

工作内容和具体体验:

确立目标,拆解问题

除了校招入职的新人可能会先从已经拆解到可以直接执行(写代码/训练模型/做实验)的任务上手,大部分的同学都会或多或少有这块工作。推荐团队的 leader 会想怎么定义抖音长期的成功,为了这个长期的成功应该投入做哪些业务方向,各个业务方向的进展是怎么对应到未来对抖音大盘的贡献的;各业务方向(一般2-5人)的负责人会想怎么定义这个业务方向的成功,衡量指标是什么,长期应该沿着什么路径把这个业务方向做成,短期 OKR 和重点模块是什么;各模块负责人(一般就是一个人)会想这个模块现在的可做项目有什么,其中哪些 ROI(投入产出比,公司很鼓励大家有思考ROI的意识)最高。这块工作内容我很享受,我觉得对个人能力是很好的锻炼,思考之后一般会有一个和负责更大 scope 的同学对齐的步骤,也是一个获得反馈从而有成长的好机会。

建设数据,分析现状

上面提到的“确立目标、拆解问题”的过程肯定不能只靠逻辑推理和信仰判断,了解现状是基础。除了多用产品从而获得感性认识以外,很重要的工具是数据。抖音这样一个 4 亿以上 DAU 的产品是有很好的数据积累的,数据可以给“怎样更好地服务用户”这个问题很好的参考,这样好的积累下如果做决策还是只靠拍脑袋那真是暴殄天物。虽然公司也有专门的DA(数据分析)同学,但算法工程师一般这方面能力也很不错,而且数据分析要结合自己负责的具体业务,所以更多时候是自己搞定。这块体验比较好的点是现在(是的,过去没有这么幸福)底层数据建设方面公司有很好的中台团队,我们一般只需要提需求就好,不用自己维护各种表和各种任务。

实现项目

基于对现状的分析和问题的拆解,我们会成为自己的PM,得到一系列待执行的项目,可能是偏模型的,或是偏策略的,或是偏工程的,下一步就是做自己的研发把这些项目实现。实现过后一般会开个AB实验,然后自己又会成为自己的数据分析师来分析这个实验,确定是值得上线还是要进一步迭代。算法/模型方面,架构是很先进的,底层infra(大规模并行训练和线上预估等)支持也很好,这是体验好的部分,不过机器资源一直比较紧张有时候会要等比较久;代码的质量还有待提高,这块有时候是体验不佳的,可能大家过去还是主要在跟着业务狂奔,所以或多或少留下一些技术债。

承接产品需求

相对于其他研发工种来说,推荐算法工程师做产品需求的时间比较少,大多数时候是自己确定该如何优化推荐系统。但和其他研发工种一样,和 PM 打交道时总有“相爱相杀”的体验,好在在字节跳动,PM 对于推荐相关的事情对算法工程师还是很信任的,而且大家也都看见了算法/模型实实在在的效果,所以比较少会要人为制定规则强行修改模型的判断,对纯推荐场景还是以给建议为主(其实有时候结合对产品的了解,PM 同学确实是能给出有价值建议的,所以我们团队很鼓励算法工程师也深入了解产品,自己也成为有产品判断力的同学)。和其他研发一样,我有时候也会觉得 PM 提的某个需求不靠谱(主要是 ROI 不高),不过这时候其实有比下意识有不满情绪更“高级”的心态:我可以把它当做一个锻炼“影响他人”能力的机会,当我在仔细聆听了对方之后依然觉得我有更好的判断,我应该去想怎么去努力说服对方;当我觉得某个问题之前已经说过了怎么又提了一个类似需求,那不一定是对方的问题,可能是我上次的沟通还不到位;当我觉得对方为什么外行指导内行的时候,可能是因为我还没有建立足够的信任;等等。对于有志于未来不是一直做单兵工程师的同学来说,“影响他人”这个事情中所要求的共情、沟通等能力其实也很值得锻炼,从这个角度来说,和 PM “相爱相杀”不见得是不愉快的体验,而且充分沟通互相建立信任之后,其实可以和 PM 同学互相学习,并且成为共同努力把事情做成的最亲密战友。

给产品、运营等同学提建议

这块是我在上一份工作中没有的工作内容,也是我对这份工作最看重的锻炼机会之一。我们团队非常鼓励算法工程师花时间了解和思考产品,并且参与到产品迭代的讨论和决策中,合作的产品和运营同学也很欢迎推荐算法工程师的建议和反馈,这一方面因为作为主打内容分发的App,抖音的产品迭代也需要对内容分发技术有深刻理解的算法工程师的视角,另一方面因为推荐团队中有一些同学在过去到现在提了一些靠谱的建议和反馈,给这个团队打造了比较好的形象。在改进推荐算法的基础上参与产品和运营的讨论,会让我觉得自己的“action space”变得宽阔很多,可以把自己假想成整个产品的 owner 来思考怎么把一个产品做成、做的更好,并且和其他职能的同学交流各自的思考。这点对有志于将来创业的同学来说应该是很大的加分项。

带人、带团队

除了正式的 leader 要操心这个问题,带一个方向的负责人也要操心这2-5个人的团队怎么打造好,让大家不仅有产出,而且各自有成长,也要规划人力和参与招聘,带实习生或者新人的 mentor 也会花不小的精力优化mentee 的成长。这点可能和其他公司和团队大同小异,说一个这方面我体验最好的点:公司的 politics 已经属于各公司里比较少的,推荐团队内的 politics 更是趋近于0,大家基本除了关心怎么把事情做成,就是自己的能力成长和自己带的同学的能力成长,我觉得这一方面因为团队有干实事的“文化”和评估方式,另一方面因为团队内的同学也基本都是实干型的人,还有个“事多人少”的原因下面会详细说。

下面聊几点不具体到哪项工作内容的、general的体验

自由度高

leader 是 FB 的海归,崇尚正确的方向和高效率,一点儿也不崇尚高工作时长。上下班时间非常灵活,平常做事情也没有人**“微管理”**,有很高的自由度。

事多人少

团队目前规模还不大,抖音需要推荐的场景很多,基本都是这个团队负责,这点不是说每个人工作很辛苦,恰恰相反这是个大优势:这意味着锻炼机会和成长空间足够,而且这点也对 politics 趋近于0有重要作用,因为不存在隔壁组跟你抢credit/抢活(Google有的业务调个融合公式都几个团队抢着说应该他们团队负责调……),也不存在组内同学跟你抢好的活干的情况(因为满眼都是“好的活”)。团队目前基本是 head count 不限的状态在招人(感兴趣的同学欢迎找我内推),不过肯定也会控制不成为过于“人多事少”的团队。

实干

以把事情做成为导向,考核的时候完全不看是不是用到了乱花渐欲迷人眼的“高端”技术,这样的好处不仅是有实际影响力,能看到自己的工作实在地影响了千千万万用户,而且这样直接和客观规律打交道对真实能力成长大概率也是更优的。

对新人来说

可以学到一流的推荐系统架构是怎样的,也有很牛的老人手把手带。团队在带新人这方面投入得越来越多了。

对有一定经验的同学来说

有挑战也有舞台。重要的事情还远没做完,除了常规地优化推荐系统,还有怎么改善“信息茧房”问题、怎么做好整个内容生态、怎么做成一个新业务方向这种很有趣的挑战。

如果觉得还有帮助的话,你的关注和转发是对我最大的支持,O(∩_∩)O: