1 利用社交网络数据
美国著名的第三方调查机构尼尔森调查了影响用户相信某个推荐的因素。调查结果显示,90%的用户相信朋友对他们的推荐,70%的用户相信网上其他用户对广告商品的评论。从该调查结果可以看到,好友的推荐对于增加用户对推荐结果的信任度非常重要。
获取社交网络数据的途径有:
1) 电子邮件,电子邮件里面有联系人,导入这些数据可以解决冷启动问题;
2) 用户注册信息,注册的时候可能包含公司、学校等信息;
3) 用户位置数据,使用电脑设备的可以获取IP地址,使用移动终端设备的可以获取GPS信息;
4) 社交网站,如facebook,twitter等,里面包含用户信息及用户的好友等其他重要信息,这些数据对于个性化推荐系统都是很重要的资源。
1.1 基于社交网络的推荐
很多网站都利用Facebook等社交网络数据给用户提供社会化推荐,社会化推荐之所以受到很多网站的重视,是因为有以下优点:
1) 好友推荐可以增加推荐的信任度;
2) 社交网络可以解决冷启动问题。
当然,社会化推荐也存在一些缺点,其中最主要的就是很多时候并不一定能提高推荐算法的离线精度(准确度和召回率)。特别是在基于社交图谱数据的推荐系统中,因为用户的好友关系不是基于共同兴趣偏好产生的。
1.2 基于领域的社会化推荐算法
如果给定一个社交网络和一份用户行为数据集,我们能想到的最简单的算法就是给用户推荐好友喜欢的物品集合,即用户u对物品i的兴趣pui可以通过如下公式计算:
其中,out(u)是用户u的好友集合,如果用户v喜欢物品i,则rvi=1,否则rvi=0。
如果要考虑用户u和用户v的熟悉程度和兴趣相似程度的话,可以给公式加上权值,越熟的好友或兴趣越相似的好友,所占权重越大。考虑权重后的计算公式如下:
其中,wuv由两部分相似度构成,一部分是用户u和用户v的熟悉程度,另一部分是用户u和用户v的兴趣相似度。两个用户的熟悉程度计算如下:
两个用户之间的兴趣相似度计算如下:
其中N(u)是用户u喜欢的物品集合。
1.3 信息流推荐
信息流推荐是社会化推荐领域的新兴话题,它主要针对Twitter和Facebook这两种社交网站,信息流的个性化推荐要解决的问题就是如何进一步帮助用户从信息墙上挑选用户的信息。
目前最流行的信息流推荐算法是Facebook的EdgeRank,该算法主要考虑了如下方面:
1) 产生行为的用户与当前用户的相似度,即用户熟悉程度;
2) 行为的权重,用户的不同行为所对应的权重不同;
3) 时间衰减,越早的行为对权重的影响越低;
4) 话题相关性,即话题与用户兴趣的相关性。
1.4 给用户推荐好友
好友关系是社会化网站的重要组成部分,如果用户的好友很稀少,就不能体验到社会化的好处。因此好友推荐是社会化网站的重要应用之一。好友推荐系统的目的是根据用户现有的好友、用户的行为记录给用户推荐新的好友,从而增加整个社交网络的稠密程度和社交网站用户的活跃度。
给用户推荐好友的算法有:
1) 基于内容的匹配,如根据用户人口统计学信息,用户之间的兴趣及用户的位置信息进行匹配;
2) 基于共同兴趣的好友推荐;
3) 基于社交网络图的好友推荐,最简单的好友推荐算法是给用户推荐好友的好友。