作者:艾雷 出处:https://zhuanlan.zhihu.com/p/532197011
作为推荐算法工程师,在快手的这两年,收获了很多,仅以本文记录我的一些浅薄的感悟,希望下一个两年结束时,我会觉得这里的很多观点都是不全面的,这说明我有了更多更接近本质的见解。
1. 从问题出发设计方案
从“哇塞,这个模型牛逼”的点出发,容易陷入从“哇塞,想法牛逼”到“哎,在我们场景不适用”的莫名其妙的困局里,所以推荐算法工程师应该多看看case,从单个case找到系统性的问题,设计方案和评估方法,重复这个过程,这个过程要么提升认知,要么提升绩效,hhhh。
2. 不要迷信AB实验的指标
AB实验指标反映最终结果,无法很好的证明实验组策略与结果的直接因果关系,多多设计与实验组策略算法直接相关的中间观测指标。
3. 把工作时间的10%用于扩展知识的边界
有句老话,“我们很难赚到认知以外的钱”,这个观点同样适用于推荐算法工程师,“我们很难设计出认知以外的模型或策略”。
4. 增强对数据的敏感度
精确地牢记各种数据,对数据越敏感,越能产生“这个数据有点奇怪”的直觉,也越能发现数据之间的因果性。
5. 多多关注同行最佳实验
推荐系统的模型和策略实验成本太高,我们要学会采用bayesian optimization,而不是用grid search,来找到最佳方案,“参考”同行的方法算是个不错的搜索方法。
6. 小步快跑
鉴于推荐系统里各种操作都需要被AB实验验证,所以推荐系统更适合小步验证,快速迭代。
1. 积极主动
要主动创造有利的工作条件,比如争取各种计算资源(毕竟推荐领域样本量太大,笑),又比如,乙方因为需求量太大而没时间完成的自己需求,那就及时制定plan B,而不是等乙方“明天一定能做完”的饼。
2. 以终为始
从目标倒推过程,可以使用OKR来管理个人或项目的中长期目标。
3. 要事第一
优先做重要且紧急的事情,多关注重要但不紧急的事情,少安排紧急但不重要的事情,合理放弃非紧急且不重要的事情。
4. 结构性思维
不要过早的陷入细节中,自顶向下的拆解,自低向上的归纳,形成多叉树结构的知识框架。
5. 强闭环思维
研究新模型时,反思上一次实验做了什么,结论是什么,下一次实验准备做什么,循环这三步直至实验“确定”成功或失败,不要处于薛定谔的成功或失败状态。
6. 不要随波逐流
精排模型往往被卷的不要不要的,它会被不断堆砌而变得臃肿,后续的开发者几乎会完全copy前人的代码,多理解真正的原理,多想想正确的写法,这样才会少犯错。
7. 不要迫于外界的压力而放弃主见
在自己深耕的细分领域,别人不一定比自己懂,所以有时候要“固执己见”。
8. 第一性原理
探究问题的本质,多问自己五次为什么(如果开会被领导问了但答不出来,就很尴尬 = =!)。
9. 从“点”切换到“线”的思维模式
“点”的思维模式关注单个项目的最终结果,“线”的思维模式更关注多个项目的联合结果,在工作中,可以尝试将自己的众多项目以一条“线”串联起来,这样在晋升答辩、求职中都能展现出思维的深度。
10. 珍惜自己宝贵的时间
把自身或者某项目视作待优化的产品,不断优化迭代其中的流程,提升工作效率,达到work life balance的状态。
11. 不设边界
这四个字有点鸡汤的味道,反正我觉得挺受用的,记录在这里。
1. 团队管理很重要
从《人件》中抄了一句话,"优秀的组织往往会有意识地去追求成为最佳。组织的共同目标提供了一致的方向、合作的满足感和强大的凝聚力。并且会滋生一种永恒之地的观念,感觉只有傻瓜才会去其他地方寻找工作。"
2. 及时向上汇报
一是汇报相当于工作总结,能帮我们梳理混乱的思绪;二是领导可能想知道我们的进展又不好意思催促,不如我们自己汇报;三是有必要给予领导一些知识输入,以防他们以为我们是拍脑袋定方案的。
3. 一个人可以走的更快,一群人可以走的更远
推荐系统就很卷,衷心祝愿家能保持住双赢的心态。