利用社交网络数据的推荐系统

简介

社会图谱-》society(社会)
兴趣图谱-》community(社区)

数据集分为三种:双向确认、单向关注和基于社区的(如豆瓣小组)。

推荐算法

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

用户u对物品i的兴趣:
pui=v out (u)rvi p_{u i}=\sum_{v \in \text { out }(u)} r_{v i}
考虑不同好友的权重:
pui=v out (u)wuvrvi p_{u i}=\sum_{v \in \text { out }(u)} w_{u v} r_{v i}
权重=用户熟悉度+兴趣相似度
 familiarity (u,v)= out (u)out(v) out (u)out(v) \text { familiarity }(u, v)=\frac{| \text { out }(u) \cap \operatorname{out}(v) |}{| \text { out }(u) \cup \operatorname{out}(v) |}
 similiarity (u,v)=N(u)N(v)N(u)N(v) \text { similiarity }(u, v)=\frac{|N(u) \cap N(v)|}{|N(u) \cup N(v)|}

  1. 基于图的社会化推荐算法

利用社交网络数据的推荐系统
添加了社群以后的图,感觉这种建模方式可以用在社区发现上。
利用社交网络数据的推荐系统

Twitter架构-》社会化推荐系统:

  • 为每个用户维护一个消息队列,存储其推荐列表;
  • 当一个用户喜欢一个物品后,就将记录写入关注该用户的推荐列表消息队列中;
  • 当用户访问时,读出他的推荐列表消息队列,对于这个消息队列中的每个物品,重新计算该物品的权重。考虑物品在队列中出现的次数(行为数据),物品对应的用户和当前用户的熟悉程度(社交信息),物品的时间戳(上下文信息)。

信息流推荐

Facebook的EdgeRank:edge为其他用户对当前用户信息流中的会话产生过行为的行为。
还有一种结合用户的社会兴趣和个人兴趣进行推荐。

给用户推荐好友

=链接预测。
推荐阅读文章:Link Prediction in Social Network

方法:基于内容匹配、基于共同兴趣、基于社交网络的好友推荐。

3种基于社交网络的好友推荐算法:

  • 对用户uv,通过共同好友计算相似度:

wout (u,v)= out (u)out(v)out(u)out(v)w_{\text {out }}(u, v)=\frac{| \text { out }(u) \cap \operatorname{out}(v) |}{\sqrt{|\operatorname{out}(u)||\operatorname{out}(v)|}}

  • 指向用户的用户群的相似度:

win(u,v)=in(u)in(v)in(u)in(v)w_{\mathrm{in}}(u, v)=\frac{|\operatorname{in}(u) \bigcap \operatorname{in}(v)|}{\sqrt{\operatorname{in}(u)|| \operatorname{in}(v) |}}

  • 用户u中关注的用户有多少关注了v:

wout , in (u,v)= out (u)in(v)out(u)in(v)w_{\text {out }, \text { in }}^{\prime}(u, v)=\frac{| \text { out }(u) \bigcap \operatorname{in}(v) |}{\sqrt{|\operatorname{out}(u)||\operatorname{in}(v)|}}