1、获取社交网络数据的途径
- 电子邮件:一般只有具有邮件系统的公司有研究社交关系的机会;如果获得了用户的邮件,可以使用邮箱后缀得到社交关系信息;社交官网还可以从电子邮件联系人中导入好友,进行冷启动。
- 用户注册信息:如学校、公司等
- 用户的位置数据:在同一位置的相关性可能会更高
- 论坛和讨论组:同时加入了很多一样的组,或者在一个帖子里面讨论
- 即时聊天工具:好友列表和分组信息,有隐私问题
- 社交网站
- facebook:一般都是现实里面认识的人,双向确认,社会图谱
- twitter:现实里面不认识的,单向关注,兴趣图谱
2、社交网络数据简介
- 图表示
- 三种不同的社交数据
- 双向确认的社交网络数据
- 单向关注的社交网络数据
- 基于社区的社交网络数据
- 社交网络数据中的长尾分布
- 用户的入度近似长尾分布
- 用户的出度近似长尾分布
3、基于社交网络的推荐
社会化推荐的优点:
- 增加推荐的信任度
- 冷启动问题
3.1 基于邻域的社会化推荐算法
用户u对物品i的兴趣程度受到以下影响:
- 所有好友是否喜欢这个物品i,也就是r
- 用户和该好友的熟悉程度和兴趣相似程度,也就是W
熟悉度:用用户之间的共同好友比例来度量
兴趣相似程度:果两个用户 喜欢的物品集合重合度很高
3.2 基于图的社会化推荐算法
- 顶点
- 用户顶点(圆圈)
- 物品顶点(方块)
- 边
- 用户和用户是好友,会有边
- 用户对物品产生过行为,会有边
- 边的权重
- 用户和用户之间边的权重可以定义为用户之间相似度的α倍(包括熟悉程度和兴趣相似度)
- 而用户和物品之间的权重可以定义为用 户对物品喜欢程度的β倍。
- 如果我们希望用户好友的行为对推荐结果产生比较大的影响,那么就可以选择比较大的 α 。相反,如果我们希望用户的历史行为 对推荐结果产生比较大的影响,就可以选择比较大的β 。
- 算法:personalRank
- 如果再考虑社群的话,可以得到这样的图
3.3 实际系统中的社会化推荐算法
该算法需要拿到用户所有好友的历史行为数据,在实际系统中比较占用资源。可以用下面的方法进行改进:
- 做两次截断:在拿用户好友集合时并不拿出用户所有的好友,而是只拿出和用户相似度最高的N个好友;查询每个用户的历史行为时,可以只返回用户最近1个月的行为
- 重新设计数据库:给每个用户维护一个消息队列(twitter方案)
基于twitter方案的系统设计:
- 为每个用户维护一个消息队列,用于存储他的推荐列表
- 当一个用户喜欢一个物品时,就将(物品ID、用户ID和时间)这条记录写入关注该用户 的推荐列表消息队列中
- 当用户访问推荐系统时,读出他的推荐列表消息队列,对于这个消息队列中的每个物品, 重新计算该物品的权重。计算权重时需要考虑物品在队列中出现的次数,物品对应的用户和当前用户的熟悉程度、物品的时间戳。同时,计算出每个物品被哪些好友喜欢过, 用这些好友作为物品的推荐解释。
3.4 社会化推荐系统和协同过滤推荐系统
社会化推荐的优势不在于增加预测准确 度,而是在于通过用户的好友增加用户对推荐结果的信任度,从而让用户单击那些很冷门的推荐 结果。
小规模样本研究发现:社会化推荐系统推荐结果的用户满意度明显高于主要基于协同过滤算法的几个真实推荐系统。
不过这个实验存在着一些问题。
3.5 信息流推荐
- Facebook的EdgeRank算法,在信息流推荐的时候主要考虑这些内容
- 产生行为的用户和当前用户的相似度,这里的相似度主要是在社交网络图中的熟悉度
- 指行为的权重,这里的行为包括创建、评论、like(喜欢)、打标签等,不同的行为有 不同的权重。
- 时间衰减参数,越早的行为对权重的影响越低。
- Jilin Chen的实验研究结果:
- 综合考虑用户的社会兴趣和个人兴趣对于提高用户满意度是有帮助的
4、给用户推荐好友
好友推荐系统的目的是根据用户现有的好友、 用户的行为记录给用户推荐新的好友,从而增加整个社交网络的稠密程度和社交网站用户的活跃度
4.1 基于内容的匹配
给用户推荐和他们有相似内容属性的用户作为好友
- 用户人口统计学属性,包括年龄、性别、职业、毕业学校和工作单位等。
- 用户的兴趣,包括用户喜欢的物品和发布过的言论等。
- 用户的位置信息,包括用户的住址、IP地址和邮编等。
4.2 基于共同兴趣的好友推荐
基于用户的发言、对物品的行为等计算共同的兴趣
4.3 基于社交网络图的好友推荐
- 推荐好友的好友
- 推荐相似度很高的朋友
- 相似度的计算:共同好友比例,分别是:基于出度,基于入度,有向的相似度,在前者的基础上控制和名人的相似度
- 相似度的计算:共同好友比例,分别是:基于出度,基于入度,有向的相似度,在前者的基础上控制和名人的相似度
- 离线实验:不同数据集上不同算法的性能并不相同
4.4 基于用户调查的好友推荐算法对比
比较的四个算法:
- InterestBased 给用户推荐和他兴趣相似的其他用户作为好友。
- SocialBased 基于社交网络给用户推荐他好友的好友作为好友。
- Interest+Social 将InterestBased算法推荐的好友和SocialBased算法推荐的好友按照一定 权重融合。
- SONA SONA是IBM内部的推荐算法,该算法利用大量用户信息建立了IBM员工之间的 社交网络。这些信息包括所在的部门、共同发表的文章、共同写的Wiki、IBM的内部社交 网络信息、共同合作的专利等。
结果与分析
- SONA因为用到了部门信息、共同写论文和发表专利的信息,所以推荐的好友大部分都是用户认识的,因此新颖度不高。
- 如果用户认识推荐结果中的人,那么绝大部分用户都会觉得这是一个好的推荐结果,而如果用户不认识推荐结果中的人,绝大多数人都觉得推荐结果不好。