mirror of
https://github.com/cheetahlou/CategoryResourceRepost.git
synced 2026-05-10 19:54:28 +08:00
mod
This commit is contained in:
100
极客时间专栏/推荐系统三十六式/概念篇/01 | 你真的需要个性化推荐系统吗?.md
Normal file
100
极客时间专栏/推荐系统三十六式/概念篇/01 | 你真的需要个性化推荐系统吗?.md
Normal file
@@ -0,0 +1,100 @@
|
||||
<audio id="audio" title="01 | 你真的需要个性化推荐系统吗?" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/26/4b/262bd7ed009844cb481f4dc51500a84b.mp3"></audio>
|
||||
|
||||
个性化推荐的历史和我们国家的改革开放历史差不多,已经有些年头了。它已经从一个非常小众的方向,演变成了今天互联网产品的常见“配件”。
|
||||
|
||||
再加上一些以“个性化”为品牌卖点的互联网产品的成功,也给相关从业者打了一剂“强心针”,并让更多人跃跃欲试,想给自己的产品加上个性化元素。
|
||||
|
||||
但是别急,在问“该怎么做”之前,先来回答一下“要不要做”,毕竟谁都不想去实现一个无脑PM拍脑袋给出的需求不是?我先帮你更加透彻地理解“推荐系统”这个概念,只有彻底理解了事物的本质,才能轻松做出“适不适合”的判断,毕竟知根知底再相爱更容易到白头。
|
||||
|
||||
## 什么是推荐系统?
|
||||
|
||||
到底什么是推荐系统?按照维基百科的定义:它是一种信息过滤系统,手段是预测用户(User)对物品(Item)的评分和偏好。这个定义不是很好理解,也不恰当。它用“怎么做”来定义了“是什么”,这相当于变相规定了推荐系统的实现路径。
|
||||
|
||||
让我们来换一个角度回答三个问题,从而重新定义什么是推荐系统:
|
||||
|
||||
1. 它能做什么;
|
||||
1. 它需要什么;
|
||||
1. 它怎么做。
|
||||
|
||||
**对于第一个问题“它能做什么”,我的回答是:推荐系统可以把那些最终会在用户(User)和物品(Item)之间产生的连接提前找出来。**
|
||||
|
||||
这里简单说一下“连接”这个词,这个词含义非常广泛,凡是能够产生关系的都是连接,比如用户对物品做出了一个行为,或者用户的某些属性和物品的属性一样等等,有关系就是连接。
|
||||
|
||||
为什么这么说呢?这是基于这么一个事实:万事万物有相互连接的大趋势,比如人和人倾向于有更多社会连接,于是有了各种社交产品;比如人和商品有越来越多的消费连接,于是有了各种电商产品;人和资讯有越来越多的阅读连接,于是有了信息流产品。
|
||||
|
||||
这还只是纯数字世界,随着各种物理实体智能化趋势越来越明显,万物互联还会进一步强化。世界是一个数字化的大网,但里面只有两类节点:人和其他。
|
||||
|
||||
人是互联的终极意义,“其他”统称为物品,物品可能是人、资讯、消费品、服务等。推荐系统就是要在这张巨大的网中,不断去发现那些很可能会和人发生连接的另一类物品节点,让它们和用户真的建立连接。
|
||||
|
||||
提炼一下上述逻辑:
|
||||
|
||||
1. 世界的发展趋势是万物倾向于建立越来越多的连接;
|
||||
1. 人是这一切趋势的意义所在,为人建立连接是要义;
|
||||
1. 根据已有的连接预测和人有关的连接,就是推荐系统。
|
||||
|
||||
为了更形象,我再举几个例子。
|
||||
|
||||
1 一个社交产品,比如脸书(Facebook),如果它的20亿活跃用户之间已经都有社交关系了,那么它的“感兴趣的人”这一推荐系统就该寿终正寝了。
|
||||
|
||||
从已经建立社交关系的用户身上去推测你还可能对哪些人感兴趣,本质上就是提前把那些可能的用户连接找出来,然后再按照用户分别呈现在每一个人面前。
|
||||
|
||||
2 一个信息流资讯阅读产品,比如今日头条,只有当用户不断点进源源不断的内容物品中,每一次点击,就是一个连接,每一次阅读也是一个连接,不同层次不同重要性的连接在推荐系统的帮助下不断建立,所主要依据的就是那些已经存在的连接,即:用户过去都点击阅读了哪些内容。
|
||||
|
||||
3 一个电商平台,用户刚买过什么,常买什么,你正在浏览什么,这些都是用户和物品之间已经存在的连接,用这些连接去预测还会买什么,还会看什么也是推荐系统。
|
||||
|
||||
**按照上面的分析,我也同时回答了第二个问题“它需要什么”:推荐系统需要已经存在的连接,从已有的连接去预测未来的连接。**
|
||||
|
||||
**第三个问题:怎么做?**
|
||||
|
||||
维基百科的定义提供了一个说法:预测用户评分和偏好。这是推荐系统背后相关算法和技术的两大分类,在后面的专栏内容中我会讲到;但比这个定义更抽象的实现方式分类是:机器推荐和人工推荐,也就是通常说的“个性化推荐”和“编辑推荐”。
|
||||
|
||||
两者之间还存在现在最常见的领域专家推荐,也就是网红推荐,如何为用户找到适合他的网红也属于推荐系统范畴,编辑推荐偏玄学了,我在这个专栏里不会重点讨论。
|
||||
|
||||
总结一下推荐系统就是:用已有的连接去预测未来用户和物品之间会出现的连接。
|
||||
|
||||
## 你需要推荐系统吗?
|
||||
|
||||
我已经根据“能做什么”“需要什么”“怎么做”三个方面,讨论了什么是推荐系统。那么只要前两个条件成熟,你就需要一个推荐系统,至于“怎么做”的问题则简单得多,否则的话就是暂时不需要。那么,如何判断条件是否成熟了呢?
|
||||
|
||||
我们可以考虑两点。
|
||||
|
||||
第一,看看产品的目的。如果一款产品的目的是建立越多连接越好,那么它最终需要一个推荐系统。有哪些产品的目的不是建立连接呢?一种典型的产品就是工具类,如果是单纯提高人类某些工作的效率而存在的产品,比如一个视频编辑器,则不需要。虽然如今很多产品都从工具切入最后做成社区了,至少在工具属性很强时不需要推荐系统。
|
||||
|
||||
第二,看看产品现有的连接。如果你的产品中物品很少,少到用人工就可以应付过来,那么用户产生的连接肯定不多,因为连接数量的瓶颈在于物品的数量,这时候不适合搭建推荐系统。
|
||||
|
||||
或者用户和物品数量在某些手段下也变得很多,但是用户和物品之间的连接很少,表现就是用户的留存回访很低,这时候也不是很需要一个推荐系统。
|
||||
|
||||
你应该是想办法找到用户流失的原因,直到他们能贡献第一批连接才行。当然,用户很少时,人工完全可以应付一对一服务时,也是不需要推荐系统的。
|
||||
|
||||
关于第二点,“长尾理论”可以帮助我们理解,如何把用户和物品各种可能的连接汇总,包括用户属性、物品属性等,应该要有长尾效应才可能让推荐系统发挥效果。
|
||||
|
||||
这里我介绍一个简单指标,用于判断是不是需要推荐系统:
|
||||
|
||||
<img src="https://static001.geekbang.org/resource/image/34/a0/348f2791b116741670050c6d445f50a0.png" alt="" />
|
||||
|
||||
分子是增加的连接数,分母是增加的活跃用户数和增加的有效物品数。
|
||||
|
||||
这个简单的指标我解释一下:
|
||||
|
||||
如果增加的连接数主要靠增加的活跃用户数和增加的物品数贡献,则该值会较小,不适合加入推荐系统;<br />
|
||||
如果增加的连接数和新增活跃用户和物品关系不大,那说明连接数已经有自发生长的趋势了,适合加入推荐系统加速这一过程。
|
||||
|
||||
不过,具体并没有判断标准,因产品而异。
|
||||
|
||||
## 总结
|
||||
|
||||
到底要不要上推荐系统,如果仅仅从战术上来看,是一个关乎投入产出比的问题,搭建一个推荐系统的前期投入不小,你需要:组建团队、购置计算资源、积累数据、花费时间优化。
|
||||
|
||||
这些成本在早期不必须或者不成熟的情形下投入,显然投入产出比不是很优;但如果是战略问题,那就不在本文的讨论范围内了,至于哪些算是战略问题,我列举几个例子:
|
||||
|
||||
1. 产品要有这个属性,方便产品融资;
|
||||
1. 团队要有相关人才,因为不好招聘,先提前屯着;
|
||||
1. 要培养这样的思维,从而形成数据导向的产品文化。
|
||||
|
||||
类似等等,都不属于战术问题,具体问题具体分析。
|
||||
|
||||
现在我们来回顾一下,今天我先从三个角度定义了什么是推荐系统,然后从定性和定量两个角度分析了到底是否需要给自己的产品加上推荐系统。
|
||||
|
||||
那么,你可以试着从这两个角度分析一下,你自己的产品是不是需要推荐系统呢?欢迎留言,我们一起讨论。
|
||||
|
||||
<img src="https://static001.geekbang.org/resource/image/87/b0/873b086966136189db14874181823fb0.jpg" alt="" />
|
||||
124
极客时间专栏/推荐系统三十六式/概念篇/02 | 个性化推荐系统有哪些绕不开的经典问题?.md
Normal file
124
极客时间专栏/推荐系统三十六式/概念篇/02 | 个性化推荐系统有哪些绕不开的经典问题?.md
Normal file
@@ -0,0 +1,124 @@
|
||||
<audio id="audio" title="02 | 个性化推荐系统有哪些绕不开的经典问题?" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/8e/06/8e6ab4e7e97a3f8bcd300158f6c9c606.mp3"></audio>
|
||||
|
||||
推荐系统发展到了今天,已经出现了一些常见的问题,一部分已经有很好的解决方案,另外一部分却还没有通用解决方案,需要根据实际情况做一下具体的分析。
|
||||
|
||||
今天我来和你聊一聊这些问题。我会首先讲讲一些推荐系统中的问题模式,然后再专门说一些需要面对的具体问题。
|
||||
|
||||
## 推荐系统的问题模式
|
||||
|
||||
我们知道,推荐系统的使命是为用户和物品建立连接,建立的方式是提前找出那些隐藏的连接呈现给用户,这是一个预测问题;所以推荐系统的预测问题模式,从达成的连接目标角度区分,有两大类:
|
||||
|
||||
1. 评分预测;
|
||||
1. 行为预测。
|
||||
|
||||
因为评分和行为是用户对推荐结果的两类反馈,我们给他们推荐了一个或多个物品,目的是希望他们“消费”,这种消费反应在用户行为上,比如“点击查看”,信息咨询类的还有“阅读完成”,视频音乐类的有“播放完成”,电商类的“加入购物车”等。
|
||||
|
||||
整个行为呈现一个漏斗形状,从曝光到最终消费完成。最后在用户完成消费后,产品方一般还希望他们告诉自己消费的体验,这时候就有评分了;所以不同推荐系统的任务也不同,有的直接去预测用户如果消费完之后会给多少评分,更多的推荐系统则会分层,致力于预测用户的行为。下面我分别详细说一下这两类问题。
|
||||
|
||||
## 评分预测
|
||||
|
||||
评分预测相关算法模型研究的兴盛,最大的助攻是 Netflix 举办的推荐算法大赛。
|
||||
|
||||
评分预测要干的事情是这样的:假如用户消费完一个物品之后会给出一个打分,比如通常是1~5分,或者有的网站用星星的颗数表示,也是一样。
|
||||
|
||||
我们就想能不能提前预测一个用户对每一个物品会打多少分,找出那些他可能会打高分,但是还没消费的物品,然后装作若无其事地呈现在他面前,惊不惊喜,意不意外?
|
||||
|
||||
说干就干,怎么干呢?正如王小波给李银河写的信那样:不能胡干。一个朴素的思想是:建立一个模型,这个模型会给用户历史上打过分的物品去预测分数。
|
||||
|
||||
预测分数和实际分数之间会有误差,我们根据这个误差去调整模型参数,让这个误差越来越小,最后得到的这个模型理论上就可以为我们干活了。事实上,这其实就是个机器学习里面的回归问题。
|
||||
|
||||
Netflix比赛的评判标准就是 RMSE ,即均方根误差,怎么算的呢?
|
||||
|
||||
<img src="https://static001.geekbang.org/resource/image/ca/cb/cae72d1fd5a6e818c62c10c43910c5cb.png" alt="" />
|
||||
|
||||
这个公式中的t表示每一个样本,n 表示总共的样本数,有帽子的 yt 就是模型预测出的分数,是我们交的作业,秃顶的 yt 就是用户自己打的分数,是标准答案,然后一个样本一个样本地对答案,模型预测分数和用户自己打分相减,这就是我们预测的误差。
|
||||
|
||||
由于误差有正数也有负数,而我们只关心绝对值大小,所以再给误差求平方,这就是名字中的“方”的来源,再对所有样本的误差平方求平均值,这就是名字中“均”的来源,因为我们对误差都平方了,所以最后再对均值开方根,这就是名字中的“根”的来源。这个过程就是求均方根误差。
|
||||
|
||||
评分预测问题常见于各种点评类产品(如:书影音的点评),但评分类推荐存在以下问题:
|
||||
|
||||
1. 数据不易收集,我刚才说过,用户给出评分意味着他已经完成了前面所有的漏斗环节;
|
||||
1. 数据质量不能保证,伪造评分数据门槛低,同时真实的评分数据又处在转化漏斗最后一环,门槛高;
|
||||
1. 评分的分布不稳定,整体评分在不同时期会差别很大,个人评分在不同时期标准不同,人和人之间的标准差别很大。
|
||||
|
||||
用户爸爸们给产品施舍的评分数据,我们又叫做显式反馈,意思是他们非常清晰明白地告诉了我们,他们对这个物品的态度;与之相对的还有隐式反馈,通常就是各类用户行为,也就是另一类推荐系统问题:行为预测。
|
||||
|
||||
## 行为预测
|
||||
|
||||
实际上,用户爸爸们每天要在不同的 App 或者网站之间不停批阅奏章,日理万机,非常忙,所以能够提交的像评分这种显式反馈数据很少。
|
||||
|
||||
但是没关系,只要用户来了,就会有各种行为数据产生,从登录刷新,到购买收藏,都是用户行为,这类数据是用户们在自觉自愿的情况下产生的,数据量比显式反馈多很多。
|
||||
|
||||
用户的行为通常呈现漏斗关系,我希望用户最终达成的行为可能不是那么容易得到的,比如购买,比如建立一个社交关系,比如完整消费一个长内容,通常是从登录刷新开始,逐层经历漏斗流失。
|
||||
|
||||
而推荐系统肩负的使命自然是达成用户行为,也就是连接越多越好。这也是这一类推荐系统问题的关注点。
|
||||
|
||||
推荐系统预测行为方式有很多,常见的有两种:直接预测行为本身发生的概率,和预测物品的相对排序。直接预测用户行为这一类技术,有一个更烂大街的名字,叫做CTR预估。这里的C原本是点击行为Click,但这个解决问题的模式可以引申到任何其他用户行为,如收藏、购买。
|
||||
|
||||
CTR意思就是 Click Through Rate,即“点击率”。把每一个推荐给用户的物品按照“会否点击”二分类,构建分类模型,预估其中一种分类的概率,就是CTR预估。
|
||||
|
||||
行为预测说白了,就是利用隐式反馈数据预测隐式反馈的发生概率;也因此,各家互联网产品要高度重视隐式反馈,归纳起来有以下几点原因。
|
||||
|
||||
<li>
|
||||
数据比显式反馈更加稠密。诚然,评分数据总体来说是很稀疏的,之前Netflix的百万美元挑战赛给出的数据稀疏度大概是1.2%,毕竟评分数据是要消耗更多注意力的数据。
|
||||
</li>
|
||||
<li>
|
||||
隐式反馈更代表用户的真实想法,比如你不是很赞成川普的观点,但还是想经常看到他的内容(以便吐槽他),这是显式反馈无法捕捉的。而人们在Quora上投出一些赞成票也许只是为了鼓励一下作者,或者表达一些作者的同情,甚至只是因为政治正确而投,实际上对内容很难说真正感兴趣。
|
||||
</li>
|
||||
<li>
|
||||
隐式反馈常常和模型的目标函数关联更密切,也因此通常更容易在AB测试中和测试指标挂钩。这个好理解,比如CTR预估当然关注的是点击这个隐式反馈。
|
||||
</li>
|
||||
|
||||
用户给出较高评分的先决条件是用户要有“评分”的行为,所以行为预测解决的是推荐系统的80%问题,评分预测解决的是最后那20%的问题,行为预测就像是我们剁手买买买后,可爱的商品要先乘坐飞机,飞跃千山万水到所在区域来,而评分预测则是快递员最终将东西递交到你手上这个过程。
|
||||
|
||||
## 几个常见顽疾
|
||||
|
||||
讨论了两大类推荐系统的问题后,我们再来看几个推荐系统的隐藏顽疾。之所以说这些是隐藏顽疾,是因为它们还没有很好的通用解决方案,并且不容易被重视,这几个顽疾分别是:
|
||||
|
||||
1. 冷启动问题;
|
||||
1. 探索与利用问题;
|
||||
1. 安全问题。
|
||||
|
||||
### 1 冷启动问题
|
||||
|
||||
推荐系统是数据贪婪型应用,所谓数据贪婪型应用,就是对数据的需求绝无足够的那一天。冷启动问题广泛存在于互联网产品中,但我们这里仅仅限于推荐系统的冷启动。
|
||||
|
||||
新用户或者不活跃用户,以及新物品或展示次数较少的物品,这些用户和物品,由于缺乏相关数据,很是空虚寂寞冷,因此就是冷启动问题的关注对象。
|
||||
|
||||
关于“如何解决冷启动”本身,有伪命题的嫌疑,因为通常的解决方式就是给它加热:想办法引入数据,想办法从已有数据中主动学习(一种半监督学习)。我们会在后面的文章中详细讨论冷启动的问题。
|
||||
|
||||
### 2 探索与利用问题
|
||||
|
||||
探索与利用,行话又叫做EE问题。假如我们已经知道了用户的喜好,一般有三种对待方式:
|
||||
|
||||
1. 全部给他推荐他目前肯定感兴趣的物品;
|
||||
1. 无视他的兴趣,按照其他逻辑给他推荐,如编辑推荐、随机推荐、按时间先后推荐等等;
|
||||
1. 大部分给他推荐感兴趣的,小部分去试探新的兴趣,如同一边收割长好的韭菜,一边播种新的韭菜。
|
||||
|
||||
哪一种更科学和持久呢?显然是第三种,那么如何平衡这里的“大部分”和“小部分”呢?
|
||||
|
||||
这就是 Exploit 和 Explore 问题的核心了。Exploit意为“开采”,对用户身上已经探明的兴趣加以利用,Explore 意为“探索”,探明用户身上还不知道的兴趣。
|
||||
|
||||
我们会在后面的文章中详细讨论EE问题。
|
||||
|
||||
### 3 安全问题
|
||||
|
||||
凡是系统就有漏洞,凡是漏洞有利可图,就一定有人去图,推荐系统也不例外。如果你正在一款流量非常大的产品上构建推荐系统,那么一定要考虑推荐系统攻击问题。推荐系统被攻击的影响大致有以下几个:
|
||||
|
||||
1. 给出不靠谱的推荐结果,影响用户体验并最终影响品牌形象;
|
||||
1. 收集了不靠谱的脏数据,这个影响会一直持续留存在产品中,很难完全消除;
|
||||
1. 损失了产品的商业利益,这个是直接的经济损失。
|
||||
|
||||
所以推荐系统的安全问题:有哪些攻击手段,以及对应的防御办法,这些我们也会在后面的文章中予以讨论。
|
||||
|
||||
## 总结
|
||||
|
||||
今天,我从两个角度总结了推荐系统中的常见问题。
|
||||
|
||||
第一个角度是模型的角度,将推荐系统的模型分成了预测评分和预测行为,这样一来,自己有什么数据就选择什么样的模型。另一个角度是看看推荐系统中一些永恒存在但是潜在的问题,包括冷启动、EE问题、安全问题。
|
||||
|
||||
好了,说到这里,你可以去观察一下你用过的推荐系统,看看它们的模型是预测评分还是预测行为,你可以在下面留言,我们一起讨论。感谢你的收听,我们下次再见。
|
||||
|
||||
想迅速了解并掌握推荐系统的同学,可以购买《推荐系统三十六式》专栏,作者在推荐系统方面有8年的经验,为推荐系统学习者架构起整体的知识脉络,并在此基础上补充实践案例与经验,力图解决系统起步阶段 80% 的问题。
|
||||
|
||||
<img src="https://static001.geekbang.org/resource/image/87/b0/873b086966136189db14874181823fb0.jpg" alt="" />
|
||||
88
极客时间专栏/推荐系统三十六式/概念篇/03 | 这些你必须应该具备的思维模式.md
Normal file
88
极客时间专栏/推荐系统三十六式/概念篇/03 | 这些你必须应该具备的思维模式.md
Normal file
@@ -0,0 +1,88 @@
|
||||
<audio id="audio" title="03 | 这些你必须应该具备的思维模式" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/3d/56/3d961fab7862ed1c0a0f17d0184a6756.mp3"></audio>
|
||||
|
||||
在开始讲解一些比较硬的知识之前,我先来给你洗洗脑,传达一些形而上、务虚但是重要的内容;所以,今天我主要带你认识两方面的内容:一个是重新认识推荐系统关键元素的重要性,另一个是要建立起两个思维模式。
|
||||
|
||||
这两个方面的内容如果理解不到位,尤其是当你去负责整个推荐产品的时候,那真是害苦了整个团队所有的兄弟姐妹。
|
||||
|
||||
## 对关键元素重要性的认识
|
||||
|
||||
要开发一个推荐系统产品,有这么四个关键的元素需要注意:
|
||||
|
||||
1. UI和UE;
|
||||
1. 数据;
|
||||
1. 领域知识;
|
||||
1. 算法。
|
||||
|
||||
他们的重要性依次递减,权重大致是4-3-2-1,是不是知道真相的你眼泪掉下来。因为,推荐系统的效果不是你想买就能买,而是要正确认识不同阶段不同因素的重要性。
|
||||
|
||||
最先优化的一定是产品的 UI 和 UE ,即人机交互设计和用户体验设计。“颜值即正义”的法则放在推荐系统中也是成立的,不能因为你的产品是具有AI属性的个性化推荐就不看脸了,用户对产品的体验,视觉是否符合目标用户审美,交互逻辑是否简单明了,这些会在最大程度上决定用户是否会持续使用。
|
||||
|
||||
只有当用户不断回来,才有推荐系统的用武之地。个性化推荐产品首先还是一个产品,按照一款优秀产品的标准来要求它始终是正确的事情,所以请继续善待你们的UI和UE设计师们。
|
||||
|
||||
数据与UI、UE是几乎同等重要的元素,它是推荐系统的食材,巧妇难为无米之炊,多少算法工程师因为加入了一家没有历史数据积累的公司,那种“拔剑四顾心茫然”的无力感,谁去谁知道。
|
||||
|
||||
数据贯穿了产品始终,对数据的尊重就是对理性和科学的尊重。UI、UE、数据是一个产品的基石,不论其有没有推荐系统存在都是基石。
|
||||
|
||||
领域知识,与之对应的是常识和通识。可以这样说,没有哪个产品不涉及领域知识,每一个产品存在于市场上,总是有一部分价值是大多数其他产品无法替代的,这部分就涉及了领域知识。
|
||||
|
||||
电商产品有自己的领域知识,比如普通用户更在意的是价格而不是兴趣;音乐产品也有自己的领域知识。
|
||||
|
||||
比如一个歌手的死忠粉,你推荐给他该歌手的任意一首歌对他来说都是徒劳——因为他早就听过了。
|
||||
|
||||
至于新闻类产品,更是有自己的领域知识:新闻更新很快,可能上个月的内容都得从候选池中拿掉了。
|
||||
|
||||
类似这些在一个领域总结出来的普适规律,对于推荐系统的效果提升非常有用:有的是防止闹笑话自毁品牌形象,有的是大幅提高某些指标,有的是缩短模型训练周期。
|
||||
|
||||
我们对算法的爱是复杂的,大多数人最不了解的似乎就是算法,以至于本专栏会用最大的篇幅去讲解各种算法原理,但你一定要认识到,算法的左右没有你想象的那么大,但也一定不是可有可无。
|
||||
|
||||
一种对算法的常见误会就是:短期高估,长期低估。如果你不是算法工程师,比如产品经理或者运营人员,那么可能你要尤其注意,在一款个性化产品诞生之初,算法所起到的作用可以忽略,我们不能指望它能让产品起死回生、一飞冲天,但就此抛出“算法无用论”也是很愚蠢的。
|
||||
|
||||
这四个元素,都不是“天亮以后说分手”的那种,而是需要长期陪伴呵护,不断打磨。这里阐明其重要性的高低,是为了让你在资源有限,精力很少的前提下抓大放小。
|
||||
|
||||
## 目标思维和不确定性思维
|
||||
|
||||
四个元素的重要性认识清楚后,我再给你掏心掏肺地传达两个思维模式:目标思维和不确定性思维。
|
||||
|
||||
我个人对于软件产品有一个粗略分类。传统的软件是一个信息流通管道,从信息生产端到信息消费端的通道,比如一款内容App,写内容的可以正常记录,读内容的可以流畅加载,无论多大的并发量都扛得住,这就是一个正常的产品了。
|
||||
|
||||
但推荐系统这种产品,如果是一个产品的话,它和作为信息流通管道的本质不一样,它是一个信息过滤工具,要解决的问题不是信息流通本身,而是如何让流通更有效率。
|
||||
|
||||
这两个本质不同的软件产品,决定了我们要以不同视角去对待推荐系统。传统的软件产品追求的是稳定和满足预期,背后思想强调的是逻辑和因果链条,软件体验上设定好行为和响应,软件设计上强调分层以应对无比复杂的操作逻辑。
|
||||
|
||||
核心词可以表述为:逻辑、因果、分层。反观推荐系统这种信息过滤系统,追求的是指标的增长,背后思想强调是目标和不确定性:我们并不能很确定地模拟每个人将会看到什么,也不能很好地复现一些操作过程,充满了不确定性,但是在推荐系统未动的情形下,目标先行则是常识。
|
||||
|
||||
关于目标思维,如果了解机器学习的人会很好理解。通常来说,训练机器学习模型是一个不断最小化(或者最大化)目标函数的过程,先设定一个目标函数,然后通过不断迭代让这个函数值到最小值(或者最大值)。
|
||||
|
||||
我们把一个推荐系统也看做一个函数,这个函数的输入有很多:UI、UE、数据、领域知识、算法等等,输出则是我们关注的指标:留存率、新闻的阅读时间、电商的GMV、视频的VV等等。
|
||||
|
||||
这些指标就是函数值,我们做任何事情:加新的策略、替换现有的推荐算法、修改UI、甚至一些文案的调整,都是在改变这个函数的参数,是否有效就要看看函数的输出值,输出值在增长,说明修改就有效,就继续沿着那个方向修改,一旦无效或者起反作用就立即需要回滚。
|
||||
|
||||
目标思维背后是“量化一切”的价值取向。最先要量化的就是目标本身,整个团队才能知道在为什么而战,才能知道自己所做的动作是不是有意义,才能让团队自发地去寻找优化方向,一定不能停留在“感觉推荐很精准”或者“感觉推荐得很不准”这样的玄学层面。
|
||||
|
||||
接下来要量化的是所有的优化改进动作,知道 Logo 放置位置往上移动了多少,知道文案字数减少了多少,知道 Push 少发了几次,发给了谁,谁点进来了。量化一切的价值取向和前面说的数据的重要性是一体两面,要量化就要收集数据,数据收集对了才能得到正确的量化结果。
|
||||
|
||||
盯着量化后的目标去行动后,还需要你具备另一个思维:不确定性思维。这个思维是开发传统软件类产品后较难转变形成的。
|
||||
|
||||
什么是确定性思维?举个例子说,原来的产品我们能知道某个人的界面上看到的是什么,因为它是完全依靠逻辑和因果链条引发而成的,只要初始条件给定,那么结果就是一定的,也因此在出现 Bug 时可以很容易复现,这是确定性思维,就是对于结果有预期,可以提前推演出来。
|
||||
|
||||
反之,不确定性思维就是:不用因果逻辑严丝合缝地提前推演,而是用概率的眼光去看结果。
|
||||
|
||||
比如说,出现了一个不是很合适的推荐,通常老板们会立即责问:“为什么出现这个”,这就是确定性思维在作祟,如果是不确定性思维,就会问:“出现这个的可能性有多大”。
|
||||
|
||||
为什么负责推荐系统产品的人一定要有不确定性思维呢?原因有以下几个。
|
||||
|
||||
1. 绝大多数推荐算法都是概率算法,因此本身就无法保证得到确切结果,只是概率上得到好的效果;
|
||||
1. 推荐系统追求的是目标的增长,而不是一城一池的得失;
|
||||
1. 如果去花时间为了一个Case而增加补丁,那么付出的成本和得到的收益将大打折扣;
|
||||
1. 本身出现意外的推荐也是有益的,可以探索用户的新兴趣,这属于推荐系统的一个经典问题:EE问题,我也会在后面的内容中专门讲。
|
||||
|
||||
## 总结
|
||||
|
||||
今天,我主要说了两个内容:
|
||||
|
||||
1. 推荐系统构成元素的相对重要性,搞清楚重点,才能快速前进;
|
||||
1. 建立起目标思维和不确定性思维,抓住目标,不择手段地增长目标,不纠结一城一池的得失。
|
||||
|
||||
这两个事情虽然有点务虚,但的确是我所经历过的团队教给我最重要的事,有的是教训,有的是经验。现在,你能说说你对目标不确定性的理解吗?你们在现在的工作中哪些工作属于确定性思维? 你可以给我留言,我们一起讨论。
|
||||
|
||||
<img src="https://static001.geekbang.org/resource/image/ea/ae/ea17e1afa2a56d022c6f5021822edaae.jpg" alt="" />
|
||||
Reference in New Issue
Block a user