借助社交网络推荐篇。
文章目录
6 社会化推荐
6.1 利用社交网络信息推荐
6.1.1 基于邻域的社会化推荐算法
6.1.2 基于图的社会化推荐算法
6.2 给用户推荐好友
6 社会化推荐
6.1 利用社交网络信息推荐
利用用户的社交网络数据进行推荐,主要是源于:
好友推荐可以增加推荐的信任度
社交网络可以解决冷启动问题
6.1.1 基于邻域的社会化推荐算法
最简单的方法是给用户推荐好友喜欢的物品集合,用户u对物品i的兴趣pui
pui可以通过如下公式计算:
pui=∑v∈out(u)rvi
pui=∑v∈out(u)rvi
其中out(u)
out(u)是用户u的好友集合,如果用户v喜欢物品i,则rvi=1rvi=1,否则rvi=0
rvi=0。
当然,不同好友之间的熟悉度和兴趣相似度是不一样的,因此应该在推荐的时候把这个考虑在内:
pui=∑v∈out(u)wuvrvi
pui=v∈out(u)∑wuvrvi
这里的wuv
wuv由两部分相似度构成,一部分是用户u和用户v的熟悉程度,另一部分是用户u和用户v的兴趣相似度。
其中,用户u和用户v的熟悉程度由如下公式度量,即他们之间的共同好友比例:
familiarity(u,v)=∣out(u)⋂out(v)∣∣out(u)⋃out(v)∣
familiarity(u,v)=∣out(u)⋃out(v)∣∣out(u)⋂out(v)∣
而用户u和用户v的兴趣相似度由如下公式度量,即他们喜欢的物品重合度:
similarity(u,v)=∣N(u)⋂N(v)∣∣N(u)⋃N(v)∣
similarity(u,v)=∣N(u)⋃N(v)∣∣N(u)⋂N(v)∣
6.1.2 基于图的社会化推荐算法
用户的社交网络可以表示为为社交网络图,用户对物品的行为可以表示为用户物品二分图,而这两种图可以结合成一个图。如下图所示:
在定义完图中的顶点和边后,需要定义边的权重。其中用户和用户之间边的权重可以定义为用户之间相似度的α
α倍(包括熟悉程度和兴趣相似度),而用户和物品之间的权重可以定义为用户对物品喜欢程度的β
β倍。
在定义完图中的顶点、边和边的权重后,就可以利用前面几章提到的PersonalRank图排序算法给每个用户生成推荐结果。
6.2 给用户推荐好友
这里主要介绍基于社交网络图的好友推荐,最简单的方法是给用户推荐好友的好友。主要用来给用户推荐他们在现实社会中互相熟悉,而在当前社交网络中没有联系的其他用户。
有下面几种方法计算相似度:
wout(u,v)
wout(u,v)
对于用户u和用户v,用共同好友比例计算相似度:
wout(u,v)=∣out(u)⋂out(v)∣∣out(u)∣∣out(v)∣√
wout(u,v)=∣out(u)∣∣out(v)∣
∣out(u)⋂out(v)∣
其中out(u)
out(u)是在社交网络图中用户u指向的其他好友的集合。
win(u,v)
win(u,v)
也可以定义in(u)
in(u)是在社交网络图中指向用户u的用户集合,此时可以定义另外一种相似度:
win(u,v)=∣in(u)⋂in(v)∣∣in(u)∣∣in(v)∣√
win(u,v)=∣in(u)∣∣in(v)∣
∣in(u)⋂in(v)∣
wout,in(u,v)
wout,in(u,v)
这个是用户u关注的用户中,有多大比例也关注了用户v:
wout,in(u,v)=∣out(u)⋂in(v)∣∣out(u)∣√
wout,in(u,v)=∣out(u)∣
∣out(u)⋂in(v)∣
w′out,in(u,v)
wout,in′(u,v)
上面公式的一个缺点在于,所有人都和名人有很大的相似度。因此可以用如下方法改进:
w′out,in(u,v)=∣out(u)⋂in(v)∣∣out(u)∣∣in(v)∣√
wout,in′(u,v)=∣out(u)∣∣in(v)∣
∣out(u)⋂in(v)∣
————————————————
版权声明:本文为CSDN博主「MagicBubble」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Magical_Bubble/article/details/88559925