好的推荐系统是什么
《推荐系统实战》的笔记
- 什么是推荐系统?
作为信息消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情;作为信息生产者,
如何让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就
是解决这一矛盾的重要工具。推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己
有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息
生产者的双赢。
推荐系统的基本任务是联系用户和物品,解决信息过载的问题。
和搜索引擎一样,推荐系统也是一种帮助用户快速发现有用信息的工具。
和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用
户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。
以看电影为例:
- 找朋友推荐是社会化推荐
- 按自己喜欢的演员或导演推荐是基于内容的推荐
- 通过电影的评分排行榜推荐或者别人都在看什么电影是基于协同过滤的推荐
推荐算法的本质是通过一定的方式将用户和物品联系起来,而不
同的推荐系统利用了不同的方式。
打包销售手段是推荐算法最重要的应用,后来被很多电子商务网站作为标准的应用。(比如当你在购买某个物品的时候,亚马逊会告诉你其他用户在购买这个商品的同时也会购买的其他几个商品,然后让你选择是否要同时购买这些商品。如果你单击了同时购买,它会把这几件商品“打包”,有时会提供一定的折扣,然后卖给你)
个性化推荐的成功应用需要两个条件。第一是存在信息过载,因为如果用户可以很容易地从
所有物品中找到喜欢的物品,就不需要个性化推荐了。第二是用户大部分时候没有特别明确的需
求,因为用户如果有明确的需求,可以直接通过搜索引擎找到感兴趣的物品。
2.推荐系统评测
一个完整的推荐系统一般存在3个参与方:用户、物品提供者和提供推荐系统的网站。
预测准确度是推荐系统领域的重要指标(没有之一)。但是,很多研究表明,准确的预测并不代表好的推荐。(比如用户已经买过那件耐用品了,系统还一直推荐这件耐用品,这是毫无意义的)
3.推荐系统实验方法
3.1离线实验
离线实验的方法一般由如下几个步骤构成:
(1) 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
(2) 将数据集按照一定的规则分成训练集和测试集;
(3) 在训练集上训练用户兴趣模型,在测试集上进行预测;
(4) 通过事先定义的离线指标评测算法在测试集上的预测结果。
优点:不需要有对实际系统的控制权 、不需要用户参与实验、速度快,可以测试大量算法
缺点:无法计算商业上关心的指标、离线实验的指标和商业指标存在差距
3.2用户调查
优点:可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后很容易弥补。
缺点:招募测试用户代价较大,很难组织大规模的测试用户,因此会使测试结果的统计意义不足。
3.3A/B测试
AB测试是一种很常用的在线评测算法的实验方法。它通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。
优点:公平获得不同算法实际在线时的性能指标,包括商业上关注的指标。
缺点:周期比较长,必须进行长期的实验才能得到可靠的结果。
因此一般不会用AB测试测试所有的算法,而只是用它测试那些在离线实验和用户调查中表现很好的算法。
一般来说,一个新的推荐算法最终上线,需要完成上面所说的3个实验。
首先,需要通过离线实验证明它在很多离线指标上优于现有的算法。
然后,需要通过用户调查确定它的用户满意度不低于现有的算法。
最后,通过在线的AB测试确定它在我们关心的指标上优于现有的算法。