最近参加了一场直播。主要讲了个性化推荐算法及应用场景。现自己总结一下主讲内容,以备自己思考。有些地方个人也不是太理解,同时也想与大家交流沟通下。
一、影响推荐系统效果的主要因素
优化目标,怎么说呢目标结果是什么,是为了用户还是为了商业目的。这两者本身是存在矛盾的,为了不同目标怎优化结果不一样。就好比用户喜欢吃瓜果蔬菜营养健康的绿色食品这样有利于健康,但我们发现让他吃大鱼大肉最赚钱。
基于用户场景的推荐,比如说是晚上睡觉前看的,还是白天闲暇时看的,有一个时间段。再比如说上次观看的终端是什么,是移动端或者是pc端,有一个上次观看衔接的问题。还有一个就是地域问题。
用户体验,主要是用户对于系统的信任,用户尝新的成本,是否接受的问题,怎么尝试一些好的手段让用户很贴心,很暖心,有惊喜的感觉。哎,发现推荐的都是我喜欢的,这个系统好了解我哟。具体做法举例在下文“说服用户接受这件事儿”阐述。
直播场景的推荐(冷启动问题)
二、推荐系统的优化目标有两类
用户—–相关性,多样性。例如根据用户浏览过的文章的主题词,标签,热度,转载,时效,相似度等等。用户的特征性别,职业,年龄,兴趣,定期点击行为。
平台—–商业化变现。比如说开通原创的预先推荐,或者说有内容合作的供应商优先等等因素。
三、推荐系统的服务对象
用户;用户是为了能够更方便找到他想看的东西
平台本身;平台希望链接服务提供商,内容提供商和用户,他希望赚钱
内容提供商;内容提供商更多露出,他在这个渠道上获得的无论是点击量还是品牌效应,那么他可以通过一些方法变现。无论是广告还是离线渠道的收买。
所以一个推荐算法要同事服务三个利益不同的相关方,这本身导致了一个矛盾性。所以会有一些纠结的地方,实际上由于他们的目的不。
四、推荐算法模型:
协同滤波:就是相似的人给相似的内容。怎么定义相似的人呢那就是之前的行为相同。
矩阵分解法:基本原理是把用户作为一个维度,然后建一个二维矩阵,把这个二维矩阵找到一个低纬的表示,这可能只有50或者100维,这个个数还是跟内容一样,所以每个内容有一个100维的小表示,每个用户也有一个100维的小表示。这两个作为一个点击,可以恢复出原来的东西。
神经网络矩阵分解:基本原理把这个nade看成一个黑箱,级别让你的想法就是用nade来训练一个用户的表示和一个内容表示,但是这个表示可以不像矩阵分解那么死,因为它结合的时候不再是一代数的点程,而是基于一个神经网络,实际上带来了更多的自由度。唯一的差别就是表达能力增强了。
五、基于用户场景的推荐,不同场景下算法选择问题
货架场景—协调滤波,矩阵分解,CF-NADE
自动播放场景—用户行为轨迹
这个用户场景比如说我在手机上看,和我在客厅里看,实际上对视频的长短还有很多内容会有不同,因为手机上有可能是在公共场合、办公室,但是在家里可能就会稍微私密一些。还有时间,假如说我手机是早上看,家里面我是晚上看,也会不一样。所以这些都叫所谓的上下文吧,就是场景信息。
实际上就对用户做了一个切分,当用户在这个组合场景底下的时候,所借鉴的历史行为也是原来发生在这个组合底下的,这样就不会出现晚上看了什么成人动漫,早上被推一个成人动漫的情况,因为实际上把用户切成两个了。但是这样切分也是有风险的,因为有可能这个人成天都喜欢看成人动漫。所以这个会把我们本来就比较稀疏的数据变得更稀疏。
但是发现对整个观看时长的提升以及对广告点击率的提升还是比较显著的,大概在4%左右,就是用AB测试得到的结果。
刚才主要在讲watch,其实用户在网站上还有其他行为,像Search、Browse、浏览,还有Rating,Rating比较少一点。
所以这几类行为实际上用户做的时候,如果把用户整个生命周期,从他sign up开始到他退订为止看成一个轨迹的话,那他做了一系列的事。
我们现在是说对每个用户的轨迹做建模。刚才你如果想象是CF-NADE,就是说把用户所有的行为当成一些个体扔到一个大袋子里面去,然后筛一筛,说统计上是怎么样的。实际上它的时间顺序已经丢失了,里面用户具体的动态也没有考虑,如果根据用户行为做这种模型time series model其实可以达到最好的效果。
六、说服用户接受这件事儿
说服用户这件事,因为刚才讲得所有模型,其实最后就是一个展示,无论是用货架的方法来展示,还是用自动播放的方法来展示。但是这个展示的有效性很大程度上是取决于你有没有打动用户,要打动用户试图给出一些推荐的理由,比如我们给这个用户推了这个剧,我们会说是因为你看过他的前传,这样的话用户会觉得,你确实是有道理的。还有一个增强用户对系统的信任,如果你的系统是黑盒,扔出来一堆剧说看吧,那估计很难说服用户。大家可以回想一下,在录像店的体验,如果是那种小店的话,你跟那个店主特别熟,他给你推一个张媛又拍了一个新片你可以看。你会知道,他真的知道你了解你,给你推这个东西,我们想达到的就是让计算机能够被用户所信任。
还有一个展示的问题,要降低用户尝新的成本。因为用户点进去,如果看了20分钟发现这个片很烂的话,那这个体验就比较差,浪费了20分钟。我们怎么样让用户快速的知道这个片到底适不适合他?我们做了一个自动压缩的方法。
大家看到它有这样一个下拉菜单,我们对于生成短视频有三种不同的模式:
模式一:动作模式,我们会找短视频里最激烈的片段。
模式二:indicative模式,我们会找对话比较多的片段。
模式三:对话比较多模式
写在最后,用户推荐系统是一个不断调试,不断优化的过程。在此过程中寻找适合本公司商业模式和用户喜好的个性推荐系统。本文写的不是很细致,欢迎大家留言交流。