推荐系统(五)—— 基于社交网络推荐

基于社交网络的推荐

社会化推荐有以下优点:

  1. 好友推荐可以增加推荐的信任度
  2. 社交网络可以解决冷启动问题:当一个新用户通过社交账号登录网站时,可以从社交网站中获取用户的好友列表,然后给用户推荐好友在网站上喜欢的物品;

社会化推荐有以下缺点:好友关系并不是基于共同兴趣产生的,用户好友的兴趣和用户的兴趣往往差别较大,所以社会化推荐并不一定能够提高推荐算法的离线精度(准确率和召回率)。

实验表明,综合考虑用户的社会兴趣和个人兴趣对于提高用户满意度是有帮助的。

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

基本的思路是给用户推荐好友喜欢的物品集合:

  • $w_{uv}$:用户u和好友v的熟悉度及兴趣相似度
  • $r_{vi}$:用户v是否喜欢物品i

用户熟悉度:可以通过两个用户共同好友比例来衡量它们的熟悉度

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

用户相似度:可以通过两个用户共同喜欢的物品比例来衡量它们的兴趣相似度

  • $N(u)$:用户喜欢的物品集合

基于图的推荐

图的定义:将用户社交网络图与用户-物品二分图结合成一张图

通过调整α和β,可以调节好友行为和用户历史行为所占的不同权重:

  • 用户和用户之间边的权值:用户和用户之间的相似度的α倍(熟悉度和兴趣相似度)
  • 用户和物品之间边的权值:用户和物品之间的兴趣度的β倍

随机游走算法:PersonalRank

在社交网络中,除了用户之间直接的社交网络关系(friendship)之外,还存在一种社群网络(membership),加入社群节点后的图:

好友推荐

好友推荐系统的目的是根据用户现有的好友、用户的行为记录给用户推荐新的好友,从而增加整个社交网络的稠密程度和社交网站用户的活跃度

基于属性的推荐

可以给用户推荐和他们具有相似属性的用户作为好友:

  1. 用户人口统计学属性,包括年龄、性别、职业、毕业学校和工作单位等。
  2. 用户的兴趣,包括用户喜欢的物品和发布过的言论等。
  3. 用户的位置信息,包括用户的住址、IP地址和邮编等。

计算方式和前面介绍过的计算物品相似度类似。

基于社交网络的好友推荐

基于社交网络进行好友推荐,最简单的思路就是给用户推荐好友的好友。

用户熟悉度:基于用户共同好友比例计算用户间的数系度:

out(u)代表u指向的好友集合,在无向社交网络(如QQ好友)中,out(u)=in(u),但在有向社交网络(如微博关注)中,它们是不同的集合,可以定义另一种相似度。在有向社交网络中$w{out}(u,v)$代表关注相似度,$w{in}(u,v)$代表被关注相似度。

另一种有向图中的相似度定义:u关注的人中有多少关注了v

如果v是名人的话,几乎所有用户都和名人有较高相似度,因此可以用以下公式改进:

坚持原创技术分享,您的支持将鼓励我继续创作!