读书笔记推荐系统实践Word文档格式.docx

上传人:b****3 文档编号:17745277 上传时间:2022-12-09 格式:DOCX 页数:19 大小:223.16KB
下载 相关 举报
读书笔记推荐系统实践Word文档格式.docx_第1页
第1页 / 共19页
读书笔记推荐系统实践Word文档格式.docx_第2页
第2页 / 共19页
读书笔记推荐系统实践Word文档格式.docx_第3页
第3页 / 共19页
读书笔记推荐系统实践Word文档格式.docx_第4页
第4页 / 共19页
读书笔记推荐系统实践Word文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

读书笔记推荐系统实践Word文档格式.docx

《读书笔记推荐系统实践Word文档格式.docx》由会员分享,可在线阅读,更多相关《读书笔记推荐系统实践Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

读书笔记推荐系统实践Word文档格式.docx

音乐:

因为音乐的数量实在是太多,用海量来形容一点都不为过,而且在大多数时候,用户都没有明确想听的歌曲,所以个性化音乐推荐很有必要。

国际上著名的有Pandora和Last.fm,国内有豆瓣。

社交网络:

根据用户之间的社交网络关系和用户的偏好信息向用户提供各种信息。

如Facebook和Twitter。

个性化阅读:

互联网上的文章非常多,用户面临信息过载的问题,并且,用户很多时候只是想关注一下自己感兴趣的领域,并没有必须想看的特定的文章,所以个性化阅读需要个性化推荐系统,如GoogleReader,Zite和Flipboard。

基于位置的服务:

比如你在一个陌生的地方,这个时候,你需要找一个餐馆吃饭,找一个宾馆休息,这个时候,你需要一个个性化推荐系统为你推荐餐馆,推荐宾馆。

基于位置的服务推荐系统通常和社交网络结合在一起,这样可以通过获取社交网络里的个人信息、社交网络关系,达到个性化推荐。

如Foursquare。

个性化邮件:

垃圾邮件过滤,优先级收件箱功能等。

个性化广告:

个性化广告投放和狭义个性化推荐的区别是,个性化推荐着重于帮助用户找到可能令他们感兴趣的物品,而广告推荐着重于帮助广告找到可能对他们感兴趣的用户,即前者以用户为核心,后者以广告为核心。

1.5推荐系统评测

一个完整的推荐系统一般存在3个参与方:

用户、物品提供商和提供推荐系统的网站。

在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。

为了全面评测推荐系统对三方利益的影响根据不同的角度出发,提出不同的指标,这些指标包括准确度、覆盖度、新颖度、惊喜度、信任度、透明度等。

这些指标中,有些可以离线计算,有的只有在线才能计算,有些只能通过用户调查问卷获得。

离线计算步骤:

1)准备数据集;

2)将数据集按照一定的规则分成训练集和测试集;

3)在训练集上训练用户兴趣模型,在测试集上进行预测;

4)使用预先定义的指标评测预测结果。

表格1离线实验的优缺点

优点

缺点

不需要有对实际系统的控制权

无法计算商业上关心的指标

不需要用户参与实验

离线实验的指标与实际商业使用的指标存在差距

速度快,可以测试大量算法

用户调查:

可以获取用户的主观感受的指标,但是代价大。

在线实验:

完成离线实验和必要的用户调查后,可以上线做AB测试,AB测试是一种很常见的在线评测算法的实验方法。

它通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测标比较不同的算法。

AB测试的优点是可以公平获得不同算法实际在线时的性能,包括商业上关注的指标。

AB测试的缺点主要是周期比较长,必须进行长期的实验才能得到比较可靠的结果。

而且对于一个大型的网站来说,AB测试是一项复杂的工程。

一般来说,一个新的推荐算法最终上线,需要完成上述三个实验,1)首先,需要通过离线实验证明在很多离线指标上优于现有算法;

2)然后,需要通过用户调查确定它的用户满意度不低于现有的算法;

3)最后,通过在线的AB测试确定它在我们关心的指标上优于现有的算法。

推荐系统的评测指标有如下几点:

1) 

用户满意度,用户作为推荐系统重要的参与者,其满意度是评测推荐系统的最重要的指标,但是,这种方法只能通过用户调查或在线实验获得。

2) 

预测准确度,预测准确度是一个推荐算法预测用户行为的能力,这个指标是最重要的推荐系统离线评测指标。

对于不同的研究方向,它们的预测准确度指标也不尽相同。

ü

评分预测,预测用户对物品评分的行为称为评分预测,评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。

Rui是用户u对物品i的实际评分,而^rui是推荐算法给出的预测评分,那么RMSE的定义为:

MAE采用绝对值计算预测误差,它的定义为:

TopN推荐,给用呢一个个性化的推荐列表,这种推荐叫做TopN推荐。

TopN推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。

令R(u)是根据用户在训练集上的行为给用户作出的推荐列表,而T(u)是用户在测试集上的行为列表。

那么推荐结果的召回率定义为:

推荐结果的准确率定义为:

有时候,为了全面评测TopN推荐的准确率和召回率,一般会选取不同的推荐列表长度N,计算出一组准确率/召回率,然后画出准确率/召回率曲线。

亚马逊前科学家GregLinden认为,指出电影推荐的目的是找到用户最可能感兴趣的电影,而不是预测用户看了电影后会给电影什么评分。

因此,TopN推荐更符合实际的应用需求。

3) 

覆盖率,描述一个推荐系统对物品长尾的发掘能力。

最简单的定义为推荐系统推荐出来的物品占总物品集合的比例。

假设系统的用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u)。

那么推荐系统的覆盖率计算如下:

上面的定义过于粗略,我们可以通过研究物品在推荐列表中出现次数的分布描述推荐系统挖掘长尾的能力,如果分布比较平,则说明覆盖率比较高,如果比较陡峭,则说明推荐系统的覆盖率低,信息论和经济学中有两个著名的指来可以用来定义覆盖率,一个是信息熵:

这里的p(i)是物品i的流行度除以全部物品流行度之和,第二个指标是基尼系统:

其中,是按照物品流行度p()从小到大排序的物品列表中第j个物品。

社会学领域有一个著名的马太效应,即所谓强者更强,弱者更弱。

搜索引擎的PageRank算法具有一定的马太效应,协同过滤推荐算法也具有马太效应。

评测推荐系统是否具有马太效应的简单办法就是使用基尼系数。

4) 

多样性,推荐列表应该比较多样,覆盖用户的绝大多数兴趣点,多样性描述了推荐列表中物品两两之间的不相似性。

用户u的推荐列表R(u)的多样性定义如下:

其中,s(I,j)为物品i和物品j之间的相似度。

而推荐系统的整体多样性可以定义为用户推荐列表多样性的平均值:

5) 

新颖性,评测新颖度最简单的方法就是利用推荐结果的平均流行度,因为越不流行的物品越可能让用户觉得新颖。

如果要准确地统计新颖度,则需要做用户调查。

6) 

惊喜度,推荐结果与用户历史记录不相似,但用户却觉得满意的推荐。

7) 

信任度,对于让你信任的推荐系统,它的推荐会让你产生购买欲,对于不信任的推荐系统,它的推荐很难让你产生购买欲。

所以提高推荐系统的信任度是很重要的,提高推荐系统的信任度主要有两种方法。

首先需要增加推荐系统的透明度,增加推荐系统的透明度的主要办法是提供推荐解释。

其次考虑用户社交网络信息,利用用户的好友信息给用户做推荐,并且用好友进行推荐解释。

8) 

实时性,推荐系统实时性包括两个方面,第一个是推荐系统要实时的更新推荐列表来满足用户新的行为变化。

第二个是推荐系统能够将新加入系统的物品推荐给用户。

9) 

健壮性,推荐系统的抗攻击能力。

总结:

根据本书作者观点,应该在给定覆盖率、多样性、新颖性等限制条件下,尽量优化预测准确度。

1.6评测维度

如果能够在推荐系统评测报告中包含不同维度下的系统评测指标,就能帮我们全面地了解推荐系统性能,一般来说,评测维度分为如下3种:

用户维度,主要包括用户的人口统计学信息、活跃度以及是不是新用户等。

物品维度,包括物品的属性信息、流行度、平均分以及是不是新加入的物品等。

时间维度,包括季节,是工作日还是周末,是白天还是晚上等。

2利用用户行为数据

在利用用户行为数据设计推荐算法之前,研究人员首先需要对用户行为数据进行分析,了解数据中蕴含的一般规律,这样才能对算法的设计起到指导作用。

很多关于互联网数据的研究发现,互联网上的很多数据分布都满足一种称为PowerLaw的分布,这个分布在互联网领域也称为长尾分布。

研究发现,用户行为数据也蕴含这种规律。

基于领域的算法是推荐系统中最基本的算法,该算法分为两大类,一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法。

2.1基于用户的协同过滤算法

算法思想:

在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A,这种方法称为基于用户的协同过滤算法。

算法步骤:

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

通过如下的Jaccard公式简单地计算u和v的相似度:

或者通过余弦相似度计算:

或者使用改进的相似度计算公式:

该公式

惩罚了用户u和用户v共同兴趣列表中热门物品对他们相似度的影响。

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

得到用户之间的兴趣相似度后,使用如下公式计算用户u物品i的感兴趣程度:

其中,(S(u,K)包含和用户u兴趣最接近的K个用户,N(i)是对物品i有过行为的用户集合,wuv是用户u和用户v的相似度,rvi代表用户对物品i的兴趣。

算法缺点:

1)随着网站用户数目的增加,计算用户之间的相似度越来越困难。

2)对基于用户的协同过滤的推荐结果难以作出解释。

2.2基于物品的协同过滤算法

基于物品的协同过滤算法是目前业界应用最多的算法。

主要通过分析用户的行为记录计算物品之间的相似度,该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B。

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

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

物品相似度的归一化,归一化的好处不仅在于增加推荐的准确度,它还可以提高推荐的覆盖率和多样性。

2.3UserCF和ItemCF的比较

UserCF给用户推荐那些和他们有共同兴趣偏好的用户喜欢的物品,而ItemCF给用户推荐那些和他之前喜欢的物品类似的物品。

从而可以看出,UserCF的推荐结果着重反映和用户兴趣类似的小群体热点,而ItemCF的推荐结果着重于用户的历史兴趣。

换句话说,UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化。

表格1UserCF和ItemCF优缺点的对比

UserCF

ItemCF

性能

适用于用户较少的场合,如果用户很多,计算用户的相似度矩阵代价很大

适用于物品数明显小于用户数的场合,如果物品很多,计算物品相似度矩阵代价很大

领域

时效性较强,用户个性人兴趣不太明显的领域

长尾物品丰富,用户个性化需求强烈的领域

实时性

用户有新行为,不一定造成推荐结果的立即变化

用户有新行为,一定会导致推荐结果的立即变化

冷启动

在新用户对很少的物品产生行为后,不能立即对他进行个性化推荐,因为用户相似度是每隔一段时间离线计算的

新物品上线后一段时间,一旦有用户对物品产生行为,就可以将新物品推荐给和对它产和行为的用户兴趣相似的其他用户

新用户只要对于个物品产生行为,就可以给他推荐和该物品相关的其他物品

但没有办法在不离线更新物品相似度表的情况下将新物品推荐给用户

推荐理由

很难提供令用户信服的推荐解释

利用用户的历史行为给用户做推荐解释,可以令用户比较信服

2.4隐语义模型

隐含语义分析技术(latentvariableanalysis)从诞生到今天产生了很多著名的模型和方法,其中和该技术相关且耳熟能详的名词有pLSA、LDA、隐含类别模型(latentclasssmodel)、隐含主题模型(latenttopicmodel)、矩阵分解(matrixfactorization)。

2.5基于图的模型

用户行为很容易用二分图表示,因此很多图的算法都可以用到推荐系统中。

如果将个性化推荐算法放到二分图模型上,那么给用户u推荐物品的任务就可以转化为度量用户顶点Vu和与Vu没有边直接相连的物品节点在图上的相关性,相关性越高,则在推荐列表中的权重就越高。

度量顶图中的两个顶点之间相关性的方法很多,但一般来说图中顶点的相关性主要取决于下面3点:

⏹两个顶点之间的路径数;

⏹两个顶点之间路径的长度;

⏹两个顶点之间的路径经过的顶点。

相关性高的一对顶点一般具有如下特征:

⏹两个顶点之间有很多路径相连;

⏹连接两个顶点之间的路径长度都比较短;

⏹连接两个顶点之间的不会经过出度比较大的顶点。

3推荐系统冷启动问题

推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴直,因此需要大量的用户行为数据,对于已经积累了大量的用户数据的公司来说,这或许根本不是问题,但对于没有用户数据的公司来说,如何做到个性化推荐并且让用户对推荐结果满意呢?

3.1冷启动问题简介

冷启动问题主要分为3类:

⏹用户冷启动:

当新用户到来时,我们没有他的行为数据,所以无法根据他的历史行为预测其兴趣,从而无法借此给他做个性化推荐。

⏹物品冷启动:

物品冷启动主要解决如何将新的物品推荐给可能对他感兴趣的用户的问题。

⏹系统冷启动:

系统冷启动主要解决如何在一个新开发的网站(还没有用户,也没有用户行为数据,只有一些物品信息)设计个性化推荐系统,从而在网站刚发布的时候就让用户体验到个性化推荐服务这一问题。

对于这3种不同的冷启动问题,有不同的解决方案,一般来说,可以参考如下解决方案:

⏹提供非个性化的推荐:

如先进行热门推荐,等用户有行为数据时,我们再个性化推荐。

⏹利用用户注册时提供的信息,如年龄、性别等数据,可以做粗粒度的个性化。

⏹利用用户的社交网络账号登录,导入用户的社交网站上的好友信息,然后推荐该好友喜欢的物品。

⏹要求用户在登录时对一些物品进行反馈,收集用户以这些物品的兴趣信息。

⏹对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们类似的物品的的用户。

⏹在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。

3.2利用用户注册信息

利用用户的注册信息,可以较好的解决用户冷启动问题。

用户的注册信息分为3种:

1)人口统计学信息,包括用户的年龄、性别、职业、民族、学历和居住地。

2)用户的兴趣的描述,有一些网站会让用户用文字描述他们的兴趣。

3)从其他网站导入的用户站外行为数据,比如用户通过新浪微博、腾讯的账号登录,就可以在用户同意的情况下获取用户的行为数据和社交网络数据。

基于注册信息的个性化推荐流程基本如下:

1)获取用户的注册信息;

2)根据用户的注册信息对用户分类;

3)给用户推荐他所属分类中用户喜欢的物品。

3.3选择合适的物品启动用户的兴趣

在新用户第一次访问推荐系统时,我们先不立即向其推荐物品,而是提供一些物品,让用户反馈他们对这些物品的兴趣,然后根据用户的反馈提供个性化推荐。

选择合适的物品启动用户的兴趣,可以较好的解决系统冷启动问题。

一般来说,能够用来启动用户兴趣的物品需要具有以下特点:

1)比较热门,如果想让用户对一个物品进行反馈,前提是用户知道这个物品是什么东西。

2)具有代表性和区分性。

3)启动物品集合需要多样性。

因为用户的兴趣可能是多样的。

3.4利用物品的内容信息

利用物品的内容信息,可以在某种程度上解决物品的冷启动问题。

当物品内容比较丰富时,物品的内容可以使用向量空间模型表示,该模型会将物品表示成一个关键词向量。

向量空间模型的优点是简单,缺点是丢失了一些信息,比较关键词之间的关系信息。

向量空间模型在内容数据丰富时可以获得比较好的效果。

但是,如果关键词很少,向量空间模型就很难计算出准确的相似度,在这种情况下可以考虑使用话题模型。

代表性的话题模型有LDA,LDA作为一种生成模型,对一篇文档产生的过程进行建模。

话题模型的基本思想是,一个人在写一篇文档的时候,会首先想这篇文章要讨论哪些话题,然后思考虑这些话题用什么词描述,从而最终用词写成一篇文章。

在使用LDA计算物品的内容相似度时,我们可以先计算出物品在话题上的分布,然后利用两个物品的话题分布计算物品的相似度。

计算分布的相似度可以利用KL散度:

其中,p和q是两个分布,KL散度越大说明分布的相似度越低。

3.5发挥专家的作用

在很多系统刚建立的时候,既没有用户的行为数据,也没有充足的物品内容信息来计算准确的物品相似度,这个时候,如果想让这个推荐系统在建立的时候就能让用户获得比较好的体验时,可以考虑利用专家进行标注。

4利用用户标签数据

推荐系统的目的是联系用户的兴趣和物品,目前流行的联系用户兴趣和物品的方式为:

1)利用用户喜欢过的物品,给用户推荐与他喜欢过的物品类似的物品,即基于物品的协同过滤算法;

2)利用和用户兴趣相似的其他用户,给用户推荐那些与他们相似用户喜欢过的物品,即基于用户的协同过滤算法;

3)通过一些特征联系用户的兴趣和物品,给用户推荐那些个有用户兴趣的特征的物品。

标签:

是一种无层次化结构的,用来描述信息的关键词,它可以用来描述物品的语义。

标签分为两种,一种是由作者或者专家给物品打标签,另一种是让普通用户给物品打标签,也就是UGC(UserGeneratedContent,用户生成的内容)。

UGC的标签系统是一种描述用户兴趣和物品语义的重要方式。

作为音乐或视频推荐,如果要进行音频分析,那是一项很复杂的任务,这个时候,使用UGC标签就很方便。

而且,标签系统的最大优势在于可以发挥群体的智能,获得对物品内容信息比较准确的关键词描述。

4.1标签系统中的推荐问题

打标签作为一种重要的用户行为,蕴含了很多用户兴趣信息,标签系统中的推荐问题主要有以下两个:

1)如何利用用户打标签的行为为其推荐物品(基于标签的推荐);

2)如何在用户给物品打标签的时候为其推荐适合该物品的标签(标签推荐)。

4.2基于标签的推荐系统

用户用标签来描述对物品的看法,因此标签是联系用户和物品的纽带,也是反应用户兴趣的重要数据源。

一个用户标签行为的数据集一般一个三元组的集合表示,其中记录(u,I,b)表示用户u给物品i打上了标签b。

最简单的个性化推荐算法:

1)统计每个用户最常用的标签;

2)对于每个标签,统计被打过这个标签次数最多的物品;

3)对于每个用户,找到他常用的标签,然后找到具有这些标签的最热门物品推荐给这个用户。

对于上面这个算法,用户u对物品i的兴趣公式如下:

其中,nu,b是用户u打过标签b的次数,nb,i是物品i被打过标签b的次数。

但是,这个公式倾向于给热门标签对应的热门物品很大的权重,因此会造成推荐热门的物品给用户。

可以借鉴TF-IDF的思想(如果某个词或短语在一篇文章中出现的频率TF很高,并且在其他文章中出现的次数很少,则认为此词或短语具有很好的类别区分能力,详见附录)对公式进行改进:

Ni(u)记录了物品i被多少个不同的用户打过标签。

然而,如果数据稀疏,即标签数量很少,这个时候,为了提高推荐系统的准确度,我们需要进行标签扩展,标签扩展的本质是对每个标签找到和它相似的标签,也就是计算标签之间的相似度。

进行标签扩展的方法主要有两个,一个是根据同义词典扩展,另一个是通过统计出标签的相似度。

不是所有的标签都能反应用户的兴趣,适当的时候,我们需要进行标签清理,标签清理的另一个重要意义在于将标签作为推荐解释,一般来说有如下的标签清理方法:

1)去除词频很高的停止词(大量使用却没有意义的词);

2)去除因词根不同造成的同义词;

3)去除因分隔符造成的同义词。

4.3给用户推荐标签

之所以要给用户推荐标签,是因为给用户推荐标签不仅可以方便用户输入标签,而且还可以提高标签质量。

给用户推荐标签比较简单的方法有如下4种:

1)给用户u推荐整个系统里最热门的标签;

2)给用户u推荐物品i上最热门的标签;

3)给用户u推荐用户自己最常用的标签;

4)结合前面两种方法,推荐标签。

5利用上下文信息

用户访问推荐系统的上下文信息包括时间、地点、心情等。

上下文信息中最重要的是时间上下文信息。

时间信息对用户兴趣的影响表现在以下几个方面:

1)用户的兴趣是变化的;

2)物品也是有生命周期的;

3)季节效应。

推荐系统每天推荐结果的变化程序被定义为推荐系统的时间多样性。

提高推荐结果的时间多样性分为两步:

首先,需要保证推荐系统能够在用户有了新的行为后及时调整推荐结果,使推荐结果满足用户最近的兴趣;

其次,需要保证推荐系统在用户没有新行为的时候也能够经常变化一下结果,具有一定的时间多样性。

当然,时间多样性也不是绝对的,推荐系统需要首先保证推荐的精度,在此基础上适当地考虑时间多样性。

5.1时间上下文推荐算法

用户在相隔很短的时间内喜欢的物品具有更高的相似度,用户近期行为相比很久以前的行为,更能体现用户的现在的兴趣。

时间上下文相关的的ItemCF算法:

ItemCF的思想是先利用用户的行为计算物品之间的相似度,然后给用户推荐与用户历史记录相类似的物品。

时间下下文相关的ItemCF算法是在传统的ItemCF考虑时间效用,在计算物品相似的时候考虑时间信息,可以通过以下公式进行计算两种物品之间的相似度:

其中,f为衰减函数,f函数的含义是,用户对物品i和物品j产生行为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1