[论文解读] ALFAA: Active Learning Fingerprint Based Anti-Aliasing for Correcting Developer Identity Errors in Version Control Data
ALFAA 提出了一种基于主动学习的指纹方法,通过行为指纹(时区模式、修改文件和提交信息嵌入)纠正版本控制数据中的开发者身份错误,以区分同名开发者。该方法显著优于商业和研究方法,将错误减少数倍,并证明身份纠正能极大提升推断出的开发者社交网络的保真度。
Graphs of developer networks are important for software engineering research and practice. For these graphs to realistically represent the networks, accurate developer identities are imperative. We aim to identify developer identity errors from open source software repositories in VCS, investigate the nature of these errors, design corrective algorithms, and estimate the impact of the errors on networks inferred from this data. We investigate these questions using over 1B Git commits with over 23M recorded author identities. By inspecting the author strings that occur most frequently, we group identity errors into categories. We then augment the author strings with 3 behavioral fingerprints: time-zone frequencies, the set of files modified, and a vector embedding of the commit messages. We create a manually validated set of identities for a subset of OpenStack developers using an active learning approach and use it to fit supervised learning models to predict the identities for the remaining author strings in OpenStack. We compare these predictions with a commercial effort and a leading research method. Finally, we compare network measures for file-induced author networks based on corrected and raw data. We find commits done from different environments, misspellings, organizational IDs, default values, and anonymous IDs to be the major sources of errors. We also find supervised learning methods to reduce errors by several times in comparison to existing methods and the active learning approach to be an effective way to create validated datasets and that correction of developer identity has a large impact on the inference of the social network. We believe that our proposed Active Learning Fingerprint Based Anti-Aliasing (ALFAA) approach will expedite research progress in the software engineering domain for applications that depend upon graphs of developers or other social networks.
研究动机与目标
- 识别和分类版本控制系统中开发者身份错误的常见原因。
- 探索除语法之外的行为指纹(如时区使用、文件修改模式和提交信息嵌入)在区分同名开发者方面的辅助作用。
- 通过主动学习策略优先选择不确定预测进行验证,以最小化人工标注工作量。
- 评估身份错误对社交网络度量的影响,并证明纠正的必要性。
- 开发一种可扩展的开源解决方案,提升软件工程研究中开发者网络分析的可靠性。
提出的方法
- 该方法从三个来源构建行为指纹:提交的时区频率、修改文件的集合,以及使用自然语言处理技术生成的提交信息向量嵌入。
- 采用在 OpenStack 开发者手动验证子集上训练的监督学习模型(随机森林),预测未验证作者字符串的正确身份。
- 使用主动学习迭代选择最不确定的预测结果进行人工标注,以在最小化人力投入的同时最大化模型准确率。
- 通过高频作者字符串识别同名开发者,随后通过指纹匹配将提交分配给正确的开发者。
- 通过仅在高不确定性或高频聚类内进行 O(n²) 相似度计算,实现对大规模数据集的可扩展处理。
- 比较纠正后与原始数据的网络度量(度中心性、聚类系数、约束度、特征向量中心性),以评估其影响。
实验结果
研究问题
- RQ1版本控制数据中开发者身份错误的最常见原因是什么?
- RQ2除姓名拼写外,哪些行为指纹可提升软件仓库中身份区分的准确性?
- RQ3如何在实现高准确率身份解析的同时最小化人工标注工作量?
- RQ4所提出的方法与商业及研究型区分技术相比表现如何?
- RQ5身份错误对推断出的开发者社交网络结构和度量指标有何影响?
主要发现
- 最常见的错误来源包括环境相关提交、拼写错误、组织或工具标识符(如 'Jenkins Build')、默认名称(如 'root')以及匿名标识符。
- 使用行为指纹的监督学习将身份错误数量显著减少数倍,优于商业解决方案和近期研究方法。
- 在纠正后与原始数据之间,网络度量(度中心性、聚类系数、约束度、特征向量中心性)的斯皮尔曼等级相关系数均低于 0.95,表明网络结构受到严重破坏。
- 对于开发者群体的第 25 百分位数,纠正网络中的同行数量为 210,而原始网络中仅为 113,表明协作关系被显著低估。
- 在原始网络中,特征向量中心性低于纠正后网络的四倍(0.007 vs. 0.024),表明对专家能力和影响力的估计严重失真。
- 主动学习方法通过极少的人工标注即可实现模型的快速优化,证明了其在大规模应用中的可行性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。