《机器学习》慕课版课后习题-第13章

中国工信出版集团、人民邮电出版社出版的赵卫东、董亮编著的《机器学习》慕课版

第13章 推荐系统

1.推荐系统的功能是什么?

解:推荐系统是一种帮助用户快速发现有用信息的工具。通过分析用户的历史行为,研究用户偏好,对用户兴趣建模,从而主动给用户推荐能够满足他们感兴趣的信息。本质上,推荐系统是解决用户额外信息获取的问题。在海量冗余信息的情况下,用户容易迷失目标,推荐系统主动筛选信息,将基础数据与算法模型进行结合,帮助其确定目标,最终达到智能化推荐。

2.讨论推荐系统的结构组成。

解:推荐系统有三个重要的模块,包括输入模块、推荐算法模块、推荐输出模块。推荐系统首先通过分析用户行为数据,建立用户偏好模型。然后使用用户兴趣匹配物品的特征信息,再通过推荐算法进行筛选过滤,找到用户可能感兴趣的推荐对象,最终推荐给用户。上述过程经过训练和验证最终形成推荐模型,可用于在线或离线推荐。同时推荐结果在用户端的响应也作为输入数据,用于模型的迭代优化。

3.推荐系统常用于哪些领域?举例说明。

解:推荐系统可用于电商平台、个性化电影网站、音乐歌单、社交网络、新闻网站、个性化阅读、个性化广告等。电商平台中的“猜你喜欢”、“购买此商品的用户也购买了”等;电影网站、音乐歌单中的电影推荐、音乐推荐;社交网络中的好友推荐、资讯内容推荐;新闻网站中的个性化资讯的获取;个性化阅读中为用户定制的感兴趣的个性化内容;为特定用户展示的特定广告都属于推荐系统的应用。

4.推荐系统常用的方法有哪些?这些方法分别适用什么场合?

解:基于人口统计学的推荐,在不同的物品领域都可以使用,具有领域独立性;

基于内容的推荐,这种方法适用于物品特征易于提取的场合;

基于协同过滤的推荐,这种方法要在能够获取到用户历史行为的场合下应用;

基于关联规则的推荐,常用于实体商店或在线电商的推荐系统;

基于知识的推荐,主要用于知识型的产品中;

基于约束的推荐,通常被用于为那些不经常被购买的产品领域构建推荐系统;

基于标签的推荐,应用在有描述信息的关键词产生和应用的场合中。

5.基于内容推荐的基本思想是什么?

解:基于内容推荐是基本思想是根据物品的属性和用户的特殊偏好,直观的选择可推荐物品。比如,《哈利.波特》是一本科幻小说;用户爱丽丝很喜欢科幻小说,系统就会直接推荐一本新出版的《哈利.波特》给爱丽丝。

6.举例说明基于内容的推荐应用过程。

解:基于内容的推荐原理是基于用户感兴趣的物品集收集分析用户内容偏好,然后找到和此偏好相近的物品。

提取用户偏好的物品特征是基于内容推荐算法的关键,基于内容的推荐过程是用户喜欢的物品和特征描述,例如物品的特征有属性、描述等,图书的特征有体裁、作者、出版社、类型、价格、出版时间、内容等,这些内容大部分为文本,对特征的提取涉及文本处理相关技术,常见的处理算法有LDA、TF/IDF等。特征提取的目标是将文本内容转化为可计算的向量形式,从而实现对物品的特征建模,并应用推荐算法进行内容推荐。

7.如何为用户和物品建模?

解:用户的输入数据主要有以下几种。

a.用户属性,包括人口统计学信息,如性别、年龄、所在地等。

b.用户行为数据,包括用户浏览的内容、次数、频率、停留时间、操作(收藏、点赞、分享)等。服务器端保存的日志也能较好地记录用户的浏览行为。

对上述数据的获取方式有显式获取、隐式获取等方式。其中显式获取可以基于用户注册和完善资料时填写的表单,或采用调查问卷等方式取得,这种方式简单方便,但是用户往往不愿意显式表达其喜好。隐式获取主要是基于用户行为来分析其潜在的兴趣或关注点,这种方式需要注意用户的兴趣会随着时间变化,需要动态调整。

物品相关的数据在不同的业务系统中通常相差较大,与推荐对象的相关性较强,以电商平台中的商品为例,列举常见的输入数据,主要有以下几种。

a.物品属性:商品品牌、类别、产地、价格等;

b.描述信息:图片、文本描述等;

c.时间维度:季节、日期、假期等;

d.使用场景:工作、家庭等;

e.面向用户群体:老人、儿童、男性、女性等;

f.用户评价:用户评分、用户标记的标签等。

8.如何计算推荐过程中用户和商品的相似性?

解:使用Pearson相关系数、余弦函数、Spearman秩相关系数等。

9.基于协同过滤的推荐基本思想是什么?

解:基于用户人口属性和行为数据设计的推荐算法,成为协同过滤算法。此方法主要根据用户的历史行为,寻找用户或物品的近邻集合,以此计算用户对物品的偏好,包括基于领域。图、关联规则、知识的推荐算法,其中最广泛应用的是基于领域的方法,在实践中往往是上述几种方法的混合应用。

10.基于协同过滤的推荐适用于什么场合?

解:基于用户的协同过滤算法主要有两步:

1)找到和目标用户兴趣相似的用户集合

2)找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

基于物品的协同过滤算法主要有两步:

1)计算物品之间的相似度。

2)根据物品的相似度和用户的历史行为给用户生成推荐列表。

Item CF是利用物品间的相似性来推荐的,所以假如用户的数量远远超过物品的数量,那么可以考虑使用Item CF,比如购物网站,因其物品的数据相对稳定,因此计算物品的相似度时不但计算量较小,而且不必频繁更新;User CF更适合做新闻、博客或者微内容的推荐系统,因为其内容更新频率非常高,特别是在社交网络中,User CF是一个更好的选择,可以增加用户对推荐解释的信服程度。

而在一个非社交网络的网站中,比如给某个用户推荐一本书,系统给出的解释是某某和你有相似兴趣的人也看了这本书,这很难让用户信服,因为用户可能根本不认识那个人;但假如给出的理由是因为这本书和你以前看的某本书相似,这样解释相对合理,用户可能就会采纳你的推荐。

UserCF是推荐用户所在兴趣小组中的热点,更注重社会化,而ItemCF则是根据用户历史行为推荐相似物品,更注重个性化。所以UserCF一般用在新闻类网站中,如Digg,而ItemCF则用在其他非新闻类网站中,如Amazon,hulu等等。

因为在新闻类网站中,用户的兴趣爱好往往比较粗粒度,很少会有用户说只看某个话题的新闻,往往某个话题也不是天天会有新闻的。个性化新闻推荐更强调新闻热点,热门程度和时效性是个性化新闻推荐的重点,个性化是补充,所以UserCF给用户推荐和他有相同兴趣爱好的人关注的新闻,这样在保证了热点和时效性的同时,兼顾了个性化。另外一个原因是从技术上考虑的,作为一种物品,新闻的更新非常快,而且实时会有新的新闻出现,而如果使用ItemCF的话,需要维护一张物品之间相似度的表,实际工业界这表一般是一天一更新的,这在新闻领域是万万不能接受的。

但是,在图书,电子商务和电影网站等方面,ItemCF则能更好的发挥作用。因为在这些网站中,用户的兴趣爱好一般是比较固定的,而且相比于新闻网站更细腻。在这些网站中,个性化推荐一般是给用户推荐他自己领域的相关物品。另外,这些网站的物品数量更新速度不快,一天一次更新可以接受。而且在这些网站中,用户数量往往远远大于物品数量,从存储的角度来讲,UserCF需要消耗更大的空间复杂度,另外,ItemCF可以方便的提供推荐理由,增加用户对推荐系统的信任度,所以更适合这些网站。

11.基于用户的协同过滤推荐与基于物品的协同有什么不同?举例说明它们的应用。

解:基于用户的协同过滤算法为用户推荐兴趣相似的其他用户喜欢的物品。算法的关键是计算两个用户的兴趣相似度。计算用户相似度的常用方法有余弦相似性、皮尔森系数相关和修正的余弦相似性。

基于物品的协同过滤算法是依据用户喜欢的物品向其推荐与之相似的其他物品,属于基础的推荐算法,集成在各类电商平台的推荐系统中。与基于内容的推荐算法相比,该算法是通过用户的行为计算物品之间的相似度。而基于内容的推荐算法计算用户喜欢的物品的内容共同特征,作为用户的偏好描述,然后寻找与此特征相似的其他物品。

12.什么是冷启动问题?如何解决?

解:冷启动是用户数据较少、用户行为较少的问题,主要分三类:系统冷启动、物品冷启动、用户冷启动。

系统冷启动可以先建立起物品的相关度,通过某一物品可以检索到与之相似的其他物品,用户表现出对物品感兴趣后推荐与之相似的其他物品。

新上线的物品可以利用物品内容相似性,推荐给喜欢类似物品的用户。

用户冷启动提供非个性化推荐,比如热门排行。或者利用用户注册信息以及用户的社交网络账号。

13.举例说明基于图的推荐算法基本思想及其应用。

解:PageRank最初用来度量特定网页相对于搜索引擎中其他网页的重要性,其计算结果主要用来对搜索结果中网页列表进行排序,重要性高的页面排在前面。

用户行为很容易用二分图表示。因此很多图的算法都可以用到推荐系统中,其中物品作为图中节点,节点之间连线是用户行为中的共同购买或浏览,物品之间的相似性可以通过计算图中节点之间的相关性来实现。

14.举例说明隐语义模型在推荐中的应用。

解:隐语义模型(Latent Factor Model, LFM)最早出现在文本挖掘领域,用于找到文本的隐含语义。在推荐系统中,通过隐含特征关联用户兴趣和物品,目标是建立用户-物品矩阵,使用矩阵分解建立用户和隐类之间的关系、物品和隐类之间的关系,最终得到用户对物品的偏好。即对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品。

15.简述Apriori和FP增长等关联算法的基本过程。

解:Apriori算法流程:

输入:数据集合D,支持度阈值α
输出:最大的频繁k项集

1)扫描整个数据集,得到所有出现过的数据,作为候选频繁1项集。k = 1,频繁0项集为空集。

2)挖掘频繁k项集

​ a) 扫描数据计算候选频繁k项集的支持度

​ b) 去除候选频繁k项集中支持度低于阈值的数据集,得到频繁k项集。如果得到的频繁k项集为空,则直接返回频繁k-1项集的集合作为算法结果,算法结束。如果得到的频繁k项集只有一项,则直接返回频繁k项集的集合作为算法结果,算法结束。

​ c) 基于频繁k项集,连接生成候选频繁k+1项集。

3) 令k = k + 1,转入步骤2。

从算法的步骤可以看出,Apriori算法每轮迭代都要扫描数据集,因此在数据集很大,数据种类很多的时候,算法效率很低

16.举例说明关联推荐的过程。

解:关联规则挖掘过程中,首先生成频繁项集,即找出所有满足最小支持度的项集。然后生成规则,在频繁项集的基础上生成满足最小置信度的规则,即强关联规则。

17.推荐算法的性能如何评价?

解:通过用户调查、离线实验、在线实验这些实验方法来评价,主要评价用户满意度、预测准确度、覆盖率、多样性、新颖性、惊喜度、信任度、实时性、健壮性这些指标。

18.如何组合基于内容的推荐与基于协同过滤的推荐等多种算法?举例说明。

解:Netflix的Online-Nearline-Offline混合推荐系统

在业界实际部署时,解决此类常见问题的流行方法是采用三段式混合系统:即**Online-Nearline-Offline Recommendation(在线-近线-离线)**三层混合机制。曾经举办过著名的国际推荐竞赛的Netflix公司,在所公开的后台推荐系统架构中,即采用了该混合系统。

其中Online系统直接面向用户,是一个高性能和高可用性的推荐服务,在这里通常会设计有缓存(Cache)系统,来处理热门的请求(Query)重复计算的问题。而当Cache不命中的情况下,Online推荐运行一个运算简单可靠的算法,及时生成结果。

Online系统后是Nearline系统,这个系统部署在服务端,一方面会接收Online系统发过来的请求,将Online计算的一些缓存结果,采用更复杂的算法重新计算并更新后更新缓存。

另一方面Nearline是衔接Online和Offline系统的桥梁,因为Offline结果往往会挖掘长期的、海量的用户行为日志,消耗的资源大、挖掘周期长,但是Offline推荐系统计算所得的结果质量往往是最高的,这些结果会通过Nearline系统输送到线上,发挥作用。

另外一个不可忽视的问题是用户反馈的及时收集,并及时用于调整推荐结果。挖掘用户的反馈对调整推荐结果有莫大的帮助,但这个调整往往越及时越好,否则用户很容易对结果不满意而流失。这个点击挖掘和反馈的功能往往由Nearline推荐系统来承担,因为该系统收集前端反馈比较方便,又可以保证适当的处理时长。

加权混合技术能明显提高推荐精度

加权混合的模型有很多,除了简单的线性模型外,常用的有回归模型(Logistic Regression)、RBM(Restricted Boltzmann Machines)、GBDT(Gradient Boosted Decision Trees),这三种混合模型在推荐算法竞赛中大放异彩,在2009年结束的Netflix百万美元推荐竞赛中,优胜队伍将充分运用和多种加权混合模型的优势,组合后的算法推荐精度非常高。获胜队的Yehuda Koren在论文

The BellKor Solution to the Netflix Grand Prize

中对此有非常详细的介绍。另外值得一提的是台湾大学推荐团队,他们通过混合甚至二次混合的方式,将众多单独推荐算法的结果进行最合理的加权组合,在最近几届的KDD Cup数据挖掘竞赛中所向披靡,经常取得极为优异的推荐效果。

分级型混合推荐技术

尽管上述加权组合型混合推荐技术有非常高的精度,但系统复杂度和运算负载都较高。在工业界实际系统中,往往采用一些相对简单的方案,其中分级型混合推荐技术就是一类思想简单但效果也不错的方法。这种混合推荐技术根据不同的推荐场景,将不同的推荐算法按照效果优劣进行层次性划分。在对应的推荐场景下,优先采用高可信度的推荐算法生成的结果,然后依次采用后续方法生成结果。

在各种推荐场景中,Top-N推荐是最为常见的一类。这种推荐应用有时需要展示较多的推荐结果,而此时一种推荐算法的结果往往不够丰富,通常会采用分级型的混合技术,通过事先的数据挖掘,优先将推荐精度高的算法结果先列出,然后用依次用其他方法的结果递补。不同的推荐算法往往在精度(Precision)和召回(Recall)之间有所折衷,因此优先列出高精度结果,长尾部分则采用高召回的结果进行补足,能兼顾对推荐结果数量和质量的两种需求。

交叉调和技术

交叉调和技术有些类似西方酿造威士忌(Whisky)酒的过程——将纯麦威士忌、谷物威士忌、或者不同产地、口味的陈酿进行一定比例的调配后最终成品。交叉调和推荐技术(Blending Recommendation)的主要动机是保证最终推荐结果的多样性。因为不同用户对同一件物品的着眼点往往各不相同,而不同的推荐算法,生成的结果往往代表了一类不同的观察角度所生成的结果,交叉调和技术将不同推荐算法的生成结果,按照一定的配比组合在一起,打包后集中呈现给用户。

交叉调和技术需要注意的问题是结果组合时的冲突解决问题,通常会设置一些额外的约束条件来处理结果的组合展示问题。另外我们发现为了让用户更多的注意到结果的多样性,对不同类型的推荐结果辅以展示不同的推荐理由,往往能获得更多收益。

瀑布型混合方法

瀑布型(Waterfall Model)的混合方法采用了过滤(Filtering)的设计思想,将不同的推荐算法视为不同粒度的过滤器,尤其是面对待推荐对象(Item)和所需的推荐结果数量相差极为悬殊时,往往非常适用。

在瀑布型混合技术中,前一个推荐方法过滤的结果,将输出给后一个推荐方法,层层递进,候选结果在此过程中会被逐步遴选,最终得到一个高精确的结果。设计瀑布型混合系统中,通常会将运算速度快、区分度低的算法排在前列,逐步过渡为重量级的算法,这样的优点是充分运用不同算法的区分度,让宝贵的运算资源集中在少量较高候选结果的运算上。

推荐基础特征混合技术

数据是推荐系统的基础,一个完善的推荐系统,其数据来源也是多种多样的。从这些数据来源中我们可以抽取出不同的基础特征。以用户兴趣模型为例,我们既可以从用户的实际购买行为中,挖掘出用户的“显式”兴趣,又可以用用户的点击行为中,挖掘用户“隐式”兴趣;另外从用户分类、人口统计学分析中,也可以计算出用户兴趣;如果有用户的社交网络,那么也可以了解周围用户对该用户兴趣的投射,等等。另一方面,从物品(Item)的角度来看,也可以挖掘出不同的特征。

不同的基础特征可以预先进行组合或合并,为后续的推荐算法所使用。这样处理的优点是将推荐算法切分得比较清楚,这样将一个整体的推荐问题,分解为特征的抽取、组合、使用等各个环节的优化问题,在进行个性化推荐时较为适用。

推荐模型混合技术

和特征合并的技术不同,多模型的合并技术在模型计算阶段,将整个模型作为第二种算法的输入。这种组合方式,事实上形成了一种新的独立的推荐模型。例如在进行基于用户的协同过滤计算的时候,在计算相邻用户的距离的基础上,可以进一步根据用户的属性内容(Content)信息、采用基于内容的推荐的思想,进一步生成相似用户的候选结果;或者利用用户的社交网络信息(Social Network)来扩展相邻用户集合。这种在算法设计阶段而不是特征利用或推荐结果合并阶段的混合技术,被成为推荐模型混合技术。

这种技术往往适用于数据稀疏或质量较差时,单个推荐模型结果都比较差的情况。此时对多个较差的模型的最终结果进行合并无法获得满意的结果(因为候选结果都比较差),因此提前在模型计算阶段进行算法思路的合并,这样能提前召回好的结果,提升推荐效果。

整体式混合推荐框架

除了上述的系统架构、特征、算法、推荐结果等等角度的推荐融合技术,还有很多的内容是没有包括的,例如从商业逻辑的角度来分析,商家往往有一些特定的推荐需求或者推荐规则,需要对算法生成的结果进行调整。亦或者从交互设计的角度来看,推荐结果的展示方式等都有所不同;一些特殊的应用场景可能需要强调地域、时间等信息,对应的推荐挖掘方法和展现都有特殊的要求,这个时候对结果的混合往往要从整个产品的角度来进行设计和处理,从而能够满足不同的需要,这些可以被纳入整体式的混合推荐框架中考虑。

19.查找资料,讨论推荐系统的最新发展趋势。

解:作者:Zhihong Deng
链接:https://www.zhihu.com/question/452182508/answer/1810595159

对话推荐,或者说交互式推荐,是一个比较新的场景,也是推荐和自然语言处理紧密结合的一个场景。传统的推荐是一个静态过程,用户对当前推荐内容的不满或者新的需求很难在当前的一次交互(会话)中得到反馈。而对话推荐则提供了很好的渠道,用户可以主动地通过文字或图片的方式拉取推荐内容,实现了传统的信息检索跟推荐的联动。不过这样一个新的场景里,我们追求的目标是最大化一次推荐的点击率吗?还是在这一次完整的互动中取得最大收益?涉及到多步决策以最大化整体收益的问题就来到强化学习的战场了。

强化学习+推荐是一个非常吸引人的方向,但目前来说还是不太好做。我个人是从推荐转强化学习的,所以恰巧也对这两个领域有一些了解。推荐里面我们常常通过准确率,召回率等指标来评价算法的好坏,但强化学习要最大化的是累积收益,这就需要通过实际的交互才能评估效果,上线一个收益未知的策略是不可能的,所以大部分情况下我们都需要”仿真环境“。对于推荐这样极其复杂的环境(比如淘宝上十亿级别的商品和用户)来说,做出一个好的”仿真环境“是非常困难的。感兴趣的同学可以参考 @俞扬 老师组里的工作。

知识图谱+推荐也是一个很好的方向,从20年和21年各家大厂的招聘需求来看,大家也都在建立各自的知识图谱。我最早是从中国人民大学的 @赵鑫 老师组在SIGIR上的工作(好像是 @白婷 老师的工作)了解到并开始关注的,也是那时候开始,大家开始有开源的KG+推荐数据集可以做研究。一方面知识图谱中的结构化知识有助于缓解推荐里的冷启动等问题,另一方面它也有助于为推荐算法提供人类可理解的解释性。 BTW,感兴趣的同学也推荐看一下@王鸿伟 博士之前的工作~

谈到可解释性,其实怎么定义可解释性也是个很有趣的问题。解释的对象是什么?解释要提供给谁看?是算法的设计者,决策者,还是用户(就像前面那个回答说的)?这里面也有很多有意思的问题。我觉得比较有意思的是结合因果去做,这方面我了解得不多,可以参考 @董振华和清华大学崔鹏老师的工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值