前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法工程师的技术深度到底是什么?

算法工程师的技术深度到底是什么?

作者头像
枫桦
发布2022-12-17 16:59:02
3860
发布2022-12-17 16:59:02
举报
文章被收录于专栏:AI算法札记AI算法札记

无论是面试,还是晋升,或者日常工作中,经常听到“技术深度”这个词,那么对于算法工程师来说,技术深度到底是什么呢?本文转自知乎@九老师的分享,阅读后受益匪浅,以下为原文。

我在毕业不久第一次晋升的时候,自我感觉非常的良好,业务产出非常充足,当时答辩被挑战了技术深度。那既要有业务结果,又要有技术深度。那什么是技术深度?

看最新的paper,搞业界最前沿的技术,叫有技术深度么?我有很长时间,就是这么认为的。不过到现在,我觉得这么认为是不全面的。

我现在理解的技术深度——在一个场景落地某个方法,有效了知道哪些因素有效,无效了知道哪里存在问题。推荐系统少有知识,多为经验,你在某个业务场景下用某个技术拿到了结果,这个叫经验。经验是不一定能迁移的,业务差异和基线水平,会影响某个方法的表现。只有你清晰地了解,在哪些因素下,方法有效,就提炼出一点知识,迁移的成功率就大大增加了。

idea真的是最没有用的东西,谁还没个idea。有一个牛逼的idea,这个跟有深度还差着十万八千里。

我们有一路召回,叫U2U召回,是拿我们向量召回模型的user向量做个聚类,然后每个用户簇里通过历史行为投票出top商品。为啥这么干呢?我们发现对于新用户,向量召回不够准、i2i召回数量不多、dhot个性化太弱,U2U召回就是热度与个性化的一个折中,往往在新用户上能取得更大的收益。但是这个流程非常的冗长,要把向量U2I模型的每一个user给inference出来,然后跑kmeans聚类,拿到聚类簇后设计投票算法,然后截断存一个倒排链,再把每一个cluster的向量(用户向量聚合)给索引起来,拿用户向量找空间距离最近的topN个类,再把N个倒排链给merge起来。

大家都觉得冗长,在我开始思考这个问题之前,有两个同学已经开始尝试在训练过程中完成聚类,来简化流程。他们有idea,并付诸实践了,但是没有拿到效果,后面就不了了之了。我开始思考这个问题,我就在家附近的公园里有了idea,思维推演了几遍,回家在开源小数据集合上把代码写了(数据量小,单机足够,数据质量高,方便分析),确定方法work之后,在业务数据集上做了实验和数据分析,看起来推荐case挺棒的。然后,找了做新用户方向的同学,输出给他这个idea。到他一遍一遍地调整实验,调整策略和参数,方法在业务场景落地,又用了很长的时间。

然后,我们在其他业务场景推广的时候,原来有类似idea的同学,跟我说了一句,”我在原来场景也尝试过,没有work“。这句话很恐怖,是抹杀掉技术深度的一句话。我面试的时候经常遇到,某个方法为什么不尝试呢?”我试过,没有效“。我在想,如果做这个方向的同学只试了一遍,就放弃了,那么他给出来的结论也就是,”我试过,没有效“。

还有另一个有趣的事情,MIND这个方法看起来挺棒的,但是在其他follow的团队落地并不好(这个观点来源有限,勿喷,包括面试中的遇到的)。后来熟悉内情的同学跟我讲,阿里某业务follow MIND,做不出来效果,请MIND作者过去调,很快就有结果了。我想,当初第一次落地也绝不是一帆风顺,一定是经历了N次策略修改和参数调整,最终拿到的结论,而这些技巧和体会,很难完全输出在paper里吧。我觉得这就叫深度,你知道一个idea,有哪些因素来让他实际work,或者你知道哪些情况下他不work,就是技术深度了。

再比如,我们搞最简单的协同过滤I2I,在初版基础上迭代,我给同学一些优化的建议,后来说都试过了,没有效果,我没办法,只能自己来了。我的优化就是有效的,然后我们看里面的每一个优化点,他都试过,我至今也搞不懂原因。搞定I2I这件事,这个03年以前的技术,能叫有深度么?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI算法札记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档