不同于传统互联网媒体,微博作为社交媒体最大的优势在于引入了非对等的用户关系,这种用户关系仅令传播更加高效。如果将微博中的用户视作节点,用户之间的关系视作节点之间的边,那么这些节点和边将构成一个社交的网络拓扑结构,或称作社交图谱,如图1所示。微博中的信息从社交图谱中的某个节点发出,并通过边来传播。
图1 微博中的社交图谱
但是信息在这个网络中的流动并不是无差别的,信息的起始点(信息的生产者),信息流动中所经历的节点(信息的传播者),节点之间关系的强弱(传播者相对生产者的亲密程度),以及这些节点构成的关系圈……都是影响信息流动广度和深度的重要因素。
构建用户关系模型,就是针对图1这种关系网络中的节点(代表了用户)、边(代表了关系和方向)、关系圈(代表了由关系聚合而成的群体)进行分析,全面地描述和刻画社交媒体的关系网络。
微博用户关系模型
1、量化节点的传播能力:传播力
从信息传播的角度看,当信息沿着边流经不同节点的时候,由于有些用户产生或传播的内容能够影响到更多的用户(如图1中比较大的节点),而有些用户的影响范围则非常有限(如图1中比较小的节点),那么他们给信息带来的“传播收益”(信息传播的广度与深度)也不一样。微博中采用传播力来量化这种重要程度。
传播力的计算基于一个基本假设:传播力沿着信息传播的路径反向传递。如图2所示。通俗解释是,传播力越高的用户在传播一条微博的时候,传递给上一级用户的传播力也越高;一个用户发出的微博被越多传播力高的用户转发,他的传播力也会越高。就像我们的身边总有那么几个大嘴巴,什么事情经他们一絮叨就会路人皆知,如果某天有件不露脸的事让他给散发出去了,你也随之出名了一样。
图2 信息传播路径(实线)&传播力传递方向(虚线)
这个假设与PageRank的思路是相似的。那么,需要做的就是收集一定量的微博的转发记录,构建传播力传递图,图中的节点是用户,边的方向代表了传播力的传递方向,边上的权重代表源用户(传递的起始用户)到目标用户(传递的接收用户)的传播力的分配比例,如图3所示。给定用户的初始传播力值,通过多轮迭代(传递),直到传播力值稳定。
图3 传播力传递图
2、 计算关系边强度:亲密度
微博本身只通过方向性来区分关系边,也就是说任意u1、u2两个用户之间的关系存在三种情况“u1关注u2”“u2关注u1”“u1,u2互粉”。但相同类型的关系(例如“u1关注u2”和“u1关注u3”)存在强弱的区别,如果将方向性作为关系边的定性描述,关系强度则可以视作关系边的定量描述。 我们管关系边的强度称之为“亲密度”,由于关系边是存在方向性的,亲密度是一个用户对另一个用户的关注程度,衡量该有向边的强度。
能够反应亲密度的互动行为都可以被纳入到亲密度计算中,在微博中包括评论行为、转发行为、赞行为、提及(@)行为等。简单来说,这些行为在亲密度评价中都具有一定的权重,当用户u1关注了用户u2,u1对u2的这些行为越多越频繁,那么u1对u2的亲密度越高。
此外,还考虑两个因素:用户之间的关系类型以及用户本身的互动频率。首先,通常认为互粉关系的亲密度要比单向关注关系的亲密度高;其次,有些用户本身比较活跃,乐于互动(转、评、赞),那么体现出来他跟其他用户的互动行为较多,并不能说明他跟这些用户非常亲密,而有些沉默寡言的用户,虽然与其他用户互动少,但是体现出来的亲密度却更可靠。
3、 关系协同:粉丝相似度 & 关注相似度
协同实际上利用了群体的智慧,无需关心item的属性,仅仅通过user对item的“评价”(购买、点击、评分都量化成一种评价值)来推测user之间或item之间的相似。
如果将一个用户对另一个用户的关注也视作一种“评价”,利用用户之间的关注构建关系矩阵,则很容易仿照协同过滤的方式来计算两个用户的相似性。如图4所示,矩阵中每行对应一个用户ur,每列对应一个被关注用户uc,当ur关注了uc的时候,对应的元素取值为1,该矩阵是N*N阶的。事实上,行代表了对应用户的关注列表,列代表了对应用户的粉丝列表。
图4 用户关系矩阵
当按行进行向量的相似性计算的时候,能得到用户的关注相似性(类似于User based CF);按列进行向量的相似性计算,能得到用户的粉丝相似性(类似于Item based CF)。此外,还可以用亲密度代替图4中元素的取值,相当于考虑了用户对关注用户的不同评价。