目录
- 推荐系统的问题模式
- 评分预测
- 行为预测
- 几个常见顽疾
- 1、冷启动问题
- 2、探索与利用问题
- 安全问题
- 总结
推荐系统的问题模式
推荐系统的使命是为用户和物品建立连接,建立的方式是提前找出哪些隐藏的连接呈现给用户,这是一个预测问题;所以推荐系统的预测问题模式,从达成的连接目标角度区分,有两大类:
1、评分预测
2、行为预测
因为评分和行为是用户对推荐结果的两类反馈,我们给他们推荐了一个或多个物品,目的是希望他们“消费”,这种消费反应在用户行为上,比如“点击查看”,信息咨询类还有“阅读完成”,视频音乐类的有“播放完成”,电商类的“加入购物车”等。
整个行为呈现一个漏斗形状,从曝光到最终消费完成。最后在用户完成消费后,产品方一般还希望他们告诉自己消费的体验,这时候就有评分了;所以不同推荐系统的任务也不同,有的直接去预测用户如果消费完之后会给多少评分,更多的推荐系统则会分层,致力于预测用户的行为。
评分预测
评分预测相关算法模型研究的兴盛,最大的助攻是Netflix(奈飞)举办的推荐算法大赛。
评分预测要干的事是这样的:假如用户消费完一个物品之后会给出一个打分,比如通常是1-5分,或者有的网站用星星的颗数表示。
我们能不能提前预测一个用户对每个物品会打多少分,找出那些他可能会打高分,但是还没消费的物品,然后悄无声息但恰到好处的推荐到用户面前。
一个朴素的思想是:建立一个模型,这个模型会给用户历史上打过分的物品去预测分数。
预测分数和实际分数之间会有误差,我们根据这个误差去调整参数模型,让这个误差越来越小,最后得到的这个模型理论上就可以了,事实上,这其实就是机器学习里面的回归问题。
评判标准就是RMSE,即均方根误差。
备注:n为样本数, y t y_t yt为用户真实打分值, y ^ t \hat{y}_t y^t为预测值
由于误差有正数也有负数,而我们只关心绝对值的大小,所以我们再给误差求平方,这就是名字中的方的来源,再对所有样本的误差平方求平均值,这就是名字中均的来源,因为我们对误差都平方了,所以最后再对均值开方根,这就是名字中的根的来源。这个过程就是求均方根误差。
评分预测问题常用于各种点评类产品(如:书影音的点评),但评分类推荐存在一下问题:
1、数据不易收集,用户给出评分意味着他已经完成前面所有的漏斗环节。
2、数据质量不能保证,伪造评分数据门槛低,同时真实的评分数据又处于转化漏斗最后一环,门槛高;
3、评分的分布不稳定,整体评分在不同时期会差别很大,个人评分在不同时期标准不同,人和人之间的标准差别很大。
用户的评分数据,我们又称为显示反馈,与之相对的还有隐式反馈,通常就是各类用户行为,也就是另一类推荐系统问题:行为预测;
行为预测
用户每天在不同的APP或者网站之间活动,就会有各种行为数据产生,从登录刷新,到购买收藏,都是用户行为,这类数据是用户在不自觉的情况下发生的,数据量显然比显示反馈多的多;
用户的行为通常呈现漏斗关系,用户最终达成的行为可能不是那么容易得到的,比如完整消费一个长内容,通常是登录刷新开始,逐层经历漏斗消失;
而推荐系统肩负的使用自然是达成用户行为,也就是连接越多越好,这也是这一类推荐系统问题的关注点。
推荐系统预测行为方式有很多,常见的有两种:直接预测行为本身发生的概率,和预测物品的相对排序。前者有一个更广为流传的名称叫做CTR预估.。这里的C原本是点击行为click,但这个解决问题的模式可以引申到其他用户行为,如收藏,购买。
CTR意思是click through rate,即点击率。把每一个推荐给用户的物品按照是否会点击二分类,构建分类模型,预估其中一种分类的概率,就是CTR预估。
行为预测就是利用隐式反馈数据预测隐式反馈的发生概率,因此,各家互联网产品高度重视隐式反馈,原因于:
1、数据比显示反馈更加稠密。
2、隐式反馈更能代表用户的真实想法,俗话说行为是骗不了人的。
3、隐式反馈常常和模型的目标函数关联更密切。因此也更容易在abtest中和测试指标挂钩。
行为预测解决的是推荐系统80%问题,评分预测解决的是最后那20%的问题。
几个常见顽疾
推荐系统的隐藏顽疾是:1、冷启动问题 2、探索与利用问题 3、安全问题。
1、冷启动问题
冷启动问题广泛存在于互联网产品中,但我们这里仅仅限于推荐系统的冷启动。 新用户或者不活跃用户,以及新物品或展示次数较少的物品,这些用户和物品,由于缺乏相关数据,因此就是冷启动问题的关注对象。
冷启动问题,通常的解决方式就是给它加热:想办法引入数据,想办法从已有的数据中主动学习。我们会在后面的文章中详细讨论冷启动的问题。
2、探索与利用问题
探索与利用,又叫EE问题。假如我们已经知道了用户的喜好,一般有三种对待方式:
1、全部给它推荐他目前肯定感兴趣的物品;
2、无视它的兴趣,按照其他逻辑给它推荐,如编辑推荐,随机推荐,按照时间先后推荐等等;
3、大部分给他推荐感兴趣的,小部分试探新的兴趣。
显然第三种更持久,那么如何平衡这里的大部分和小部分呢?这就是Exploit和Explore问题的核心了。Exploit意为开采,对用户身上已经探明的兴趣加以利用,Explore意为探索,探明用户身上还不知道的兴趣。我们会在后面的文章中详细的讨论EE问题。
安全问题
如果你正在一款流量非常大的产品上构建推荐系统,那么一定要考虑推荐系统的攻击问题。推荐系统被攻击的影响大致有以下几个:
1、给出不靠谱的推荐结果,影响用户体验并最终影响品牌形象。
2、收集了不靠谱的脏数据,这个影响会一直持续留存在产品中,很难完全消除;
3、损失了产品的商业利益,这个是直接的经济损失。
所以推荐系统的安全问题:有哪些攻击手段,以及对应的防御办法,我们会在后面的文章中予以讨论。
总结
今天,我从两个角度总结了推荐系统中的常见问题。
第一个角度是模型的角度,将推荐系统的模型分成了预测评分和预测行为,另一个角度是看推荐系统重一些永恒存在但潜在的问题,包括冷启动、EE问题、安全问题。