《推荐系统实践》读书笔记——第二章

来源:互联网 发布:et服装软件免费下载 编辑:程序博客网 时间:2024/05/19 22:58

1 利用用户行为数据

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

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

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

1.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)  对基于用户的协同过滤的推荐结果难以作出解释。

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

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

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

算法步骤:

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

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

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

1.3  UserCF和ItemCF的比较

UserCF给用户推荐那些和他们有共同兴趣偏好的用户喜欢的物品,而ItemCF给用户推荐那些和他之前喜欢的物品类似的物品。从而可以看出,UserCF的推荐结果着重反映和用户兴趣类似的小群体热点,而ItemCF的推荐结果着重于用户的历史兴趣。换句话说,UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化

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

 

UserCF

ItemCF

性能

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

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

领域

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

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

实时性

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

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

冷启动

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

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

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

 

 

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

推荐理由

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

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

1.4  隐语义模型

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

1.5  基于图的模型

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

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

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

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

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

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

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

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

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

0 0