
第1章 概述
推荐系统(Recommender System, RS)是向用户建议有用物品的软件工具和技术。
1.1 简介
推荐系统主要针对的是那些缺乏足够的个人经验和能力的人,他们无法评估潜在的大量可供选择的物品。
个性化推荐最简单的形式是提供一个排好序的物品列表。通过这个排序列表,推荐系统试图根据用户的偏好和其他约束条件来预测最合适的产品或服务。为了完成这样的计算任务,推荐系统收集用户的喜好,这种喜好是显示的,如为产品打分,或通过解释用户的行为做出推断。例如,推荐系统可能会把访问某个特定商品详情页的行为作为该用户喜爱这个主页上的商品的隐式信号。
第一个推荐系统通过算法将社区用户的建议推荐给一个活跃用户,也就是在寻找推荐的用户。推荐的物品是这些相似用户(那些品味相似的用户)喜欢的,这种方法称为协同过滤。它的理论依据是,如果这个活跃的用户以前与一些用户有相似爱好,那么来自这些相似用户的其他推荐应该是相关的,这些推荐也是此活跃用户感兴趣的。
近年来,推荐系统被证明是一种解决信息过载问题的有效工具。
1.2 推荐系统的功能
服务提供商采用推荐技术的原因是多样的:
- 增加物品销售数量
- 出售更多总类物品
- 增加用户满意度
- 增加用户忠诚度
- 更好地了解用户需求
推荐系统能够实现的11个常见功能:
- 发现一些好的物品:根据用户对物品的喜欢程度(例如:1到5星的评分)的预测结果,我们可以用列表榜单的形式推荐给用户一些物品。
- 发现所有好的物品:推荐所有能满足用户需求的物品。
- 产品注解:在给定的上下文语境中(如一个物品推荐列表),我们根据用户的长期偏好来确定这些物品的重要性。
- 推荐系列产品:这个思路是将物品的序列作为一个另用户满意的整体进行推荐,而不是集中产生单一的推荐(推荐一本数据挖掘的书之后,还推荐一本关于推荐系统的书)。
- 搭配推荐:提供一组完美搭配的物品。
- 闲逛:在这项任务中,用户只是简单地浏览目录而并不带有强烈的购买意图。推荐系统的任务是帮助用户浏览一些其在特定浏览时期可能会感兴趣的物品。
- 发现可信的推荐系统:有些用户不信任推荐系统,于是他们抱着试试看的态度去尝试推荐系统的推荐结果。因此,除了那些仅仅想要获得推荐的用户,一些系统还提供特定的功能让用户测试推荐系统的行为。
- 完善用户资料:这涉及用户向推荐系统提供自己偏好信息的能力。为了提供个性化推荐,这是一个基本任务,也是绝对必要的。
- 自我表达:有些用户可能一点也不在意给出的推荐结果。相反,对他们重要的是,系统允许他们展示他们的评分,并表达他们的评价和观念。
- 帮助他人:有些用户乐于贡献信息,如他们对物品的评价(评分),因为他们相信社区能从他们的贡献中获得益处。
- 影响他人:在基于Web的推荐系统中,某些用户的主要目标识对其购买特定产品的用户产生明显的影响。实际情况是,有一些恶意用户可能利用系统仅仅用来促进或抑制某些物品的销售。
1.3 数据和知识资源
通常,有的推荐技术用的只是(领域)较少,如只用到用户评分或者对物品的评价等一些简单且基础的数据。其他的技术则依赖于更多的只是,如利用用户或物品的本体性描述,或者约束性条件,或者用户的社交关系和行为活动。在任何情况下,推荐系统使用的数据指的是三种对象:物品、用户和事务,也就是用户和物品的关系。
- 物品:物品是被推荐的对象集。推荐系统可以使用物品集的一系列属性和特征。
- 用户:推荐系统的用户可能有非常不同的目的和特点。推荐系统使用用户的一系列信息。这种信息可以用不同的方式组织,而且同样的是,选择哪种信息建模取决于推荐技术。
- 事务(transaction):我们一般将一个事务看作用户和推荐系统进行交互的一条记录。
评分是推荐系统收集交易数据最流行的方式。这些评分可能是显式或者隐式的方式收集的。评级可以采用各种方式:
- 数字评分
- 序数评价(强烈同意,同意,一般,不同意,强烈反对)
- 二元制评价
- 一元制评价
另一种评价的形式就是关联用户和物品的标签。
从事务中隐式收集用户评级,系统的目标是根据用户的行为推断用户的意图。
1.4 推荐技术
在不知道用户偏好这样更精确的信息的情况下,有理由认为一首流行度高的歌曲会被很多用户喜欢,所以很可能也被一个普通用户喜欢,因此选择一首流行度高的歌曲的效果肯定会比随机选取的歌曲好。
把用户u对物品i的可用度建模为实数值函数R(u, i),在系统过滤中通常指的是用户对物品的评分。然后协同过滤推荐系统的主要任务是通过用户与物品对来预测R的值,即计算R^(u, i),这里把R^作为估计值,并由此得到真实函数R的值。接下来,在物品集上算出活跃用户u的预测值也就是R^(u, i1), …, R^(u, iN)之后,系统将会选择最大效用的物品ij1, … ijK(K ≤ N)作为推荐结果。K通常是个小的数字,要远小于物品集的基数,或者说是用户数用预测计算所依赖的物品的基数,即推荐系统“过滤”出推荐给用户的物品。
有些时候物品对用户的效用是依赖于其他可变因素的,我们把这些可变因素统称为“语境”。如:时间因素、位置因素等。
推荐方法有:
- 基于内容(content-based):系统为用户推荐与他们过去的兴趣类似的物品。
- 协同过滤(collaborative filtering):这种方法是找到与用户有相同品味的用户,然后将相似用户过去喜欢的物品推荐给用户。协同过滤被认为是推荐系统最流行和最广泛实现的技术。
- 基于人口统计学的(demographic):这种类型的推荐物品时是基于人口统计信息的。如语言、国籍、年龄等。
- 基于知识(knowledge-based):基于知识的系统根据特定的领域知识推荐物品,这些知识是关于如何确定物品的哪些特征能够满足用户需要和偏好,以及最终如何确定物品队用户有用。
- 基于案例:基于相似的方法,相似函数用来估算用户需求(问题描述)与推荐(解决问题)的匹配度。
- 基于约束:利用预定义的知识库,这些库包括了如何把消费者需求和物品特征相关联的明确规则。
- 基于社区(community-based):这种推荐方法依赖用户朋友的偏好。
- 混合推荐系统(hybrid recommender system):这类推荐系统综合了上面提到的技术。混合推荐就是综合A和B方法,利用A的优势弥补B的不足。
1.5 应用与评价
领域分类:
- 娱乐:电影、音乐盒IPTV的推荐
- 内容:个性化新闻报纸、文件推荐、网页推荐、电子学习程序和电子邮件过滤
- 电子商务:为消费者推荐要购买的产品,如书籍、照相机、电脑等
- 服务:旅游服务推荐、专家咨询推荐、租房推荐或者中介服务。
三维模型:
- 系统用户
- 数据特征
- 程序的综合应用
对推荐系统的测评:推荐系统生命周期的不同阶段都要进行测评。
- 设计时:需要用测评去判定推荐算法的选择(离线测评)。
- 系统上线运行以后依然需要评测。
- 另一种测评方法是当在线测评不可行或太冒险的时候,可以进行一个集中的用户研究(a focused user study)。实施一种可控制的实验,即一小群用户被要求执行随着系统变化的不同的任务。
1.6 推荐系统与人机交互
一个有效的推荐系统:
- 必须能激发用户对系统的信任
- 必须有一个显而易见的系统逻辑(个人理解为系统不能有逻辑错误)
- 必须指引用户面向新的、用户不熟悉的物品
- 必须提供推荐物品的详细信息,包括图片和社区评分
- 提供改进推荐的方法
1.6.1 信任、解释和说服力
推荐系统的七大作用:
- 透明度:即说明系统是如何工作的
- 可反馈性:即允许用户告诉系统有错误
- 信任:即增加用户对系统的信心
- 有效性:即帮助用户做出好的决定
- 说服力:即说服用户去尝试或购买
- 高效性:即帮助用户快速抉择
- 满意度:即增加用户舒适度或乐趣
构造解释的方法:
- 协同过滤解释形式:“跟你相似的用户喜欢这个物品”
- 基于内容的风格解释:系统会根据最能代表物品的特征属性把物品推荐给用户。如:“这部电影被推荐是因为你可能喜欢Bruce Wills这个明星”或者“物品X被推荐是因为你对Y和Z评价很高,而Y、Z和X有共同的属性A和B”。
- 基于案例的解释:系统会引用与推荐物品相似的物品。如:“这个物品被推荐是因为你说自己拥有物品X”或者“这些物品的推荐是基于你最近浏览的物品”。
- 基于知识库的风格解释:系统会解释推荐物品和另一个物品的差异,并且会说推荐物品时如何符合用户目标的。如:“这个房间面朝大海,并且比之前推荐的房间大,这将更加浪漫,如你所愿”。
推荐系统的主要目标:说服用户接受推荐结果并且尝试推荐的物品。
结论:推荐系统的可靠性对于增加用户接受推荐结果的可能性是至关重要的。
1.6.2 会话系统
会话式推荐系统为预测评分或排序使用了各种技术。然而,这些技术都在试图提供交互过程,该过程中,用户和系统能彼此查询或提供信息。最具决定性的问题是如何设计这个会话(也就是会话策略),以及如何设计用户和系统在交互的各个阶段必须执行的动作。提供的会话必须有效,即当用户终止会话时应该得到解决方案,而且速度要快(会话步骤较少)。
系统交互的三个方面:
- 初始偏好提取
- 偏好修正
- 推出推荐结果
1.6.3
系统如何展示并且可视化计算得到的推荐结果是影响用户接受推荐结果和该推荐系统的关键因素。
一个好的推荐技术也要有解释推荐的能力,也要诱导用户提出进一步请求,包括对解释推荐的请求。
1.7 推荐系统是个交叉学科领域
得益于多个计算机科学领域成果:
- 机器学习
- 数据挖掘
- 信息检索
- 人机交互
1.8 出现的问题和挑战
1.8.1 本书对出现的问题的讨论
1.8.2 挑战
挑战性的话题:
- 大的真实数据集背景下的算法扩展性
- 主动推荐系统
- 推荐系统中的用户隐私保护
- 推荐给目标用户的物品多样性
- 在建立推荐列表的过程中整合用户的长期和短期偏好
- 通用的用户模型和交叉领域推荐系统能够在不同的系统和应用领域调配用户数据
- 在开放式网络中运行的分布式推荐系统
- 最优化推荐序列的推荐系统
- 移动上下文的推荐系统
八大重要挑战:
- 透明度
- 探索与利用
- 指导准则
- 时间价值
- 用户行为解释
- 评价推荐系统
- 扩展性
- 学术/工业之间关系
第一部分 基础技术
第2章 推荐系统中的数据挖掘方法
2.1 简介
数据挖掘的过程一般由三个连续执行的步骤组成:
- 数据预处理
- 数据分析
- 结果解释
2.2 数据预处理
我们把数据定义为一组对象及其属性的集合,其中属性定义为性质或者是对象的特征。对象的其他名称包括记录、物品、得分、样本、观察值或者实例。属性也可以称为变量、字段、特性或者特征。
2.2.1 相似度度量方法
协同过滤推荐备受青睐方法之一是使用kNN分类。这种分类计数(如同大多数的分类和聚类技术)主要取决于定义合适的相似度或者距离度量方法。
欧几里德距离:

闵可夫斯基距离是欧几里得距离的推广:

其中,r是距离的度(参数)。取决于r值的不同,一般的闵可夫斯基距离有专用的名称
- r=1,城市街区(也叫曼哈顿、出租车、L1范数)距离
- r=2,欧几里得距离(L2范数)
- r=∞,上确界,这是任意维度对象属性间的最大距离。
马氏距离定义如下:

另一个常用的方法是把物品看作n维空间的文档向量,并且计算它们相似度作为形成夹角的余弦值,其公式如下:
第3章 基于内容的推荐系统:前沿和趋势
摘要:
- 基于内容的推荐系统会发掘用户曾经喜欢的产品,从而尝试去推荐类似的产品使其满意。
- 基于内容的推荐系统主要的处理方式在于利用用户已知的偏好、兴趣等属性和物品内容的属性相匹配,以此为用户推荐新的感兴趣的物品。
3.1 简介
物品推荐的问题已经有广泛的研究,现有两类主要方式:
- 基于内容的推荐系统试图推荐系统试图推荐给定用户过去喜欢的相似物品
- 协同过滤推荐方式的系统识别出拥有相同喜好的用户,并推荐它们喜欢过的物品