中文

Repo2Vec:一种用于判定仓库相似度的综合嵌入方法

软件工程 2021-07-13 v1 人工智能

摘要

我们如何能在如 GitHub 这样的大型在线存档中识别相似的仓库和簇?确定仓库相似度是研究此类软件生态系统动态与演进的基本构件。关键挑战在于以如下方式确定多样化仓库特征的正确表示:(a) 它捕获可用信息的各个方面,且 (b) 它能被机器学习算法直接使用。我们提出 Repo2Vec,一种综合嵌入方法,通过结合三类信息源的特征将仓库表示为分布式向量。我们的核心创新在于考虑了三类信息:(a) 元数据,(b) 仓库结构,以及 (c) 源代码。我们还引入了一系列嵌入方法将这些信息类型表示并组合为单一嵌入。我们用来自 GitHub 的两个真实数据集(共 1013 个仓库)评估了我们的方法。首先,我们表明我们的方法在精确率上优于先前方法(93% 对 78%),且具有近两倍的强相似仓库和少 30% 的假阳性。其次,我们展示了 Repo2Vec 如何为以下提供坚实基础:(a) 区分恶意与良性仓库,以及 (b) 识别有意义的层次聚类。例如,我们在区分恶意与良性仓库上达到了 98% 精确率和 96% 召回率。总体而言,我们的工作是实现许多仓库分析功能的基础构件,例如按目标平台或意图的仓库分类、检测代码复用与克隆、以及识别谱系与演进。

关键词

引用

@article{arxiv.2107.05112,
  title  = {Repo2Vec: A Comprehensive Embedding Approach for Determining Repository Similarity},
  author = {Md Omar Faruk Rokon and Pei Yan and Risul Islam and Michalis Faloutsos},
  journal= {arXiv preprint arXiv:2107.05112},
  year   = {2021}
}

备注

10 pages, 8 figures, 5 tables. In press: ICSME'21