乐趣区

关于算法:谁说算法工程师不会写代码

大家好,我是阿星。我的新书《大规模举荐零碎实战》前段时间上市了,收到很多反馈,看着那些或感激、或认可、或激励的句子,我很有成就感,在这里感激大家的反对!

其实上学的时候就有涉猎一些算法常识,然而我真正意识到应该深刻理解算法,是在 2015 年。因为我发现,算法竟然能够让我研究生阶段学到的矩阵论、最优化实践等看上去毫无用处的常识派上了用场!这在计算机行业的其余方向都是不可设想的。比方很多人自嘲:

我开始做商业化的举荐算法是在 2016 年,做短视频举荐。第一个上线的算法是协同过滤,当它“轻而易举”地将用户观看时长晋升了 10%+ 时,我都惊呆了!不禁感叹:“一个小小的算法具备这么大的威力!”

看着本人实现的算法可能“管制”几百万人的行为时,那种成就感,我当初仍历历在目。这份成就感,也让我始终放弃着对举荐算法酷爱,去一直钻研它。在这条路上,很幸运地遇到了一些和我一样,对举荐算法感兴趣的人,我也很乐意把我的教训分享给大家。

大略 2020 年的时候,我发现很多举荐算法从业者对算法以外的常识理解得非常少,特地是软件工程相干内容,于是常常会被戏谑:算法工程师不会写代码。

而且还有一个很广泛的景象,因为分工的起因,很多从业者的日常工作只波及举荐零碎的一小部分,长此以往就成了“螺丝钉”,这对于集体倒退来说不太敌对。所以我萌发了写一本书的念头,很快就开始盘算“这本书”的定位。

回想起我刚开始接触举荐算法时,到处找博客、看视频、买书。这个畛域和其余技术畛域很像,材料大都停留在实践层面,讲落地的少之又少。

时至今日这种景象也并没有缩小,更别提在以后大数据时代的算法落地,与 10 年前相比,产生了天翻地覆的变动。因而我打算写一本对于举荐零碎实战的书,把重点放在工业界如何将举荐算法落地。过后我认为最重要的就是:肯定要给读者提供具备生产规范的代码,让想要入门的人少走弯路。

上面和大家聊聊这本书,其实整本书大体上就是我对举荐零碎的认识。

想要举荐算法价值最大化,个别从数据和模型两个角度来思考,往往前者更加重要。这也是咱们平时在学习和工作中容易漠视的中央,很多从业者会把大量工夫放在折腾模型上,然而,往往数据的优化带来的收益远远高于模型的调优。

但说到底,模型是为了数据服务的,不能轻重倒置。因而数据的结构和优化,在这本书里占据了很大的篇幅。我在书中讲述具体的算法之前,会首先形容算法用来解决什么样的问题,以及如何结构训练数据(比方第 7 章一整章都在解说特色工程和特征选择,毕竟特色是整个建模过程外围中的外围。)

除此之外,我认为对算法的评估也是一个很重要的方面。评估分为线下评估和线上评估。这在书里都有很具体的阐明和实现,比方线下的召回阶段和排序阶段应用的不同评估形式;线上点击率、转化率、AB 测试,包含业界支流的分层试验计划和指标置信度评估,等等。

最初我在这里对立答复一些来自读者的发问。

  1. 如何解决零碎冷启动?是否有能够分享的教训?

冷启动个别会有用户冷启动、物品冷启动和零碎冷启动,字面意思曾经能够解释这三种冷启动的差异。对于冷启动问题,在本书的第 13 章也做了较为具体的阐明。

用户冷启动:次要通过热门榜、用户人口属性(地理位置、设施信息等)、内部数据(比方 A 和 B 产品同属一家公司,B 产品是新产品,那么 B 产品可能就会用 A 产品的用户数据)等去做举荐;

物品冷启动:个别通过物品自身的属性去举荐,题目、标签之类的。当然通过多级流量管制也是惯例做法。

零碎冷启动:这是属于最辣手的,能够应用内部数据,如果没有内部数据,个别就等零碎缓缓积攒了,在算法层面,多臂机是很罕用的算法。

  1. 如何掂量一个举荐零碎是否优良?

能为公司赚钱的举荐零碎就是优良的举荐零碎(哈哈)。
站在技术人的角度,一个优良的举荐零碎,必须具备以下几个特点:疾速迭代、疾速反馈:依附分布式训练、可信的 AB 测试平台和零活伸缩性好的模型服务平台。其中前两者在书里的第 11 章和第 15 章做了具体的阐明。模型服务平台要可能反对模型疾速上线、扩容、下线,最好是零配置、一键上线、扩容、下线。数据、特色和模型治理:这些须要可能像代码一样,有版本控制、历史追踪等。欠缺的监控零碎:模型指标监控、数据分布监控、线上服务监控等,保障整个举荐零碎的数据品质、模型品质和服务质量。以上其实就是须要一套高效的 MLOps 工具。

  1. 大厂对于举荐算法工程师都有什么样的要求?

我感觉我无奈间接代表大厂,我来说说我对于举荐工程师的冀望吧。

工程能力:coding 能力 & 软件工程能力,我始终感觉这是技术能力中最重要的一方面;

算法能力:扎实的实战经验,不是浅尝辄止,而是可能刨根问底,做到实践和业务相结合;

方法论:属于软实力,这个看上去有点虚,然而如果可能总结出本人在工作中的一套方法论,包含剖析问题、解决问题、与人沟通等方面,对于职业生涯更上一层楼大有帮忙。

  1. 对举荐算法工程师的将来倒退路线有什么倡议或者教训能够分享吗?

增强工程能力,把算法工程师当成是软件工程师,最起码要可能看一些优良框架的源码;不要沦为调包侠 / 调参侠。留神总结和思考,工作中的很多问题其实都是反复的;多看书,多看论文:集体的能力和精力有限,多看看优良的论文,对眼界宽阔都特地好,在这里举荐谷歌、FaceBook 和阿里的论文。

  1. 您在 SHEIN 工作,与之前在字节、苏宁有什么不同吗?

SHEIN 作为一家跨境电商,仍然还在砥砺前行、茁壮成长。我退出 SHEIN 也快 3 年了,成长了很多。

我在 SHEIN 比拟有意思的事是因为咱们在多个国家都有业务,而每个国家的气象、习惯、习俗和信奉什么的都可能不一样,因而在算法建模时都要留神这些方面,这与在做国内业务时还是有很大的区别的。

编辑举荐

本书从实战的角度介绍举荐零碎,次要蕴含三局部:召回算法、排序算法和工程实际。书中粗疏分析了如何在工业中对海量数据利用算法,从算法原理,到模型搭建、优化以及最佳实际等。根本涵盖了举荐算法从业人员在理论利用中所要把握的全副外围技能。适宜人群本书适宜心愿入门举荐算法的非行业从业者、心愿在举荐算法畛域进阶的行业从业者,以及心愿全面理解举荐零碎及其运作原理的技术管理者浏览。

特色亮点

• 业余背景:一线互联网大厂举荐零碎专家经验总结。
• 着眼实战:具体分析大规模举荐零碎从 0 到 1,从 1 到 N。
• 开箱即用:附带能够间接用于生产环境的所有支流举荐算法的代码实现。

作者介绍

阿星,曾在字节跳动、苏宁易购等企业负责举荐 / 广告算法的设计、开发和优化工作,在应答海量数据下的算法建模以及点击率 / 转化率预估等工作中积攒了大量实战经验。

目前就任于跨境电商巨头 SHEIN,负责晋升寰球外围业务场景的流量散发效率。

对于举荐零碎,小伙伴们有什么纳闷吗?大家能够在评论区留言,有可能会被作者大大翻牌哦~(对了,很“大”的问题倡议购书零碎学习哦~)

退出移动版