基于融合结构特征的属性网络表示学习方法与流程

文档序号:18195502发布日期:2019-07-17 05:49阅读:430来源:国知局
基于融合结构特征的属性网络表示学习方法与流程

本发明涉及网络表示学习领域,尤其涉及一种基于融合结构特征的属性网络表示学习方法。



背景技术:

社会生活中各种网络形式的存在,使得众多学者们开始涌向去分析网络,挖掘出所需要的信息。比如,社交网络中用户与用户之间的相互关注和互相添加好友的形式便可形成一个网络,通过该网络,我们可以挖掘出用户与用户之间的相关性和对用户聚类产生多个社区,便于后期的好友推荐、可能感兴趣的文章的推荐以及商品推荐等。学术网络中,文章与文章的引用和学者间的相互合作形成了两种不同类型的网络,通过分析这两个网络,我们可以知道文章所属的学科、分析学者们的合作模式、为学者推荐可能感兴趣的文章以及推测哪两个学者未来可能存在合作关系。

对于这些网络的分析,传统的方法往往基于图的结构数据。比如在聚类和社区发现中,先前学者们主要是通过矩阵分解的方法,然而该方法至少与节点的个数的平方成正比,具有极高的时间复杂度,对于有大量节点的图来说,没有很好的可度量性。由于一个图往往比较稀疏,对应的邻接矩阵的元素多为0且为离散的值、不连续,不利于拿来用于直接对图的分析。

网络表示学习在图的挖掘方面取得了很好的结果。网络表示学习是通过一个学习算法,将图上的每一个节点用一个n维的特征向量去表示,向量与向量之间的相关性表示了节点之间的相关性。被学习到的n个向量可以作为节点的n个特征值,能够通过现有的相关算法(比如线性回归等)进行后续工作,比如链路预测、网络聚类、情感分析以及节点分类等。



技术实现要素:

本发明主要解决现实网络中不仅节点的个数较多,属性也较多且复杂多样,现有属性网络表示学习方法计算复杂度较高,易忽略网络结构与节点属性相关性,导致网络节点分类的精确性和可靠性较差等技术问题,提出一种基于融合结构特征的属性网络表示学习方法,能够同时考虑节点属性和网络结构,不会因为节点和属性个数的增多而计算复杂。本发明的算法不仅具有可度量性,并且能够在属性缺失的情况下依然可以取得可观的结果。

本发明提供了一种基于融合结构特征的属性网络表示学习方法,包括以下过程:

步骤1,获取网络图数据;

步骤2,利用获取网络图数据,对结点属性的相似性进行属性建模,得到属性模型;

步骤3,利用获取网络图数据,对网络结构的相似性进行结构建模,得到结构模型;

步骤4,将步骤2得到的属性模型和步骤3得到的结构模型进行联合建模,得到最小化目标函数;

步骤5,设置学习过程的终止条件;

步骤6,根据步骤4得到的最小化目标函数和步骤5设置的终止条件,求得最小化目标函数的解,得到学习到的特征结果。

进一步的,步骤2,利用获取网络图数据,对结点属性的相似性进行属性建模,得到属性模型,具体包括:

将节点属性的相似性融合到嵌入向量中,用两个节点嵌入向量的点积去接近它们的属性亲近度,得到如下属性模型的最小化函数公式:

其中,ja表示属性模型的最小化函数,s表示节点的属性向量的余弦值矩阵,f表示矩阵的f范式,h∈rn*d表示所有节点的嵌入向量矩阵。

进一步的,步骤3,利用获取网络图数据,对网络结构的相似性进行结构建模,得到结构模型,具体包括:

对亲近度矩阵m进行分解,得到如下结构建模的最小化函数公式:

其中,jg表示结构模型的最小化函数,m表示亲近度矩阵,c表示为节点的文本向量矩阵。

本发明提供的一种基于融合结构特征的属性网络表示学习方法,首先对结点属性进行属性建模,然后对网络结构进行结构建模,之后将其合并进行联合建模,最后对算法进行优化,该算法更全面地利用了网络结构和节点的属性值,更好的体现两者的相关性,并可并行求解,具有很强的创新性,和一定的可行性与可靠性;本发明通过同时考虑了节点属性和网络结构,实现使节点属性的相似性更好的表示到嵌入向量的相似性当中,提高网络节点分类的精确性和可靠性。

附图说明

图1是本发明基于融合结构特征的属性网络表示学习方法的实现流程图;

图2(a)为本发明在网络节点分类中blogcatalog上的宏f值结果对比值;

图2(b)为本发明在网络节点分类中blogcatalog上的微f值结果对比值;

图3(a)为本发明在网络节点分类中flickr上的宏f值结果对比值;

图3(b)为本发明在网络节点分类中flickr上的微f值结果对比值;

图4(a)为本发明在网络节点分类中citeseer上的宏f值结果对比值;

图4(b)为本发明在网络节点分类中citeseer上的微f值结果对比值。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

图1是本发明基于融合结构特征的属性网络表示学习方法的实现流程图。如图1所示,本发明实施例提供的基于融合结构特征的属性网络表示学习方法包括以下过程:

步骤1,获取网络图数据。

网络图表示为g=(v,w,a),v表示网络图中所有节点的集合,n为网络图的节点个数,即n=|v|。w∈rn*n是邻接矩阵,若节点i到j有边,则wij表示i到j边的权重;否则wij为0。若该网络图所有的边都是无向边,则wij=wji。a∈rn*m表示该网络图节点的属性矩阵,其中m为属性个数。若节点i含有属性j,则aij表示含有该属性的个数,通常该值为1。

给定一个由上面所定义的网络图g,需要通过一个学习算法为一个节点i学习一个嵌入向量hi∈r1*d,其中d表示嵌入的维度且d远远小于n。让h∈rn*d表示所有节点的嵌入向量矩阵,每行代表一个节点的嵌入向量。被学习到的h能够同时在网络结构和节点属性信息两方面保存了节点之间的亲近度。

步骤2,利用获取网络图数据,对结点属性的相似性进行属性建模,得到属性模型,具体包括:

将节点属性的相似性融合到嵌入向量中,用两个节点嵌入向量的点积去接近它们的属性亲近度,得到如下属性模型的最小化函数公式:

其中,ja表示属性模型的最小化函数,s表示节点的属性向量的余弦值矩阵,f表示矩阵的f范式。

步骤3,利用获取网络图数据,对网络结构的相似性进行结构建模,得到结构模型,具体包括:

对亲近度矩阵m进行分解,得到如下结构建模的最小化函数公式:

其中,jg表示结构模型的最小化函数,c表示为节点的文本向量矩阵,。

步骤4,将步骤2得到的属性模型和步骤3得到的结构模型进行联合建模,得到最小化目标函数,具体包括:

联合属性模型的最小化函数公式(1)和结构建模的最小化函数公式(2),并设置一个参数λ去控制权重,得到联合建模的最小化目标函数,公式如下:

其中,λ表示控制权重的参数。

步骤5,设置学习过程的终止条件。

终止条件具体为w,a,λ,d,ρ的目标值,随机初始化矩阵h,h表示嵌入向量矩阵,ρ为惩罚参数,λ表示控制权重的参数。

步骤6,根据步骤4得到的最小化目标函数和步骤5设置的终止条件,求得最小化目标函数的解,得到学习到的特征结果,具体包括以下子步骤:

步骤601,令zk=hk,uk=0,k=0。

其中,z为中间变量u∈rn*d是被扩充的矩阵,ρ为惩罚参数。

步骤602,利用以下公式计算亲近度矩阵m并标准化,并计算节点的属性向量的余弦值矩阵s。

其中,t表示概率矩阵,即tij为由节点i出发到节点j的概率,t表示随机游走时的窗口大小。

步骤603,根据以下公式计算hk+1

其中,i表示为单位矩阵,若不满足终止条件则进行步骤604-607,若满足终止条件则得到最后的hk+1

步骤604,利用以下公式计算zk+1

步骤605,利用以下公式计算uk+1

uk+1=uk+(hk+1-zk+1)(7)

步骤606,将k+1赋值与k,即k=k+1。

步骤607,若不满足终止条件,返回步骤603;若满足终止条件,此时得到最后的hk+1

经过步骤601-607学习到的特征结果,最终得到网络图的特征矩阵。

本发明可应用于网络节点分类领域,为了评估本发明提供的方法对分类的有效性,采用被广泛使用的宏f和微f作为评估方法,将sanr与其他aane,tadw,node2vec算法相比较,过程如下:

将整个网络放在表示学习算法中学习,为每一个节点学习一个向量表示。然后将节点任意分为训练集和测试集,训练集是假设已知标签的节点,而测试集是未知标签的节点,目标是为这些节点分类。在整个实验中,训练集的比例分别设为10%、20%、30%、40%以及50%,其它的都为测试集。在分类任务中,统一用python编写所有的算法代码,并将学习到的向量统一用sklearn库中默认的线性svm进行分类。嵌入的维度都设置为100维,对于本算法sanr,在blogcatalog和citeseer,将矩阵的最高阶设置为3,在flickr中,将该值设置为2;调整λ至最优的状态,所有的实验进行10次,结果取平均值。

对于node2vec,调节p和q,即在{0.25,0.5,1.0,2.0,4.0}中选择;步数和步长按照学者的源代码,分别设置为10和80;窗口大小设置为10;调节迭代次数至最优。对于tadw,矩阵的最高阶按照本发明的方法设置为2;迭代次数为20;调整λ至最优。对于aane,调整λ和迭代次数至最优。

利用宏f和微f作为评估方法,这是两种f值的计算方式。f值的计算方式为公式(8),tp为真正例个数,fp为加正例个数,fn为假反例个数。宏f是所有的f值的平均,微f是f值的加权平均,见公式(9)和(10)。

图2(a)为本发明在网络节点分类中blogcatalog上的宏f值结果对比值;图2(b)为本发明在网络节点分类中blogcatalog上的微f值结果对比值;图3(a)为本发明在网络节点分类中flickr上的宏f值结果对比值;图3(b)为本发明在网络节点分类中flickr上的微f值结果对比值;图4(a)为本发明在网络节点分类中citeseer上的宏f值结果对比值;图4(b)为本发明在网络节点分类中citeseer上的微f值结果对比值。参照图2、图3和图4,从上面三个分类结果中,可以看到同时包含网络结构和节点属性的表示学习方法要明显好于只基于纯网络结构的学习算法。在blogcatalog和flickr上,算法sanr要比node2vec好30%左右,而在citeseer上要好20%左右;同时aane和tadw的结果也远远领先于node2vec。由于网络结构可能存在不全性,即使相似的节点也可能没有边的连接;或者含有很多的噪声,不相干的节点或许因为某种原因而聚在了一起,这些原因都可以使得node2vec无法取得更好的效果。而包含了节点属性,可以用这些属性去弥补结构上的缺陷,实验结果也证明了这样做的有效性。同时也注意到tadw和node2vec的想法都来与deepwalk,但tadw的用属性改进了算法,而node2vec考虑了更多的网络结构而改进了算法。从上面的三个分类的图中可以看出,通过属性改进的算法要明显好于只改进了网络结构的算法。

对于三个包含节点属性的算法sanr,aane和tadw,可以发现算法sanr在这三个数据集上的分类效果都要好于其它两个算法,即使测试集的比例在10%也取得了不错的效果。aane过于考虑节点的属性,忽略了节点在网络结构方面的相似性;tadw只是简单的将节点属性包含在了矩阵分解过程中,没有深入了解节点属性对学习算法的影响。而sanr同时考虑了节点属性和网络结构,这两者的相互补充使该算法要好于前两者。从图中,可以发现本发明的算法sanr在部分数据集上取得了更为显著的效果。比如在flickr上,本发明的算法要好于aane约5%,好于tadw约8%。在blogcatalog要好于aane约5%,好于tadw约3%。同时可以发现,随着训练集的减少,本发明结果的下降速率要比tadw缓慢,虽然在这方面对比与aane没有取得明显的优势,这主要是因为算法sanr和aane同时深度考虑了节点属性的影响,即使在训练集很少时,算法依然稳定。

本发明提供的一种基于融合结构特征的属性网络表示学习方法,首先对结点属性进行属性建模,然后对网络结构进行结构建模,之后将其合并进行联合建模,最后对算法进行优化,该算法更全面地利用了网络结构和节点的属性值,并可并行求解,具有很强的创新性,和一定的可行性与可靠性;本发明通过同时考虑了节点属性和网络结构,实现使节点属性的相似性更好的表示到嵌入向量的相似性当中,提高网络节点分类的精确性和可靠性。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1