本发明属于社交网络数据挖掘领域,更具体地,涉及一种基于三角子图划分的社交网络子图嵌入方法及系统。
背景技术:
随着互联网的兴起,社交网络相关的应用(如qq,微信,微博等)变得越来越普及,基于社交网络的数据挖掘任务(如用户分类,朋友推荐等)也变得越来越重要。网络图是表示社交网络的一种十分方便且有效的工具,将社交网络中的用户表示为网络图中的节点,将社交网络中用户之间的关系表示为网络图中的边,在有向的网络图中,则以关系发起者为有向边的起点,以关系接受者为有向边的重点,这样,针对社交网络的相关研究便可抽象简化为对网络图的研究。网络科学领域的研究人员传统上依靠用户定义的启发式方法从复杂网络中提取特征,从而实现对所表示的社交网络的研究。
近年来,研究者开始广泛使用基于深度学习的方法将网络自动编码到低维度的向量空间中。deepwalk是第一个被提出来使用表示学习(或深度学习)社区的技术的网络嵌入方法。deepwalk通过将节点视为单词并生成短随机游走作为句子来弥补网络嵌入和单词嵌入之间的差距。然后,可以将诸如skip-gram之类的神经语言模型应用于这些随机游走以获得网络嵌入。line则采用广度优先搜索策略来生成上下文节点:只有距离给定节点最多两跳的节点才被视为其相邻节点。此外,与deepwalk中使用的分层softmax相比,它使用负采样来优化skip-gram模型。node2vec是deepwalk的扩展,它引入了一个偏向的随机步行程序,结合了bfs风格和dfs风格的邻域探索。
这些网络表示学习的方法相较传统方法更为轻松,而且在基于网络的相关任务中都展示了不错的结果。然而,目前该领域的这些方法主要集中在节点级嵌入,忽略了网络中子结构的信息,但是,节点级嵌入只是微观结构的嵌入,仅仅研究网络图中的节点级嵌入,会忽略社交网络中用户的群体属性(例如家庭属性),进而会影响节点分类、链路预测等下游应用的准确性。
技术实现要素:
针对现有技术的缺陷和改进需求,本发明提供了一种基于三角子图划分的社交网络子图嵌入方法及系统,其目的在于,将社交网络图中的三角子图嵌入到向量空间中,提高社交网络相关任务的准确度。
为实现上述目的,按照本发明的第一方面,提供了一种基于三角子图划分的社交网络子图子图嵌入方法,包括:
(1)将用于表示社交网络的网络图划分为三角结构子图和桥接节点;
(2)以划分得到的三角结构子图和桥接节点为虚拟节点,根据三角结构子图之间、桥接节点之间以及三角结构子图与桥接节点之间的连接关系建立虚拟节点之间的虚拟边,由虚拟节点和虚拟边构成转换图;
(3)采用随机游走策略对转换图中的每一个虚拟节点进行上下文采用,以抽取出每个虚拟节点的上下文样本;
(4)将所抽取的上下文样本依次输入到已训练好的词嵌入模型中,得到转换图中每一个虚拟节点的向量表示,从而将社交网络图中的三角子图嵌入到向量空间中。
三角结构子图,是网络图中由3个节点组成的连通图,反映了实际的社交网络中存在紧密联系的三个用户之间的关系;桥接节点是网络图中,具有一定重要性的独立节点,例如跨领域的社交网络用户所对应的节点;本发明将用于表示社交网络的网络图划分为三角结构子图和桥接节点,用虚拟节点进行表示,并定义虚拟节点之间的连接,得到了一个缩小版的转换图,并在转换图的基础上将虚拟节点嵌入向量空间,成功地将网络图中的子图嵌入了向量空间,从而在网络嵌入的过程中,保留了社交网络用户的群体属性,提高了社交网络相关任务的准确度。
进一步地,三角结构子图包括闭环三角形和开环三角形。
闭环三角形中任意两点间均存在边,而开环三角形则存在一对顶点彼此之间没有直接的边相连;三角形的闭合过程反映了社交网络演化的基本机理;本发明在对网络图进行三角划分时,同时考虑了闭环三角形和开环三角形,能够在将三角网络子图嵌入向量空间的同时,很好地研究社交网络的演化特征。
进一步地,步骤(1)包括:
(11)将网络图中节点的状态均初始化为未标记的状态,以表示所有节点均未被划分到三角结构子图中,也未被识别为桥接节点,并随机选取一个未标记的节点;
(12)识别所选取节点的类型,若为边缘节点,则将其剔除后,转入步骤(16);若为桥接节点,则对当前被识别为桥接节点的节点均进行标记后,转入步骤(16);若为普通节点,则转入步骤(13);
(13)若所选取节点的未标记的邻居节点数量大于等于2,则将所选取节点作为中心节点,并转入步骤(14);若所选取节点只有一个未标记的邻居节点,则将该未标记的邻居节点作为中心节点,并转入步骤(15);
(14)在所有未标的记节点中,搜索包含中心节点的三角结构子图,将熵值最大的三角结构子图确定为最终的三角结构子图,并标记其中的三个节点,之后转入步骤(16);
(15)在所有未标记的节点中,搜索同时包含中心节点和所选取节点的三角结构子图,将熵值最大的三角结构子图确定为最终的三角结构子图,并标记其中的三个节点,之后转入步骤(16);
(16)若还存在未标记的节点,则选取一个未标记的节点后,转入步骤(12);否则,划分结束;
其中,三角结构子图的熵值用于衡量其内部连接的紧密程度。
边缘节点是处于网络图边缘,对网络影响较小的节点,例如社交网络中“僵尸用户”所对应的节点;桥接节点是是网络图中,具有一定重要性的独立节点,该节点在网络图中接近网络中心,但不能与其他未标记节点构成三角结构子图;本发明在对网络图进行三角划分的过程中,剔除边缘节点,并保留桥接节点,既能够保证网络的完整性,又能够避免将过多的注意力投入到无用信息上。
本发明在对网络图进行三角划分时,会选取熵值最大的三角结构子图,即内部链接最为紧密的三角结构子图,由此保证了所划分得到的子图能够最大程度上保留用户的群体属性,从而最大化社交网络相关任务的准确度。
进一步地,步骤(12)中,识别所选取节点的类型,其方法包括:
若其未标记的邻居节点数量小于等于1,且其不能与其他未标记的节点组成三角结构子图,则将其识别为边缘节点;
若所选取节点的邻居节点数量大于等于2,且其邻居节点均已被标记,则将其识别为桥接节点;
若所选取节点的邻居节点数量大于等于2,且只有一个未标记的邻居节点,并且该未标记的邻居节点的所有邻居节点中,只有所选取节点为未标记的节点,则将所选取节点及其未标记的节点均识别为桥接节点;
在其他情况下,将所选取节点识别为普通节点。
进一步地,步骤(16)中,选取未标记的节点时,优先从已标记的节点的邻居节点中选取。
本发明在选取未标记节点时,优先从已标记的节点的邻居节点中选取,能够通过广度优先搜索(bfs)的方式遍历网络图中的节点,从网络图中划分出尽可能多的三角结构子图。
进一步地,三角结构子图的熵值为三角结构子图内部边的权重之和。
进一步地,步骤(2)包括:
以划分得到的三角结构子图和桥接节点为虚拟节点;
以三角结构子图内节点与另一个三角子图内节点之间边的数量作为对应的两个虚拟节点之间虚拟边的权重,以三角结构子图内节点与桥接节点之间边的数量作为对应的两个虚拟节点之间虚拟边的权重,并以两个桥接节点之间边的数量作为对应两个虚拟节点之间虚拟边的权重,在虚拟边的权重不为0的两个虚拟节点之间建立一条相应权重的虚拟边;
由虚拟节点和虚拟边构成转换图。
进一步地,步骤(3)中,在随机游走的过程中,两个三角结构子图所对应的虚拟节点之间的转移概率,为这两个三角结构子图之间的相似度与这两个虚拟节点间虚拟边的权重的乘积;
三角结构子图所对应的虚拟节点与桥接节点所对应的虚拟节点之间的转移概率,以及两个桥接节点所对应的虚拟节点之间的转移概率,均为指定值。
三角结构子图之间的相似度反映了子图内部结构的相似性,虚拟节点之间虚拟边的权重反映了子图之间的外部相似性,本发明在随机游走的过程中,以三角结构子图之间的相似度和虚拟节点之间虚拟边的权重的乘积,作为相应虚拟节点间的转移概率,能够同时考虑子图内部和外部的相似性,使得相似性高的子图能够被采样到同一个上下文样本中,从而相似性高的子图在低维度的向量空间中彼此接近。
进一步地,三角结构子图之间的相似度,为这两个三角结构子图的邻接矩阵之间的相关系数。
按照本发明的第二方面,提供了一种基于三角子图划分的社交网络子图嵌入系统,包括:三角划分模块、转换图构建模块、上下文采样模块以及子图嵌入模块;
三角划分模块,用于将用于表示社交网络的网络图划分为三角结构子图和桥接节点;
转换图构建模块,用于以划分得到的三角结构子图和桥接节点为虚拟节点,根据三角结构子图之间、桥接节点之间以及三角结构子图与桥接节点之间的连接关系建立虚拟节点之间的虚拟边,由虚拟节点和虚拟边构成转换图;
上下文采样模块,用于采用随机游走策略对转换图中的每一个虚拟节点进行上下文采用,以抽取出每个虚拟节点的上下文样本;
子图嵌入模块,用于将所抽取的上下文样本依次输入到已训练好的词嵌入模型中,得到转换图中每一个虚拟节点的向量表示,从而将社交网络图中的三角子图嵌入到向量空间中。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明将用于表示社交网络的网络图划分为三角结构子图和桥接节点,用虚拟节点进行表示,并定义虚拟节点之间的连接,得到了一个缩小版的转换图,并在转换图的基础上将虚拟节点嵌入向量空间,成功地将网络图中的子图嵌入了向量空间,从而在网络嵌入的过程中,保留了社交网络用户的群体属性,提高了社交网络相关任务的准确度。
(2)本发明在对网络图进行三角划分的过程中,剔除边缘节点,并保留桥接节点,既能够保证网络的完整性,又能够避免将过多的注意力投入到无用信息上;选取熵值最大的三角结构子图进行标记,即内部链接最为紧密的三角结构子图,由此保证了所划分得到的子图能够最大程度上保留用户的群体属性,从而最大化社交网络相关任务的准确度。
(3)本发明在选取未标记节点时,优先从已标记的节点的邻居节点中选取,能够通过广度优先搜索(bfs)的方式遍历网络图中的节点,从网络图中划分出尽可能多的三角结构子图。
(4)本发明在随机游走的过程中,以三角结构子图之间的相似度和虚拟节点之间虚拟边的权重的乘积,作为相应虚拟节点间的转移概率,能够同时考虑子图内部和外部的相似性,使得相似性高的子图能够被采样到同一个上下文样本中,从而相似性高的子图在低维度的向量空间中彼此接近。
附图说明
图1为本发明实施例提供的基于三角子图划分的社交网络子图嵌入方法流程图;
图2为本发明实施例提供的将网络图划分为三角结构子图和桥接节点的方法示意图;
图3为本发明实施例提供的基于三角子图划分的社交网络子图嵌入方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了将社交网络图中的三角子图嵌入到向量空间中,提高社交网络相关任务的准确度,本发明提供的基于三角子图划分的社交网络子图嵌入方法,如图1包括:
(1)将用于表示社交网络的网络图划分为三角结构子图和桥接节点;
三角子图是网络图中的最小子图结构,是由3个节点组成的连通图,反映了实际的社交网络中存在紧密联系的三个用户之间的关系;
在本发明实施例中,所划分的三角结构子图包括闭环三角形和开环三角形,闭环三角形中任意两点间均存在边,而开环三角形则存在一对顶点彼此之间没有直接的边相连;三角形的闭合过程反映了社交网络演化的基本机理;本发明在对网络图进行三角划分时,同时考虑了闭环三角形和开环三角形,能够在将三角网络子图嵌入向量空间的同时,很好地研究社交网络的演化特征;
根据社交网络中用户的影响程度不同,相应地,可以将网络图中的节点分为三类:边缘节点、桥接节点和普通节点;
桥接节点是网络图中,具有一定重要性的独立节点,例如跨领域的社交网络用户所对应的节点,该节点在网络图中接近网络中心,但不能与其他未标记节点构成三角结构子图;
边缘节点是处于网络图边缘,对网络影响较小的节点,例如社交网络中“僵尸用户”所对应的节点;
普通节点,则是可以与其他未标记节点构成三角结构子图的节点;
在本发明实施例中,如图2所示,步骤(1)具体包括:
(11)将网络图中节点的状态均初始化为未标记的状态,以表示所有节点均未被划分到三角结构子图中,也未被识别为桥接节点,并随机选取一个未标记的节点;相应地,若节点已标记,则表示该节点已经被划分到某一个三角结构子图中,或者该节点已经被识别为桥接节点;
(12)识别所选取节点的类型,若为边缘节点,如图2中的空心圆节点,则将其剔除后,转入步骤(16);若为桥接节点,如图2转换过程中保留的实心圆节点,则对当前被识别为桥接节点的节点保留后,转入步骤(16);若为普通节点,如图2中会被标记为星形的节点,则转入步骤(13);
根据社交网络图中边缘节点、桥接节点以及普通节点的特性,在上述基于三角子图划分的社交网络子图嵌入方法中,步骤(12)中,识别所选取节点的类型,其方法具体包括:
若其未标记的邻居节点数量小于等于1,且其不能与其他未标记的节点组成三角结构子图,则将其识别为边缘节点;
若所选取节点的邻居节点数量大于等于2,且其邻居节点均已被标记,则将其识别为桥接节点;
若所选取节点的邻居节点数量大于等于2,且只有一个未标记的邻居节点,并且该未标记的邻居节点的所有邻居节点中,只有所选取节点为未标记的节点,则将所选取节点及其未标记的节点均识别为桥接节点;
在其他情况下,将所选取节点识别为普通节点;
(13)若所选取节点的未标记的邻居节点数量大于等于2,则将所选取节点作为中心节点,并转入步骤(14);若所选取节点只有一个未标记的邻居节点,则将该未标记的邻居节点作为中心节点,并转入步骤(15);
(14)在所有未标的记节点中,搜索包含中心节点的三角结构子图,将熵值最大的三角结构子图确定为最终的三角结构子图,并标记其中的三个节点,之后转入步骤(16);
(15)在所有未标记的节点中,搜索同时包含中心节点和所选取节点的三角结构子图,将熵值最大的三角结构子图确定为最终的三角结构子图,并标记其中的三个节点,之后转入步骤(16);其中,三角结构子图的熵值用于衡量其内部连接的紧密程度;可选地,可以定义三角结构子图的熵值为三角结构子图内部边的权重之和;
(16)若还存在未标记的节点,则选取一个未标记的节点后,转入步骤(12);否则,划分结束;
优选地,步骤(16)中,选取未标记的节点时,优先从已标记的节点的邻居节点中选取;由此能够通过广度优先搜索(bfs)的方式遍历网络图中的节点,从网络图中划分出尽可能多的三角结构子图;
本实施例在对网络图进行三角划分的过程中,剔除边缘节点,并保留桥接节点,既能够保证网络的完整性,又能够避免将过多的注意力投入到无用信息上;选取熵值最大的三角结构子图,即内部链接最为紧密的三角结构子图,由此保证了所划分得到的子图能够最大程度上保留用户的群体属性,从而最大化社交网络相关任务的准确度;
(2)以划分得到的三角结构子图和桥接节点为虚拟节点,根据三角结构子图之间、桥接节点之间以及三角结构子图与桥接节点之间的连接关系建立虚拟节点之间的虚拟边,由虚拟节点和虚拟边构成转换图;
在一个可选的实施方式中,步骤(2)具体包括:
以划分得到的三角结构子图和桥接节点为虚拟节点;
以三角结构子图内节点与另一个三角子图内节点之间边的数量作为对应的两个虚拟节点之间虚拟边的权重,以三角结构子图内节点与桥接节点之间边的数量作为对应的两个虚拟节点之间虚拟边的权重,并以两个桥接节点之间边的数量作为对应两个虚拟节点之间虚拟边的权重,在虚拟边的权重不为0的两个虚拟节点之间建立一条相应权重的虚拟边;
由虚拟节点和虚拟边构成转换图;本实施例中,最终得到的转换图如图3所示,其中三角形的节点,为三角结构子图所对应的虚拟节点,圆形的节点为桥接节点所对应的虚拟节点;
(3)采用随机游走策略对转换图中的每一个虚拟节点进行上下文采用,以抽取出每个虚拟节点的上下文样本;
随机游走是一种经典的复杂网络采样算法,指给定一个复杂网络和一个起始节点,随机地选择并按照相应的转移概率转移到一个邻居结点,然后再以所选邻居节点为出发点,重复以上过程,直至达到指定的游走长度,最终得到的节点序列,即为采样得到的上下文样本;网络各节点均采样一次后,即完成了对网络的一次随机游走,在随机游走的过程中,根据实际设定的游走次数,可能会进行多次随机游走;
在一个可选的实施方式中,步骤(3)中,在随机游走的过程中,两个三角结构子图所对应的虚拟节点之间的转移概率,为这两个三角结构子图之间的相似度与这两个虚拟节点间虚拟边的权重的乘积;
三角结构子图所对应的虚拟节点与桥接节点所对应的虚拟节点之间的转移概率,以及两个桥接节点所对应的虚拟节点之间的转移概率,均为指定值;
三角结构子图之间的相似度反映了子图内部结构的相似性,虚拟节点之间虚拟边的权重反映了子图之间的外部相似性,本发明在随机游走的过程中,以三角结构子图之间的相似度和虚拟节点之间虚拟边的权重的乘积,作为相应虚拟节点间的转移概率,能够同时考虑子图内部和外部的相似性,使得相似性高的子图能够被采样到同一个上下文样本中,从而相似性高的子图在低维度的向量空间中彼此接近;
在随机游走的过程中,桥接节点仅起到过渡作用,因此,桥接节点所对应的虚拟节点与其他虚拟节点之间的转移概率,根据实际应用特性设定为指定值即可,根据实验经验,指定值的范围设置为0.1~0.3效果更好,既能避免值过低时游走容易陷入局部结构,又能避免值过高时使上下文样本中的桥接节点比例过高,从而影响三角结构子图的嵌入效果;
可选地,三角结构子图之间的相似度,为这两个三角结构子图的邻接矩阵之间的相关系数;邻接矩阵用于表示子图内部的连接情况,行和列的索引表示子图内部的节点,元素值表示节点间是否存在边;
(4)将所抽取的上下文样本依次输入到已训练好的词嵌入模型中,得到转换图中每一个虚拟节点的向量表示,从而将社交网络图中的三角子图嵌入到向量空间中;
词嵌入模型可以是word2vec模型、skip-gram模型、glove模型或其他任意一种词嵌入模型,利用常见的大型语料库进行常规训练即可。
如图3所示,本发明经过步骤(1)~(2),将原始的社交网络图转换成了缩小版的转换图;经过步骤(3)~(4),将社交网络图中的三角结构子图嵌入到了向量空间中。
上述基于三角子图划分的社交网络子图嵌入方法,将用于表示社交网络的网络图划分为三角结构子图和桥接节点,用虚拟节点进行表示,并定义虚拟节点之间的连接,得到了一个缩小版的转换图,并在转换图的基础上将虚拟节点嵌入向量空间,成功地将网络图中的子图嵌入了向量空间,从而在网络嵌入的过程中,保留了社交网络用户的群体属性,提高了社交网络相关任务的准确度。
按照本发明的第二方面,提供了一种基于三角子图划分的社交网络子图嵌入系统,包括:三角划分模块、转换图构建模块、上下文采样模块以及子图嵌入模块;
三角划分模块,用于将用于表示社交网络的网络图划分为三角结构子图和桥接节点;
转换图构建模块,用于以划分得到的三角结构子图和桥接节点为虚拟节点,根据三角结构子图之间、桥接节点之间以及三角结构子图与桥接节点之间的连接关系建立虚拟节点之间的虚拟边,由虚拟节点和虚拟边构成转换图;
上下文采样模块,用于采用随机游走策略对转换图中的每一个虚拟节点进行上下文采用,以抽取出每个虚拟节点的上下文样本;
子图嵌入模块,用于将所抽取的上下文样本依次输入到已训练好的词嵌入模型中,得到转换图中每一个虚拟节点的向量表示,从而将社交网络图中的三角子图嵌入到向量空间中;
在本发明实施例中,各模块的具体实施方式可参考上述方法实施例中的描述,在此将不作复述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。