简介
社会图谱-》society(社会)
兴趣图谱-》community(社区)
数据集分为三种:双向确认、单向关注和基于社区的(如豆瓣小组)。
推荐算法
- 基于邻域的社会化推荐算法
用户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)∣
- 基于图的社会化推荐算法
添加了社群以后的图,感觉这种建模方式可以用在社区发现上。
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)∣