一种图中图卷积神经网络的软件系统中类交互关系预测方法

文档序号:31052976发布日期:2022-08-06 08:39阅读:179来源:国知局
一种图中图卷积神经网络的软件系统中类交互关系预测方法

1.本发明涉及软件工程软件网络分析技术领域,尤其涉及一种图中图卷积神经网络的软件系统中类交互关系预测方法。


背景技术:

2.随着网络的规模不断扩大,软件系统的复杂度随之不断提升,软件中存在缺陷是在所难免的。并且软件系统也是一个复杂的人工制品,软件系统内部的类之间的交互关系对软件质量有着潜在影响,如软件缺陷的级联传播效应就是一个典型。如何准确预测软件系统中类之间合理关系,优化设计结构是软件质量保障的一个开放问题。
3.在软件工程领域,软件系统的质量与寿命很大程度上取决于其内部结构。类作为软件系统中粒度较为适中的一个元素,它们之间的关系常被用于刻画软件系统的结构,并且作为“高内聚,低耦合”设计原则与重构依据。随着软件系统规模的增大,类文件之间的交互关系也愈加复杂,例如新功能的添加,软件中类之间可能会产生新的交互关系。若不对软件系统全局结构进行适当调整,有可能导致开发偏离最初设计,从而严重影响软件质量,这种现象被称为软件衰退或者软件设计偏移,导致维护成本很高。
4.从上世纪90年代开始,人们发现网络结构非常适合表示现实世界中高度复杂的系统,将现实世界中存在的各种复杂系统抽象为网络而得到的模型被称之为复杂网络(complex network)。复杂网络是将现实世界中的实体和实体间关系映射成网络的表示形式。软件网络(software network)作为一种常规的复杂网络,对软件工程领域相关问题的解决起着至关重要的作用。有研究者从模块、包、类等粒度对软件系统进行建模,利用复杂网络理论度量软件系统的复杂性,分析网络的拓扑结构和形成机理以及演化规律。因此,将复杂网络中节点交互关系度量的方法引入软件网络,为分析软件内部结构的交互关系带来了一种新的视角。
5.软件系统是具有一定深度的结构,所以可从多粒度进行网络建模,能够从包、类、方法三个粒度上,利用复杂网络度量指标分析软件的演化情况。也可围绕lehman演化定律,从包、类、方法三个粒度,分析多个软件系统的演化情况。软件作为一种人工的复杂系统,软件内各元素之间交互关系的识别对于工程师分析维护系统至关重要。
6.当软件在整个生命周期中施加违反设计时架构意图的更改时,软件体系结构就会降级。这种现象被称为架构侵蚀,这种思想将软件工程问题重新定义为模块搜索与优化问题。有一种修复面向对象软件系统类结构的方法,它使用属性-方法网络和方法-方法网络来表示属性、方法以及它们之间的依赖关系,采用社区探测的方式通过类之间的关系预测,进行软件重构指导。
7.为了解决依赖目标和源代码文件之间的依赖关系挖掘问题,前人将构建配置文件(例如make file)通过逆向工程转换为依赖图,其中图中的节点对应于配置文件中的实体,而图中的边对应于这些实体之间的关系,然后将该问题映射为预测依赖图中缺失边(链接)的预测问题,同时对比分析了多种常规链路预测算法的效果,力图寻求使得软件架构最优
的方法。
8.而在软件工程领域,有的学者把重点放在制作构建工具上,目标是进一步提高类间缺失依赖关系预测的有效性。也有利用系统以前版本的结构特征,引入线性规划技术,通过机器学习成功预测了下一个版本的模块依赖性。
9.不难发现该领域以往的工作主要将问题抽象成链路预测问题加以解决,这是一个较好的切入思路,也能得到同领域广泛的认可,但是解决链路预测问题的手段主要还挺留在传统的数学方法或机器学习方法,导致预测精度不高。


技术实现要素:

10.本发明提出一种图中图卷积神经网络的软件系统中类交互关系预测方法,用以解决现有技术的方法存在的预测精度不高的技术问题。
11.为了解决上述技术问题,本发明采取的技术方案如下:
12.提供一种图中图卷积神经网络的软件系统中类交互关系预测方法,包括:
13.s1:利用开源工具解析软件代码源文件,构建图中图网络结构,其中,图中图网络结构包括外部图和内部图,外部图中,节点表示类,边表示类之间的交互关系,内部图中,节点表示方法或属性,边表示类内部的方法或者属性之间的关系;
14.s2:基于图中图网络结构和深度学习理论,构建图中图卷积神经网络模型,其中,图中图卷积神经网络模型包括内部图网络模块、外部图网络模块和预测模型,内部图网络模块用于利用网络嵌入方法,对图中图网络结构中的内部图节点进行学习,得到内部图节点的嵌入向量;外部图网络模块用于利用网络嵌入方法,将到的内部图节点的嵌入向量作为外部图的初始输入向量,并聚集外部图的邻域信息,对两层软件网络中的外部图网络的节点进行学习,得到外部图节点的嵌入向量;预测模块,用于根据外部图节点的嵌入向量进行类与类的交互关系的预测;
15.s3:对构建的图中图卷积神经网络模型进行训练,得到训练好的图中图卷积神经网络模型;
16.s4:利用训练好的图中图卷积神经网络模型进行软件系统中类交互关系的预测。
17.在一种实施方式中,步骤s1包括:
18.s1.1:利用开源工具对源代码编译后产生的各类文件进行依赖关系扫描,并保存为统一的文件格式:
19.s1.2:解析并提取s1.1中保存的文件中类之间的依赖关系和类内部的依赖关系,并将不同的类作为外部图节点,同一个类中的方法或者属性作为内部图节点;
20.s1.3:将内部图节点与外部图节点相关联,构建图中图网络结构,其中,每个外部节点对应一个内部图网络,形成图中图结构的图网络数据格式,图网络数据格式格式为其中外部节点i,gi为节点i对应的内部图网络。
21.在一种实施方式中,内部图网络模块的处理过程包括:
22.对内部网络图进行多层图卷积运算获取内部图节点的特征,计算公式如下:
23.m
(l+1)
=gcn
l
(a,m
l
)
24.25.其中,a为内部图网络的邻接矩阵,gcn
l
表示第l层的图卷积神经网络wi∈wk为第i层的权重矩阵,i是单位矩阵,为内部图网络第l层的隐含特征矩阵,m
(l+1)
表示内部图网络第l+1层的隐含特征矩阵,是内部图g带自连接的邻接矩阵,是的对角度矩阵,包含每个节点的度,σ为激活函数,选择relu(x)=max(0,x)作为激活函数;
26.根据得到的内部图节点的特征进行自注意力池化处理,得到类的多尺度子结构特征,得到内部图网络的隐含特征向量xg。
27.在一种实施方式中,外部图网络模块的处理过程包括:将每个外部图节点的特征与其它关联节点的特征相结合,使得外部图网络中每一个节点在迭代学习过程中都会聚合其邻居节点在上一层得到的嵌入向量,并与自身在上一层的嵌入向量相结合,从而得到外部图节点的嵌入向量。
28.在一种实施方式中,外部图节点的嵌入向量的计算方式为:
[0029][0030]
其中,表示类i的内部图gi在模型的第l层的隐含嵌入向量,d为隐含嵌入向量的维度,初始化时,令表示类i的内部图网络的隐含特征向量,n(gi)表示gi在外部图中的邻居,表示节点gi在i层的邻居节点gj的信息,为得到的外部图节点的嵌入向量,σ表示的是非线性激活函数。
[0031]
在一种实施方式中,预测模块的预测过程将类与类的交互关系预测视为一个链接预测问题,将两个图表示的点积用作两个图的链接概率:
[0032][0033]
其中,为外部图节点i的转置矩阵,表示外部图节点j的邻接矩阵,σ是激活函数。
[0034]
在一种实施方式中,步骤s3的训练过程中,采用交叉熵损失函数对图中图卷积神经网络模型进行优化,函数形式为:
[0035][0036]
其中i、j和m代表外部图节点的编号,表示抽样的分布情况,pj表除节点j以外m可取节点的范围,p
im
为外部图节点i和m链接的概率。
[0037]
本技术实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0038]
(1)利用复杂网络理论,在软件网络的基础上,构建软件系统的图中图网络结构。为了获得软件系统中更多的类信息,将ceg中单个类节点再扩展成一个cig子图,协同两种图结构进行信息挖掘。
[0039]
(2)引入深度学习模型,利用图卷积神经网络和注意力机制来自动学习内部图网络cig的特征信息,利用图卷积神经网络自动学习外部图网络ceg的全局结构信息。
[0040]
(3)提出一种图中图卷积神经网络模型,用于对(1)中所提的图中图软件网络的内
部图cig与外部图ceg分别使用(2)中的技术方法并且使得两层网络进行交互,尽可能的保留了软件网络所携带的信息,利用交叉熵损失函数不断优化调参,获得保留最多特征的类节点向量,并将学习结果应用于软件系统的类间交互关系预测,提高了预测精度。
附图说明
[0041]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]
图1为本发明实施例提供的图中图卷积神经网络的软件系统中类交互关系预测方法的框架图;
[0043]
图2为本发明实施例中软件系统图中图结构示意图;
[0044]
图3为本发明实施例中构建图中图的简单示意图。
具体实施方式
[0045]
本技术发明人通过大量的研究与实践发现:
[0046]
现有技术中的方法,主要将问题抽象成链路预测问题来进行类交互关系预测,但是解决链路预测问题的手段主要还挺留在传统的数学方法或机器学习方法,该方法虽可解决问题,但效果欠佳,为了使软件内类间交换关系预测的精度可更进一步,有必要引入深度学习方法来优化软件网络的体系结构,并在此基础上指导与设计出更优的软件系统架构。
[0047]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048]
本发明实施例提供了一种图中图卷积神经网络的软件系统中类交互关系预测方法,包括:
[0049]
s1:利用开源工具解析软件代码源文件,构建图中图网络结构,其中,图中图网络结构包括外部图和内部图,外部图中,节点表示类,边表示类之间的交互关系,内部图中,节点表示方法或属性,边表示类内部的方法或者属性之间的关系;
[0050]
s2:基于图中图网络结构和深度学习理论,构建图中图卷积神经网络模型,其中,图中图卷积神经网络模型包括内部图网络模块、外部图网络模块和预测模型,内部图网络模块用于利用网络嵌入方法,对图中图网络结构中的内部图节点进行学习,得到内部图节点的嵌入向量;外部图网络模块用于利用网络嵌入方法,将到的内部图节点的嵌入向量作为外部图的初始输入向量,并聚集外部图的邻域信息,对两层软件网络中的外部图网络的节点进行学习,得到外部图节点的嵌入向量;预测模块,用于根据外部图节点的嵌入向量进行类与类的交互关系的预测;
[0051]
s3:对构建的图中图卷积神经网络模型进行训练,得到训练好的图中图卷积神经网络模型;
[0052]
s4:利用训练好的图中图卷积神经网络模型进行软件系统中类交互关系的预测。
[0053]
请参见图1,为本发明实施例提供的图中图卷积神经网络的软件系统中类交互关系预测方法的框架图。该图中,内部图的隐含特征是cig的隐含特征向量xg,邻域聚集网络的作用是为了收集外部图ceg中每个节点的邻域信息,即网络结构所包含的信息,内部图的表征是ceg中节点的初始向量,ceg中节点进行外部图网络模块的操作得到ceg节点的嵌入向量。
[0054]
具体来说,步骤s1是提出图中图网络结构,s2在s1的图中图网络的结构的基础上,进入深度学习模型的相关理论,构建了图中图卷积神经网络模型,利用图卷积神经网络和注意力机制来自动学习内部图网络的特征信息,利用图卷积神经网络自动学习外部图网络的全局结构信息。图中图卷积神经网络模型可以使得两层网络进行交互,尽可能的保留软件网络所携带的信息,获得保留最多特征的类节点向量,并将学习结果应用于软件系统的类间交互关系预测,提高了预测精度。步骤s3是模型的训练,步骤s4是模型的具体应用。
[0055]
请参见图2,为本发明实施例中软件系统图中图结构示意图。
[0056]
图中图网络结构中,将类之间交互关系组成的图称为类的外部图(class external graph,ceg),记为其中,是节点集,每个节点代表一个类,是ceg中所有的边集。实际上,类之间的交互是建立在它们内部元素之间的交互基础上形成,因此,每个类内部的方法或属性之间构成的图称为类的内部图(class internal graph,cig),用gi=(vi,ri)表示类i的内部图|vi|=n表示类i中方法或属性节点的个数,为了便于描述,可以将方法和属性节点统称为特征节点,ri表示类i的局部图gi中所有的边。
[0057]
请参见图3,为本发明实施例中构建图中图的简单示意图。
[0058]
在一种实施方式中,步骤s1包括:
[0059]
s1.1:利用开源工具对源代码编译后产生的各类文件进行依赖关系扫描,并保存为统一的文件格式:
[0060]
s1.2:解析并提取s1.1中保存的文件中类之间的依赖关系和类内部的依赖关系,并将不同的类作为外部图节点,同一个类中的方法或者属性作为内部图节点;
[0061]
s1.3:将内部图节点与外部图节点相关联,构建图中图网络结构,其中,每个外部节点对应一个内部图网络,形成图中图结构的图网络数据格式,图网络数据格式格式为其中外部节点i,gi为节点i对应的内部图网络。
[0062]
具体实施过程中,软件系统可以由不同的语言进行开发,例如java、c++等。例如,可以选择以java语言开发的软件系统作为分析对象,通过dependencyfinder工具对源代码编译后产生的.class文件、由源代码打包而成的.jar文件或者包含源代码的zip压缩包进行依赖关系扫描,并保存为xml文件。
[0063]
在一种实施方式中,内部图网络模块的处理过程包括:
[0064]
对内部网络图进行多层图卷积运算获取内部图节点的特征,计算公式如下:
[0065]m(l+1)
=gcn
l
(a,m
l
)
[0066][0067]
其中,a为内部图网络的邻接矩阵,gcn
l
表示第l层的图卷积神经网络wi∈wk为第i层的权重矩阵,i是单位矩阵,为内部图网络第l层的隐含特征矩阵,m
(l+1)
表示内部
图网络第l+1层的隐含特征矩阵,是内部图g带自连接的邻接矩阵,是的对角度矩阵,包含每个节点的度,σ为激活函数,选择relu(x)=max(0,x)作为激活函数;
[0068]
根据得到的内部图节点的特征进行自注意力池化处理,得到类的多尺度子结构特征,得到内部图网络的隐含特征向量xg。
[0069]
在一种实施方式中,外部图网络模块的处理过程包括:将每个外部图节点的特征与其它关联节点的特征相结合,使得外部图网络中每一个节点在迭代学习过程中都会聚合其邻居节点在上一层得到的嵌入向量,并与自身在上一层的嵌入向量相结合,从而得到外部图节点的嵌入向量。
[0070]
具体来说,由于类的ceg表示为单个类的内部图为了更好地提取ceg中节点全局结构的隐藏特征,本实施方式采用将每个节点的特征与图中其它关联节点的特征相结合的方式来得到外部图节点的嵌入向量。
[0071]
外部图节点指的是类节点,它的关联节点是指与该类节点有交互关系的节点,类节点间会相互调用,这种调用关系就是交互关系,也就是外部图节点的连边。
[0072]
在一种实施方式中,外部图节点的嵌入向量的计算方式为:
[0073][0074]
其中,表示类i的内部图gi在模型的第l层的隐含嵌入向量,d为隐含嵌入向量的维度,初始化时,令表示类i的内部图网络的隐含特征向量,n(gi)表示gi在外部图中的邻居,表示节点gi在i层的邻居节点gj的信息,为得到的外部图节点的嵌入向量,σ表示的是非线性激活函数。
[0075]
具体实施过程中,非线性激活函数,使用的是relu(x)=max(0,x)函数。
[0076]
在一种实施方式中,预测模块的预测过程将类与类的交互关系预测视为一个链接预测问题,将两个图表示的点积用作两个图的链接概率:
[0077][0078]
其中,为外部图节点i的转置矩阵,表示外部图节点j的邻接矩阵,σ是激活函数。
[0079]
具体来说,
[0080]
在一种实施方式中,步骤s3的训练过程中,采用交叉熵损失函数对图中图卷积神经网络模型进行优化,函数形式为:
[0081][0082]
其中i、j和m代表外部图节点的编号,表示抽样的分布情况,pj表除节点j以外m可取节点的范围,p
im
为外部图节点i和m链接的概率。
[0083]
具体来说,为确保p
ij
∈(0,1)的函数sigmoid。为了鼓励模型为观察到的边缘分配比随机的非边缘更高的概率,本实施方式遵循之前的研究,并通过负抽样来估计模型。对于每个正边对(gi、gj),通过随机选择一个分子图gm,采样一个随机的负边(gi、gm)。并采用交
叉熵损失函数来优化模型。
[0084]
下面通过具体的数据对本发明提出的方法进行详细说明。
[0085]
本实施例是选择以java语言开发的软件系统作为研究对象,选取了公开promise软件工程库(http://promise.site.uottawa.ca/serepository/)中的项目,包括apache开源平台上6个项目,分别为jmeter、commons-codec、ivy、ant-1.3、ant-1.5和maven,其中jmeter是一款用于测试java程序的工具,最初只用于java web应用程序的测试,后来推广到所有的java应用程序;commons-codec是apache开源组织提供的用于摘要运算、编码的包;ivy是一个免费基于java的依赖管理器,它提供了一些强大的功能包括依赖传递、ant集成、maven存储库兼容等;ant是java的一个编译工具,选取了1.3和1.5这两个版本;maven是一款服务于java平台自动化构建的工具。6个项目ceg的节点规模从57-3958个,连边从60-10811条,cig的平均节点规模最大为21.18,连边为14.11。所选取的6个数据集在类内网络cig上规模相近,在类间结构ceg上呈现递增效果,贴合实际生产环境中不同规模的软件,能较好代表现实生活中不同功能需求的软件。
[0086]
所选数据集按8:2划分为训练集和测试集,将两个类节点的相似性作为交互关系的参考依据,将所选训练集用于前期的模型训练工作,并使用交叉熵损失函数来不断优化模型,最后将训练好的模型用于测试数据集,并采用auc和ap指标来评价类与类交互关系预测的准确性。
[0087]
如图1所示,为具体实施方式中图中图卷积神经网络的软件系统中类交互关系预测方法,包括以下步骤:
[0088]
a.利用开源工具解析软件代码源文件,构建软件网络模型,包括以下子步骤;
[0089]
步骤a1,选择以java语言开发的软件系统作为分析对象,通过dependencyf inder工具对源代码编译后产生的.class文件、由源代码打包而成的.jar文件或者包含源代码的zip压缩包进行依赖关系扫描,并保存为xml文件,xml文件中存放的是dependencyfinder对于java源代码的分析结果,以一种嵌套的结构来表示源代码中包、类和方法三个粒度元素的基本信息和元素之间的依赖关系。最外层的《package》标签表示包,《class》表示类,《feature》表示方法/字段,最内层的《outbound》和《inbound》标签分别表示依赖与被依赖关系。本发明使用自主开发的解析程序对解析的xml文件进行标签解析,从中提取软件类之间依赖关系,并保存为文件格式以便下游工作使用。
[0090]
步骤a2,编写代码解析并提取a1中xml源代码中类之间的依赖关系和类内部节点的依赖关系,首先提取出带有《class》标签的节点,记录其与其余《class》节点的交互关系,并以文件格式保存。随后,将父节点《class》相同的《feature》节点记录为该类节点的所有内部节点,抽取类内部方法节点的交互关系,并以文件格式保存。所保存的文件作为图中图软件网络的基础,具体的两层软件网络模型定义如下:
[0091]
将类之间交互关系组成的图称为类的外部图(class external graph,ceg),记为其中,是节点集,每个节点代表一个类,是ceg中所有的边集。实际上,类之间的交互是建立在它们内部元素之间的交互基础上形成,因此,每个类内部的方法或属性之间构成的图称为类的内部图(class internal graph,cig),用gi=(vi,ri)表示类i的内部图|vi|=n表示类i中方法或属性节点的个数,为了便于描述,我们将方法和属性节点统称为特征节点,ri表示类i的局部图gi中所有的边。
[0092]
步骤a3,将a2中处理得到的内部图cig与外部图ceg节点相关联,每个外部节点对应一个内部图网络,形成图中图结构的图网络数据格式。具体数据格式为其中外部节点i,gi为节点i对应的内部图结构,并保存为文件格式,以便后续进行嵌入操作,便相当于gi的标签。
[0093]
b.利用网络嵌入方法,对图中图软件网络中的内部图网络cig的节点进行学习,得到cig节点的嵌入向量,包括以下子步骤:
[0094]
步骤b1,读取a3中的文件,将每个类的内部图gi进行图嵌入操作。为每个方法和属性节点进行one-hot编码,得到方法和属性节点的初始向量,即得到类的初始内部图节点嵌入。
[0095]
步骤b2,提取内部图节点的邻居信息,对内部输入图cig进行多层图卷积运算获取内部图节点的邻域信息,具体公式如下:
[0096]m(l+1)
=gcn
l
(a,m
l
)
[0097][0098]
其中为内部图g第l层的隐含特征矩阵,是内部图g带自连接的邻接矩阵,是的对角度矩阵,包含每个节点的度。wk是权重矩阵,σ为激活函数,选择relu(x)=max(0,x)作为激活函数。
[0099]
步骤b2,根据步骤b1得到的特征继续进行自注意力分层池化处理,得到类的多尺度子结构特征,形成一个cig的隐含特征向量xg,其具体过程如下:
[0100]
将每个图卷积层的输出作为自注意力图池化层的输入,通过学习该层内部图g中每个方法节点的自注意力得分从而从中选择最具代表性的子结构(社区):
[0101][0102]
其中是池化层的注意力权重矩阵。为了选择有代表性的子结构,图的池化层计算内部图中每个方法的注意力分值,并返回得分最高的top-k个方法。
[0103]
idx=top(s
l
,k)
[0104]smask
=s
idx
[0105]msel
=m
⊙smask
[0106]
其中,top()函数返回注意力得分最高的前k个方法节点的索引,s
mask
∈{0,1}n×1是由注意力分值决定的mask向量,

表示mask的内积,m
sel
是内部图cig中选定的方法节点的特征矩阵,m是内部图节点的邻接矩阵,s
l
是每个方法节点的自注意力得分,s
idx
表示前k个方法的自注意力得分。对于选中的方法m
sel
进行求和平均池化操作,得到该层卷积操作的内部图隐含特征。经过多层图卷积和自注意力池化层后,将各层得到的图隐含特征进行拼接,形成一个cig的隐含特征向量xg。
[0107]
由于采用分层图池化结构,使得图表示方法能有效地保留子结构信息。可以识别在类的交互中起关键作用的功能子模块,并用这些子模块来表示类。
[0108]
c.利用网络嵌入方法,将b2的输出向量xg作为外部图ceg的初始出入向量,通过聚集外部图的邻域信息,对两层软件网络中的外部图网络ceg的节点进行学习,得到ceg节点
的嵌入向量,具体说明如下:
[0109]
如a2介绍,类的ceg表示为单个类的内部图为了更好地提取ceg中节点全局结构的隐藏特征,本发明将每个节点的特征与图中其它关联节点的特征相结合,使得ceg中每一个节点在迭代学习过程中都会聚合其邻居节点在上一层得到的嵌入向量,并与自身在上一层的嵌入向量相结合,具体表示如下:
[0110][0111]
其中,表示类i的内部图gi在模型的第l层的隐含嵌入向量,d为嵌入向量的维度,初始化时,令n(gi)表示gi在外部图中的邻居,σ表示的是非线性激活函数,使用的是relu(x)=max(0,x)函数。
[0112]
d.基于步骤c所得到的类节点的特征向量,对类与类的交互关系进行评估,同时利用交叉熵损失函数来优化模型,获得更好的预测效果,步骤如下:
[0113]
将类与类的交互关系预测视为一个链接预测问题。两个类嵌入表示的点积用作两个类节点的交互概率:
[0114][0115]
其中σ是激活函数,为softmax函数。本实施方式的模型中将无链接视为负链接为了使模型为观察到的边缘分配比随机的非边缘更高的概率,根据前人已有的研究,本实施方式通过负抽样来估计模型。对于每个正边对(gi、gj),通过随机选择一个分子图gm,采样一个随机的负边(gi、gm)。同时使用以下交叉熵损失函数来优化模型:
[0116][0117]
本发明的保护范围不限于上述的实施例,显然,本领域的技术人员可以对本发明进行各种改动和变形而不脱离本发明的范围和精神。倘若这些改动和变形属于本发明权利要求及其等同技术的范围,则本发明的意图也包含这些改动和变形在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1