5

当我们在谈论算法时,我们在谈论什么

 2 years ago
source link: https://zhuanlan.zhihu.com/p/449505933
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

当我们在谈论算法时,我们在谈论什么

产品经理话题下的优秀答主

作为互联网从业者,或多或少都接触过算法这个概念。

有的人认为算法是魔法。比如热搜人物王力宏在《A.I.爱》里唱过“但 A.I.,能克服所有问题”。

有的人认为算法就是一堆烂泥巴,得靠着各种修正策略才能勉强糊一个破娃娃形象。

我自己开始接触算法是因为做搜索系统需要了解算法原理,于是开始是看阮一峰的博客。后来做了推荐,花了一段时间才理解了什么是机器学习、随机梯度下降。后来虽然工作换了几次,但是主线还是在算法和产品结合的领域。

工作中也多次在项目中主导算法选型和算法设计,算是积累了不少经验,也对算法这个抽象的词,可以多谈一点自己的理解。本文不包含任何公式,请放心食用。

基础的数学原理

神经网络可以追溯到上个世纪五十年代,决策树起源于上个世纪六十年代,强化学习起源于上个世纪六十年代。而它们分别是联结学派(The connectionists)、符号学派(The symbolists)、进化学派(The evolutionaries)的算法基石,也是影响我们生活方方面面的算法基石。(想了解各种学派算法的原理,可以看之前的一篇文章)

从数学的角度,算法的原理非常基础,属于接受了高等教育的学生努力都可以学明白的地步。当然了,这和大部分互联网从业者不了解算法原理的现状并不矛盾,毕竟大部分人也跑不了10公里。

算法之所以这些年大规模应用,还是因为芯片和云计算的发展。而随着各种开源工具的丰富,算法开发难度也越来越低,甚至有了调参炼丹的梗。

从业务问题到算法问题

既然算法开发越来越简单了,那么为什么还有那么多公司无法利用算法提高效率呢?

明明别人用的好好的算法,很多公司用了之后却没什么效果。或者明明请了很厉害的人,却搞不出来有用的算法产品。前者的典型是一些公司做推荐算法,后者的典型是大厂们努力开发的智能音响。

之所以会这样,是因为算法的应用从来都不是单纯的算法问题,在解决算法问题之前,首先需要把一个业务问题转化为算法问题。

就拿已经逝去的K12领域的分班问题举例子吧。同一个主讲老师的班级中,一个学生会被分给多个辅导老师,理论上有很多种分配可能,行业中通用做法基本还是随机分配。每个学生和不同辅导老师之间转化概率不同,理论上可以有基于预测,作出最优匹配,提升整体转化率。

这不是一个推荐问题,而是一个典型的分配问题,解法更类似于整数线性规划,和大部分主流算法不兼容。

但只要问题从业务问题拆解到了整数线性规划这样的算法问题,这个问题就可以用很成熟的方法解决。具体到这个问题,可以把每个辅导老师的班级名额作为需求,学生作为供给,名额和学生之间有匹配度,然后构造二分图。解二分图的算法非常多,贪心算法、KM算法、匈牙利算法都行。

当问题拆解到可以用二分图建模时,问题好像已经被解决了,但真的是这样吗?

可解释性与推广应用

上一节的结束部分可能已经有朋友看得迷迷糊糊的,这很正常。如果真的用这段说法去跟管理层沟通,大概就是一场灾难。如果拿着这个方案去跟一线辅导老师们沟通,他们只会觉得你想克扣他们的工资,用呼兰的话说就是“总有朕要害刁民”。

如果一个问题可以被用非常简单的方式解决,那这个问题就不会被遗留到现在。而当你试图用数据、算法构造一套更复杂的系统去解决,那么在内部就会遇到很大的阻力。

首先就是可解释性。实际上可解释性和复杂性是不矛盾的。比如原子弹是怎么爆炸的?里面有无数个物理问题和工程系统问题,两弹一星影视作品里经常有一黑板的公式,看着就头疼。

但对受过义务教育的人而言,依然可以做一个简化解释,比如:质量可以转化为巨大能量,原子撞击聚合能把部分质量转化为能量。

在实际工作中,要进一步推广应用,则需要站在对方的角度去思考。帮助对方理解这个很难理解的系统怎么解决他的问题,做一些工作帮助对方打消对新系统潜在问题的顾虑。测算投入和收益、分析影响面、对应用中可能遇到的各种问题做足够的预案,争取足够多的人。

然后设计完善的测试方案,用测试结果,进行进一步的推广。

实践的机会与窗口期

算法不是理论,也不是刷题。算法比赛里能拿金牌的人,也许在面对真实情况时完全手足无措。

算法解决实际问题的能力,需要在真实的实践中锻炼和培养,而这样的机会则少之又少。

一个公司不能太大,太的公司里挂了策略产品经理title可能就是在收集case,不理解系统全貌。典型的比如之前在字节时,给抖音推荐PM反馈bug的故事。某天我刷到了很多快手风的视频,点赞量也不对。我就在问题反馈群里说了下,我觉得是推荐系统挂了,而且兜底内容池也出了问题。然后接话的推荐PM还说应该没问题,后来是工程师确认,应该就是我说的问题,他们会尽快修复。

一个公司也不能太小,没有足够多的潜在应用场景,只有模式相对稳定,积累了一定量的数据,有一定盈利能力,才需要高杠杆的算法去提升各个环节的效率。

“深处种菱浅种稻,不深不浅种荷花”,算法大概就是荷花。

图穷匕见的招人启事

目前我就在这样一家公司,有一定的规模和盈利能力,组织内部关系简单,管理团队讲逻辑,现在负责算法和策略产品。有一些事儿已经在做了,但还是需要很多同学的加入,算法工程师和策略产品经理都需要。

算法工程师有两类,一类是偏研究的,核心是算法深度,一类是偏解决问题,核心是算法广度。我们当前阶段需要的是后者。现在就像是在整个业务的果园里摘长得比较低的果子,所以更看重算法的广度和工程实践能力,对于算法领域普遍比较看重的背景不做要求。

策略产品经理基本还是我之前的招聘偏好,需要有一些数理统计基础,有比较强的自我驱动和学习能力。

除了成长机会,薪资可以给到业内有竞争力的薪资,还是个不错的机会。

当然,除了这些基础的保障,还有一些相比于稳定大厂拧螺丝的风险溢价,比较适合风险偏好型的同学。

今年互联网整体寒潮,好机会不多,欢迎自荐或者推荐给身边的朋友。简历可以发送我邮箱:[email protected]

有任何问题也可以公众号咨询沟通,这阵子我保证积极回私信。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK