社交网络图挖掘1--将社交网络看作图及其聚类

来源:互联网 发布:淘宝在哪看自己的评价 编辑:程序博客网 时间:2024/06/05 10:02

将社交网络看成图

社交网络的基本概念:

  1. 社区(community):是指具有非同寻常的强连通性的节点子集,其中节点可以是构成网络的人或者其他实体。
  2. 局部性(locality):是指社交网络的节点和边趋向于聚为社区的这种性质。

社交网络的基本特点:

  1. 一大堆实体参与了网络的构成;
  2. 网络实体间至少存在一种关系,且关系要么存在要么不存在,关系也可以表示为度数,其中度数可为离散值和实数值;
  3. 对于社交网络有一个非随机性或局部性假设,其直观意义是关系倾向于聚团,即如果A与B和C都关联,那么B和C相互关联的概率会高于平均值。

社交图(social graph):将社交网络看成图,图的节点为实体,如果节点间存在刻画该网络的关系,则节点间有一条边。如果关系存在强弱之分,则每条边上还标识出关系的强弱程度。社交图可为无向图(eg:朋友图),也可为有向图(eg:粉丝关注图)。

K部图(k-partite graph):多类型节点构成的社交图。

社交网络图的聚类

对社交网络应用层次聚类:

  1. 将两个有边连接的节点聚成一类;
  2. 不在同一簇内节点间的边被随机(每条边代表的距离一样)选出,来合并这两个节点所属的簇;
  3. 重复第二步。

注:采用纯聚类算法永远不可能识别出重叠社区。可以降低发生错误概率的方法:

  1. 运行多次层次聚类算法,选择最具有紧致性(coherent)的聚类结果;
  2. 选择一个更负责的方式来计算多余一个节点的簇之间的距离。

中介度

一条边(a,b)的中介度(betweenness):节点对(x,y)的数目,其中(a,b)处于x和y的最短路径上。由于x和y之间可能存在多条最短路径,边(a,b)的贡献记为这些路径中通过边(a,b)的比例。高分意味着成绩差,如果边(a,b)的中介度高,则意味着它处于两个社区之间,即a和b不属于同一社区。

Girvan-Newman算法

该算法访问每个节点X一次,计算X到其他连接节点的最短路径数目。以下是算法步骤:

  1. 首先从节点X开始对图进行宽度优先搜索(BFS),每个节点的深度就是该节点到X的最短路径距离。
  2. 将每个接单用根节点到它的最短路径数目来标记,首先将根节点标记为1,然后从上往下,将每个节点Y标记为其所有父节点上的标记值之和。
  3. 对每一条边e,和对所有节点Y,计算Y到根节点X经过e的最短路径比例之和,这是一个自下而上对节点和边的求和过程。除去根节点之外的每个点都给个分值1,表示到该节点的最短路径。计算规则如下:
    1. 有向无环图(DAG,Directed Acyclic Graph)中的每个叶节点都赋予分值1;
    2. 每个非叶节点给的分值1加上从该节点到其下层节点的所有DAG边的分值之和;
    3. 从上层节点到下层节点Z的DAG边上的分值为Z的分值乘上从根节点到Z的最短路径中含e的比例。

将每个节点都作为根节点计算一遍之后,将每条边的分值求和。由于每条最短路径会重复发现两次,因此最后每条边的分值还要再除以2.

利用中介度来发现社区

  • 常见做法:是从一个包含全部边的中介度,不断去掉具有最高中介度的边,直到图分裂为合适数目的连通分量为止。
  • 存在的局限性:不可能把一个节点分配到两个社区中,这导致每个节点最终都分配到各自社区中。
阅读全文
0 0
原创粉丝点击