法律状态公告日
法律状态信息
法律状态
2017-07-28
授权
授权
2015-04-29
实质审查的生效 IPC(主分类):G06F17/30 申请日:20141127
实质审查的生效
2015-04-01
公开
公开
技术领域
本发明涉及一种社团成员层次结构的探测方法,特别涉及一种社会网络中的社团成员层次结构的探测方法,属于网络技术领域。
背景技术
社会网络中的节点具有层次结构,例如领导阶级。在这些网络中,联系紧密的节点构成社团,反应了网络拓扑结构的性质。社团内部节点归属于社团的程度不同,形成了社团成员的层次结构。社团成员的层次结构显示了社团在多种分辨率下的结构,并且显示了社团成员之间的关系。利用社团成员之间的关系可以提高网页搜索结果的点击率。通常网页搜索结果是每页固定显示10条到50条,而用户通常只点击第一页的内容,使得其他同样重要的网页无法被点击到。使用本发明对搜索结果划分层次,将同等重要的网页放到同一页,可以让同等重要的网页有更大的机会被点击到,从而提高网页搜索结果的点击率。利用社团成员之间的关系还可提高购物商品推荐的准确率。比如,当推荐用户购物时需要获知不同用户之间对商品喜好的相似程度。而当前的方法只关注于用户喜欢的商品,而忽视了用户不喜欢的商品。利用社团成员之间的关系就可根据用户对某类商品的喜欢程度划分层次,既包含同样喜欢该商品的用户群,又包含同样不喜欢该商品的用户群,从而加深了对用户群的了解,提高推荐购物的准确性。
当前研究者们已经提出了社团检测的方法,包括Newman提出的用于无重叠社团检测的模块度方法、Liu提出的用于模糊社团检测的随 机游走方法,Steve提出的用于检测重叠社团的标号传播方法等。近年来,层次结构得到关注,包括Newman提出的用于社团层次结构的模块方法,Havemann提出的用于检测重叠社团结构的贪心方法,Ahn提出的用于检测重叠社团层次结构的边聚类方法。然而当前方法只关注社团之间的关系,而不适用于检测社团内部成员之间的关系。
发明内容
本发明的目的是为解决现有社团检测方法不能检测社团内部成员之间的关系的问题,提供一种社会网络中社团成员层次结构的探测方法。
本发明的目的是通过以下技术方案实现的:
一种社会网络中的社团成员层次结构的探测方法,包括以下步骤:
步骤一、输入社会网络的节点和边,社团核心节点S,迭代步数T;
步骤二、根据下述公式计算每个节点i对于社团核心S的归属程度 并按照归属程度降序排列所有节点:
其中矩阵ANXN是网络邻接矩阵,N是网络中节点的个数,矩阵元素 Aij=1表示节点i和j之间有边,1<=i,j<=N,否则,Aij=0表示节点i和j之间没有边;di是节点i的度数,即节点i连接的边数;
步骤三、初始层次数K=1,根据下述公式计算前i个节点的归属程度不一致性f1,i,令前i个节点在第1层的分界点g1,i=-1,社团结构稳定性FL1=0:
f1,i=cost(1,i);
其中对于任意参数1<=p<=q<=N,
其中Li为第i个节点的归属程度,参数w和b的值根据下述公式计算:
步骤四、使层次数K增加1,根据下述公式计算前i个节点的归属程度不一致性fK,i、前i个节点在第K层的分界点gK,i以及社团结构稳定性FLK:
fK,i=min{fK-1,r+cost(r+1,i)},r=K-1,K,...,i-1;
CK是层次数为K时的层次划分,第k层的节点集合为levelk;dinK是K个层次中,处于同一层次的节点之间的边数,doutK是K个层次中,处于不同层次的节点之间的边数;
步骤五、若社团结构稳定性比前一次增加,则记录更新的层次划分结果,重复步骤四;否则,停止计算,输出当前的层次划分结果。
本发明在社会网络中进行社团探测的原理是:成员归属于社团的程度不同,形成了社团成员的层次结构。因此要检测该结构,需要衡量成员的归属程度,并根据该程度对成员划分层次。
1.归属程度的衡量
社团成员的归属程度应满足以下要求:
归属程度越高,节点离社团核心越近。
归属程度在任意阈值以上的节点及其之间边,能够形成连通块。
归属程度相差大的两个节点应该位于不同的层次。
基于以上要求,本发明采用随机游走方法来衡量归属程度。假设一个人站在一个节点上,并以等概率随机向相邻节点移动。则从节点i走一步到节点j的转移概率为
矩阵ANXN是网络邻接矩阵,节点i和j之间有边,则矩阵元素Aij=1,否而矩阵元素Aij=0;di是节点i的度数,即节点i连接的边数。
对于给定节点s,从节点s经过t步走到节点i的概率为
初始值:
则以节点s为社团核心,步数为T时,节点i的归属程度定义为
迭代步数T取值越大,计算结果越准确;因而,在应用本发明方法时可以根据数据规模以及性能指标综合确定一个合适的值。
2.层次结构的划分
将所有节点按照归属程度降序排列。从附图2可看出,相同层次的节点间,归属程度的变化趋势成线性保持一致。为了使同层次内的节点间的归属程度保持一致,要使不一致性尽量小。其中不一致性定义为
y(i)=wi+b
nk为前k层的节点数。此为最优化问题,采用动态规划方法计算不一致性的最小值。设前i个节点划分为K层时的不一致性为fK,i,记录分界点gK,i,其中
fK,i=min{fK-1,r+cost(r+1,i)},r=K-1,K,...,i-1;
对于任意参数1<=p<=q<=N,
Li为第i个节点的归属程度,参数w和b的值为
为了进一步提高计算效率,假设分界点gK,i是随着i的增加而非降的。经实验验证,实际网络中99%的情况均满足此假设。在此假设下,时间复杂度可优化到O(KN)。
为了确定层次数K,衡量社团在K层的稳定性,以使稳定性局部最优的K作为最终结果的层次数。其中稳定性定义为
CK是层次数为K时的层次划分,第k层的节点为levelk;dinK是所有K个层次中,处于同一层次的节点之间的边数,doutK是所有K个层次中,处于不同层次的节点之间的边数。
有益效果
本发明的方法可以检测社团成员的层次结构,显示多分辨率下的社团结构以及成员之间的关系。
附图说明
图1为本发明实施例包含11个节点,24条边的样例网络;
图2为本发明实施例以节点0为社团核心的节点归属程度,并按照节点归属程度降序排列的网络层次示意图。
具体实施方式
下面将结合附图和实施例对本发明方法加以详细说明。
如图1所示,为本发明实施例11个节点的网络结构图。
本发明的一种社会网络中的社团成员层次结构的探测方法,包括以下步骤:
1.输入社会网络的节点和边,社团核心节点S=0,迭代步数T=3;网络结构如图1所示;
2.根据步骤二公式计算各节点的归属程度,并按归属程度降序排序,得到如下表所示序列:
按照归属程度降序排列各节点,得到节点序列如附图2所不。
3.令初始设层次数K=1,根据步骤三公式计算得到不一致性f和分界点g如下表所示:
社团稳定性FL为0,记录如下表所示的当前的网络层次结构划分:
4.增加层次数,即K=2,根据步骤四公式计算得到不一致性f和分界点g如下表所示:
5.社团稳定性FL为0.25,大于前一次的0,记录当前的划分,继续计算;
由于第2层的分界点g2,10=3,因此当前划分结果如下表所示:
返回步骤四,增加层次数K=3,则计算得到不一致性f和分界点g如下表所示:
继续步骤五,社团稳定性FL为0.67,大于前一次的0.25,记录当前的划分,继续计算;
由于第3层的分界点g3,10=7,第2层的分界点g2,7=3,因此当前划分结果如下表所示:
返回步骤四,增加层次数K=4,则计算得到不一致性f和分界点g如下表所示:
继续步骤五,社团稳定性FL为0.67,不大于前一次的0.67,则停止计算。
输出当前网络层次划分结果如下表所示:
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 层次结构中的显示元素与同样层次结构中的数据存储之间的数据绑定的层次结构视图
机译: 补丁安装方法,例如移动电话中的面向对象的编程语言卡,涉及使用程序包中的类形成类层次结构,并将类层次结构中的补丁包括为类之一的子类
机译: 使用维度属性和多个层次结构进行在线分析处理的系统和方法,其中第一层次结构具有至少一个不属于第二层次结构中定义的维度的属性