推荐系统概述
28 Mar 2019 | 推荐系统1. 什么是推荐系统
主动向用户推荐物品的系统。物品可以是书籍,音乐和新闻等不同应用场景,所推荐的产品是用户感兴趣的,或者对用户有帮助的。
2. 推荐系统的发展历史
1994 年明尼苏达大学GroupLens研究组推出的GroupLens系统。两大贡献:
- 协同过滤(Collaborative Filtering)
- 形式化推荐模型
在之后的十几年中,一些著名的基于协同过滤的推荐算法被提出,包括:
- 基于物品的协同过滤算法(Item-based Collaborative Filtering Algorithms)
- 基于矩阵分解的协同过滤算法(SVD-based/NMF-based)
近年来在工业界尤其是互联网领域,推荐系统被广泛应用,包括:
- Netflix在线视频推荐系统
- Amazon,淘宝,京东等电商平台商品推荐系统
Amazon 发布的数据显示,亚马逊网络书城的推荐算法为亚马逊每年贡献近三十个百分点的创收。
3. 推荐系统的输入和输出
3.1 输入数据
总结归纳起来主要分为用户(User),物品(Item)和评价(Review)三个层面,分别对应到矩阵中的行,列以及值。
用户用来描述一个用户的“个性”,也就是 User Profile。根据不同的应用场景以及不同的具体算 法,User Profile 可能有不同的表示方式。
物品用来描述一个 Item 的性质,也经常被称为 Item Profile。比如对于电影推荐场景,Item Profile可以是片名,时长,上映时间,主演以及剧情简介等等。
评价是联系一个User与一个Item的纽带,最简单的Review是User对某一Item的打分(Rate),表示了该 User 对该 Item 的喜好程度。这些用户偏好信息总体上可分为两种:一是显式用户反馈,这是用户对商品给出的显式反馈信息,包括评分,评论等等。另一种是隐式用户反馈,这类信息通常是用户在使用网站的过程中产生的,也能够从一定程度上反映用户的喜好,包括用户点击了某项商品,在某页面的停留的时间等等。 用户的隐式反馈信息长期以来受到文本挖掘、用户数据收集等方面的难点的制约,没有得到充分的研究,但是它们在解决推荐系统的可解释性、冷启动问题等方面确实具有重要的潜力。
3.2 输出数据
对于一个特定的用户,推荐系统给他的输出是一个“推荐列表”,该推荐列表按照优先级的顺序给出了对该用户可能感兴趣的物品。实际当中的推荐系统通常也会给出推荐理由,比如“购买了某商品的用户有90%也购买了该商品”等等,增加推荐可信度。
4. 推荐问题的形式化
首先我们拥有一个大型稀疏矩阵,该矩阵的每一行表示一个 User,每一列表示一个 Item,
每一个数值表示该 User 对该 Item 的打分,这是一个 0~5 的分值,0 表示该 User 未曾对该 Item
打分,1 表示该 User 对该 Item 最不满意,5 表示该 User 对该 Item 最满意。
我们现在解决这样一个问题:给定该矩阵之后,对于某一个 User,向其推荐哪些他没有打过分的 Item 最容易被他接受,这里的“接受”根据具体的应用环境有所不同,有可能是查看该
新闻、购买该商品、收藏该网页等等。
对于推荐算法,还需要一系列的评价指标来评价推荐的效果。
5. 推荐系统的两大核心问题
预测和推荐。
“预测”所要解决的主要问题是推断每一个 User 对每一个 Item 的喜好程度,其主要手段是
根据已有的信息来计算 User 在他没打分的 Item 上可能的打分。
“推荐”所要解决的主要问题是根据预测环节所计算的结果向用户推荐他没有打过分的
Item。由于 Item 数量众多,用户不可能全部浏览一遍,因此“推荐”的核心步骤是对推荐结果
的排序(Ranking)。当然,按照预测分值的高低直接排序确实是一种比较合理的方法,但是在实
际系统中,Ranking 要考虑的因素很多,比如用户的年龄段、用户在最近一段时间内的购买记录等。
Comments