一、概述
1、推荐系统从搜索引擎借鉴了不少技术和思想,比如内容推荐有不少技术就来自搜索引擎, 由 Amazon 发扬光大的,基于用户( User-based )和基于物品( Item-based )的协同过滤将推荐系统技术从内容延伸到协同关系,超越了内容本身。
2、世界在向网状发展,万事万物倾向于相互连接构成复杂网络。复杂网络具有无尺度特点,表现是:少数节点集聚了大量连接。这个现象不陌生,叫做马太效应,社交网络粉丝数、网页链接引用量、电商网站商品销量等等,无不如此。推荐系统的使命,就是要用技术来对抗这种不平等。
3、按照维基百科的定义:它是一种信息过滤系统,手段是预测用户(User)对物品(Item)的评分和偏好。
4、从三个问题认识推荐系统
1) 它能做什么?
推荐系统可以把那些最终会在用户(User)和物品(Item)之间产生的连接提前找出来。根据已有的连接预测和人有关的连接,就是推荐系统。
这是基于这么一个事实:万事万物有相互连接的大趋势,比如人和人倾向于有更多社会连接,于是有了各种社交产品;比如人和商品有越来越多的消费连接,于是有了各种电商产品;人和资讯有越来越多的阅读连接,于是有了信息流产品。
2) 它需要什么?
推荐系统需要已经存在的连接,从已有的连接去预测未来的连接。
3) 它怎么做?
维基百科的定义提供了一个说法:预测用户评分和偏好。这是推荐系统背后相关算法和技术的两大分类,在后面的专栏内容中我会讲到;但比这个定义更抽象的实现方式分类是:机器推荐和人工推荐,也就是通常说的“个性化推荐”和“编辑推荐”。两者之间还存在现在最常见的领域专家推荐,也就是网红推荐,如何为用户找到适合他的网红也属于推荐系统范畴。
5、如何判断你是否需要一个推荐系统
“长尾理论”可以帮助我们理解,如何把用户和物品各种可能的连接汇总,包括用户属性、物品属性等,应该要有长尾效应才可能让推荐系统发挥效果。
分子是增加的连接数,分母是增加的活跃用户数和增加的有效物品数,也就是说如果增加的连接数和新增活跃用户和物品关系不大,那说明连接数已经有自发生长的趋势了,适合加入推荐系统加速这一过程。
6、推荐系统两种经典的问题模式
1)评分预测-显式反馈 (20%)
评分预测要干的事情是这样的:假如用户消费完一个物品之后会给出一个打分,比如通常是 1~5 分,或者有的网站用星星的颗数表示,也是一样。
2) 行为评测-隐式反馈 (80%)
行为预测说白了,就是利用隐式反馈数据预测隐式反馈的发生概率;
>只要用户来了,就会有各种行为数据产生,从登录刷新,到购买收藏,都是用户行为,这类数据是用户们在自觉自愿的情况下产生的,数据量比显式反馈多很多。
>推荐系统预测行为方式有很多,常见的有两种:直接预测行为本身发生的概率,和预测物品的相对排序。直接预测用户行为这一类技术,有一个更烂大街的名字,叫做 CTR 预估。这里的 C 原本是点击行为 Click,但这个解决问题的模式可以引申到任何其他用户行为,如收藏、购买。
>CTR 意思就是 Click Through Rate,即“点击率”。把每一个推荐给用户的物品按照“会否点击”二分类,构建分类模型,预估其中一种分类的概率,点击量/展示量 ,就是 CTR 预估。
>行为预测相比于评分预测的好处:
数据更加稠密;隐式反馈更能代表用户的真实想法;隐式反馈常常和模型的目标函数关联更密切,也因此通常更容易在 AB 测试中和测试指标挂钩。这个好理解,比如 CTR 预估当然关注的是点击这个隐式反馈。
总结:用户给出较高评分的先决条件是用户要有“评分”的行为,所以行为预测解决的是推荐系统的 80% 问题,评分预测解决的是最后那 20% 的问题,行为预测就像是我们剁手买买买后,可爱的商品要先乘坐飞机,飞跃千山万水到所在区域来,而评分预测则是快递员最终将东西递交到你手上这个过程。
二、冷启动问题
推荐系统是数据贪婪型应用,所谓数据贪婪型应用,就是对数据的需求绝无足够的那一天。冷启动问题广泛存在于互联网产品中。
新用户或者不活跃用户,以及新物品或展示次数较少的物品,这些用户和物品,由于缺乏相关数据,很是空虚寂寞冷,因此就是冷启动问题的关注对象。
关于“如何解决冷启动”本身,有伪命题的嫌疑,因为通常的解决方式就是给它加热:想办法引入数据,想办法从已有数据中主动学习(一种半监督学习)。我们会在后面的文章中详细讨论冷启动的问题。
三、探索与利用
探索与利用,行话又叫做 EE 问题。假如我们已经知道了用户的喜好,一般有三种对待方式:
1、全部给他推荐他目前肯定感兴趣的物品;
2、无视他的兴趣,按照其他逻辑给他推荐,如编辑推荐、随机推荐、按时间先后推荐等等;
3、大部分给他推荐感兴趣的,小部分去试探新的兴趣,如同一边收割长好的韭菜,一边播种新的韭菜。
哪一种更科学和持久呢?显然是第三种,那么如何平衡这里的“大部分”和“小部分”呢?
这就是 Exploit 和 Explore 问题的核心了。Exploit 意为“开采”,对用户身上已经探明的兴趣加以利用,Explore 意为“探索”,探明用户身上还不知道的兴趣。
四、安全问题
推荐系统被攻击的影响大致有以下几个:
1、给出不靠谱的推荐结果,影响用户体验并最终影响品牌形象;
2、收集了不靠谱的脏数据,这个影响会一直持续留存在产品中,很难完全消除;
3、损失了产品的商业利益,这个是直接的经济损失。