81

推06,从推荐策略算法到推荐系统,到数据架构,再到产品设计 | 系列收官篇

 6 years ago
source link: http://mp.weixin.qq.com/s/c5nIGsSex_RmoTPEQXIQ0A
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.

推06,从推荐策略算法到推荐系统,到数据架构,再到产品设计 | 系列收官篇

Original HCY崇远 数据虫巢 2018-01-10 15:36 Posted on

收录于合集 #推荐广告系列 46个
Image

作者 | HCY崇远

推荐系统第5篇是12月21号写的,距离到现在都20几天了,中间零散更新了其他的几篇文章,再拖延下去,懒惰得都不一定有信心把这个系列收尾了,所以,今天,我们把这个系列好好的收官,让那些一直追着这个系列的朋友不留下遗憾。

接推荐系统系列的上一篇《附Spark案例 | 推05,论推荐系统之经典,还得数协同》,开篇2篇我们从概念,从应用场景出发,大概的把推荐系统基础知识给大伙儿普及了一遍,接下来的三篇,分别由浅到深,从理论到代码案例讲解几种不同推荐系统的策略或者推荐算法,看着整个系列从理论到案例,该有的都有了,其实不然,之前就有说过,推荐策略或者算法与推荐系统是有本质的不同的,而这一篇就是要把前面的东西进行收拢,从整体上进行收官。

虽然不再从策略维度再进一步深入,即这里不会再从理论到代码案例再深入讲策略,但是实际上推荐的策略是远不止如此的,并且从应用以及系统的角度来说,并没有说固定的策略可言。

01 推荐策略以及算法的百花齐放

承上,我们讲了最基础的基于内容属性本身的相似关系进行针对物品的推荐,再到基于用户的兴趣属性进行推荐,再过渡到基于协同关系进行推荐,其实这些都算是推荐的策略,说的更技术点就是推荐的算法。

而推荐策略的想象力其实无限的,并不局限于某种固定的策略,只要从业务的角度走的通,其实都是可以的,当然具体的选择以及搭配问题,后面我会讲到。

我们来看已经归属于大腾讯的“起点中文网”的推荐。

Image

PS:截图是我随意点击的一本小说《飞剑问道》,不重要,可以不care。

从他的推荐理由“喜欢这本书的人还喜欢”来看,显然是通过用户之间的阅读关联性来做的这次推荐,说的更通俗易懂点就是购物篮分析:买这个商品的人还经常一起买其他商品。

是不是逻辑关系很像?当然实际上到底是不是这种推荐策略,就需要起点的算法工程师出来讲话了,我个人只是从业务层往下进行追溯从而得出的结论。你看,我说的对不对,策略一层是没有定式,购物篮分析的逻辑依然是可以用在看文学站的推荐逻辑上,没毛病。

我们再来看一个策略,依然是腾讯的,腾讯社交广告一直对外宣称的技术“Lookalike”,翻译成技术语言就是“人群扩散算法”。简单的逻辑是,先找种子用户,然后基于用户画像和关系链(这是腾讯强项)挖掘相似用户,然后再将受众进行扩大。

具体示意图如下:

Image

你觉得这是推荐?看着更像是广告投放,但广告的投放谁说不是一次信息主体的推荐呢?本质上应该是没有这么大的差距的,只是一个从业务的角度去描述,一个是更偏技术的角度的说法。

随着阿法狗诸如此类的人工智能应用的推广(造势),以及近几年计算能力的大幅提升,使得依赖于大计算能力的神经网络的相关算法得以大放光彩,基于神经网络的一些推荐算法或者策略也是一个大的研究方向。

综上,不必举过多的推荐策略或者算法例子了,核心想说的就是,其实策略层本身就是百花齐放的状态,甚至你随意光顾一些平台网站,都能遇到不同的策略和算法,甚至是搭配组合,没有限定的策略和算法层,只有不同不适应的应用场景,以及从策略到推荐系统层,其实还是有很多东西的。

02 从推荐策略算法到推荐系统

接上面的话题,从策略算法层到系统层,差的有哪些东西:

1.首先是策略并不等于系统,这是明确的,推荐的整体逻辑也未必是一种逻辑在里头,也可能是多种的策略组合。

2.其次,如何选择策略,如何组合策略,如何去评判,如何追踪效果,这点尤其重要。

3.对于整个系统级的支撑,在工程化,以及数据架构上如何去实现,才能支持上层的算法逻辑层。

4.产品层的策略对整个推荐系统的影响有多大。

如上四个问题都是从推荐系统的角度出发进行分析的,从这里我们知道,光知道策略或者推荐算法,是不是离推荐系统的构建还差那么好几个量级,02这个小节,我们先从1/2两个小点进行分析。

策略!=系统,这点是明确的,并且选择哪些策略去做推荐,本身就有严格的选择机制以及评判机制在里头的。

Image

这张图片很有意思,是别人在脉脉上调侃各大大厂的推荐系统的话,挺有意思,另一方面也是可以侧面验证各大长的一些侧重点(不过有点为鹅厂说好话的嫌疑),不管,我们随拿一些实例来看看。

首先是豆瓣(当前主页是魔戒1的主页):

Image

从直观的的角度讲,同类推荐的因素一定的在,比如《指环王》其他,比如哈利波特,加勒比海盗,但诸如大鱼、角斗士、勇敢的心、与狼共舞这些的逻辑就不得而知了。

从用户的角度上看,个人使用豆瓣电影也不算少,但几乎没有账号(但如果说没有账号就体系就推不准,那这个公司可以死球去了,有很多可以做类似唯一用户的判别的方式,诸如浏览器、电脑硬件地址、cookie等等),但从我的个人感知来看,推荐的效果一般般。

再换一个,这是某宝的(当前是一个iphoneX的购买主页):

Image

诚如调侃所言,我吃完两馒头,再问我要不要两馒头,我搜索iphoneX,他问我要不要iphone从6到6s到8s,挨个问,也够累的,反正我是不喜欢这种格调。

再回到大腾讯,这是之前文章就涉及到的,腾讯视频的推荐:

Image

当前页面为《海上牧云记》的播放页面,个人是腾讯视频的中长期会员,再看看他给我推荐的是什么?大部分都是类似的奇幻古装剧,而老实讲,我对这种剧着实不喜欢,拍的tmd的假,而我只是好奇点击进去的,So...

再说到腾讯的朋友圈广告的投放推荐,前段时间一直给我这种孩子都快打酱油的人推婚纱摄影,这是几个意思?

再多的例子这里就不举了,很多看其推荐的列表大致能猜测一些其推荐的策略重点,其实或多或少还真是与调侃的有一些相似之处,那从表面看起来大部分的推荐系统都不像那么高大上,问题出在哪,是他们的策略就是这么Low?是他们的算法工程师太菜?

其实核心问题在于推荐系统的评价机制,在实际的场景中,一切以效果评价为导向,将策略,甚至是组合推荐的策略往评价得分高的方向进行调整,对于整个系统来说才是有意义的,并不是说算法高深就一定好。

那么,具体什么是合理的评价方式呢,大部分来说都是为了让用户的挺溜时间加长,最直接的表现就是点击转化,但并不是完全绝对的。以百度的调侃为例,你要的是馒头,人家给你推荐的是馒头制造机。

这跟其商业模式是有一定的关联的,百度之前的核心就是关键词竞价广告,那么,他必然要衡量几个方面的东西,第一是关键词与搜索词的相关性,离太远太扯淡的不行;第二相关广告的竞价。

于是,他就需要衡量准与商业价值之间的关系了,所以,并不是一味地追求准确,而是追求在其中最佳的平衡点,能给百度带来最佳的广告收益转化。

再说其他的之前我所体验的推荐系统,他们就一定不准吗?或许以我个人的角度讲,他们推荐的并不是很符合我的口味,但是如果他们是从整体转化进行评判呢?这种机制是他们所有目前方案中的最佳转化方案,那为什么不能用?少数的个体badcase并不会影响整体的策略,也不用管low还是不low,抓住核心问题。

当然,不可否认的是,如果能满足所有的人的意愿认为它很准,又能让整体系统的转化做到最大化,那当然最好了。

所以,从推荐策略算法到推荐系统,最核心的一个东西就是评估机制,构建起完善并且合理的评估机制,有利于整体推荐系统的优化和改进。说到评价,那不得不说的就是AB测试了,一个好的推荐系统,一定是会带AB测试的,能够很好的进行策略对比,进行流量分配,效果展示等等。

03 推荐系统架构

前几天记得分享过朋友的一篇文章,核心就是讲推荐系统架构的。对于整个推荐系统来说,系统的架构设计会严重影响到整个系统的效果与上层应用的体验。

在推04中,记得大致提到过基于用户画像推荐的短期兴趣与长期兴趣,其实长期兴趣的挖掘还好,基本基于离线的计算结果依然还是可行的,但是对于很多推荐机制来说,就是短期兴趣,更切确的说是你当前行为的兴趣表现。

这意味着,我需要实时的对你的浏览行为进行兴趣分析,然后实时的反馈给你推荐列表,这种机制看似简单脑残,但往往很有效,因为他足够实时,而在段时间内,人的注意力一般只会放在很垂直的某个点上,所以往往就很有效。

但是,看似简单的机制,对于这种需要支持实时分析,实时反馈的机制来说,架构的设计就是一个挑战。此外,在整体的系统构建过程中,你需要考虑算法逻辑层可迭代性的问题,即通过反馈数据能够不断的自动调整你的算法策略,从而让效果更佳,这些都是需要数据架构进行支撑的。

此外,就是上面说的AB测试,效果反馈机制,都是需要集成至整个推荐系统中,再有承接上层应用,你需要考虑好计算的效率与结果输出的效率问题,所以缓存的设计与缓存更新的机制又是个问题。

从整个架构层来说,其实是相对繁杂的,与我们之前所说的策略算法层,这是另外一个维度上的东西,需要我们从整体系统级别去考量。

04 从系统到产品策略层

说完推荐策略,再到推荐系统,再到系统架构,这些看似都是与数据、与算法严密相关的东西,单纯的以产品思维角度出发,你觉得在设计或者做一个推荐系统时,有什么需要考虑的吗?

其实只要用点心,就算不太care算法策略,也是大有可为的,以上面贴过的一张图为例。

Image

我们来看他的左上角标题“喜欢这本书的人还喜欢”,其实这就是一种推荐解释,同理,我们可看亚马逊的推荐解释“买过这个商品的人还购买了”。

这就是所谓的推荐结果的可解释性,人往往信任一些可以解释、容易理解的东西,这也就是为何很多推荐系统都愿意去给出这种类似的推荐解释,因为这种行为可以提升可信度,而可信度可以增加用户的点击转化,所以,可信度也是推荐系统设计中的一个重要参考因素。

从上面这么多推荐案例中,我们不难发现一个共同特征,那就是右上角的“换一批”按钮,我们来思考一下这个按钮存在的意义。

任何一次用户点击这个换一批按钮,这就意味着我们收集到了用户的反馈行为,至于说这个反馈行为到底是正向的还是负向的,就得看具体分析了。比如一个用户一个推荐项都没有点,不断的切换推荐列表,直至放弃,这显然你的推荐列表不如人意,但该用户又是一个迫切需要推荐场景的用户。如果某个用户,在不断点击推荐项的同时,又在不断的切换列表,这意味着这个用户很乐意使用推荐的场景,并且推荐的列表还是可以的。怕就怕那种不点击,也不切换的用户,我们无法获取到更多的主动反馈了。

说到主动反馈,另外一个纯产品层的设计思路就是推荐项的主动反馈了,这点也是亚马逊首创,每个推荐项用户都可以打分,或者直接评判说喜欢与不喜欢。通过这种方式,不断的收集用户的喜好,然后融入策略算法层,才能让你的推荐系统更加的合理,体验更好。

所以,单纯的从产品层,也是有很多东西可以去研究的,对于整体推荐系统而言,他就是一个应用,无非是更偏向于数据、算法等维度的一个产品而已,我们可以从算法层去着手,也可以试图从产品层去优化。

05 综上

到这里,整个推荐系列基本就结束了,从整个系列的逻辑我们知道,如果你要架设一个推荐系统,那么首先对于推荐系统的一些基本概念需要熟悉,然后了解不同的推荐策略,然后结合场景分析最佳的一些推荐策略算法,然后基于架构的考虑(不同层级的分离),搭建整个推荐系统,然后从产品的思维角度去优化,最终产出符合你业务特征的推荐系统。看着容易,其实操作起来还是有一定困难的。

推荐系统在一般业务规模小的时候,其实鸟用不大的,只有在业务有了一定规模之后,那么就到了锱铢必较的阶段了,使用推荐哪怕增加了5个点的增长转化,也是极好的,更何况可能远远不止呢。

目前很多主流推荐系统都是基于用户的画像、兴趣爱好推荐的(这是一种相对靠谱,又容易在大规模用户场景中使用的策略),你越是被他推荐的东西牵着走,你后续就会越陷入其中,最终导致了你所获取的信息一直都是圈定在某个范围内的,这就是所谓的“信息茧房”。

其实要形成信息茧房一方面是由于推荐机制导致的,另一方面跟场景也是有很大关系的,比如如果用户被你所推荐的东西所推动,那么就容易陷入这种状态,如果用户获取信息的渠道有多种(比如导航、搜索等等),那么就不那么容易。

典型如今日头条,如果在前期你不小心点击了一些比较low的内容,然后它就越给你推类似的文章,结果你越看,它就越推,于是你所看到的东西都是一大坨类似离谱八卦了。从直观的角度看,今日头条重度依赖于用户的阅读行为,而头条又是一个重推荐场景的产品,所以会相对容易陷入“信息茧房”的这种情况。

单纯从转化的角度看来,短期内可能对于系统侧来说是正向的,因为他才不会关注到底是不是“信息茧房”,他只关注转化有没有提升,但长期来说,对于用户就是一种损害。所以,我们在考虑设计推荐策略算法的时候,多多少少都会考虑推荐的新颖性。

但新颖性这东西就是一个双刃剑,新的东西意味着不确定,不确定意味着可能低的转化,所以好的推荐系统一定是在确保你兴趣的同时,又会考虑新颖,并且这是一种顺其自然的推荐信息主体的过渡,构建起你偏好信息与新信息之间的关联性,让你同样有欲望去点击那些新的东西,不过这就很难是了。

到这里,整个推荐系列算是真正的收官了,整篇文章也算是一气呵成了,真乃:文思如尿崩,谁与我争锋!

打完收工,整个系列文章:

《推01,你们是不是都觉得自己少了个推荐系统?》

《推02,就算非技术人员也有必要了解的推荐系统常识》

《推03,最最最简单的推荐系统是什么样的 | 附Spark实践案例》

《推04,融合了用户兴趣的推荐系统才会更具个性 | 附Spark实践案例 》

《推05,论推荐系统之经典,还得数协同 | 附Spark实践案例》

《推06,从推荐策略算法到推荐系统,到数据架构,再到产品设计》(本文)

最后,对于整个系列,有想深入交流咨询的,有想要案例实践数据代码的,请私信我,不过咨询之前请给我发个99大洋的红包,我不会客气的,因为我觉得这整个系列的系统性知识远不止这个价,你赚大了,如果只是顺路路过的,就无所谓啦。

关于我:

大数据行业半个老鸟,我家梓尘兄的超级小弟,会敲代码、会写文章,还会泡奶粉哄小屁孩。

想和我交流的,可以加我个人微信mute88,可以拉你入交流群,但请注明身份and来意~

--2018年01月10号23点40分

Image

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK