CN110119462B - 一种属性网络的社区搜索方法 - Google Patents

一种属性网络的社区搜索方法 Download PDF

Info

Publication number
CN110119462B
CN110119462B CN201910266196.1A CN201910266196A CN110119462B CN 110119462 B CN110119462 B CN 110119462B CN 201910266196 A CN201910266196 A CN 201910266196A CN 110119462 B CN110119462 B CN 110119462B
Authority
CN
China
Prior art keywords
vertex
circle
node
core
vertices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910266196.1A
Other languages
English (en)
Other versions
CN110119462A (zh
Inventor
曲强
罗捷桓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Zhongke advanced technology development Co.,Ltd.
Original Assignee
Hangzhou Zhongke Advanced Technology Research Institute Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Zhongke Advanced Technology Research Institute Co ltd filed Critical Hangzhou Zhongke Advanced Technology Research Institute Co ltd
Priority to CN201910266196.1A priority Critical patent/CN110119462B/zh
Publication of CN110119462A publication Critical patent/CN110119462A/zh
Application granted granted Critical
Publication of CN110119462B publication Critical patent/CN110119462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/909Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Remote Sensing (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种属性网络的社区搜索方法。该方法包括:根据网络用户的空间位置划定搜索区域范围;在属性网络中根据网络用户之间的联系紧密度搜索目标社区并且所述目标社区中用户的空间位置在所划定的搜索区域范围内。根据本发明的方法能够有效搜索出满足结构凝聚力和空间凝聚力的目标社区,用于社交网络用户的行为分析,推荐,疾病预测等。

Description

一种属性网络的社区搜索方法
技术领域
本发明涉及社区搜索技术领域,尤其涉及一种属性网络的社区搜索方法。
背景技术
属性网络用于模拟各种网络,包括社交网络,知识图和蛋白质相互作用网络等。越来越多的数据量和这些网络的丰富属性对社区搜索提出了巨大的挑战,近年来引起了很多关注。关于寻找社区的研究可以分为社区检测和社区搜索。社区检测方法通常用于基于预定义的隐式标准发现社交网络中的社区,而社区搜索是以在线方式找到满足给定的一组明确标准的有凝聚力的社区,例如基于k-core(k核)和k-truss的社区搜索。
空间属性是属性网络中最重要和最有用的特征之一。在空间感知网络中,每个节点都附有空间信息,例如,Twitter和Foursquare等社交网络可以由这样的网络建模,其中,每个节点(即用户)具有一个或多个位置(例如,当前位置或历史登记位置)。通过考虑用户的位置信息来搜索社区,可以将对用户行为的理解从虚拟世界变为现实。
然而,在现有技术中,通常只考虑非属性网络,而忽略了属性网络中顶点的丰富信息。此外,已经使用各种结构凝聚力度量来搜索空间感知网络中的社区,在现有研究中,结构凝聚力是一种查询约束,例如,对于k-core或k-truss度量,用户需要在社区搜索中指定k值,但没有考虑用户之间的空间紧密度。
因此,需要对现有技术进行改进,以搜索出兼顾结构凝聚力和空间紧密度的网络社区,并进一步提高社区搜索的效率。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种属性网络的社区搜索方法。
根据本发明的第一方面,提供了一种属性网络的社区搜索方法。该,方法包括:
步骤S1:根据网络用户的空间位置划定搜索区域范围;
步骤S2:在属性网络中根据网络用户之间的联系紧密度搜索目标社区,其中所述目标社区中用户的空间位置在所划定的搜索区域范围内。
在一个实施例中,步骤S1包括以下子步骤:
以无向连通图G=(V,E,S)来表征属性网络,其中,V表示顶点集,E表示边集,S表示空间位置集,顶点表示网络用户;
在所述无向连通图G中,搜索以连通子图表示的目标社区,其中,该子图的顶点位置能够被直径为D的圆包围并且相对于所述无向连通图G的其他子图,该子图中顶点形成最高阶的k-core。
在一个实施例中,在步骤S2中,根据以下步骤搜索以连通子图表示的目标社区:
步骤S21:对于所述无向连通图G,构建四叉树索引结构,其中,根节点对应G的整个空间;
步骤S22:遍历所述四叉树索引结构,获得边长小于D并且其父节点的边长大于D的所有节点,将这些节点存储在节点列表nodeList中;
步骤S23:对于节点列表nodeList中的每个节点,获得最大核数kcur
步骤S24:从节点列表中修剪掉N.DistMap[kcur]>D的节点N,其中,N.DistMap[kcur]表示节点N的距离映射表;
步骤S25:对于nodeList中的剩余节点,根据核数上界进行升序排序并依次验证,以搜索出满足具有最高阶的k-core并且能够被直径为D的圆包围。
在一个实施例中,在步骤S25中,对于节点列表nodeList中一个节点N,采用以下步骤进行验证:
用长度D扩展N,在扩展的正方形区域进行核分解并忽略核数小于kcur的顶点;
验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core,如果存在,则记录该k-core并更新kcur
在一个实施例中,采用以下步骤验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core:
对于节点N中的一个顶点,将其放在直径为D的圆的边界上并且旋转圆;
当有新顶点进入圆时,检查是否存在阶数高于kcur的k-core。
在一个实施例中,采用以下步骤验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core:
将扩展的正方形区域划分为m×m个单元格,使用能够包围直径为D的圆的覆盖s×s个单元格的正方形来搜索所扩展的正方形区域中的k-core,其中,s,m为正整数并且s小于m。
在一个实施例中,采用以下步骤验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core:
对于节点N中的一个顶点,将其放在直径为D的圆的边界上并且旋转圆;
在旋转圆时,当进入圆的新顶点满足kc-core时,停止旋转,其中,kc表示当前验证的核数。
在一个实施例中,根据以下步骤来搜索以连通子图表示的目标社区:
在所示无向连通图G中搜索所有直径为D的圆;
对于搜索到所有圆,检查能够被圆包围的顶点的最大核阶数并将具有最大核阶数的圆所包围的顶点作为所述目标社区。
与现有技术相比,本发明的优点在于:本发明提供了具有结构凝聚力的共址社区搜索的解决方案;并且在社区搜索过程中,通过构建索引结构,将空间信息和局部结构信息集成在一起提高了社区搜索的效率和有效性。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1是根据本发明一个实施例的属性网络的社区搜索方法的流程图;
图2是根据本发明一个实施例的属性网络和共址社区的示意图;
图3是根据本发明一个实施例的距离感知的k-core四叉树的示意图;
图4是根据本发明一个实施例的构建距离映射表的示意图;
图5是根据本发明一个实施例的基于四叉树的共址社区搜索的示意图;
图6是根据本发明另一实施例的基于四叉树的共址社区搜索的示意图;
图7(a)至图7(c)是根据本发明一个实施例的直径和社区搜索时间的关联性示意图;
图8(a)至图8(b)是根据本发明一个实施例的用户位置数和社区搜索时间的关联性示意图;
图9(a)至图9(b)是根据本发明一个实施例的用户的位置分布和社区搜索时间的关联性示意图;
图10(a)至图10(b)是根据本发明一个实施例的可扩展性的效果图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
在本文示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
本发明的研究目标之一是提供最有凝聚力的共址社区的搜索问题(在本文中称为MC3,the most cohesive co-located community),其中,所搜索的社区满足以下两个属性:结构凝聚力,指社区中的成员联系最紧密;空间共址,指成员在地理位置上彼此接近,具有空间凝聚力。
根据本发明的一个实施例,提供了归属网络的社区搜索方法,简言之,该方法利用无向连通图来表征属性网络,通过在无向连通图中搜索满足结构凝聚力和空间凝聚力标准的连通子图来确定所搜索的目标社区。具体地,参见图1所示,该方法包括以下步骤:
步骤S110,利用无向连通图来表示属性网络。
在本发明实施例中,以无向连通图表征无向属性网络G=(V,E,S)为例进行描述,其中,G具有顶点集V,边集E和空间位置集S。G中顶点v(例如,社交网络中的用户)的度由degG(v)表示,每个顶点v具有空间位置v.l=(x,y)∈S(例如,用户的登记位置),x和y分别表示二维空间中沿x轴和y轴的坐标。
为便于描述,将本发明涉及的符号定义归结如下:
G(V,E,S):表示具有顶点集V、边集E以及空间位置集S的地理社会图;
(v.x,v.y):表示顶点集V中的一个顶点v沿x轴和y轴的位置;
degG(v):表示G中的一个顶点v的度。
γ(N):表示索引结构中节点N的边长。
本发明的研究目标是从无向连通图G中找到一个由连通子图表示的社区,该社区满足以下条件:结构凝聚力,即连通子图中的顶点连接最密集;空间凝聚力,即连通子图中的顶点在空间上非常紧凑。
在本发明实施例中,对于结构凝聚力的评估以k-core为例进行说明,但应理解的是,本发明的方法也可以推广到例如k-truss、clique等其他适应结构凝聚力的算法。
为了便于说明,首先介绍以下几个概念:
1)、k-kore的定义
对于k-core,给定非负整数k,G的k-core是G的最大子图,其中该子图中每个顶点v的度不小于k。
具体地,在本发明实施例中,使用G中的连通k-core(表示为Gk)来表示社区,称为Gk的阶为k。给定一个图,k-core可以通过现有技术中的算法获得,例如,线性核分解算法,线性核分解算法的复杂度在本文中表示为O(|E|)(例如,参考文献“An o(m)algorithm forcores decomposition of networks”,Batagelj,V.,Zaversnik,M.,arXiv preprint cs/0310049(2003))。
2)、核数的定义
对于给定G中的顶点v,其核数是包含v的k-core的最高阶,表示为CG[v]。
3)、共址社区的定义
在本发明实施例中,共址社区是指连通子图(k-core)Gk,其中,该子图中的顶点位置能够由预定直径D的圆来包围。本文期望的是共址社区中的顶点位置较近,这能够反映这个社区的“共址性”。
在本发明实施例中,给定无向属性图G和直径D,共址社区搜索(MC3)返回任何顶点组及其位置,满足以下约束:顶点的位置能够用直径为D的圆包围;顶点形成最高阶的k-core。
图2是属性网络和共址社区的示意图,其中,C1和C2是属性网络中的两个共址社区,其成员可由直径为D的圆包围,C1的成员包括A、B、C,C2的成员包括D、G、H、F、E。C2是3-core,是两个共址社区中具有最高阶的核(关于直径D),因此C2是该属性网络的MC3,即所要搜索的目标社区。
步骤S120,在无向连通图中搜索连通子图,使其满足结构凝聚力和空间凝聚力标准。
本发明旨在找到最具结构凝聚力的社区并且该社区能够被直径为D的圆包围,可以采用多种实施例从属性网络中搜索满足结构凝聚力和空间凝聚力标准的社区。
实施例1:空间优先方式
在该实施例中,对于属性网络,首先,搜索空间上所有可能的圆(直径为D);然后,检查能够被圆包围的顶点的最大核阶数;最后,返回所有圆中的最大核阶数。
具体地,枚举所有可能的圆,例如,在空间位置集S中固定两个位置,这两个位置的距离小于或等于D,在空间上通过这两个位置获得最多两个直径为D的圆。然后,从这些位置所属的图中获得顶点,应用已知的线性核分解算法来计算最大的核阶数。这种方式需要检查最坏情况下的圆,开销为O(V2),因而非常耗时。
实施例2:结构优先方式
在该实施例中,进行结构优先搜索,其思想是利用网络结构来加速搜索。
具体地,首先,进行核分解来计算每个顶点的核数;然后,搜索核中的最大k值,表示为kmax,并且在kmax-core中,从顶点获得位置;接下来,通过枚举所有可能的圆在这些位置上执行搜索(类似于空间优先方法),在此步骤之后,能够获得目前最佳的核阶数(表示为kcur);接下来,对(kmax-1)-core进一步检查。重复上述过程,直到到达kcur-core。通过这种方式,有助于减少圆数量的验证。然而,由于全局有凝聚力的子图可能不具有局部凝聚力,因此,这种方式的执行效率仍存在限制。
实施例3:基于距离感知的k核四叉树方式
上述的空间优先方式和结构优先方式都无法达到良好的性能,这是因为MC3问题需要同时考虑空间凝聚力和结构凝聚力,但这两种方式或者忽略了数据的空间特征或者忽略了结构特征。
在一个优选实施例中,采用距离感知的k核四叉树来进行搜索目标社区,在本文中称为DkQ-TREE(Distance-aware k-core Quadtree)。利用四叉树结构可以构建预先计算局部结构凝聚力的索引,从而加速搜索并修剪搜索空间。
下文将具体介绍基于空间索引的四叉树的树索引结构,以及基于该索引结构提出的社区搜索方法来解决MC3问题。
1)、四叉树的索引结构
已知的线性k核分解算法只能计算顶点的全局核数,因此在查询期间,局部的凝聚力信息是未知的。在基于四叉树的索引结构中,将结构信息和空间信息整合在一起来计算局部的凝聚力(关于直径D)。
四叉树结构参见图3所示,简言之,构建DkQ-TREE的方法是,根节点对应整个空间,将整个空间等分为四个子空间,每个子空间对应根节点的一个子节点。然后,重复将每个节点再分成四个子节点,例如,对于图3,整个空间为根节点(root),该根节点的四个子节点分别对应{A,B,C},{K,J},{L}和{D,E,F,G,H,I},类似地,可对该四个子节点进一步细分。
在该实施例中,利用四叉树并基于局部凝聚力的空间单调性预先计算每个树节点的局部凝聚力和其他有用信息。空间单调性是指,给定空间区域R(例如,正方形),如果该区域中的顶点能够形成最多h阶的k-core,则对于R内的任何区域R′,由R′中的顶点形成的k-core的阶数不大于h。空间单调性属性基于较小的区域具有较少的顶点。
在DkQ-TREE的每个节点N中,预先计算从该区域提取的子图中的节点的每个顶点的核数,并记录节点中顶点的最大核数,标记为LCN。执行这个计算是由于以下原理(在本文中称为引理1):给定查询直径D和能够被直径为D的圆包围的树节点N,MC3的阶数不小于LCN
由于N能够被直径为D的圆包围,可以根据空间单调性属性证明上述原理。因此,根据该预先计算的信息能够从DkQ-TREE获得MC3的阶的下界估计。
然而,这仍不足以获得局部的凝聚力,只能获得每个节点中的最大核数。由图3可以看出,当一些顶点不在某节点上时,该节点的顶点可以形成一个k-core。因此,对于给定的直径D,不能得到这些节点的核数的界限。因此,进一步计算顶点在每个树中的距离映射表DistMap。思想是,给定节点N,对于每个值k>LCN,将节点扩展到具有最小距离d的顶点,使得在扩展期间涉及的顶点能够形成k-core,在距离映射表中记录该距离d和与其对应的k。
距离映射表有助于根据以下原理修剪搜索空间(在本文中称为引理2):假设当前MC3的最佳阶数是kcur,给定查询直径D和节点N,如果N.DistMap[kcur]>D,则N不能向MC3贡献任何顶点,其中,N.DistMap[kcur]表示节点N的距离映射表,N的最佳阶数是kcur
上述原理也可以使用空间单调性属性来证明,即如果N.DistMap[kcur]>D,则意味着当扩展N的边界长度为直径D时,仍无法在该区域中找到kcur-core,因此,该区域中任何节点的核数小于kcur,可以被修剪。
此外,为了从位置快速获取顶点,当顶点具有多个位置时,还可使用顶点映射表来组织映射信息。
综上,在本发明实施例中,对于DkQ-TREE的每个节点,存储的信息包括:该节点中的顶点;该节点中的最大核数;顶点映射表;距离映射表。
2)、四叉树的索引构建
仍参见如3所示的四叉树结构,整个空间为根节点(root),该根节点的四个子节点分别对应{A,B,C}、{K,J}、{L}和{D,E,F,G,H,I},节点{A,B,C}进一步细分为{A}、{B}、{C},节点{D,E,F,G,H,I}进一步细分为{D}、{E}、{F}和{G,H,I}。当获得一个新节点时,首先使用该节点内的顶点进行核分解并存储最大核数。如果最大核数小于某个值kε,则不再进一步拆分该节点。例如,在图3中,顶点{A,B,C}形成2核,则***这个区域,形成{A}、{B}和{C}。在***后,任何子区域都不能形成2核,因此,停止拆分这些子区域对应的节点。
此外,当获得一个新节点时,还构建其距离映射表(Distance Map)和顶点映射表(Vertex Map)。构建顶点映射表即标记每个顶点的位置,例如,在图3中,顶点A的位置图记录vA的位置为A(vA’s locations:A),其他类似。构建距离映射表的思想是,对于每个值k,执行二分搜索以将节点扩展到具有最小距离的顶点,使得在扩展期间引入的顶点能够形成k核。例如,参见图4所示,节点仅具有一个顶点C,当扩展到顶点B时,形成1-core,所扩展的距离是d1;当扩展到顶点A时,首先形成2-core,所扩展的距离为d2。将距离d1和d2存储到距离映射表,例如存储格式为1-core:d1;2-core:d2。
3)、基于四叉树的社区搜索方法MC3Alg
在本发明实施例中,基于四叉树索引结构提出两种算法,为了区别,分别称为MC3Alg算法和MC3Alg+算法,MC3Alg+是MC3Alg算法的改进。
简言之,MC3Alg算法涉及两个迭代步骤:修剪DkQ-TREE中的节点;从无法修剪的节点中发现MC3。具体地,MC3Alg包括以下步骤:
步骤S211,修剪DkQ-TREE中的节点
在此步骤中,根据上述引理1获得MC3阶数的下界。
具体地,给定直径D,从上到下遍历DkQ-TREE,获得边长小于D并且其父节点的边长大于D的所有节点。将这些节点存储在节点列表nodeList中。然后,从节点列表中的这些节点获得最大核数,将其作为下界,用kcur表示。使用该MC3阶数的下界,根据引理2(即给定查询直径D和节点N,如果N.DistMap[kcur]>D,则N不能向MC3贡献任何顶点)进一步修剪nodeList中的节点。
步骤S212,从修剪之后剩余的节点中搜索目标社区。
在修剪之后,对于nodeList中的剩余节点,根据从距离映射表获得的核数上界进行排序,然后,开始验证最佳节点N。
具体地,给定节点N,如果N.distMap[k1]≤D≤N.distMap[k2],则k1是N中顶点的核数上界。首先,用长度D扩展N并在扩展的正方形区域进行核分解。然后,可以安全地忽略核数小于kcur的顶点,因为这些顶点不能包含在MC3中。为了验证扩展区域中剩余顶点是否存在具有更高阶的k-core,而不是像在空间优先方法中那样检查所有可能的圆。在一个实施例中,使用旋转圆方法,其基本思想是,对于节点N中的每个顶点,将其放在直径为D的圆的边界上,然后,顺时针旋转圆。当顶点进入圆时,检查是否存在阶数高于kcur的k-core。如果存在,记录k-core并更新kcur。例如,参见图5所示,使顶点G位于圆的边界上并顺时针旋转圆,当F进入圆时,能够找到由{G,F,H,I}形成的2-core。
在验证N之后可以更新kcur并进一步根据更新后的kcur修剪nodeList中的更多节点,然后从下一个最佳节点执行验证。重复上述过程,直到处理完nodeList中的所有节点。
为进一步清楚说明,以下示例1以伪代码形式描述了MC3Alg的框架。首先,从DkQ-TREE(第1行)获取nodeList;然后,获得MC3阶数的下界,并使用φ存储Nmax中的最佳k-core(第2-4行),对于nodeList中的每个节点,获取它的距离映射表DistMap并检查需要将其扩展到包含k-core的距离;通过引理2安全地进行节点删除(第5-8行);获取该节点中顶点的核数上界(第9行);接下来,按节点上界的升序(第10行)对nodeList进行排序,对于每个节点,使用长度D对其进行扩展并如上所述修剪顶点;对于N中未修剪的每个顶点,使用旋转圆方法来检查k-core并更新φ(第11-15行)。具有最高阶的k-core最终存储在φ(第16行)中。
Figure BDA0002016919590000101
仍参见图5所示,给定包含G,H,I的候选节点,使G在圆的边界上,并且I,H,F,E,D在圆的旋转区域中,根据他们进入圆的顺序得到有序列表{I,H,F,E,D}。然后,顺时针旋转圆,每当{I,H,F,E,D}中的顶点进入圆(在其边界上)时,旋转停止并检查其内部是否有k-core。例如,当F进入圆时,可以在圆中得到一个2-core({G,I,H,F})。当圆旋转到顶点D时,可以得到一个3-core({G,H,F,E,D})。以相同的方式处理H和I之后,可以看出,{G,H,F,E,D}是该节点中具有最高阶的k-core。
对于MC3Alg算法,计算复杂度分析如下:
假设平均每个单位空间区域包含n个顶点和m个边缘,并且从给定D的DkQ-TREE获得X个节点。
首先,根据核数上限对节点进行排序,复杂度为O(XlogX)。然后,对于具有γ(N)=l的每个节点N,将N扩展长度D,即γ(Nex)=2D+l,并在该正方形区域中进行核分解。在扩展的正方形中,存在(2D+l)2m个边缘,因此核分解成本为O((2D+l)2m)。接下来,在N中的每个顶点上旋转圆。在每个圆中,有
Figure BDA0002016919590000111
个顶点和
Figure BDA0002016919590000112
边。
请注意,在圆中执行的k-core验证可分为三个步骤:
度检查成本为
Figure BDA0002016919590000113
核分解成本为
Figure BDA0002016919590000114
BFS(广度优先搜索算法)检查成本为
Figure BDA0002016919590000115
因此,k-core验证成本最高为
Figure BDA0002016919590000116
在最坏的情况下,在N中为每个顶点执行最多πD2n次(N中的顶点数是l2n)。因此,MC3Alg算法的总复杂性是
Figure BDA0002016919590000117
4)、基于四叉树的社区搜索方法MC3Alg+
MC3Alg在大型属性网络中仍然不够高效,并且有局限性。这是由于,首先,在每个要检查的节点中,有许多顶点,并且每个顶点都需要应用旋转圆方法;其次,节点的扩展区域有许多顶点,因此在旋转圆时需要验证许多次k-core。为了克服这些问题,提供一种更有效的算法,在本文中称为MC3Alg+。MC3Alg+和MC3Alg之间的主要区别在于,节点的验证成本,而DkQ-TREE中的节点修剪与MC3Alg相同。
在MC3Alg+中,对于要检查的每个节点N,执行二分搜索以找到该节点中的最大核数。核数的上限从N的距离映射表中获得,与MC3Alg类似,下限是当前的最佳阶数。在二分搜索过程中,检查N的扩展区域中是否存在具有当前核数kc的k-core。这种方式可以快速获得较大的kc,有益效果体现在,首先,减少了进行检测的N中的顶点;第二,减少了圆旋转中引入的扩展区域中的顶点数量。
接下来,为了进一步减少要检查的N中的顶点,将扩展的正方形区域划分为m×m个单元格,并使用一个小的正方形来滤除无法形成解决方案的顶点。基本原理是,不是直接逐个检查顶点,而是使用一个覆盖s×s单元的正方形,它可以包围直径为D的圆来搜索扩展正方形区域中的所有k-core。从扩展正方形区域(包括m×m个单元格)的左上角到右下角移动(s×s)正方形,检查正方形的每个位置是否存在kc-core。记录包含kc-core的所有正方形,只对即在N和这样的正方形中的顶点进行圆旋转,其中m、s为正整数,并且s小于m,在实际应用中,可根据圆的直径、对搜索粒度的要求等设置适当的m和s。在这种方式中,验证粒度是单元而不是顶点,因此验证速度更快。
最后,提出了一种二分旋转圆方法来检查候选顶点,以改善验证成本。与MC3Alg的主要区别在于,在旋转圆时,当新顶点进入圆时,不会停止旋转,而是,使用二分搜索策略来处理这个问题。具体地,当到达这样一个顶点时停止旋转,从开始进入顶点到该顶点,首先满足kc-core。然后,检查边界上具有该顶点的圆,如果存在kc-core,则记录它并停止旋转;否则,从所检查的圆开始,找到可以满足kc-core的下一个顶点。由于可以跳过不包含任何核的大区域,因此该方式非常有效。
参见图6所示的二分搜索过程的示例,给定与图4相同的候选节点,基于核数执行二分搜索。首先有上界upper=3(来自距离映射表)和下界lower=2(当前最佳值),因此,当前核数kc
Figure BDA0002016919590000121
然后,将顶点G,H,I设置为边界顶点。在旋转过程中,考虑二分策略。首先,根据进入搜索圆的顺序得到一个有序列表{I,H,F,E,D},将有序列表标记为InAngleList。接下来,在InAngleList上执行二分搜索以找到首先满足2-core的顶点。因为旋转区域{G,H,I}形成2-core,所以首先找到顶点H,即将圆旋转到H并找到2-core(即{G,H,I})。记录并更新lower=2+1=3。现在,kc是3,设置顶点G作为边界顶点并重复上述过程。当顶点D在搜索圆的边界上时,旋转区域({G,D,E,F,H}形成3-core。直接将圆旋转到顶点D,能够在圆内找到3-core,在这种方式下,当旋转到F、E时,不会停止,而是直接旋转到顶点D。最后,发现{G,D,E,F,H}是该节点中的最佳核。
对于MC3Alg+算法,计算复杂度分析如下:
作与M C 3A l g相同的假设,在需要检查的每个扩展节点Nex(γ(Nex)=2D+l)上执行二分搜索。假设从距离映射表获得的最大核数是kmax,并且对k的二分搜索最多是logkmax次。将扩展的正方形区域划分为T×T单元格,并使用覆盖s×s的小正方形来滤除一些顶点。小正方形覆盖
Figure BDA0002016919590000131
个顶点和
Figure BDA0002016919590000132
个边,需要移动小正方形(T-s)2次。因此,移动过程的开销最多为
Figure BDA0002016919590000133
对于N中的每个顶点,在二分圆旋转过程中,其开销最多为
Figure BDA0002016919590000134
(每个圆覆盖
Figure BDA0002016919590000135
个顶点和
Figure BDA0002016919590000136
个边。因此,在最坏的情况下,MC3Alg+的总复杂度为
Figure BDA0002016919590000137
为了进一步验证本发明的效果,进行了仿真实验以评估上述实施例的技术效果,其中评估了基于四叉树的MC3Alg和MC3Alg+算法,以及结构优先方式、空间优先方式。但是,由于结构优先方式和空间优先方式运行速度非常慢,以下仅在一组实验中报告其性能。实验条件设置如下:
1)、关于数据集的设置
实验利用了四个数据集,包括三个真实数据集(Gowalla,FourSquare,Flickr)和一个合成数据集(YoutubeSyn)。在Gowalla中,每个顶点都是Gowalla中的用户,每个边表示两个用户之间的友谊。每个用户都有很多登记,选择最常用一个登记信息作为他的位置。并且,还针对用户在此数据集中具有多个登记的情况进行了实验。在FourSquare中,每个顶点都是Foursquare网站的用户,每个边代表两个用户之间的社交关系。对于每个用户,选择其最常用的登记信息作为他的位置。在Flickr中,顶点是用户,边表示两个用户之间的“跟随”关系。标记用户在其中拥有最多照片令牌的位置。在YoutubeSyn中,每个顶点代表Youtube的用户,每个边是两个用户之间的“跟随”关系。但是,没有用户的位置信息,为每个用户生成一个位置。此外,在实验中,还使用两种分布方法来生成位置,包括随机分布和高斯分布。数据集的详细信息参见表1所示,其中,
Figure BDA0002016919590000141
是平均的度,maxk是节点上的最大位置数。
表1:数据集属性
Figure BDA0002016919590000142
2)、关于参数的设置。
将m的数量(扩展搜索区域中的网格单元的数量)设置为10,经试验证明该参数不会对性能产生太大影响,当m=10时,实现了最佳运行时间,因此在所有实验中使用m=10作为默认值。在用户的多个位置的实验中,对于Gowalla,用户的位置是该用户的所有的登记信息。对于YoutubeSyn,随机生成用户的位置。在不同的分布实验中,生成满足两个分布要求的位置,包括随机分布和高斯分布。对于所有数据集,将位置放在大小为[0,100]×[0,100]的正方形中。
3)、关于实验设备。
在配置Intel i7-6700 3.40GHz处理器和16GB内存的机器上实验,安装了Windows10,并且所有算法以java实现。
实验结果表明,改变直径D、一个顶点有多个登记位置、改变用户位置分布等因素对本发明实施例的技术效果会产生影响。
图7(a)至图7(c)是直径和运行时间的关联性示意图,具体地,改变直径D会影响结构优先法、空间优先法、MC3Alg和MC3Alg+的搜索区域和效率。参见图7(a)至图7(c)所示,其中,横坐标表示直径D,其从2.5变化到12.5(指的是将实际坐标转换到[0,100]x[0,100]的正方形搜索区域后的坐标),纵坐标表示运行时间,单位为秒(sec)。图7(a)至7(c)显示了四种算法的运行时间,即空间优先法(spatial)、结构优先法(structure)、MC3Alg和MC3Alg+,图7(a)是在数据集Flickr的实验结果,图7(b)是数据集FourSquare的实验结果,图7(c)是数据集Gowalla的实验结果。可以观察到,MC3Alg+总是优于其他算法,因为其具有最多的剪枝策略和优化策略,而空间优先法和结构优先法则非常耗时,因此在随后的实验中将忽略这两种算法。
图8(a)至8(b)是位置数和运行时间的关联性示意图,其中,横坐标是位置数,纵坐标是运行时间(sec),图8(a)是数据集YoutubeSyn的实验结果,图8(b)是数据集Gowalla的实验结果。当一个顶点有多个登记位置时,更多的登记位置将导致更多的k-core检查。因此,登记次数会影响MC3Alg和MC3Alg+的性能。可以观察到,MC3Alg+受多次登记的影响较小,这是由于执行二分搜索能够加速MC3Alg+的旋转过程。此外,MC3Alg+的运行时间比MC3Alg快约7倍。
图9(a)至9(b)是位置分布与运行时间的关联性示意图,其中,横坐标是直径值,纵坐标是运行时间,图9(a)对应数据集YoutubeSyn的高斯分布,图9(b)对应数据集YoutubeSyn的随机分布。可以观察到,MC3Alg+始终优于MC3Alg。应注意的是,MC3Alg+的优越性在高斯分布中更为明显,这是由于一些节点包含非常大量的顶点,这导致MC3Alg在搜索这些节点时有更高的复杂性。
图10(a)至图10(b)是可扩展性的效果图,其中,横坐标是顶点的百分比,指的是整个数据集顶点数的百分比(例如20%表示用某数据集顶点数的20%规模的子数据集进行实验),纵坐标是运行时间,图10(a)对应Flickr数据集,图10(b)对应FourSquare数据集,通过改变两个数据集来验证了本发明实施例的可扩展性。可以观察到,两种算法都能很好地适应数据集大小并且MC3Alg+由于有更多的修剪策略,因此也运行得最快。
综上所述,针对最具凝聚力的共址社区的搜索问题,本发明提供了多种实施例,在优选的基于四叉树的索引结构(即DkQ-TREE)中,将空间信息和局部结构信息集成在一起,加速了目标社区搜索的速度。并且,基于DkQ-TREE,提出了两种有效算法,通过对真实和合成数据集进行大量实验证明了所提出的算法的效率和有效性。本发明实施例的社区搜索方法可用于社交网络用户的行为分析,推荐,疾病预测等。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。此外,本领域的技术人员在不违背本发明精神的前提下,能够对一些实施例进行适当变形,例如,以逆时针旋转圆,基于属性网络的规模、用户需求、查询速度要求设置适当的直径D等。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (8)

1.一种属性网络的社区搜索方法,包括:
步骤S1:根据属性网络用户的空间位置划定搜索区域范围,所述属性网络是社交网络;
步骤S2:在属性网络中根据网络用户之间的联系紧密度搜索目标社区,其中所述目标社区中用户的空间位置在所划定的搜索区域范围内;
其中步骤S1包括以下子步骤:
以无向连通图G=(V,E,S)来表征属性网络,其中,V表示顶点集,E表示边集,S表示空间位置集,顶点表示网络用户;
在所述无向连通图G中,搜索以连通子图表示的目标社区,其中,该子图的顶点位置能够被直径为D的圆包围并且相对于所述无向连通图G的其他子图,该子图中顶点形成最高阶的k-core;
其中,在步骤S2中,根据以下步骤搜索以连通子图表示的目标社区:
步骤S21:对于所述无向连通图G,构建四叉树索引结构,其中,根节点对应G的整个空间;
步骤S22:遍历所述四叉树索引结构,获得边长小于D并且其父节点的边长大于D的所有节点,将这些节点存储在节点列表nodeList中;
步骤S23:对于节点列表nodeList中的每个节点,获得最大核数kcur
步骤S24:从节点列表中修剪掉N.DistMap[kcur]>D的节点N,其中,N.DistMap[kcur]表示节点N的距离映射表;
步骤S25:对于nodeList中的剩余节点,根据核数上界进行升序排序并依次验证,以搜索出满足具有最高阶的k-core并且能够被直径为D的圆包围。
2.根据权利要求1所述的方法,在步骤S25中,对于节点列表nodeList中一个节点N,采用以下步骤进行验证:
用长度D扩展N,在扩展的正方形区域进行核分解并忽略核数小于kcur的顶点;
验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core,如果存在,则记录该k-core并更新kcur
3.根据权利要求2所述的方法,其中,采用以下步骤验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core:
对于节点N中的一个顶点,将其放在直径为D的圆的边界上并且旋转圆;
当有新顶点进入圆时,检查是否存在阶数高于kcur的k-core。
4.根据权利要求2所述的方法,其中,采用以下步骤验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core:
将扩展的正方形区域划分为m×m个单元格,使用能够包围直径为D的圆的覆盖s×s个单元格的正方形来搜索所扩展的正方形区域中的k-core,其中,s,m为正整数并且s小于m。
5.根据权利要求2所述的方法,其中,采用以下步骤验证扩展的正方形区域中的剩余顶点是否存在阶数高于kcur的k-core:
对于节点N中的一个顶点,将其放在直径为D的圆的边界上并且旋转圆;
在旋转圆时,当进入圆的新顶点满足kc-core时,停止旋转,其中,kc表示当前验证的核数。
6.根据权利要求1所述的方法,其中,根据以下步骤来搜索以连通子图表示的目标社区:
在所示无向连通图G中搜索所有直径为D的圆;
对于搜索到所有圆,检查能够被圆包围的顶点的最大核阶数并将具有最大核阶数的圆所包围的顶点作为所述目标社区。
7.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1至6中任一项所述方法的步骤。
8.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任一项所述的方法的步骤。
CN201910266196.1A 2019-04-03 2019-04-03 一种属性网络的社区搜索方法 Active CN110119462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910266196.1A CN110119462B (zh) 2019-04-03 2019-04-03 一种属性网络的社区搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910266196.1A CN110119462B (zh) 2019-04-03 2019-04-03 一种属性网络的社区搜索方法

Publications (2)

Publication Number Publication Date
CN110119462A CN110119462A (zh) 2019-08-13
CN110119462B true CN110119462B (zh) 2021-07-23

Family

ID=67520775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910266196.1A Active CN110119462B (zh) 2019-04-03 2019-04-03 一种属性网络的社区搜索方法

Country Status (1)

Country Link
CN (1) CN110119462B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112818178B (zh) * 2019-10-30 2022-10-25 华东师范大学 一种基于(k,p)-core的快速高效社群发现方法及***
CN111274498B (zh) * 2020-01-22 2023-06-23 哈尔滨工业大学 一种网络特征社区查找方法
CN111401517B (zh) * 2020-02-21 2023-11-03 华为技术有限公司 一种感知网络结构搜索方法及其装置
CN112445838B (zh) * 2020-10-23 2022-03-22 浙江工商大学 一种面向空间数据的高效空间k核挖掘方法
CN113254797B (zh) * 2021-04-19 2022-09-20 江汉大学 一种社交网络社区的搜索方法、装置以及处理设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070112781A1 (en) * 2005-11-17 2007-05-17 Mcmullen Cindy System and method for providing search controls in a communities framework
CN103425662B (zh) * 2012-05-16 2017-08-25 腾讯科技(深圳)有限公司 一种网络社区中的信息搜索方法和装置
GB201306942D0 (en) * 2013-04-17 2013-05-29 Tomtom Int Bv Methods, devices and computer software for facilitating searching and display of locations relevant to a digital map
CN104462260B (zh) * 2014-11-21 2018-07-10 深圳大学 一种基于k-核的社交网络中的社区搜索方法
CN107247779A (zh) * 2017-06-08 2017-10-13 天津神笔马良网络科技有限公司 交互社区的搜索方法、装置及移动终端
CN108319728A (zh) * 2018-03-15 2018-07-24 深圳大学 一种基于k-star的频繁社区搜索方法及***

Also Published As

Publication number Publication date
CN110119462A (zh) 2019-08-13

Similar Documents

Publication Publication Date Title
CN110119462B (zh) 一种属性网络的社区搜索方法
Wu et al. Finch: Evaluating reverse k-nearest-neighbor queries on location data
Parimala et al. A survey on density based clustering algorithms for mining large spatial databases
Sankaranarayanan et al. Query processing using distance oracles for spatial networks
US10068033B2 (en) Graph data query method and apparatus
Pfoser et al. Querying the trajectories of on-line mobile objects
CN106709503B (zh) 一种基于密度的大型空间数据聚类算法k-dbscan
Luo et al. Efficient attribute-constrained co-located community search
Guohui et al. Continuous reverse k nearest neighbor monitoring on moving objects in road networks
US20240061842A1 (en) Spatial join query method and apparatus, electronic device, and storage medium
Aggarwal et al. External memory algorithms for outerplanar graphs
Fellegara et al. Terrain trees: a framework for representing, analyzing and visualizing triangulated terrains
Löffler et al. Dynamic planar point location with sub-logarithmic local updates
US20190108289A1 (en) System for efficiently carrying out a dynamic program for optimization in a graph
US20180149485A1 (en) Road distance systems and methods
Glantz et al. Tree-based coarsening and partitioning of complex networks
Yu et al. Explore hot spots of city based on dbscan algorithm
Luo et al. Efficient search of the most cohesive co-located community in attributed networks
Jones et al. Triangulated spatial models and neighbourhood search: an experimental comparison with quadtrees
Lin et al. A new directional query method for polygon dataset in spatial database
Fellegara et al. Analysis of geolocalized social networks based on simplicial complexes
Wang et al. Subspace k-anonymity algorithm for location-privacy preservation based on locality-sensitive hashing
CN113901087B (zh) 空间大数据分区重复数据的剪枝方法
Long Qualitative spatial and temporal representation and reasoning: efficiency in time and space
Bae et al. SD-Miner: A spatial data mining system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310000 Room 501, building 9, No. 20, kekeyuan Road, Baiyang street, Hangzhou Economic and Technological Development Zone, Zhejiang Province

Patentee after: Hangzhou Zhongke advanced technology development Co.,Ltd.

Address before: 310000 Room 501, building 9, No. 20, Science Park Road, Baiyang street, economic and Technological Development Zone, Jianggan District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU ZHONGKE ADVANCED TECHNOLOGY RESEARCH INSTITUTE Co.,Ltd.

CP03 Change of name, title or address