推荐系统实践(项亮)— 第6章 利用社交网络数据
美国著名的第三方调查机构尼尔森调查了影响用户相信某个推荐结果的因素,90%的用户相信朋友对他们的推荐。基于社交网络的推荐可以很好的模拟现实社会。所以利用社交网络数据进行推荐可以增加用户对系统的信任度。另外利用用户在社交网络的数据可以解决冷启动问题。
6.1 获取社交网络数据的途径
主要方式:
- 电子邮件(联系人):包含用户大量社交信息,可以解决冷启动问题;
- 用户在系统的注册信息(居住地和工作地);
- 用户的位置信息(网页的IP和手机的GPS);
- 论坛和讨论组(豆瓣);
- 即时聊天工具(QQ);
- 社交网站(以Twitter为代表的兴趣图谱(出于兴趣的单向关注关系,有向的)和以Facebook为代表的社交图谱(现实中认识的人,双方确认,无向的)),可以通过好友过滤信息,解决信息过载问题。实际中社交网站都不是单纯的哪一种,而是两者的结合。
6.2 社交网络数据简介
用图定义社交网络:用图G(V,E,w)定义一个社交网络,V表示顶点集合,表示用户,E是边集合,表示两个用户是否有关系,w表示了边的权重。以Facebook为代表的需要双向确认的网络,可以用无向图表示;以Twitter为代表的社交网络只需要单方面关注,所以需要用有向图表示。
社交网络数据:双向确认(脸书、人人网);单向关注(新浪微博);基于社区的社交网络数据(豆瓣小组、同一个公司的人、同一个学校的人);
社交网络数据中的长尾分布:用户的出度和入度都服从长尾分布。横坐标表示出度x,纵坐标表示出度为x的用户的数量f(x)。
6.3 基于社交网络的推荐
社会化推荐的优点:好友推荐增加信任度;解决冷启动问题。
缺点是,基于社交网络图谱数据的推荐系统中,并不一定能提高推荐精度。
基于社交网络的推荐算法:
- 基于领域的推荐;
实际中,由于用户数量及行为记录量很大,不能实时计算推荐。
改进方向:
(1)截断方法,治标不治本。一是,只拿出与用户相似度最高的N个好友计算;二是,只使用用户最近一个月的历史行为数据;
(2)重新设计数据库,
- 基于图的推荐:用户与用户之间的相似度 + 用户和物品之间喜欢程度; 还可以利用同一社群,根据两个用户加入的社区重合度计算用户相似度;
信息流推荐:每个用户都有一个信息墙,展示了用户的好友最近的言论。信息流的个性化推荐就是进一步帮助用户从信息墙中挑选有用的信息。目前最流行的信息流推荐算法时Facebook的EdgeRank,该算法综合考虑了信息流中每个对话的时间、长度与用户兴趣的相似度。
得出如下结论:如果一个会话被你熟悉的好友最近产生过重要的行为,它就会有比较高的权重。综合考虑用户的社会兴趣和个人兴趣对提高用户满意度是有帮助的。
6.4 给用户推荐好友
目的:根据用户现有的好友、用户的行为记录给用户推荐新的好友,从而增加整个社交网络的稠密程度和社交网站用户的活跃度。
好友推荐算法再社交网络被称为链路预测,这里讨论比较简单和直观的算法。
- 基于内容的匹配:常用内容属性包括,用户的人口统计学属性;用户的兴趣(喜欢的物品和发布过的言论);用户的位置信息;
- 基于共同兴趣的好友推荐:利用UserCF的思想,如果两个用户喜欢相同的物品(比如微博),就说明他们具有相似的兴趣;此外,也可以根据用户在社交网络中的发言提取用户的兴趣标签,来计算用户的兴趣相似度。
- 基于图的还有推荐:通过用户u和用户v的出度和入度,定义Wuv。根据相似度Wuv进行推荐,推荐好友的好友。