本文主要是介绍推荐系统三十六式学习笔记:03|这些你必须应该具备的思维模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 对关键元素重要性的认识:
- 目标思维和不确定思维
- 总结:
今天我主要带你认识两方面的内容:一个是重新认识推荐系统关键元素的重要性,另一个是要建立起两个思维模式。
对关键元素重要性的认识:
要开发一个推荐系统产品,有这么四个关键的元素需要注意:
1、UI和UE
2、数据
3、领域知识
4、算法
他们的重要性依次递减,权重大致是4-3-2-1,要正确认识不同阶段不同因素的重要性;
最先优化的一定是产品的UI和UE,即人机交互设计和用户体验设计。颜值即正义的法则放在推荐系统中也是成立的。
数据与UI和UE是几乎同等重要的元素,它是推荐系统的食材。数据贯穿了产品始终,对数据的尊重就是对理性和科学的尊重。UI、UE、数据是一个产品的基石,无论其有没有推荐系统存在都是基石。
领域知识,与之对应的是常识和通识。没有哪一个产品不涉及领域知识,电商产品有自己的领域知识,音乐产品也有自己的领域知识。至于新闻类产品,更是有自己的领域知识。
大多数人最不了解的似乎是算法,其实算法的左右没有你想象的那么大,但也一定不是可有可无。一种对算法的常见误会就是:短期高估,长期低估。在一款个性化产品诞生之初,算法所起到的作用可以忽略,我们不能指望它能让产品起死回生,一飞冲天。但就此抛出算法是无用的也是很愚蠢的。
目标思维和不确定思维
四个元素的重要性认识清楚后,还需认识两个思维模式:目标思维和不确定思维
我个人对于软件有一个粗略分类。传统的软件是一个信息流通管道,从信息生产端到信息消费端的通道。比如一款内容app,写内容的可以正常记录,读内容的可以顺畅加载,在高并发下依然能扛得住,这就是一个正常的产品了。
但推荐系统这种产品和信息流通管道的本质不一样,它是一个信息过滤工具,要解决的不是信息流通本身,而是如何让流通更有效率。
这两个本质不同的软件产品,决定了我们要以不同的视角去对待推荐系统。传统的软件产品追求的是稳定喝满足预期,背后思想强调的是逻辑和因果链条,软件体验上设定好行为和响应,软件设计上强调分层以应对无比复杂的操作逻辑。核心词可以表述为:逻辑,因果,分层。
反观推荐系统这种信息过滤系统,追求的是指标的增长,背后思想强调的是目标和不确定性;我们并不能很确定地模拟每个人将会看到什么,也不能很好地复现一些操作过程,充满了不确定性,但是在推荐系统未动的情形下,目标先行是常识。
关于目标思维,可以参考机器学习,通常来说,训练机器学习模型是一个不断最小化目标函数的过程,先设定一个目标函数,然后通过不断迭代让这个函数值到最小值。
我们把一个推荐系统也可以看做一个函数,这个函数的输入有:UI、UE、数据、领域知识等等,输出是我们关注的指标:留存率、新闻的阅读时间、电商的GMV、视频的vv等等;
我们做任何调整:如加新的策略、替换现有的推荐算法、修改UI等等,都是在改变这个函数的参数,如果输出值在增长,就说明修改有效,就可以继续沿着这个方向修改,一旦无效或者起反作用就需要立即回滚。
目标思维的背后是量化一切的价值取向。首先要量化的就是目标本身,接下来要量化的是所有优化改进动作,量化一切的价值取向和前面说的数据的重要性是一体两面,要量化就要回收数据,数据收集对了才能得到正确的量化结果。
盯着量化后的目标去行动后,还需要具备另一个思维:不确定性思维。什么是确定思维,可以理解为完全依靠逻辑和因果链条引发而成的,只要初始条件给定,那么结果就是一定的。这是确定性思维,就是对于结果有预期,可以提前推演出来。
反之就是不确定性思维:不用因果逻辑严丝合缝地提前推演,而是用概率的眼光去看结果。
为什么负责推荐系统产品的人一定要有不确定性思维呢?原因有以下几个。
1、绝大多数推荐算法都是概率算法,因此本身就无法保证得到确切结果,只是概率上得到好的效果。
2、推荐系统追求的是目标的增长,而不是一城一池的得失;
3、如果去花时间为了一个case而增加补丁,那么付出的成本和得到的收益将会大打折扣;
4、本身出现意外的推荐也是有益的,可以探索用户的新兴趣,这属于推荐系统的一个经典问题:EE问题,会在后面的内容中专门讲;
总结:
今天,我主要说了两个内容:
1、推荐系统构成元素的相对重要性,搞清楚重点,才能快速前进;
2、建立器目标和不确定性思维,抓住目标,不择手段地增长目标,不纠结一城一池的得失。
这篇关于推荐系统三十六式学习笔记:03|这些你必须应该具备的思维模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!