11

算法的通俗解释(3)知道这四种场景就够了

 3 years ago
source link: https://zhuanlan.zhihu.com/p/356426241
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

算法的通俗解释(3)知道这四种场景就够了

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

做过很多产品的策略,看过不少算法书,算法是真的多,还有各种变种。要理解这些算法,还真得真的理解大学数学课作为基础。

然而,我们令人同情的互联网中,虽然几乎人人都是大学毕业,但是非算法岗里面理解大学数学的还真的不多。

我经过了一些具体实践之后发现,大部分算法其实都是在解决一些有共性的问题场景。了解这些场景后,在产品方案设计时,就可以对判断是否用算法去做,就可以考虑到是不是有些地方可以用算法去提升,这对于大部分产品经理而言就够用了。

场景一:特征和概率预测

这几乎是最常见的一种了。比如搜索和推荐系统,就是了解用户特征、内容特征、预测用户点击内容的概率。信息流也是如此、商品也是如此。广告系统,也可以用这种方法做点击率的预测。

这些系统一般要解决内容分发的问题。有很多历史上用户对内容的行为,每个用户同时可以消费多个内容,搜索、推荐、广告都是如此。

这里面最重要的就是定义好什么是正样本什么是负样本,然后扔进去机器学习里面一波流。再通俗一点就是确定什么行为数据代表用户对内容感兴趣,什么行为数据对内容不感兴趣。

正样本比如:用户点击广告,用户把短视频看完且点开评论,用户看完内容关注了创作者。

负样本比如:热门内容给用户曝光了但用户就是不点,用户看了一眼就划走了。

这里面还需要特别注意的就是,这个算法就是假设用户的行为具有连续性,这个假设是值得挑战的。

另外点击概率出来之后最直观的策略是按照点击率倒排,然而这里可能会有很多bug,比如用户选择概率最高的内容可能很类似,全摆出来用户会厌烦,可能还需要一些调整。这些就是需要理解用户和理解产品才能做得决策。

但总而言之,特征和概率预测场景是算法行业的老问题了,很多业务问题都有成熟解决办法,不懂算法的产品没太大的发挥空间,估计还是得充当工具人。

场景二:两类主体一一匹配

最典型的还是网约车了,司机和乘客的匹配,我自己对这个场景理解比较多,还是因为做过网约车的分单算法。但其实这个场景应用也很广泛,比如外卖、比如社交软件的在线匹配、比如在线教育的老师分班。

这个场景的特点就是这两类主体中不同的匹配组合满意度不同,系统寻求的是最大满意度。

比如网约车每个人都希望匹配给自己最近的车,每个人都希望自己能匹配到最受欢迎的异性,每个学生都希望自己分到最好的老师。

但是服务场景和在线场景不同,不可能满足所有人的需求,服务者服务能力有限,有些时候只能服务一个用户。如果是内容分发,那无所谓,一个内容可以同时曝光给所有用户,但是一辆车不能分配十个乘客。所以就需要求这两类主体之间的相互之间的匹配度,然后求出一个最优解。

具体求解的部分介绍一个二分图,就是专门解决这类问题的算法之一。这就是两类集合,每个点都和另一个集合中的点有不同大小的匹配度。最终求解如果每个点只能和对面集合中一个点连接,最优匹配是什么。二分图问题是经典问题,有很多成型的算法,KM算法就是其中之一。

很多场景可能不能直接用,但也有一些处理方法。

比如大班老师可以匹配多个学生,而不是一对一。就可以把老师的班级名额的作为匹配的主体,这样两边就对等了,1个A老师和100个学生,就变成了100个A老师的班级名额和100个学生。

如果同时有多个角色需要匹配怎么办?

那么就可以先两两匹配,绑定后加入第三者继续进行匹配。

场景三:根据情况做决策

比如炒股,决定是否买一个股票有很多决策因素,比如市场情况、股票价格、公司财务指标、行业情况等。就是根据当时的情况做决策。很多自动化策略都是这种,自动驾驶就是典型的这种场景。

这种问题没有通用的解决方法,但基本就是构建一些启发式规则,比如根据指标构建一些函数,这些函数的结果会影响决策。

要判断这种函数是否有用,最好的方式就是利用历史数据做回测校验、就是假设还原到当时的情况下,看策略的表现,并且利用后来的真实情况评估策略的好坏。

这些策略对于现在的算法依赖不大,但是对于统计学知识、业务场景理解、函数构造经验要求很高。

场景四:根据多项数据分级评分

比如淘气值、蚂蚁信用分、司机服务分等。在学生时代我们通过考试打分,在互联网中就没法做卷子了但是还是要考核。我们希望通过这些指标,对用户或者服务者有更直观的认识,对用户可能是一些精细化运营,对服务者可能是升降去留。

这里也是机器学习算法应用较少的地方,基本还是根据对业务的理解构造一些打分规则。我之前写过三篇服务分打分的内容,感兴趣的同学可以再读一下。

评分算法一:从《社交网络》到豆瓣评分​mp.weixin.qq.com评分算法二:B端核心策略——服务分​mp.weixin.qq.com服务分三:归一化、权重设计与归因​mp.weixin.qq.com

除了这些,还有一些非常场景化的算法,比如语音识别,图像识别,听名字就知道这个算法干吗的,虽然算法复杂度高,但是好理解。遇到可以用到的场景,非算法人员也能想不到。

目前这四种类型基本涵盖了互联网主流的算法场景,也是策略产品经理主要战场。虽然大部分公司不要求产品经理们懂算法,更看重人的基本素质,但理解了这几种场景还是必要的。

如果在遇到新问题时,万一业务人员和产品经理都意识不到这些场景可以用算法,那么算法就无法参与其中。而这些场景下,算法确实能极大的提高整个产品的用户价值或者商业价值。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK