发明内容
针对现有技术存在的不足,本发明提供一种基于网络表示学习的组织层级划分方法及其应用,该方法基于网络节点的局部拓扑结构信息自适应生成网络节点的向量表示,通过对中心节点多层邻居节点动静态特征的表达实现采样中心节点局部拓扑结构的目的,实现节点表示的位置无关性;进而将层级结构中相似的节点聚为一类,使得节点的表示更加准确,组织层级划分结果也会更加准确。
为了解决上述技术问题,本发明采用的技术方案是:
一种基于网络表示学习的组织层级划分方法,包括以下步骤:
一、基于层次拓扑结构特征的网络节点表示学习方法,获得节点向量表示;
二、将步骤一得到的节点向量表示作为聚类算法的输入,通过节点相似性聚类算法得到节点的层级划分结果。
进一步的,步骤一中,具体方法是:
(1)节点表示:对网络中任意一个节点,以该节点为中心,沿着原始图G=(V,E)中存在的边向外逐层扩展的方式获得该节点所在位置的局部范围内的节点信息,并将这些节点信息进行表示以获取该中心节点所在位置的局部拓扑结构信息,表示时采用逐层节点的绝对特征和相对特征两种方式来表示;
(2)二次图构建:计算图中的任意两个节点之间的距离,并依据此构建一个全新的包含原来所有节点的二次图,并将该距离通过相似度函数映射为二次图中两点之间的边权重,再以每个点自身为标准对与该点相连的所有权重进行归一化处理,之后根据权重阈值进行剪枝处理;
(3)向量学习:利用随机游走算法学习节点向量。
进一步的,步骤(1)节点表示时,输入原始图G=(V,E)、拓扑结构采样深度k和节点类别数kind;对于每一个节点,获取该节点的层次拓扑结构特征,将所有节点的特征构成特征表示集合F;
其中,原始图G=(V,E)是一个无权无向图,其中V={v1,v2,v3,…,vn}表示图中节点的集合,E={eij,1≤i,j≤n}表示图G的邻接矩阵,若vi和vj节点之间有一条边,则eij=eji=1,若无连边,则eij=eji=0;
采样深度k,表示以某个节点为中心向外逐层扩展采样时,对拓扑结构采样的最大深度。
进一步的,步骤(2)二次图构建时,根据步骤(1)获得的节点的层次拓扑结构特征计算任意两个节点之间的距离,并将该距离转化为节点之间相似度权值w;剪枝处理时,小于阈值的权值被置为0,将无权图转化为有权图。
进一步的,步骤(3)向量学习时,在二次图上,以每个节点为起点,沿最终的权重边进行偏随机游走,生成以该节点为起始的节点序列;然后借鉴自然语言中的词嵌入方法Skip-Gram方式对序列进行节点向量的学习,将局部拓扑结构的信息融入到节点的向量表示中。
进一步的,将步骤(3)得到的节点向量表示作为k-means聚类算法的输入,将局部拓扑结构相似的节点聚为一类,得到节点的层级划分结果,并输出。
前述的基于网络表示学习的组织层级划分方法的应用:在金融交易网络中,用于确定交易主体在整个交易网络中所处的层级位置,有效的帮助分析网络的整体结构,辅助经济侦查。
与现有技术相比,本发明优点在于:
(1)本发明的方法实现节点表示的位置无关性。通过对中心节点多层邻居节点动静态特征的表达实现采样中心节点局部拓扑结构的目的,使得节点的表示不局限于与另外单独某个节点的联系,而是与周围的多个节点均有联系。
(2)拓扑结构表示的层次化、动态化。逐层的表示节点周围的拓扑结构,且在表示中心节点时,使用周围节点的绝对特征和相对特征两类信息,符合将同一个节点与不同的节点结合看待时表现出的特征不同的现实情况。
(3)在算法层面对方法进行速度的优化。在算法中通过剪枝来减少算法运行时间,使其更加适应大数据量的任务。
(4)通过本发明的层级划分方法将层级结构中相似的节点聚为一类,使得节点的表示更加准确,组织层级划分结果也会更加准确。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的说明。
在介绍本发明实施例的方法之前,先给出部分符号代表的含义以及概念的定义。原始图G=(V,E)是一个无权无向图,其中V={v1,v2,v3,…,vn}表示图中节点的集合,E=[eij]n×n,1≤i,j≤n,表示图G的邻接矩阵,若vi和vj节点之间有一条边,则eij=eji=1,若无连边,则eij=eji=0,而网络表示学习的目的就是通过学习的方法获得一个映射f:vi→ui∈Rd且d<<|V|,其中d是实数空间R的维度,向量ui是一个属于Rd稠密向量。Diag(a1,a2,a3,...,an)表示n阶对角矩阵,其中ai为第i行第i列的元素并且由公式(1)计算:
定义1:最大采样深度k,表示以某个节点为中心向外逐层扩展(按照广度优先扩展原则)采样时,对拓扑结构采样的最大深度,也即最远探测到离中心点的距离。
定义2:二次图N=(V,W)是一个无向有权图,其中V与构成原始图G中的V相同,W为二次图的权重矩阵,W={wuv,1≤u,v≤n}。二次图是对原始图中每两个节点之间的结构距离进行计算后生成的一个完全图,该完全图中的边权重表示该边两个节点之间的拓扑结构之间的相似度。
下面结合图1介绍本发明的基于网络表示学习的组织层级划分方法,包括以下步骤:
一、基于层次拓扑结构特征的网络节点表示学习方法,获得节点向量表示。
具体方法是:
(1)节点表示:对网络中任意一个节点,以该节点为中心,沿着原始图G=(V,E)中存在的边向外逐层扩展(按照广度优先扩展的原则)的方式获得该节点所在位置的局部范围内的节点信息,并将这些节点信息进行表示以获取该中心节点所在位置的局部拓扑结构信息,表示时采用逐层节点的绝对特征和相对特征两种方式来表示。
步骤(1)节点表示时,输入原始图G=(V,E)、拓扑结构采样深度k和节点类别数kind;对于每一个节点,获取该节点的层次拓扑结构特征,将所有节点的特征构成特征表示集合F。
(2)二次图构建:计算图中的任意两个节点之间的距离,并依据此构建一个全新的包含原来所有节点的二次图,并将该距离通过相似度函数映射为二次图中两点之间的边权重,再以每个点自身为标准对与该点相连的所有权重进行归一化处理,之后根据权重阈值进行剪枝处理。
步骤(2)二次图构建时,根据步骤(1)获得的节点的层次拓扑结构特征计算任意两个节点之间的距离,并将该距离转化为节点之间相似度权值w;剪枝处理时,小于阈值的权值被置为0,将无权图转化为有权图。
(3)向量学习:利用随机游走算法学习节点向量。
步骤(3)向量学习时,在二次图上,以每个节点为起点,沿最终的权重边进行偏随机游走,生成以该节点为起始的节点序列。然后借鉴自然语言中的词嵌入方法Skip-Gram方式对序列进行节点向量的学习,将局部拓扑结构的信息融入到节点的向量表示中。
二、将步骤一得到的节点向量表示作为聚类算法的输入,通过节点相似性聚类算法得到节点的层级划分结果。
即将步骤(3)得到的节点向量表示作为k-means聚类算法的输入,将局部拓扑结构相似的节点聚为一类,得到节点的层级划分结果,并输出。
实施例1
下面再以举例的方式对本发明的实施方法做进一步的说明。
(1)节点表示
该部分是按照采样深度,以要表示的中心节点为原始节点向外进行拓扑结构采样,并为每个节点生成该点所在位置的拓扑结构特征表示。
进行逐层拓扑结构采样的时候,以中心节点为原点,中心节点的一阶邻居(直接相连的点)是深度为1的采样层,二阶邻居为深度为2的采样层,与二阶邻居相连的点为深度为3的采样层,以此类推。在逐层向外延伸采样的时候,将扩展到的每一层的节点用节点的度和层次隶属度进行表示,节点的度即绝对特征,隶属度则是相对特征。具体隶属度定义由下文的内联边数进行表示。所以本方法所获取节点的拓扑结构特征可以对节点在网络中的层级进行区分,即若按照树的形式对网络进行表示,在去中心化(即可以存在多个中心)的前提下,节点在网络中所处的层级划分。
以图2所示节点局部拓扑结构示意图为例,图中黑色节点为所要表示的中心节点,竖条纹节点(黑色中心节点的直接邻居)是离中心黑色节点深度k=1时采样到的节点,空白节点(竖条纹节点的直接邻居,黑色中心节点的间接邻居)是离中心黑色节点深度k=2时的采样到的节点,横条纹节点为k=3时采样到的节点,方格节点为k=4时采样到的节点。需要注意的是,若一个节点在第k层和第k+1层均能采样到,则取第k层为该节点的最终所属的层数,按照就近原则,每个节点只属于一层,在不同的层次之间,不允许存在重复的节点。
在此处,使用元组(degree,in-edge)表示在以某个节点向外扩展时,采样到的其他节点。其中degree表示该节点的度,in-edge表示内联边数,即该节点(被扩展节点)与同层节点相连的边的数目。可以知道的是,在同一个无权无向图中节点的度是不会改变的,所以是绝对特征;内联边数即为相对特征。
同时定义Sk(vc)是一个上文定义的元组(degree,in-edge)构成的集合,集合中的元组是在以vc为中心节点时,扩展到深度k时所包含的节点生成的元组,即示意图2中相同填充图案的节点对应的元组构成的集合。且定义集合中的元素为有序元素,按照元组中的第一个元素进行升序排序,排序的次关键字为元组中的第二个元素,同样是按照升序排列。
在扩展扫描过程中,需要对原始图中的每个节点均进行以该节点为中心的逐层扩展延伸采样,对采样到的每个点使用上文提到的元组(degree,in-edge)来表示,所以在以某个点v
c为中心进行整个扩展扫描过程中,会得到一个集合
称这个集合为节点v
c的拓扑特征表示集合。
(2)二次图构建
定义函数distance(v,u)表示最终求得任意两个节点v,u周围拓扑结构之间的差异程度,该差异程度使用以两点v,u的特征表示集合Fv,Fu之中的元素排列成的有序序列之间的距离表示。所以可以得到公式(2)。
(v,u∈V,v≠u,Si(v)∈Fv,Si(u)∈Fu)
定义函数dist(S(v),S(u))表示两个元组集合S(v),S(u)中的元素形成的有序序列之间的距离,采用的序列计算方法是DTW(Dynamic Time Wrapping)方法,该方法的目的是判断两个序列之间的最小匹配距离。实际中,使用的是FastDTW算法在提高速度的同时又能最大程度的保证准确性。用这个最小距离作为两个有序元组集合之间的差异度。根据DTW算法的思想,需要对序列中任意两个元素之间的差值给出计算的定义式。由于序列中的单个元素是元组,所以使用一个比例系数β,用来确定最终的距离是偏重于节点的度还是节点的内联边数。
所以下面给出元组元素差值定义函数,如公式(3)所示。
其中,函数d表示两个元组的差值,a,b分别表示不同的元组,则a1表示取元组的第一个元素,a2表示取元组的第二个元素,对于b同样适应。abs()是数学中的绝对值函数。
在此基础上,构建二次图。该图是一个节点关系图,是一个完全图,其中两点之间权重wuv=wvu表示两个节点之间通过前面的表示得到的局部拓扑结构之间的相似度,具体计算方式如公式(4)所示。
wuv=exp(-distance(u,v)) (4)
通过上式可以将两个节点之间的绝对距离通过自然指数映射为[0.1]区间的相似度。
(3)向量学习
此部分在前面生成的二次图上通过概率随机游走的方式获得与自然语言类似的节点序列;并通过word2vec方法中的Skip-Gram方式从节点序列中学习得到节点的向量嵌入,且在拓扑结构上相似的两个节点在向量空间里距离相近。
在游走之前,本实施例对算法的实践进行了适当的改进,将前文生成的二次图中的边权重通过权重标准化的方式,将与某个节点与其他节点相连的权重根据所有相连权重中最大值和最小值映射为[0,1]之间的数值,这样会使得二次图N中权重矩阵变为非对称矩阵。但是这个符合在概率随机游走的时候进行概率选择的实际情况,即u点从自己的邻居中选择v点的概率和v点从邻居中选择u点的概率是不同的,都是相对于节点自己所有邻居节点而言的。
同时通过加入权重采样阈值γ的方式,将权重小于γ的边去除,既能达到对复杂的二次图进行噪音去除的作用,又能将图的复杂度降低,使得在进行随机游走的时候减少多余的选择,降低算法运行时间。
(4)节点相似性聚类
将前面生成的节点向量表示作为k-means聚类算法的输入,得到节点的层级划分结果。
实施例2
本实施例提供基于网络表示学习的组织层级划分方法的应用。该方法能够利用与某些异常账户相关的金融交易流水信息构成的金融交易网络数据,使用网络表示学习方法自适应得到网络节点的拓扑结构向量表示,通过K-means等方法进行节点相似性聚类,得到组织层级划分结果。
本发明提出的组织层级划分方法能够基于网络节点的局部拓扑结构信息自适应生成网络节点的向量表示,进而将层级结构中相似的节点聚为一类。利用金融交易网络信息和网络节点的拓扑结构信息,能够取得很好的组织层级划分效果。在金融交易网络中,用于确定交易主体(一般为账户)在整个交易网络中所处的层级位置,有效的帮助分析网络的整体结构,辅助经济侦查。随着更多金融交易数据的出现,交易网络中节点局部拓扑结构得到进一步完善,节点的表示更加准确,组织层级划分结果也会更加准确。
此外,本发明的应用范围包括政治、经济、文化、医疗等各领域中网络数据的节点向量化表示,并将其用于分析网络的整体结构,确定网络中组织的层级结构和每个节点所处的层次,应用前景十分广泛。
当然,上述说明并非是对本发明的限制,本发明也并不限于上述举例,本技术领域的普通技术人员,在本发明的实质范围内,做出的变化、改型、添加或替换,都应属于本发明的保护范围。