一种基于深度置信网络的链路预测方法与流程

文档序号:11627736阅读:1066来源:国知局
一种基于深度置信网络的链路预测方法与流程

本发明属于人工神经网络技术领域,具体涉及一种基于深度置信网络的链路预测方法。



背景技术:

基于游走的网络表示学习算法,例如deepwalk,是利用了word2vec的理论方法,将网络中的结点与自然语言处理中的词单元进行了类比,将网络中的一条一条的连接路径类比作自然语言处理中的一条语句;利用概率语言模型中求解每一个词语之间共现关系(即所有的条件概率参数)的方法来探讨网络结点之间的连接结构;利用生成词向量的方法生成了网络中结点的向量表示方法。通过这种类比算法得到的网络结点的向量,反映了对应网络结点与周围邻居结点联系的结构特征,同时实现了网络结点的低维向量表示,这就为针对网络数据的一些数据挖掘问题,比如网络结点分类,链路预测,社区发现等等,提供了一个新的使用机器学习算法进行处理或是优化的思路。

深度学习是机器学习的一个分支,是基于传统人工神经网络计算模型,利用新的训练方式改进传统浅层神经网络的一类智能算法的总称。传统的浅层的神经网络模型通常面临着数据特征人工或者自行提取、容易求得局部极小值、多层(超过三层)的神经网络模型很难进行优化三个难题。hinton于2006年提出深度置信网络,深度置信网络计算模型采用全新的网络结构和训练方式,很好的解决了上述的三个问题。现在,dbn已被广泛作为一种典型的改造传统的浅层神经网络计算模型网络层数和训练方式的一种深度学习算法。

链路预测是通过给定网络的结点属性信息和网络的连接结构信息对网络中尚未存在边的结点对之间出现边的可能性的预测。链路预测任务既包括对网络中已经存在但尚未被发现的边的预测,也包括对网络中尚未存在但未来有可能出现的边的预测。其中,前者属于对网络的数据挖掘过程,而后者涉及对网络的演化的研究。

根据网络数据所代表的物理含义的不同,链路预测具有不同的研究价值,同时也吸引了不同领域的学者的深入研究。在最常见的社交网络中,链路预测的原理已被广泛地应用到好友推荐、兴趣推荐等功能的实现中。另外,链路预测的理论和方法还可以被用于在已知部分结点标签的网络中对未知的结点的标签的类型进行预测。在生物领域,对蛋白质相互作用网络中蛋白质之间的相互作用关系,人类依旧知之甚少。如果可以设计一种对该网络行之有效的链路预测算法,利用该算法的预测结果来指导对蛋白质相互作用关系的研究,设计具体生物实验来验证,那么将节省大量的实验开销,同时大大推动人类认识蛋白质相关作用原理的步伐。

为了评价链路预测算法的有效性,通常的做法是将e分为测试集和训练集两部分。链路预测算法处理的无向网络中只包含了训练集中的边信息。在链路预测算法处理之前要将测试集中的边从网络中移除,然后,利用链路预测算法对测试集中的边与采样得到的不存在边的结点对进行打分。最后,使用链路预测结果的不同评判指标,对打分结果,即预测结果进行评估,检测该链路预测算法的预测准确性。但上述传统方法存在链路预测算法预测正确率偏低,以及对网络的各种结构特征的普适性偏低的问题。



技术实现要素:

本发明是针对传统的链路预测算法预测正确率偏低,以及对网络的各种结构特征的普适性偏低的问题。

为达到上述目的,本发明提出一种基于深度置信网络的链路预测方法,具体包含以下步骤:

步骤1:训练数据采集模块完成从给定网络结构中随机采样得到训练边集、验证边集和测试边集,其中每一个边集中包含等比例的正样本和负样本;

步骤2:网络结点特征表示模块在经过训练数据采集模块处理过的网络中,使用deepwalk算法生成每一个网络结点的特征表示;

步骤3:边特征表示生成模块完成对训练边集、验证边集和测试边集中的每一条边计算边的特征表示,为了符合深度置信网络对输入数据的要求,还需要对生成的边的特征向量进行归一化处理;

步骤4:深度置信网络训练模块完成深度置信网络结构的建立,并加载训练边集、验证边集和测试边集进行训练。

进一步,步骤1中,每个边集的大小可以灵活配置,可以通过train_percent参数配置在所用现存的边中训练边集的正样本所占的比例;通过valid_percent参数配置验证边集和测试边集之间的比例关系。

又进一步,上述验证边集和测试边集中的正样本需要从原始网络结构中去除,在去除过程中为了保证网络的连通性,需要首先建立一个网络的生成树,负样本的采集需要在正样本采集之前,以防止采集到正样本采集中去除的边。

进一步,步骤3中对于得到的每一个结点的特征表示,使用拼接得到一条边的特征表示。

步骤4中深度置信网络模型包含输入层、隐层和输出层,输入层维度是边特征向量的维度,隐层可以包括若干层,可以根据分类效果灵活设置,输出层包括两维。

上述训练过程包含以下步骤:

(1)首先使用训练边集对深度置信网络中的受限玻尔兹曼机模型进行预训练,在预训练结束之后,使用训练边集对逻辑回归模型进行训练,逻辑回归模型的目标函数使用对数似然函数的负数;

(2)逻辑回归模型的每一轮训练中,在使用训练边集进行训练之后,使用验证边集对整个深度置信网络模型的参数进行微调,计算预测错误率;

(3)记录错误率最低时模型参数,并使用测试边集进行测试,输出的测试结果包括对测试边集中每一条边的打分值和对应的真实值;

(4)对测试结果的输出使用auc,precision和rankingscore对测试边集中的每一条边的预测结果进行评估。

本发明的有益效果在于:

1、通过设置合适的深度置信网络训练参数,本发明设计的链路预测算法可以取得比传统的链路预测算法更高的预测正确率。

2、传统的链路预测算法的预测效果通常依赖于具体的网络的结构特征,如网络的集聚系数等,本发明设计的链路预测算法通过深度学习边周围的网络结构特征,对各种结构特征的网络具有普适性。

附图说明

图1为训练数据集采集过程图。

图2为正样本采集过程图。

图3为负样本采集过程图。

图4为深度置信网络模型的结构示意图。

具体实施方式

现结合附图对本发明做进一步详细的说明。本发明针对无向网络提出一种使用深度置信网络分类模型进行链路预测的算法,具体实施方法包括:

训练数据集采集模块,根据深度置信网络训练过程的特点,该模块需要采集得到训练边集、验证边集和测试边集。

网络结点特征表示模块,对采集数据集处理过后的网络数据,使用deepwalk算法得到每一个网络结点的特征向量表示;

生成边特征表示模块,每一条边可以使用结点对来表示,我们使用将两个结点对各自的特征向量直接拼接的方式(joint)生成对应的边的特征向量表示;

构建深度置信网络结构,根据生成的边特征向量表示的维度来确定输入层神经元的个数,隐层若干层,包括一个以上的受限玻尔兹曼机模型结构,输出层为两层,分别代表输入的边样本在网络中存在或是不存在两个类别,使用一个逻辑回归模型对受限玻尔兹曼机模型训练得到的边特征进行分类。

步骤1:训练数据采集模块完成从给定网络结构中随机采样得到训练边集、验证边集和测试边集,其中每一个边集中包含等比例的正样本(表示对应边在网络中已存在的样本)和负样本(表示对应边在网络中不存在的样本),详见图1。

每个边集的大小可以灵活配置,可以通过train_percent参数配置在所用现存的边中,训练边集的正样本所占的比例;通过valid_percent参数配置验证边集和测试边集之间的比例关系。验证边集和测试边集中的正样本需要从原始网络结构中去除,在去除过程中为了保证网络的连通性,需要首先建立一个网络的生成树,具体实现过程参考图2。负样本的采集需要在正样本采集之前,以防止采集到正样本采集中去除的边,具体实现过程如图3所示。

步骤2:网络结点特征表示模块在经过训练数据采集模块处理过的网络中,使用deepwalk算法生成每一个网络结点的特征表示。

步骤3:边特征表示生成模块完成对训练边集、验证边集和测试边集中的每一条边计算边的特征表示,为了符合深度置信网络对输入数据的要求,还需要对生成的边的特征向量进行归一化处理。

对于得到的每一个结点的特征表示,使用拼接得到一条边的特征表示,例如对于两个结点v1和v2,假设其对应的特征表示如下:

v1=(n1,n2,…,nd),v2=(m1,m2,…,md),

那么对于一条边(v1,v2)的特征向量表示则为:

(v1,v2)=(n1,n2,…,nd,m1,m2,…,md)。

步骤4:深度置信网络训练模块完成深度置信网络结构的建立,并加载训练边集、验证边集和测试边集进行训练。深度置信网络模型的结构如图4所示,输入层维度是边特征向量的维度,隐层可以包括若干层,可以根据分类效果灵活设置。输出层包括两维。

首先,使用训练边集对深度置信网络中的受限玻尔兹曼机模型进行预训练。在预训练结束之后,使用训练边集对逻辑回归模型进行训练,逻辑回归模型的目标函数使用对数似然函数的负数,形如

为了便于使用传统的链路预测评价方式对链路预测效果进行评判,我们使用下面的公式计算每一条样本边的打分值:

其中,y0,y1分别表示输出层的第一维和第二维输出。

逻辑回归模型的每一轮训练中,在使用训练边集进行训练之后,我们使用验证边集对整个深度置信网络模型的参数进行微调,并将使用公式1.2计算得到的打分值与样本边真实的类别(0代表边不存在,1代表边存在)做差,对差值取绝对值后求平均作为预测错误率。

error=mean(|score-ytrue|)(0.3)

我们记录错误率最低时模型参数,并使用测试边集进行测试,输出的测试结果包括对测试边集中每一条边的打分值和对应的真实值。最后,我们对测试结果的输出使用auc,precision和rankingscore对测试边集中的每一条边的预测结果进行评估。

综上所述,本发明针对网络链路预测问题设计了一种使用深度置信网络分类计算模型的实现方法,该方法不依赖网络结构的特征,较传统的网络链路预测算法具有较好的通用性和预测准确率。

以上所述仅为本发明的优选实施案例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行改进,或者对其中部分技术进行同等替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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