CN115600012B - 一种基于知识增强和结构对比的api推荐方法 - Google Patents
一种基于知识增强和结构对比的api推荐方法 Download PDFInfo
- Publication number
- CN115600012B CN115600012B CN202211523157.3A CN202211523157A CN115600012B CN 115600012 B CN115600012 B CN 115600012B CN 202211523157 A CN202211523157 A CN 202211523157A CN 115600012 B CN115600012 B CN 115600012B
- Authority
- CN
- China
- Prior art keywords
- api
- representation
- node
- graph
- learning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 239000013598 vector Substances 0.000 claims abstract description 34
- 238000013519 translation Methods 0.000 claims abstract description 15
- 238000010586 diagram Methods 0.000 claims abstract description 14
- 239000000203 mixture Substances 0.000 claims abstract description 7
- 238000007781 pre-processing Methods 0.000 claims abstract description 6
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 33
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 10
- 239000000047 product Substances 0.000 claims description 6
- 230000000644 propagated effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 239000013589 supplement Substances 0.000 claims description 3
- 238000007670 refining Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 10
- 230000000694 effects Effects 0.000 abstract description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 18
- 230000006872 improvement Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101000691647 Achromobacter lyticus Protease 2 large chain Proteins 0.000 description 1
- 101000691646 Achromobacter lyticus Protease 2 small chain Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于知识增强和结构对比的API推荐方法,包括以下步骤:步骤1,代码预处理构图;解析源代码,提取方法、API和结构节点以及它们之间的关系,构成调用关系图和层次结构图;步骤2,知识增强的图嵌入学习;使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,同时用翻译模型TransH学习层次结构图中的实体和关系的嵌入表示;步骤3,多任务学习;包括主要的API推荐任务和辅助的对比学习任务。本发明的有益效果是:本发明提出了知识增强的图嵌入学习,使得方法和API的嵌入向量中不仅建模了调用交互还融合了代码中的层次结构信息,优化了方法和API的表示,达到更准确的推荐效果。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种基于知识增强和结构对比的API推荐方法。
背景技术
在现代软件开发中,随着软件系统开发需求的增加,软件开发人员的负担也随之增加。应用程序编程接口(Application Programmable Interface,API)是已经预先实现好的编程接口,开发人员可以很容易地调用它们,以提高现代软件开发的效率并完成特定的功能需求。然而,API的数量一直在增长,要熟悉大量的API不是一件容易的事情。因此,开发人员往往会查阅官方技术文档或者在问答论坛上搜索,这些方法通常是很耗时的,并且很难找到质量较高的相关API。
近年来,如何自动推荐API来解决开发人员熟悉所有API带来的时间消耗问题,引起了科研人员的关注。目前的技术主要类型可以分为基于查询的API推荐算法和基于代码的API推荐算法。具体来说,基于查询的API推荐算法是以自然语言描述的功能需求为查询输入,算法返回推荐的符合需求的API;基于代码的API推荐算法是根据当前预测点周围的代码推荐符合当前需求的API。
针对这一问题,以往的工作使用聚类算法从数据集中的大量项目中提取API使用模式,或者采用概率统计模型,从API调用序列中预测有趣的API使用模式。然而,这些方法都存在提取的使用模式冗余度高和推荐精确度低的问题。如今,随着推荐系统在各个领域发挥着重要而广泛的作用,有一些方法采用推荐系统中经典的协同过滤算法来解决API推荐问题,将方法作为用户,将方法中要调用的API作为物品,通过建模API之间的结构相似性和调用关系,获得了很好的推荐效果。然而,这种基础的协同过滤算法缺乏对方法和API之间高阶联系的挖掘,因此,最新的方法采用基于图神经网络的协同过滤算法,进一步使用了代码中的其他信息,提高了API推荐的效果。但是,这些方法都受限于稀疏的API调用交互信号,使得模型很难学习到高质量的API表示;除此之外,数据集中的API调用交互常出现长尾分布,出现频次高的API对表征学习的影响更大,因此,模型很容易偏向于出现频次高的API,牺牲了低出现频率API的性能。
发明内容
本发明提供了一种基于知识增强和结构对比的API推荐方法,包括以下步骤:
步骤1,代码预处理构图;解析源代码,提取方法、API和结构节点以及它们之间的关系,构成调用关系图和层次结构图。
步骤2,知识增强的图嵌入学习;使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,同时用翻译模型TransH学习层次结构图中的实体和关系的嵌入表示。
步骤3,多任务学习;包括主要的API推荐任务和辅助的对比学习任务。
作为本发明的进一步改进,在所述步骤1中,还包括:
步骤10,使用静态分析工具解析源代码。
步骤11,提取所有方法节点集合、所有API节点集合和所有的实体节点集合,提取边集合的方法和API之间的调用连接集合,以及边集合实体之间的层次结构集合。
步骤12,基于步骤11的节点集合和边集合,构建调用关系图和层次结构图。
作为本发明的进一步改进,在所述步骤12中,构建的调用关系图和层次结构图具体如下:
调用关系图:对于每一个在项目中的方法和方法中调用的API,在调用关系图中增加一条边,这个图最终表示为,其中意味着方法调用过API ,否则。
层次结构图:通过程序分析,将有需要的层次结构信息表示为知识图谱的形式
, 其中是关系的集合,包括属于类、属于包和属于项目。
作为本发明的进一步改进,在所述步骤2中,使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,是指对于调用关系图上的方法节点和API节点,使用其ID嵌入作为初始表示和,接着使用图卷积神经网络递归地传播初始表示,以利用高阶连通性来优化初始表示。
作为本发明的进一步改进,在所述步骤2中,使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,具体如下:
步骤S1,先计算图上每个节点的自我网络表示和,公式如下:
其中,表示卷积的层数,从0开始,最大为层;表示方法节点的邻居,表示API节点的邻居;表示方法节点的度数,表示API节点的度数。
步骤S2,将节点本身的表示/和节点的自我网络的表示/聚合到一起,对节点的表示进行更新,公式如下:
;
步骤S3,经过了层卷积层后,获得了节点和的多种表示,把节点的每一层的表示连接起来,得到节点和的最终表示和,公式如下:
,
其中,表示连接操作。
作为本发明的进一步改进,在所述步骤2中,用翻译模型TransH学习层次结构图中的实体和关系的嵌入表示,是指对于层次结构图中的三元组 ,实体节点(头节点、尾节点)和关系边(),同样使用其ID嵌入作为初始表示、和,然后使用翻译模型TransH翻译层次结构图中节点和关系构成的三元组,在这个过程中优化实体节点的嵌入表示,它假设每个关系都拥有一个超平面,头部实体和尾部实体之间的转换只有投射到同一个超平面上才有效,它为三元组定义了一个评分函数如下:
其中,越低的分意味着这个三元组的可信程度越高,和是投影的实体向量,投影方式如下:
其中,是关系的学习向量,为对应超平面的投影向量,层次结构图上的实体节点经过TransH的翻译之后,得到了其包含结构信息的嵌入表示。
作为本发明的进一步改进,在所述步骤3中,主要的API推荐任务,是将所述步骤2中通过GCN得到的调用关系图中的方法和API节点表示和通过TransH得到的层次结构图中的实体表示进行联合学习来增强方法和API节点表示。
作为本发明的进一步改进,在所述步骤3中,主要的API推荐任务,具体步骤如下:
步骤A1,建立一组方法/API—实体对齐集合,其中每一个表示可以映射到层次结构图中的实体,联合学习函数定义如下:
其中,表示方法 调用API 的概率,和是方法嵌入向量和API嵌入向量通过对应实体嵌入和增强后的嵌入向量:
步骤A2,为了训练主要的API推荐任务的网络参数,使用一个基于最大边际的损失函数,其基本思想是确保反例的内积比正例的内积小于预先定义的边界:
其中,表示训练集三元组,
L REC 表示推荐任务的损失函数。
作为本发明的进一步改进,在所述步骤3中,在辅助的对比学习任务中,从结构方面构建方法和API的正负样本对,具体步骤如下:
步骤B1,从GCN模型偶数层的输出中获得同构邻域的表示。
步骤B2,将方法自身的嵌入向量与偶数层GCN对应输出的嵌入向量视为正对(即,),不同的节点视为负样本(即,),提出结构对比学习目标,最小化正样本对之间的距离,公式如下所示:
其中, 是衡量两个向量之间的相似度的余弦函数,是温度超参数,类似地,将API自身的嵌入向量与偶数层GCN对应输出的嵌入向量视为正对(即,,不同的节点视为负样(即,),提出结构对比学习目标,最小化正样本对之间的距离,得到API方面的结构对比损失函数
L I CL ,公式如下所示:
。
步骤B3,将方法和API的损失函数加权求和得到完整的结构对比目标函数:
其中,是平衡结构对比学习中两种损失的权重超参数,
L CL 是指的完整的结构对比目标函数。
步骤B4,将提出的结构对比学习损失作为补充,利用多任务学习策略联合训练传统的排序损失和提出的对比学习损失:
其中,是控制两个损失函数的权重超参数。
本发明的有益效果是:1.本发明提出了知识增强的图嵌入学习,将图卷积神经网络训练任务和知识图谱嵌入表示学习任务进行联合学习,使得方法和API的嵌入向量中不仅建模了调用交互还融合了代码中的层次结构信息,优化了方法和API的表示,以达到更准确的推荐效果;2.本发明提出了基于图结构的对比学习作为辅助任务,改善调用关系图中稀疏的API交互信号带来的图节点表征学习较差的问题,提高了方法和API表示的质量,同时,由于增加了正负样本,增强了训练集,降低了出现频次高的API对表征学习的影响,使得模型对低出现频率API的推荐效果更好。
附图说明
图1是本发明的原理框图。
具体实施方式
本发明公开了一种基于知识增强和结构对比的API推荐方法,它主要由三个阶段组成:1)代码预处理构图部分,解析源代码,提取方法、API和结构节点以及它们之间的关系,构成调用关系图和层次结构图;2)知识增强的图嵌入学习,使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,同时用翻译模型TransH学习层次结构图中的实体和关系的嵌入表示;3)多任务学习,主要任务是API推荐,辅助任务是对比学习。包括主要的API推荐任务和辅助的对比学习任务。在主要任务中,结合几种转移方案,将从层次结构图中学到的实体嵌入转移到方法和API的嵌入中,从而联合训练推荐任务与知识图谱嵌入模型,为方法和API引入更多的语义关系,更深层次地挖掘方法和API的关联。除了直接的方法和API之间的调用交互之外,一些潜在的联系,如在调用交互图上的高阶路径上连接的方法或API节点具有结构联系。因此,在辅助任务中,构建了结构和语义的样本对来进行对比学习,改进图神经网络得到的方法和API的嵌入表示。下面将对本发明进行清楚、完整的描述。
本发明公开的一种基于知识增强和结构对比的API推荐方法,包括:
步骤1,代码预处理构图;解析源代码,提取方法、API和结构节点以及它们之间的关系,构成调用关系图和层次结构图。该步骤具体包括:
步骤10,代码预处理构图部分中,使用静态分析工具Eclipse JDT解析源代码;
步骤11,提取所有方法节点集合、所有API节点集合和所有的实体(即,方法所属的类、API所属的类、包和项目)节点集合。除了节点集合之外,边集合包含方法和API之间的调用连接集合,以及实体之间的层次结构集合。
步骤12,基于这些节点集合和边集合,构建调用关系图和层次结构图。构图的具体描述如下:
1)调用关系图:对于每一个在项目中的方法和方法中调用的API,在调用关系图中增加一条边。这个图最终表示为,其中意味着方法调用过API ,否则。调用交互图反映了方法和API之间的基本关系。
2)层次结构图:在软件项目中,还有丰富的层次结构信息。如,在面向对象的程序设计中,一个项目中会有很多类,负责不同的功能;每个类中会定义很多方法,来实现具体的功能。通过程序分析,将这些结构信息表示为知识图谱的形式
, 其中是关系的集合,包括属于类、属于包和属于项目。
步骤2,知识增强的图嵌入学习;使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,同时用翻译模型TransH学习层次结构图中的实体和关系的嵌入表示。
知识增强的图嵌入学习部分,第一个模块是使用图神经网络GCN对调用关系图上的节点嵌入进行优化,第二个模块是使用翻译模型TransH学习层次结构图中的节点嵌入。接下来进行详细介绍。
1)对于调用关系图上的方法节点和API节点,使用其ID嵌入作为初始表示和,接着使用图卷积神经网络递归地传播初始表示,以利用高阶连通性来优化初始表示。具体步骤如下:
步骤S1,首先计算图上每个节点的自我网络(即,这个点的邻居节点构成的网络)表示和,公式如下:
其中,表示卷积的层数,从0开始,最大为层;表示方法节点的邻居,表示API节点的邻居;表示方法节点的度数,表示API节点的度数。
步骤S2,然后,将节点本身的表示/和节点的自我网络的表示/聚合到一起,对节点的表示进行更新,公式如下:
步骤S3,经过了层卷积层后,获得了节点和的多种表示,把节点的每一层的表示连接起来,得到节点和的最终表示和,公式如下:
,
其中,表示连接操作。
2)对于层次结构图中的三元组 ,实体节点(头节点、尾节点)和关系边(),同样使用其ID嵌入作为初始表示、和。然后使用翻译模型TransH翻译层次结构图中节点和关系构成的三元组,在这个过程中优化实体节点的嵌入表示。翻译模型TransH学习基于不同关系的实体的不同表示。它假设每个关系都拥有一个超平面,头部实体和尾部实体之间的转换只有投射到同一个超平面上才有效。它为三元组定义了一个评分函数如下:
其中,越低的分意味着这个三元组的可信程度越高。和是投影的实体向量,投影方式如下:
其中,是关系的学习向量,为对应超平面的投影向量。层次结构图上的实体节点经过TransH的翻译之后,得到了其包含结构信息的嵌入表示。
步骤3,多任务学习; 分为主要的API推荐任务和辅助的对比学习任务。主要的API推荐任务,是将步骤2中通过GCN得到的调用关系图中的方法和API节点表示和通过TransH得到的层次结构图中的实体表示进行联合学习来增强方法和API节点表示。具体步骤如下:
步骤A1,首先,建立了一组方法/API—实体对齐集合,其中每一个表示可以映射到层次结构图中的实体。联合学习函数定义如下:
其中,表示方法 调用API 的概率,和是方法嵌入向量和API嵌入向量通过对应实体嵌入和增强后的嵌入向量:
步骤A2,接着,为了训练主要的API推荐任务的网络参数,使用一个基于最大边际的损失函数。其基本思想是确保反例(即未观察到的API调用)的内积比正例(即观察到的API调用)的内积小于预先定义的边界:
其中,表示训练集三元组,
L REC 表示推荐任务的损失函数。
在辅助的对比学习任务中,本发明从结构方面构建方法和API的正负样本对,具体步骤如下:
步骤B1,由于调用关系图是二部图,在图上进行偶数次的信息传播时,就聚集了方法和API的同构邻居信息。通过这种方式,可以从GCN模型偶数层(如2,4,6)的输出中获得同构邻域的表示。
步骤B2,本发明将方法自身的嵌入向量与偶数层GCN对应输出的嵌入向量视为正对(即,),不同的节点视为负样本(即,),提出结构对比学习目标,最小化正样本对之间的距离,公式如下所示:
其中, 是衡量两个向量之间的相似度的余弦函数,是温度超参数。类似地,将API自身的嵌入向量与偶数层GCN对应输出的嵌入向量视为正对(即,,不同的节点视为负样(即,),提出结构对比学习目标,最小化正样本对之间的距离,得到API方面的结构对比损失函数
L I CL ,公式如下所示:
。
步骤B3,最后将方法和API的的损失函数加权求和得到完整的结构对比目标函数:
其中,是平衡结构对比学习中两种损失的权重超参数,
L CL 是指的完整的结构对比目标函数。
本发明将提出的结构对比学习损失作为补充,利用多任务学习策略联合训练传统的排序损失和提出的对比学习损失:
其中,是控制两个损失函数的权重超参数。
使用本发明进行API使用推荐的步骤如下:
(1)训练模型,使得模型达到最优推荐效果;
(2)将正在编程的方法输入已经训练好的模型中;
(3)模型允许,返回API推荐列表;
(4)软件开发人员根据当前代码段的需要选择API。
本发明的优点:
1. 提出了知识增强的图嵌入学习,将图卷积神经网络训练任务和知识图谱嵌入表示学习任务进行联合学习,使得方法和API的嵌入向量中不仅建模了调用交互还融合了代码中的层次结构信息,优化了方法和API的表示,以达到更准确的推荐效果。
2. 提出了基于图结构的对比学习作为辅助任务,改善调用关系图中稀疏的API交互信号带来的图节点表征学习较差的问题,提高了方法和API表示的质量。同时,由于增加了正负样本,增强了训练集,降低了出现频次高的API对表征学习的影响,使得模型对低出现频率API的推荐效果更好。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种基于知识增强和结构对比的API推荐方法,其特征在于,包括以下步骤:
步骤1,代码预处理构图;解析源代码,提取方法、API和结构节点以及它们之间的关系,构成调用关系图和层次结构图;
步骤2,知识增强的图嵌入学习;使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,同时用翻译模型TransH学习层次结构图中的实体和关系的嵌入表示;
步骤3,多任务学习;包括主要的API推荐任务和辅助的对比学习任务;
在所述步骤2中,使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,是指对于调用关系图上的方法节点和API节点,使用其ID嵌入作为初始表示和,接着使用图卷积神经网络递归地传播初始表示,以利用高阶连通性来优化初始表示;
在所述步骤2中,使用图卷积神经网络GCN在调用关系图上传播信息来细化方法和API的初始嵌入表示,具体步骤如下:
步骤S1,先计算图上每个节点的自我网络表示和,公式如下:
;
;
其中,表示卷积的层数,从0开始,最大为L层;表示方法节点的邻居,表示API节点的邻居;表示方法节点的度数,表示API节点的度数;
步骤S2,将节点本身的表示/和节点的自我网络的表示/聚合到一起,对节点的表示进行更新,公式如下:
;
;
步骤S3,经过了层卷积层后,获得了节点和的多种表示,把节点的每一层的表示连接起来,得到节点和的最终表示和,公式如下:
;
其中,表示连接操作;
在所述步骤3中,在辅助的对比学习任务中,从结构方面构建方法和API的正负样本对,具体步骤如下:
步骤B1,从GCN模型偶数层的输出中获得同构邻域的表示;
步骤B2,将方法自身的嵌入向量与偶数层GCN对应输出的嵌入向量视为正对,即,不同的节点视为负样本,即,提出结构对比学习目标,最小化正样本对之间的距离,公式如下所示:
;
其中,是衡量两个向量之间的相似度的余弦函数,是温度超参数,类似地,将API自身的嵌入向量与偶数层GCN对应输出的嵌入向量视为正对,即,不同的节点视为负样,即 ,提出结构对比学习目标,最小化正样本对之间的距离,得到API方面的结构对比损失函数公式如下所示:
;
步骤B3,将方法和API的损失函数加权求和得到完整的结构对比目标函数:
;
其中,是平衡结构对比学习中两种损失的权重超参数, L CL 是指的完整的结构对比目标函数;
步骤B4,将提出的结构对比学习损失作为补充,利用多任务学习策略联合训练传统的排序损失和提出的对比学习损失:
;
其中,是控制两个损失函数的权重超参数。
2.根据权利要求1所述的API推荐方法,其特征在于,在所述步骤1中,还包括:
步骤10,使用静态分析工具解析源代码;
步骤11,提取所有方法节点集合、所有API节点集合和所有的实体节点集合E,提取边集合的方法和API之间的调用连接集合,以及边集合实体之间的层次结构集合;
步骤12,基于步骤11的节点集合和边集合,构建调用关系图和层次结构图 。
3.根据权利要求2所述的API推荐方法,其特征在于,在所述步骤12中,构建的调用关系图和层次结构图具体如下:
调用关系图:对于每一个在项目中的方法和方法中调用的,在调用关系图中增加一条边,这个图最终表示为,其中意味着方法调用过,否则;
层次结构图:通过程序分析,将有需要的层次结构信息表示为知识图谱的形式,其中R是关系的集合,包括属于类、属于包和属于项目。
4.根据权利要求1所述的API推荐方法,其特征在于,在所述步骤2中,用翻译模型TransH学习层次结构图中的实体和关系的嵌入表示,是指对于层次结构图中的三元组,实体节点包括头节点h,尾节点t和关系边r,同样使用其ID嵌入作为初始表示、和,然后使用翻译模型TransH翻译层次结构图中节点和关系构成的三元组,在这个过程中优化实体节点的嵌入表示,它假设每个关系都拥有一个超平面,头部实体和尾部实体之间的转换只有投射到同一个超平面上才有效,它为三元组定义了一个评分函数如下:
;
其中,越低的分意味着这个三元组的可信程度越高,和是投影的实体向量,投影方式如下:
;
;
其中,是关系r的学习向量,为对应超平面的投影向量,层次结构图上的实体节点经过TransH的翻译之后,得到了其包含结构信息的嵌入表示。
5.根据权利要求1所述的API推荐方法,其特征在于,在所述步骤3中,主要的API推荐任务,是将所述步骤2中通过GCN得到的调用关系图中的方法和API节点表示和通过TransH得到的层次结构图中的实体表示进行联合学习来增强方法和API节点表示。
6.根据权利要求5所述的API推荐方法,其特征在于,在所述步骤3中,主要的API推荐任务,具体步骤如下:
步骤A1,建立一组方法/API—实体对齐集合,其中每一个表示可以映射到层次结构图中的实体,联合学习函数定义如下:
;
其中,表示方法调用的概率,和是方法嵌入向量和API嵌入向量通过对应实体嵌入 和增强后的嵌入向量:
;
;
步骤A2,为了训练主要的API推荐任务的网络参数,使用一个基于最大边际的损失函数,其基本思想是确保反例的内积比正例的内积小于预先定义的边界r:
;
其中,表示训练集三元组,L REC 表示推荐任务的损失函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211523157.3A CN115600012B (zh) | 2022-12-01 | 2022-12-01 | 一种基于知识增强和结构对比的api推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211523157.3A CN115600012B (zh) | 2022-12-01 | 2022-12-01 | 一种基于知识增强和结构对比的api推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115600012A CN115600012A (zh) | 2023-01-13 |
CN115600012B true CN115600012B (zh) | 2023-04-21 |
Family
ID=84852042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211523157.3A Active CN115600012B (zh) | 2022-12-01 | 2022-12-01 | 一种基于知识增强和结构对比的api推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115600012B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573084B (zh) * | 2023-08-02 | 2024-04-12 | 广东工业大学 | 一种基于逐层融合抽象语法树的代码补全方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590900A (zh) * | 2021-07-29 | 2021-11-02 | 南京工业大学 | 一种融合动态知识图谱的序列推荐方法 |
EP3929853A1 (en) * | 2020-06-26 | 2021-12-29 | Facebook, Inc. | Systems and methods for feature engineering based on graph learning |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10771488B2 (en) * | 2018-04-10 | 2020-09-08 | Cisco Technology, Inc. | Spatio-temporal anomaly detection in computer networks using graph convolutional recurrent neural networks (GCRNNs) |
US11762926B2 (en) * | 2019-05-20 | 2023-09-19 | Fujitsu Limited | Recommending web API's and associated endpoints |
US11676194B2 (en) * | 2019-10-09 | 2023-06-13 | Target Brands, Inc. | Faceted item recommendation system |
EP3893163A1 (en) * | 2020-04-09 | 2021-10-13 | Naver Corporation | End-to-end graph convolution network |
US11676001B2 (en) * | 2020-08-31 | 2023-06-13 | Microsoft Technology Licensing, Llc | Learning graph representations using hierarchical transformers for content recommendation |
CN115186097A (zh) * | 2022-01-07 | 2022-10-14 | 东北大学 | 一种基于知识图谱和强化学习的交互式推荐方法 |
CN114416159B (zh) * | 2022-04-01 | 2022-07-22 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于信息增强调用序列的api推荐方法及装置 |
CN114817745B (zh) * | 2022-05-19 | 2023-04-18 | 大连海事大学 | 一种图嵌入增强的Web API推荐方法和系统 |
-
2022
- 2022-12-01 CN CN202211523157.3A patent/CN115600012B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3929853A1 (en) * | 2020-06-26 | 2021-12-29 | Facebook, Inc. | Systems and methods for feature engineering based on graph learning |
CN113590900A (zh) * | 2021-07-29 | 2021-11-02 | 南京工业大学 | 一种融合动态知识图谱的序列推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115600012A (zh) | 2023-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Knowledge guided capsule attention network for aspect-based sentiment analysis | |
Zhang et al. | A review on entity relation extraction | |
CN103544242B (zh) | 面向微博的情感实体搜索系统 | |
CN111339313A (zh) | 一种基于多模态融合的知识库构建方法 | |
CN113779220B (zh) | 一种基于三通道认知图谱和图注意力网络的蒙语多跳问答方法 | |
Yang et al. | Co-embedding network nodes and hierarchical labels with taxonomy based generative adversarial networks | |
CN115600012B (zh) | 一种基于知识增强和结构对比的api推荐方法 | |
CN107292097A (zh) | 基于特征组的特征选择方法、及中医主症选择方法 | |
CN114332519A (zh) | 一种基于外部三元组和抽象关系的图像描述生成方法 | |
CN108171261A (zh) | 鲁棒的自适应半监督图像分类方法、装置、设备及介质 | |
Assi et al. | Data linking over RDF knowledge graphs: A survey | |
CN116737979A (zh) | 基于上下文引导多模态关联的图像文本检索方法及系统 | |
Huang et al. | Partitioned hybrid learning of Bayesian network structures | |
Qu et al. | A noise-aware method with type constraint pattern for neural relation extraction | |
CN114359656A (zh) | 一种基于自监督对比学习的黑色素瘤图像识别方法和存储设备 | |
WO2021082444A1 (zh) | 用于大规模脑病历分割的多粒度Spark超信任模糊方法 | |
CN111339258B (zh) | 基于知识图谱的大学计算机基础习题推荐方法 | |
CN116450938A (zh) | 一种基于图谱的工单推荐实现方法及系统 | |
Wang et al. | A review of entity alignment based on graph convolutional neural network | |
CN112836511B (zh) | 基于协同关系的知识图谱上下文嵌入方法 | |
Hou et al. | Binary Equalization Optimizer Based on Variable Order Transfer Functions to Solve High Dimensional Feature Selection Problem. | |
Haihong et al. | A joint embedding method of relations and attributes for entity alignment | |
Tang et al. | A Knowledge Graph Embedding Model Based on Node-Relation Fusion Perception | |
Iyer et al. | Multifaceted context representation using dual attention for ontology alignment | |
Zhang et al. | A review of inference methods based on knowledge graph |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |