本发明属于复杂网络分析,特别涉及一种基于节点特征和拓扑结构的链路预测方法。
背景技术:
1、目前大多数的传统链路预测方法主要是基于拓扑结构进行链路预测,而节点之间的拓扑结构并不是两个节点间存在连边的唯一原因,使得其不能总是获得理想的预测性能。随着数据表示和存储技术的迅速发展,越来越多网络的节点语义属性被挖掘了出来。比如,对于社交网络中的用户,其节点语义属性通常包括用户的年龄、性别、兴趣爱好、职业等,这些属性在一定程度上影响着节点之间产生连边的可能性。一般来说,具有相似语义属性的节点存在连接的可能性就越大。即如果两个节点的属性越相似,它们之间存在连接的可能性就越高。基于局部和半局部信息的节点相似度指标由于其简单性和高效性在中型和大规模复杂网络中的链路预测中具有一定适用性。然而,这些指标通常依赖于两个节点的共同邻居,即它们根据共同邻居的数量或拓扑结构来计算两个节点之间的连接概率。尽管这些指标能够快速提供节点之间的相似度估计,但它们可能会忽略一些更深层次的网络特征和节点之间潜在的复杂关联,因此在某些复杂网络的预测准确性和可靠性方面存在局限性。此外,观测或提取的数据中可能存在未被观测到或者错误观测的数据,这使得数据无法真实全面地反映现实网络中所包含的信息,从而影响对数据分析的处理。因此,基于非负矩阵分解方法重构原始网络是解决此类问题较为有效的方法。
技术实现思路
1、为了克服以上技术问题,本发明的目的在于提供一种基于节点特征和拓扑结构的链路预测方法,其不仅考虑了网络中拓扑结构,而且灵活地结合了网络的拓扑结构和节点特征的贡献,提高了预测的准确性。
2、为了实现上述目的,本发明采用的技术方案是:
3、一种基于节点特征和拓扑结构的链路预测方法,包括以下步骤;
4、步骤1:初始化auc,设auc=0;auc为该链路预测方法在一个具有n个节点的网络上的精确度;
5、步骤2:将一个网络中的已知连边集合e划分为训练集et和测试集ep;
6、步骤3:针对训练集et和测试集ep,分别构建其对应网络的邻接矩阵at和ap;以及针对对应网络生成其对应的节点特征矩阵c;
7、步骤4:对于该网络的邻接矩阵进行非负矩阵分解,即:
8、
9、步骤5:将该网络的节点特征矩阵进行非负矩阵分解,也即:
10、
11、然后,使用基于节点特征和拓扑结构的链路预测方法计算该网络任意两个节点间的相似度s,即:
12、s=(uv)
13、步骤6:利用训练集et,测试集ep以及相似度矩阵s计算精确度auc;
14、步骤7:返回该网络上的精确度aucavg和相似度矩阵s。
15、所述步骤2中,使用十折交叉验证方法将网络已知连边集合e划分为训练集et和测试集ep,e=et∪ep,et∩ep=ф。具体而言,首先将该网络中已知连边的集合e随机分割成十份。然后,每次将其中单独的一份作为测试集ep,剩余的九份作为训练集et,得到一个auc结果,重复这个过程十次。最后,采用这些方法在测试集上的平均aucavg结果作为其性能。
16、所述步骤3中,所述生成节点特征矩阵c过程步骤包括:
17、步骤3.1:针对属性网络,本发明直接使用了每个节点的语义属性。为了使每个属性具有同样的影响力,将节点语义属性矩阵进行归一化后,再使用pca对特征矩阵进行降维,提高了计算效率。
18、步骤3.2:针对无属性网络,本发明基于节点连边信息,也即邻接矩阵,计算节点连边信息之间的协方差,并将其作为节点特征矩阵。
19、所述步骤5中,所述本发明链路预测方法的过程步骤包括:
20、步骤5.1:设f=0,auc*=0,s*=0,其中,f∈[0,2]为衡量该网络任意两个节点间节点特征信息重要性的超级参数,auc*为不同超级参数f下该链路预测模型的最优精确度,s*为产生auc*的相似度矩阵;
21、步骤5.2:根据f值计算该网络任意两个节点间的相似度,结果保存在相似度矩阵s;
22、s=(uv)
23、本方法灵活地结合网络的拓扑结构和节点语义属性在链路预测中的贡献,以提高预测的准确性,其目标函数如下:
24、
25、基于标准梯度下降法更新u,v,和y的值,使得目标函数逐渐逼近最小值。迭代结束时得到的u、v和y,也即最优的u、v和y。u、v和y的更新规则和
26、步骤5.3:利用训练集et,测试集ep以及相似度矩阵s计算该f值下链路预测模型的精确度指标auc;
27、步骤5.4:如果auc大于auc*,则s*=s;
28、步骤5.5:对f进行优化,使其可以快速地搜索最佳超级参数;
29、步骤5.6:最后返回相似度矩阵s。
30、所述步骤7中,基于网络的拓扑结构和节点特征的链路预测方法,通过映射矩阵u和v来预测节点之间的相似度矩阵s,该矩阵包含了网络中尚未连边节点之间产生连边的可能性。具体而言,相似度矩阵s中某个位置的值越大,表示该位置对应的两个节点之间产生连边的可能性越大。利用相似度矩阵s,可以预测网络中不存在连边的两个节点之间产生连接的可能性大小。
31、本发明的有益效果。
32、本发明提供了一种基于节点特征和拓扑结构的链路预测方法。其首先基于非负矩阵分解对网络的邻接矩阵a进行分解。也即首先将a分解成两个低维的因子矩阵u和v,其次深入挖掘其节点特征,网络的节点特征矩阵c分解为u和y,提高了链路预测的准确性。此方法不仅适用于无属性网络中,而且可以用在属性网络中。
1.一种基于节点特征和拓扑结构的链路预测方法,其特征在于,包括以下步骤;
2.根据权利要求1所述的一种基于节点特征和拓扑结构的链路预测方法,其特征在于,所述步骤2中,使用十折交叉验证方法将网络已知连边集合e划分为训练集et和测试集ep,e=et∪ep,et∩ep=ф。具体而言,首先将该网络中已知连边的集合e随机分割成十份。然后,每次将其中单独的一份作为测试集ep,剩余的九份作为训练集et,得到一个auc结果,重复这个过程十次。最后,采用这些方法在测试集上的平均aucavg结果作为其性能。
3.根据权利要求1所述的一种基于节点特征和拓扑结构的链路预测方法,其特征在于,所述步骤3中,所述生成节点特征矩阵c过程步骤包括:
4.根据权利要求1所述的一种基于节点特征和拓扑结构的链路预测方法,其特征在于,所述步骤5中,所述本发明链路预测方法的过程步骤包括:
5.根据权利要求1所述的一种基于节点特征和拓扑结构的链路预测方法,其特征在于,所述步骤7中,基于网络的拓扑结构和节点特征的链路预测方法,通过映射矩阵u和v来预测节点之间的相似度矩阵s,该矩阵包含了网络中尚未连边节点之间产生连边的可能性。具体而言,相似度矩阵s中某个位置的值越大,表示该位置对应的两个节点之间产生连边的可能性越大。利用相似度矩阵s,可以预测网络中不存在连边的两个节点之间产生连接的可能性大小。