论文
XSearch:通过概念到代码对齐进行可解释的代码搜索
XSearch: Explainable Code Search via Concept-to-Code Alignment
摘要
语义代码搜索已在学术界和工业界广泛采用。这些方法将自然语言查询和代码片段嵌入到共享嵌入空间中,并根据向量相似性检索结果。尽管在基准数据集上表现出色,但它们常常存在可解释性和泛化性较差的问题。检索到的代码可能在语义上看起来相似,但错过了查询的关键功能要求,同时没有提供检索结果原因的解释。此外,这种失败在分布转移的情况下变得更加严重,模型很难推广到看不见的基准。在这项工作中,我们提出了 XSearch,一种本质上可解释的代码搜索框架。我们的主要见解是,通过依赖全局嵌入相似性,现有的 检索器 本质上采取归纳观点。他们学习统计模式,而不是真正理解查询的功能需求。我们通过将代码搜索重新表述为演绎概念对齐问题来解决这个问题。 XSearch (i) 识别查询中的功能概念,并且 (ii) 显式地将它们与相应的代码语句对齐。这种先解释后预测的设计产生了固有的概念级解释,并减少了损害分布外泛化的捷径学习。我们训练具有明确概念对齐目标的编码器,并通过查询概念和代码语句之间的显式匹配来执行检索。实验表明,使用 GraphCodeBERT(125M 参数)在 CodeSearchNet 上进行训练后,XSearch 将分布外基准的性能比八个最先进的 检索器 从 0.02 提高到 0.33 (15 倍),并且始终优于基于编码器和解码器的基准(参数高达 7B)。用户研究表明,概念对齐解释使用户能够更快、更准确地评估检索到的结果。