推荐策略入门|《推荐系统实践》
第1章 好的推荐系统
1.推荐系统通过分析用户的行为,找到用户的个性化需求,从而将一些长尾商品个性化推荐给相应的用户,帮助用户找到自己想要但难以被发现的商品。
2.推荐系统有3种常见的联系用户和商品的方式:社会化推荐(即好友推荐)、基于内容的推荐(相似的内容)、基于协同过滤(相似的人)
3.几乎所有的推荐系统是由三部分组成:前台的展示页面、后台的日志系统、推荐算法系统
4.个性化推荐的成功应用需要两个条件:第一是存在信息过载(用户难以找到想要的内容);第二是用户大部分时候没有明确的需求
5.Facebook最宝贵的数据有两个:一个是用户之间的社交网络关系;一个是用户的偏好信息
6.目前个性化广告投放技术主要分为3种:
· 上下文广告(投放和网页内容相关的广告)
· 搜索广告(分析当前会话中的搜索记录,判断用户搜索目的)
· 个性化展示广告(根据用户兴趣,千人千面)
7.一个完整的推荐系统有三个参与方:用户、网站(平台,提供推荐系统)、内容提供方
8.好的推荐系统不仅仅能预测用户的行为,更需要帮助用户发现自己的需求、自己可能感兴趣的东西。
9.推荐系统试验方法:主要有三种评测推荐效果的方法,离线实验、用户调查、在线实验;
(1)离线实验:收集用户行为数据,分为训练集和测试集;用训练集训练用户兴趣模型、用测试集进行预测,然后用离线指标进行评测推荐效果。
(2)用户调查:用户调查主要为了获得与用户主观感受相关的指标;主要缺点是难以组织大规模的测试用户、难以完全去除主观因素影响。
(3)在线实验:AB测试,切分流量是AB测试的关键;缺点主要是周期比较长,必须进行长时间的实验才能得到可靠的实验结果。
10.一个新推荐算法的上线要经过3个实验:
首先,需要通过离线实验证明它在很多离线指标上优于现有的算法。
然后,需要通过用户调查确定它的用户满意度不低于现有的算法。
最后,通过在线的AB测试确定它在我们关心的指标上(商业指标)优于现有的算法。
11.评测指标
(1)用户满意度
主要是通过调查问卷的形式,用户对推荐系统的满意度分为不同的层次,如非常满意、比较满意、不太满意、非常不满意。(不要设置为简单的满意或不满意)
在在线系统中用户满意度通过用户行为的统计得到,比如电商平台中用户购买推荐的商品的情况。
(2)预测准确度
这个是最重要的推荐系统离线评测指标;
(3)覆盖率
覆盖率的定义是推荐系统能够推荐出来的物品占总物品集合的比例。覆盖率描述了一个推荐系统对物品长尾的发掘能力;
热门排行榜的推荐覆盖率是很低的,它只会推荐那些热门的物品,这些物品在总物品中占的比例很小。一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率。
为了更细致地描述推荐系统发掘长尾的能力,需要统计推荐列表中不同物品出现次数的分布。如果所有的物品都出现在推荐列表中,且出现的次数差不多,那么推荐系统发掘长尾的能力就很好。
社会学领域有一个著名的马太效应,即所谓强者更强,弱者更弱的效应。如果一个系统会增大热门物品和非热门物品的流行度差距,让热门的物品更加热门,不热门的物品更加不热门,那么这个系统就有马太效应。推荐系统的初衷是希望消除马太效应,使得各种物品都能被展示给对它们感兴趣的某一类人群。
评测推荐系统是否具有马太效应的简单办法就是使用基尼系数。如果G1是从初始用户行为中计算出的物品流行度的基尼系数,G2是从推荐列表中计算出的物品流行度的基尼系数,那么如果G2 > G1,就说明推荐算法具有马太效应。
(4)多样性
用户的兴趣在较长的时间跨度中是一样的,但具体到用户访问推荐系统的某一刻,其兴趣往往是单一的,那么如果推荐列表只能覆盖用户的一个兴趣点,而这个兴趣点不是用户这个时刻的兴趣点,推荐列表就不会让用户满意。
因此给用户的推荐列表也需要满足用户广泛的兴趣,即具有多样性。
(5)新颖性
新颖的推荐是指给用户推荐那些他们以前没有听说过的物品。
评测新颖度的最简单方法是利用推荐结果的平均流行度,因为越不热门的物品越可能让用户觉得新颖。
通过牺牲精度来提高多样性和新颖性是很容易的,而困难的是如何在不牺牲精度的情况下提高多样性和新颖性。
(6)惊喜度
如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。
(7)信任度
同样的推荐结果,以让用户信任的方式推荐给用户就更能让用户产生购买欲,而以类似广告形式的方法推荐给用户就可能很难让用户产生购买的意愿。
提高推荐系统的信任度有两种方式:一是增加推荐系统的透明度(提供推荐解释,让用户了解推荐系统运行机制);二是利用用户的社交网络信息,利用用户的好友信息给用户做推荐,并且用好友进行推荐解释。
(8)实时性
对于一些时效性强的物品(新闻、微博),推荐系统的实时性特别重要。
推荐系统的实时性包括两个方面:一是推荐系统需要实时地更新推荐列表来满足用户新的行为变化;二是推荐系统需要能够将新加入系统的物品推荐给用户,这主要考验了推荐系统处理物品冷启动的能力。
(9)健壮性
健壮性(即robust,鲁棒性)指标衡量了一个推荐系统抗击作弊的能力。
算法健壮性的评测主要利用模拟攻击。
设计推荐系统时尽量使用代价比较高的用户行为,比如,如果有用户购买行为和用户浏览行为,那么主要应该使用用户购买行为。
(10)商业目标
设计推荐系统时需要考虑最终的商业目标。
12.在给定覆盖率、多样性、新颖性等限制条件下,尽量优化预测准确度,即最大化预测准确度。
13.评测维度:增加评测维度的目的就是知道一个算法在什么情况下性能最好;主要分为三种,
(1)用户维度
主要包括用户的人口统计学信息、活跃度以及是不是新用户等。
(2)物品维度
包括物品的属性信息、流行度、平均分以及是不是新加入的物品等。
(3)时间维度
包括季节,是工作日还是周末,是白天还是晚上等。
第2章 利用用户行为数据
1.热门排行榜和趋势排行榜,这些排行榜应用仅仅基于简单的用户行为统计,但它们在互联网上获得了很多用户的青睐。
2.尿布和啤酒的故事说明了,用户行为数据中蕴涵着很多不是那么显而易见的规律,而个性化推荐算法的任务就是通过计算机去发现这些规律,从而为产品的设计提供指导,提高用户体验。
3.协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。
4.用户行为数据在网站上最简单的存在形式就是日志。
很多互联网业务会把多种原始日志按照用户行为汇总成会话日志(session log),其中每个会话表示一次用户行为和对应的服务,会话日志通常存储在分布式数据仓库中。
5.用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。
显性反馈行为:用户明确表示对物品喜好的行为,如评分或点赞。
隐性反馈行为:那些不能明确反应用户喜好的行为,最具代表性的隐性反馈行为就是页面浏览行为。
6.正反馈指用户的行为倾向于指用户喜欢该物品,而负反馈指用户的行为倾向于指用户不喜欢该物品。
7.协同过滤算法中,最著名的、在业界得到最广泛应用的算法是基于邻域的方法,包括:
(1)基于用户的协同过滤算法;这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品
(2)基于物品的协同过滤算法;这种算法给用户推荐和他之前喜欢的物品相似的物品
8.基于用户的协同过滤算法主要包括两个步骤:
(1) 找到和目标用户兴趣相似的用户集合。(利用行为的相似度计算兴趣的相似度)
(2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
例子:当用户顶了一篇文章,Digg就认为该用户对这篇文章有兴趣,而且愿意把这篇文章推荐给其他用户。然后,Digg找到所有在该用户顶文章之前也顶了这一篇文章的其他用户,然后给他推荐那些人最近顶的其他文章。
9.基于物品的协同过滤算法是目前业界应用最多的算法。
基于物品的协同过滤算法主要分为两步:
(1) 计算物品之间的相似度。(主要通过分析用户的行为记录计算物品之间的相似度)
(2) 根据物品的相似度和用户的历史行为给用户生成推荐列表。
10.UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣传承。
11.
(1)UserCF更适合个性化新闻推荐:热门程度和时效性是个性化新闻推荐的重点,UserCF可以给用户推荐和他有相似爱好的一群其他用户今天都在看的新闻,这样在抓住热点和时效性的同时,保证了一定程度的个性化。
temCF需要维护一张物品相关度的表,绝大多数物品相关度表都只能做到一天一次更新,这在新闻领域是不可以接受的。
(2)在图书、电子商务和电影网站中,ItemCF则能极大地发挥优势。用户的兴趣是比较固定和持久的。
12.哈利波特问题
ItemCF算法计算出的图书相关表存在一个问题,就是很多书都和《哈利波特》相关。主要是因为《哈利波特》太热门了,确实是购买任何一本书的人几乎都会购买它。
即两个不同领域的最热门物品之间往往具有比较高的相似度,解决方案之一是对热门物品降权。
第3章 推荐系统冷启动问题
1.冷启动问题(cold start)主要分3类:
(1)用户冷启动(即新用户的推荐问题)
(2)物品冷启动(即新增物品的推荐)
(3)系统冷启动(即新的平台无用户数据如何设计个性化推荐)
解决方案:
(1)提供非个性化的推荐;如热门排行榜
(2)利用用户的注册信息;如年龄、性别,进行粗粒度的个性化
(3)利用用户的社交网络账号登录(需要用户授权);导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品。
(4)要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息;
(5)对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。
(6)在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。
2.用户的注册信息分3种:
(1)人口统计学信息;包括用户的年龄、性别、职业、民族、学历和居住地
(2)用户兴趣的描述;
(3)从其他网站导入的用户站外行为数据;可以从QQ、微信、微博获得一些行为数据和社交网络数据。
3.能够用来启动用户兴趣的物品需要具有以下特点:
(1)比较热门
(2)具有代表性和区分性
(3)启动物品集合需要有多样性
4.利用用户的内容信息,既然内容相似度计算简单,能频繁更新,而且能够解决物品冷启动问题,那么为什么还需要协同过滤的算法?
这主要是因为内容过滤算法忽视了用户行为,从而也忽视了物品的流行度以及用户行为中所包含的规律,所以它的精度比较低,但结果的新颖度却比较高。
第4章 利用用户标签数据
1.推荐系统的目的是联系用户的兴趣和物品,目前流行的推荐系统基本上通过3种方式联系用户兴趣和物品。
第一种是基于物品的算法,第二种是基于用户的算法,第三种是基于特征,即标签系统。
推荐系统联系用户和物品的几种途径2.根据给物品打标签的人的不同,标签应用一般分为两种:一种是让作者或者专家给物品打标签;另一种是让普通用户给物品打标签,也就是UGC(User Generated Content,用户生成的内容)的标签应用。
标签一方面描述了用户的兴趣,另一方面则表示了物品的语义,从而将用户和物品联系了起来。
3.标签扩展的本质是对每个标签找到和它相似的标签,也就是计算标签之间的相似度。
4.基于图的推荐算法:图是由顶点、边和边上的权重组成的。而在用户标签数据集上,有3种不同的元素,即用户、物品和标签。因此,我们需要定义3种不同的顶点,即用户顶点、物品顶点和标签顶点。
5.标签系统实例——豆瓣
(1)为什么给用户推荐标签
客观事实类的标签优于主观感受类标签。
一般认为,给用户推荐标签有以下好处:一是方便用户输入标签减小用户打标签的难度,从而提高用户打标签的参与度;二是提高标签质量,保证词表不出现太多的同义词,同时保证出现的词都是一些比较热门的、有代表性的词。
(2)如何给用户推荐标签
PC端标签豆瓣PC端给用户推荐的标签分为两类:我的标签和常用标签。
我的标签:给用户u推荐他自己经常使用的标签(这个算法称为UserPopularTags)。
常用标签:给用户u推荐物品i上最热门的标签(这个算法称为ItemPopularTags)。
两者进行比较,ItemPopularTags具有最好的准确率和召回率。
APP端标签豆瓣APP端标签为折叠状态,需要点击展开,且只显示物品常用标签。
在APP中标签系统被弱化,为什么?
(2)前面提到的基于统计用户常用标签和物品常用标签的算法有一个缺点,就是对新用户或者不热门的物品很难有推荐结果。解决这一问题有两个思路:
第一个思路是从物品的内容数据中抽取关键词作为标签。
第二个思路是针对有结果,但结果不太多的情况,可以做一些关键词扩展,实现标签扩展的关键就是计算标签之间的相似度。
6.总结:标签在推荐系统中的应用主要集中在两个问题上,一个是如何利用用户打标签的行为给用户推荐物品,另一个是如何给用户推荐标签。
第5章 利用上下文信息
1.用户所处的上下文(context),包括用户访问推荐系统的时间、地点、心情等,对于提高推荐系统的推荐效果是非常重要的。
2.对于音乐推荐系统来说,心情是一种重要的上下文,用户在不同的心情下会选择不同的音乐。
3.时间上下文信息对用户兴趣的影响表现在以下几个方面:
(1)用户兴趣是变化的;如果我们要准确预测用户现在的兴趣,就应该关注用户最近的行为,因为用户最近的行为最能体现他现在的兴趣。
(2)物品也是有生命周期的;比如新闻的生命周期很短暂,而电影的生命周期相对较长。
(3)季节效应;比如人们夏天吃冰淇淋,冬天吃火锅,夏天穿T恤,冬天穿棉衣;此外,节日也是一种季节效应。
4.我们可以用如下指标度量网站中物品的生命周期:
(1)物品平均在线天数;如果一个物品在某天被至少一个用户产生过行为,就定义该物品在这一天在线。因此,我们可以通过物品的平均在线天数度量一类物品的生存周期。
(2)相隔T天系统物品流行度向量的平均相似度;
5.一个实时的推荐系统需要能够实时响应用户新的行为。
推荐算法本身的实时性意味着:
(1)要求在每个用户访问推荐系统时,都根据用户这个时间点前的行为实时计算推荐列表;
(2)推荐算法需要平衡考虑用户的近期行为和长期行为,保证推荐列表对用户兴趣预测的延续性;
6.如何在不损失精度的情况下提高推荐结果的时间多样性?
提高推荐结果的时间多样性需要分两步解决:
首先,需要保证推荐系统能够在用户有了新的行为后及时调整推荐结果,使推荐结果满足用户最近的兴趣;
其次,需要保证推荐系统在用户没有新的行为时也能够经常变化一下结果,具有一定的时间多样性。
具体思路:
(1)在生成推荐结果时加入一定的随机性;
(2)记录用户每天看到的推荐结果,对他前几天看到过很多次的推荐结果进行适当地降权;
(3)每天给用户使用不同的推荐算法;
7.时间上下文推荐算法
(1)热门推荐——>最近最热门;增加时间衰减参数
(2)时间上下文相关的ItemCF算法;
用户在相隔很短的时间内喜欢的物品具有更高相似度;
加重用户近期行为的权重
(3)时间上下文相关的UserCF算法;
如果两个用户同时喜欢相同的物品,那么这两个用户应该有更大的兴趣相似度;
我们应该给用户推荐和他兴趣相似的用户最近喜欢的物品。
8.基于位置的推荐算法:
该系统首先将物品分成两类,一类是有空间属性的,比如餐馆、商店、旅游景点等,另一类是无空间属性的物品,比如图书和电影等。
同时,它将用户也分成两类,一类是有空间属性的,比如给出了用户现在的地址(国家、城市、邮编等), 另一类用户并没有相关的空间属性信息。
数据集有3种形式:
· (用户,用户位置,物品,评分)
· (用户,物品,物品位置,评分)
· (用户,用户位置,物品,物品位置,评分)
通过研究前两种数据集,发现了用户兴趣和地点相关的两种特征:
· 兴趣本地化;不同地方的用户兴趣存在着很大的差别;
· 活动本地化;一个用户往往在附近的地区活动;
第6章 利用社交网络数据
1.调查结果显示,90%的用户相信朋友对他们的推荐,70%的用户相信网上其他用户对广告商品的评论。
2.最早的社交工具是电子邮件:可以通过研究两个用户之间的邮件往来频繁程度度量两个用户的熟悉程度。
3.Facebook和Twitter为代表的新一代社交网络允许用户创建一个公开的页面介绍自己,并且默认公开用户的好友列表(当然用户可以指定不将某些好友公开,但如果用户不指定,默认是公开的),而用户基于它们讨论的话题也很少涉及个人隐私,大都是讨论一些社会热点或分享一些图片、音乐、视频和笑话。
4.以Facebook为代表的社交网络称为社交图谱(social graph),而以Twitter为代表的社交网络称为兴趣图谱(interest graph)。
5.一般来说,有3种不同的社交网络数据:
(1)双向确认的社交网络数据;用户A和B之间形成好友关系需要通过双方的确认
(2)单向关注的社交网络数据;用户A可以关注用户B而不需要得到用户B的允许
(3)基于社区的社交网络数据;用户之间并没有明确的关系,如豆瓣小组
6.社会化推荐的优点:
(1)好友推荐可以增加推荐的信任度
(2)社交网络可以解决冷启动问题
7.在社交网站中存在两种关系,一种是用户对物品的兴趣关系,一种是用户之间的社交网络关系。
8.社会化推荐的优势不在于增加预测准确度,而是在于通过用户的好友增加用户对推荐结果的信任度,从而让用户单击那些很冷门的推荐结果。
9.六度原理讲的是社会中任意两个人都可以通过不超过6个人的路径相互认识。
第7章 推荐系统实例
外围架构
1.
2.目前推荐系统界面的一些共性:
(1)通过一定方式展示物品,主要包括物品的标题、缩略图和介绍等;
(2)很多推荐界面都提供了推荐理由,理由可以增加用户对推荐结果的信任度;
(3)推荐界面还需要提供一些按钮让用户对推荐结果进行反馈,这样才能让推荐算法不断改善用户的个性化推荐体验;
3.从实时存取的角度上看,购买、收藏、评论、评分、分享等行为都是需要实时存取的,因为只要用户有了这些行为,界面上就需要体现出来,比如用户购买了商品后,用户的个人购买列表中就应立即显示用户购买的商品。而有些行为,比如浏览网页的行为和搜索行为并不需要实时存取。
4.一般来说,需要实时存取的数据存储在数据库和缓存中,而大规模的非实时地存取数据存储在分布式文件系统(如HDFS)中。
数据能否实时存取在推荐系统中非常重要,因为推荐系统的实时性主要依赖于能否实时拿到用户的新行为。只有快速拿到大量用户的新行为,推荐系统才能够实时地适应用户当前的需求给用户进行实时推荐。
推荐系统架构
1.
2.推荐系统的核心任务就被拆解成两部分,一个是如何为给定用户生成特征,另一个是如何根据特征找到物品。
3.用户的特征分为以下几类:
(1)人口统计学特征;包括用户的年龄、性别、国籍和民族等用户在注册时提供的信息
(2)用户的行为特征;用户行为从时间上也可以分为用户近期的行为和长期的行为
(3)用户的话题特征;可以根据用户的历史行为利用话题模型(topic model)将电视剧和电影聚合成不同的话题,并且计算出每个用户对什么话题感兴趣
4.推荐系统的推荐任务有很多种:
(1)将最新加入的物品推荐给用户
(2)将商业上需要宣传的物品推荐给用户
(3)给用户推荐不同种类的物品
(4)给用户混合推荐
(5)对于不同的产品推荐不同新颖度的物品
推荐引擎架构
1.推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定权重或者优先级合并、排序然后返回。
优点:
(1)可以方便地增加/删除引擎,控制不同引擎对推荐结果的影响;
(2)可以实现推荐引擎级别的用户反馈;每一个推荐引擎其实代表了一种推荐策略,而不同的用户可能喜欢不同的推荐策略
2.推荐引擎架构主要包括3部分:
(1)负责从数据库或者缓存中拿到用户行为数据,通过分析不同行为,生成当前用户的特征向量。
(2)负责将用户的特征向量通过特征-物品相关矩阵转化为初始推荐物品列表。
(3)负责对初始的推荐列表进行过滤、排名等处理,从而生成最终的推荐结果。
3.
4.一个特征向量由特征以及特征的权重组成。需要考虑以下因素:
(1)用户行为的种类;一般的标准就是用户付出代价越大的行为权重越高
(2)用户行为产生的时间;一般来说,用户近期的行为比较重要,而用户很久之前的行为相对比较次要
(3)用户行为的次数;行为次数多的物品对应的特征权重越高
(4)物品的热门程度;如果用户对一个不热门的物品产生了行为,就说明了用户的个性需求。推荐引擎在生成用户特征时会加重不热门物品对应的特征的权重。
5.一般来说,过滤模块会过滤掉以下物品:
(1)用户已经产生过行为物品;这样可以保证推荐结果的新颖性
(2)候选物品以外的物品;过滤模块需要过滤掉不满足用户需求的物品
(3)某些质量很差的物品;这种过滤一般以用户的历史评分为依据,比如过滤掉平均分在2分以下的物品
6.排名模块
(1)新颖性排名;
新颖性排名模块的目的是给用户尽量推荐他们不知道的、长尾中的物品。
要对推荐结果中热门的物品进行降权。
(2)多样性
增加多样性可以让推荐结果覆盖尽可能多的用户兴趣。
第一种提高多样性的方法是将推荐结果按照某种物品的内容属性分成几类,然后在每个类中都选择该类中排名最高的物品组合成最终的推荐列表。
第二种提高推荐结果多样性的方法是控制不同推荐结果的推荐理由出现的次数,让推荐结果尽量来自不同的特征
(3)时间多样性
时间多样性主要是为了保证用户不要每天来推荐系统都看到同样的推荐结果。
提高推荐结果多样性的第一个方面是要保证推荐系统的实时性,在用户有新行为时实时调整推荐结果以满足用户最近的需求;
提高推荐结果多样性的第二个方面是要在用户没有新的行为时,也要保 3证推荐结果每天都有变化;
· 记录用户每次登陆推荐系统看到的推荐结果
· 将这些结果发回日志系统。这种数据不需要实时存储,只要能保证小于一天的延时就足够了
· 在用户登录时拿到用户昨天及之前看过的推荐结果列表,从当前推荐结果中将用户已经看到的推荐结果降权
(4)用户反馈
排名模块最重要的部分就是用户反馈模块。用户反馈模块主要通过分析用户之前和推荐结果的交互日志,预测用户会对什么样的推荐结果比较感兴趣。
后记
2009年ACM推荐系统大会上Strand研究人员总结了他们设计推荐系统的经验,提出了10条在设计推荐系统中学习到的经验和教训:
(1)确定你真的需要推荐系统;推荐系统只有在用户遇到信息过载时才必要
(2)确定商业目标和用户满意度之间的关系;对用户好的推荐系统不代表商业上有用的推荐系统,要平衡企业的长期利益和短期利益之间的关系
(3)选择合适的开发人员;一般来说,如果是一家大公司,应该雇用自己的开发人员来专门进行推荐系统的开发
(4)忘记冷启动的问题;不断地创新,互联网上有任何你想要的数据。只要用户喜欢你的产品,他们就会不断贡献新的数据。
(5)平衡数据和算法之间的关系。使用正确的用户数据对推荐系统至关重要。数据分析决定了如何设计模型,而算法只是决定了最终如何优化模型。
(6) 找到相关的物品很容易,但是何时以何种方式将它们展现给用户是很困难的。不要为了推荐而推荐。
(7)不要浪费时间计算相似兴趣的用户,可以直接利用社会网络数据。
(8)需要不断地提升算法的扩展性。
(9)选择合适的用户反馈方式。
(10)设计合理的评测系统,时刻关注推荐系统各方面的性能。