《推荐系统实践》第6章:利用社交网络数据的推荐系统

简介

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

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

推荐算法

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

用户u对物品i的兴趣:
p u i = ∑ v ∈  out  ( u ) r v i p_{u i}=\sum_{v \in \text { out }(u)} r_{v i} pui=v out (u)rvi
考虑不同好友的权重:
p u i = ∑ v ∈  out  ( u ) w u v r v i p_{u i}=\sum_{v \in \text { out }(u)} w_{u v} r_{v i} pui=v out (u)wuvrvi
权重=用户熟悉度+兴趣相似度
 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) |}  familiarity (u,v)= out (u)out(v) out (u)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)|}  similiarity (u,v)=N(u)N(v)N(u)N(v)

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

在这里插入图片描述
添加了社群以后的图,感觉这种建模方式可以用在社区发现上。
在这里插入图片描述

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

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

信息流推荐

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

给用户推荐好友

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

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

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

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

w out  ( 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)|}} wout (u,v)=out(u)out(v)  out (u)out(v)

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

w i n ( 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) |}} win(u,v)=in(u)in(v) in(u)in(v)

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

w out  ,  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)|}} wout , in (u,v)=out(u)in(v)  out (u)in(v)

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页