买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:重庆邮电大学
摘要:本发明提供一种基于融合Node2vec与Struc2vec的两级Stacking链路预测方法,属于复杂网络分析领域。该方法采用了Node2vec和Struc2vec算法来提取节点特征并构建连边特征向量,该特征向量可以充分学习网络节点近邻相似性和结构相似性信息,然后这些向量被用作链接预测方法的输入。针对单一机器学习算法在链路预测中精度不高的问题,将SVM、XGBoost和MLP作为基分类器,LogisticRegression作为二层分类器构成了整个Stacking方法。在多个真实网络中进行试验,通过评估指标比对分析了方法及其基分类器效能,验证了集成学习算法的有效性,可以在整体上提升预测精度。
主权项:1.一种基于网络表示学习的链路预测方法,其特征在于,该方法具体包括以下步骤:步骤1:数据集预处理1设GV,E表示无向图,其中V代表节点集合,|V|表示节点总数,E表示所有链接的集合,|E|表示链接的总数,|U|表示所有可能的链接数,其中则不存在的链接集合为U-E。2在无向图GV,E中,将所有已知链接E都视为正样本,相反不在图中的链接U-E视为负样本。一般来说,数据集中负样本的数量远远大于正样本。这种不平衡可能会导致模型对数量较多的类别学习得更好,而对数量较少的类别学习不足,影响模型在未知数据上的泛化能力。因此,为保证正样本和负样本的数量相同,随机选择了相同数量的负样本进入数据集Em。3将数据集Em分为两部分:训练集EmP与测试集EmT。EmP用于输入至Node2vec与Struc2vec模型训练节点嵌入,EmT用于网络节点间可能出现的链接预测。为了减少由于数据集划分不合理而引起的模型评估偏差,采用k-fold交叉验证,具体步骤如下:1将数据集Em分成k个近似大小的互斥子集。2对于每个子集i,在剩余的k-1个子集上训练模型即EmP,并在第i个子集即EmT上进行验证。3计算模型在每次验证上的性能指标,包括准确率、AUC值、F1分数、精确度和召回率。4对k次验证的结果取平均值,作为模型的最终性能评估指标。4采用了五个标准的评估指标来量化算法的预测性能:准确率、AUC值、F1分数、精确度和召回率。使用的评估指标的数学计算解释如下:TP表示真阳性:模型将存在链接预测为正类别的样本数。TN表示真阴性:模型将不存在链接预测为负类别的样本数。FP表示假阳性:模型将不存在链接预测为正类别的样本数。FN表示假阴性:模型将存在链接预测为负类别的样本数。准确率:模型正确分类的样本数占总样本数的比例,计算公式为: AUC值:ROC曲线下的面积,取值范围为0.5到1,值越大表示分类器性能越好,计算公式为: 其中,n0和n1分别是节点对有链接和无链接的个数,S0=∑ri,其中ri是排名列表中第i个存在链接的节点对的排名。F1分数:精确度和召回率的调和平均数,F1分数越高表示模型在精确度和召回率之间取得了更好的平衡,计算公式为: 精确度:在所有被分类为正类别的样本中,实际为正类别的样本数占总被分类为正类别的样本数的比例,计算公式为: 召回率:在所有实际为正类别的样本中,被正确分类为正类别的样本数占总实际为正类别的样本数的比例,计算公式为: 步骤2:利用Node2vec算法与Struc2vec算法分别对网络进行节点嵌入1Node2vec首先进行随机游走采样得到随机游走序列,给定当前节点v,访问下一节点k的概率如式6所示: 其中πvk表示节点v和节点k之间的未归一化转移概率,Z是归一化常数。然后引入可以控制回溯率的超参数p和q控制偏向广度优先采样还是深度优先采样,实现有偏向性地控制随机游走节点采样。假设一个随机游走路径刚经过边s,v,现在停留在节点v,设置πvk=αpqs,kωvk,其中ωvk是节点v和节点k之间的权重,αpqs,k如式7所示: 其中dsk表示节点s和节点k之间的最短路径距离,对于上一节点为s的节点v。若p<1q>1则游走偏广度优先遍历,着重刻画局部信息;若p>1q<1则游走偏深度优先遍历,着重刻画全局信息。偏置参数的添加虽增加了算法的计算量,但使算法拥有了更高的可扩展性。接着将在网络上进行随机游走得到的节点序列看作Word2vec中的文本语料库,再经过skip-gram模型训练生成节点的向量表示。2同理,Struc2vec考虑两个节点的k跳邻域,计算节点u和节点v的结构距离表达式为: 其中,sS为对某个节点集合S中的节点按照度的从小到大顺序排序后形成的序列,gD1,D2表示两个有序的序列D1,D2的距离,sRku,sRkv分别表示与节点u和节点v距离为k的节点按照度大小排序后的度序列。节点对结构距离越小,那么节点对就越相似。针对任意节点u和v生成相同维度为d的低维稠密向量Nu、Su和Nv、Sv。3将两种嵌入向量Nu和Su串联起来作为节点u的最终表示向量Eu,同样节点v的最终表示向量为Ev,再将Eu和Ev做Hadamard运算得到节点u,v的边表示向量Euv。Hadamard旨在将两个相同大小的向量逐元素相乘,即算公式为: 4将边向量Euv输送到下一个阶段,并将这些表示视为一级分类器的输入。步骤3:两级Stacking框架搭建1使用集成学习中的Stacking模型,先训练三个一级分类器。在这个阶段,使用的分类器包括Xgboost、SVM和MLP,每个分类器将生成一个输出。具体步骤为:1训练Xgboost分类器:使用边向量Euv作为特征,将每条边的类别作为标签,训练Xgboost分类器。默认参数设置:树的最大深度max_depth设为3,学习率learning_rate设为0.1,决策树的数量n_estimators设为100,其他参数使用默认值或者默认策略。2训练SVM分类器:同样使用边向量Euv作为特征,将每条边的类别作为标签,训练SVM分类器。默认参数设置:惩罚参数C设为1.0,核函数kernel设为rbf,核系数gamma设为scale。3训练MLP分类器:使用边向量Euv作为输入特征,将每条边的类别作为标签,训练MLP分类器。默认参数设置:激活函数activation设为relu,优化算法solver设为adam,L2正则化参数alpha设为0.0001,初始学习率learning_rate_init设为0.001,最大迭代次数max_iter设为200。4分别使用训练好的Xgboost、SVM和MLP分类器,对每条链接进行分类预测,得到三个一级分类器的输出结果。2将三个一级分类器的预测值组合起来作为特征集,使用逻辑回归LR对训练集EmP进行训练并对测试集EmT来进行最终的预测。
全文数据:
权利要求:
百度查询: 重庆邮电大学 一种基于网络表示学习的链路预测方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。