作者:郑光杰引言K-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在K-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。 K-Core通常用来对一个图进行子图划分,通过去除不重要的顶点,将符合逾期的子图暴露出来进行进一步分析。 K-Core图算法常用来识别和提取图中的紧密连通群组,因具有较低的时间复杂度(线性)及较好的直观可解释性,广泛应用于金融风控、社交网络和生物学等研究领域。 K-Core算法介绍一张图的 K-Core子图是指从图中反复去掉度(不考虑自环边)小于 k 的节点之后得到的子图。 比如3-core子图的切分过程如图1所示:图片3-core子图切分过程TuGraph-Analytics实现K-Core算法要运行K-Core算法,我们可以指定使用的图,直接在图查询里调用K-Core算法
三、关系网络分析——社群发现 这里会介绍基于标签概率社群发现算法和K-core分解模型。 在turicreate之中,两个算法有以下两个关键的擅长之处: 标签概率社群发现算法,有监督学习任务,用于监督性分类模型 K-core分解模型,无监督学习任务,用于聚类 . 1.LabelPropagationModel . 2、K-core decomposition k-core分解 Kitsak等人[1]第一次系统分析了这个问题。 他们指出度和介数往往不能很精确描述一个节点的传播能力,而利用k-core分解,一个节点的核数更好刻画了节点的传播能力。 有点像层次聚类,一步一步删除附近的劣质线条。 主函数: K值越高,网络越核心,k-core值越大表明子网络越处于核心的地位 如果指定了Kmax为20,就像聚类一样,会给每个ID一个标签值,可见:
原理(不愿意看原理,可以跳过) MCODE是通过对网络图中的各个节点的计算节点信息 包括自身在内的邻居接点子图neighbors及其密度density,以该点为种子节点所能扩展出的最大k值的K-core ,其k值水平coreLevel,此K-Core的密度coreDensity以及该节点的score值。 在advanced option里调整K-Core,我个人的理解是K值越大,模块数量会变少,而核心节点所处的子网络结构也越不容易受损,能看出核心模块及节点。
7、K-Core 一个图的k-Core是指反复去除“度”小于k的节点后,所余下的子图,所有的节点度数都为k。K-Core算法是简化复杂网络并得到核心子网络的算法之一,其简单有效可以运用到很多领域。 K-Core可以帮助我们从复杂的关系网络中提取高度相关的子结构(如社区、团体、关联企业等)。 如下图所示,使用K-Core算法,我们在一个复杂的关系网络中,找到若干关联度比较高的客户群体。 小结 现在是万物互联的时代,可谓万物皆有关系,关系网络分析可以应用到几乎所有社会活动当中。
实现算法流程如下:删除所有度 < K 的节点;删除这些节点后,某些邻居可能度也变小了 → 继续删除;重复这个过程直到图中所有剩下节点的度都 ≥ K;得到的子图就是 K-core。 在 NetworkX 中,可以很方便地计算这些指标而不用手动实现: core_numbers = nx.core_number(G) # 每个节点的k-core值 max_k = max (core_numbers.values()) # 最大核心数 k_core_subgraph = nx.k_core(G) # 最大k-core子图 print(f'这是一个 {max_k
通过MCODE插件将上述两个PPI网络图分别导入Cytoscape软件中以构建模块,设置了Degree Cutoff=10,Haircut on, K-Core=2, Node Score Cutoff 这里的Degree Cutoff规定了一个节点得分所需的最小连接数量,得到的模块需要过滤掉节点Degree小于Cutoff的子网;Haircut 移除了一些仅有一条边连接的点;K-Core控制了cluster 的大小,值越大,cluster越小,K-Core的K指每个节点连接的数量,举个例子:三角形(3 nodes, 3 edges)就是一个2-Core(每个节点有2个连接);Node Score Cutoff
K核心(K-core)的定义更宽松,它要求K核心的节点至少连接了K个其他成员。还有有一些不算特别流行的宽松的限定,K宗派(K-Clan)要求每个节点在K个步骤(路径长度小于K)内连接每个其他成员。 该社区被定义为发现的K核心(K-core),或K宗派(K-Clan)或K丛(K-plex)。 K-团(K-Clique)渗滤 社区检测的另一种流行方式是在邻近的K-团(K-Clique)上滚动。
之外的其他辅助信息(Side information),比如物品的特征信息以及知识图谱信息等;数据过滤模块提供了按照评分进行过滤的模式(Filter-by-rating)以及按照交互数量进行过滤的模式(K-core
一般K-core值越大,会排除分值小的子网络,求出来的网络数目更少 如果感兴趣,可以看下各参数含义。http://baderlab.org/Software/MCODE/UsersManual ?
基于此研究的前提,本文使用MCODE 对上述 PPI 网络进行模块划分( node score cut-off = 0. 2,K-core = 2) ,共得到 3 个子网,如图 4所示,其中节点颜色由浅到深表示
千亿边大图的高性能优化 Angel 大规模图算法在容错和计算性能上相对的要求也更高,我们针对千亿边大图训练做了专门的性能优化并在现网的共享集群做了性能测试,在K-core和common friends两个算法的测试结果为在内存消耗降低
最简单的算法k-core decomposition,就是对图中的所有顶点进行判定,若度小于K,则将该点和所有关联的边从图中删除,然后再进行下一轮迭代,直到图中所有的顶的度都大于K。
scaler.update() 五、实战案例:某银行信用卡欺诈检测系统技术拆解 (一)系统架构图 (二)关键技术突破 多维度图特征构建: 账户维度:历史交易熵值、节点度中心性 边维度:资金流转速度、跨时区交易频率 子图维度:k-core
如上图所示,FRODO框架由三个部分组成: 侧重风险宽召回的标签传播LPA算法 用于高风险欺诈用户识别的多视图异构图神经网络Multi-view HGNN算法 用于离线欺诈社区检测的时空网络重构k-core
整个预训练的框架如下图所示,首先从图中抽取节点的结构特征比如(Degree, K-Core, Clustering Coefficient等),然后将这些结构特征作为embedding来学习设定的三个预训练任务
我们揭示了实现此类预测的关键拓扑特征,并对网络指标的重要性进行了排序,其准确度远超以往研究:对流行病传播而言,k-核(k-core)起决定性作用;而对同步性而言,介数中心性(betweenness centrality
他首先介绍了图数据在金融诈骗检测、产品推荐、投资分析、零售服务、反洗钱、网络安全等多个领域的广泛应用,并以 k-Core、k-Truss、k-Edge Connected、k-Vertex Connected
后来团队一个小伙伴想到了用k-core的方法将1-shell和2-core的图结构区分开后再做社区划分,这样可以将超大社区拆分成小的社区(该方法目前被图二期采纳)。
添加了一些新的算法,如:Deep & Cross Network (DCN) 和 Attention Factorization Machines (AFM)等;同时对已有的算法做了大量的优化,例如对LINE和K-Core
添加了一些新的算法,如:Deep & Cross Network (DCN) 和 Attention Factorization Machines (AFM)等;同时对已有的算法做了大量的优化,例如对LINE和K-Core