基于邻域的社会化推荐算法 4/28

一、社会化推荐的优点

1、好友推荐可以增加推荐的信任度

用户不一定会相信计算机的智能,但会相信好朋友的推荐,比如基于物品的协同过滤算法,会因为用户之前看过《射雕英雄传》而给用户推荐《神雕侠侣》,而好友推荐会说你有八个好友都非常喜欢看《神雕侠侣》,显然第二种解释更让顾客心动,从而购买《神雕侠侣》。

2、社交网络可以解决冷启动问题

当新用户登陆网站或使用产品时,可以从社交网络中获取好友列表,从而给用户推荐好友喜欢的东西,在没有用户行为记录的情况下为用户提供较高质量的推荐结果。

二、基于邻域的社会化推荐算法

如果给定一个社交网络和用户行为的数据集,其中社交网络定义了用户的好友关系,用户行为数据集定义了不同用户的历史行为和兴趣数据,那么最简单的算法就是给用户推荐好友喜欢的物品集合。

用户u对物品i的兴趣pui可以通过如下公式计算:

                                                        pui =\sum_{v\in out(u)} r vi

out(u) : 用户u的好友集合

rvi: 如果用户v喜欢物品i则rvi=1,否则rvi=0


不同的好友与用户u之间的熟悉程度和兴趣相似度也是不同的,在推荐算法中应该考虑好友和用户的熟悉程度和兴趣相似度:

                                                           pui = \sum_{v\in out(u)} \omega uv\bullet    rvi   


wuv: 用户u与用户v的之间的          熟悉程度  +   兴趣相似度

熟悉程度:一般来说,用户更信任自己熟悉的朋友的推荐,熟悉程度可以通过用户之间共同好友 比例来衡量,也就是说u和v很熟悉的话,他两应该有很多共同好友

                                familiarity(u,v) =|out(u)\cap out(v)|/|out(u)\cup out(v)|

兴趣程度:除了考虑熟悉程度还要考虑兴趣相似度,比如哦哦们和父母的熟悉程度很高,但是兴趣却有很大不同,兴趣相似度可以通过与userCF类似的方法度量,也就说两个人兴趣相似度高的话,那么他们喜欢的物品的重合度应该很高

                                similarity(u,v) = |N(u)\cap N(v)| / |N(u)\cup N(v)|

N(u) 指用户u喜欢的物品集合


社会化推荐的逻辑代码如下:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容