程序检索中语义相似性的多关系图视角

生活 编辑:
导读 程序检索仍然是软件开发的基石,对于提高整个开发生命周期的生产力至关重要。在各种程序检索模型中,许多模型都忽略了自然语言查询和代码之...

程序检索仍然是软件开发的基石,对于提高整个开发生命周期的生产力至关重要。在各种程序检索模型中,许多模型都忽略了自然语言查询和代码之间的差异,导致语义鸿沟明显。

此外,程序和查询都带有丰富的结构和语义信息,但现行方法往往忽视源代码不同方面之间的凝聚力,将查询视为序列,而忽略了其固有的结构特征。

为了解决这些问题,董云伟领导的研究团队在《计算机科学前沿》上发表了他们的研究成果。

研究团队提出了一个框架,将程序检索问题表述为多关系图相似性问题,并采用双层注意力机制,通过关系内和关系间层注意力为多关系图中的节点分配权重。

首先,多关系图构建模块专注于使用代码属性图 (CPG) 和抽象含义表示 (AMR) 来表示程序和查询。这种战略方法有助于更全面、更细致地描绘程序和查询语义。

然后利用双层注意图神经网络对AMR和CPG进行语义信息学习,最后设计语义相似度计算模块计算查询-程序对的相似度。与现有研究结果相比,所提方法在所有基准中表现相对较好。

未来的研究工作可以集中在优化多关系图上,通过最小化无关信息,从而降低图的复杂性。此外,一个有希望的途径是刻意整合外部知识,如知识图谱,旨在增强程序语义的表示。

标签:
免责声明:本文由用户上传,如有侵权请联系删除!