How Small Transformation Expose the Weakness of Semantic Similarity Measures
作者: Serge Lionel Nikiema, Albérick Euraste Djire, Abdoul Aziz Bonkoungou, Micheline Bénédicte Moumoula, Jordan Samhi, Abdoul Kader Kabore, Jacques Klein, Tegawendé F. Bissyande
分类: cs.CL, cs.AI
发布日期: 2025-09-08
💡 一句话要点
揭示语义相似度度量方法的弱点:小变换带来的挑战
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 语义相似度 软件工程 代码分析 大型语言模型 嵌入方法
📋 核心要点
- 现有语义相似度度量方法在处理细微语义变化时表现不足,无法准确捕捉语义关系。
- 通过构建系统性的测试框架,对文本和代码进行受控的微小变换,评估各种方法的鲁棒性。
- 实验表明,现有方法在区分语义对立和同义关系时存在显著缺陷,嵌入方法尤为突出。
📝 摘要(中文)
本研究考察了不同方法衡量语义相似度的能力,这对于代码搜索、API推荐、自动化代码审查和重构工具等各种软件工程应用至关重要。尽管大型语言模型越来越多地用于这些相似性评估,但关于它们是否真正理解语义关系或仅仅识别表面模式的问题仍然存在。该研究测试了18种不同的相似性度量方法,包括基于词的方法、嵌入技术、基于LLM的系统和结构感知算法。研究人员创建了一个系统的测试框架,该框架对文本和代码应用受控更改,以评估每种方法处理不同类型语义关系的能力。结果表明,常用指标存在重大问题。一些基于嵌入的方法错误地将语义对立面识别为相似,高达99.9%的时间,而某些基于Transformer的方法有时会将相反的含义评为比同义词更相似。该研究发现,嵌入方法表现不佳通常源于它们计算距离的方式;从欧几里德距离切换到余弦相似度可将结果提高24%至66%。基于LLM的方法在区分语义差异方面表现更好,对于真正不同的含义产生较低的相似度得分(0.00至0.29),而嵌入方法错误地为不相似的内容分配了较高的得分(0.82至0.99)。
🔬 方法详解
问题定义:论文旨在解决现有语义相似度度量方法在处理细微语义变化时表现不佳的问题。现有方法,包括基于词、嵌入和大型语言模型的方法,在软件工程的各种应用中,如代码搜索和API推荐,无法准确捕捉语义关系,导致错误的结果和降低的效率。这些方法可能仅仅识别表面模式,而未能真正理解语义。
核心思路:论文的核心思路是通过构建一个系统性的测试框架,对文本和代码进行受控的微小变换,例如同义词替换、否定添加等,来评估各种语义相似度度量方法在处理这些变换时的鲁棒性。通过观察这些方法在面对这些微小变化时的表现,可以揭示它们的弱点和局限性。
技术框架:该研究的技术框架主要包括以下几个阶段: 1. 方法选择:选择18种不同的语义相似度度量方法,包括基于词的方法、嵌入技术(如Word2Vec、GloVe)、基于LLM的系统(如BERT、RoBERTa)和结构感知算法。 2. 测试用例生成:构建包含文本和代码的测试用例,并对这些用例进行受控的微小变换,例如同义词替换、否定添加、变量重命名等。 3. 相似度计算:使用选定的语义相似度度量方法计算原始用例和变换后用例之间的相似度得分。 4. 结果分析:分析不同方法在处理不同类型变换时的表现,评估它们的鲁棒性和准确性。
关键创新:该研究的关键创新在于其系统性的测试框架,该框架能够通过受控的微小变换来揭示现有语义相似度度量方法的弱点。与以往的研究不同,该研究不仅关注方法的整体性能,更关注它们在处理细微语义变化时的表现。此外,该研究还发现,嵌入方法在计算距离时使用欧几里德距离会导致较差的结果,而切换到余弦相似度可以显著提高性能。
关键设计:在测试用例生成方面,研究人员精心设计了各种类型的变换,以模拟实际软件工程场景中可能出现的语义变化。例如,同义词替换可以模拟代码重构中的变量重命名,否定添加可以模拟条件判断中的逻辑反转。在相似度计算方面,研究人员使用了多种不同的距离度量方法,包括欧几里德距离和余弦相似度,以评估它们对结果的影响。对于基于LLM的方法,研究人员使用了预训练的Transformer模型,并根据具体任务进行了微调。
📊 实验亮点
实验结果表明,一些基于嵌入的方法错误地将语义对立面识别为相似,高达99.9%的时间。而切换距离计算方式(从欧几里德距离到余弦相似度)能使嵌入方法的性能提升24%到66%。基于LLM的方法在区分语义差异方面表现更好,对于真正不同的含义产生较低的相似度得分(0.00至0.29),而嵌入方法错误地为不相似的内容分配了较高的得分(0.82至0.99)。
🎯 应用场景
该研究成果可应用于改进软件工程工具,例如代码搜索、API推荐、自动化代码审查和重构工具。通过选择更鲁棒的语义相似度度量方法,可以提高这些工具的准确性和可靠性,从而提高软件开发效率和质量。此外,该研究还可以为开发新的、更强大的语义相似度度量方法提供指导。
📄 摘要(原文)
This research examines how well different methods measure semantic similarity, which is important for various software engineering applications such as code search, API recommendations, automated code reviews, and refactoring tools. While large language models are increasingly used for these similarity assessments, questions remain about whether they truly understand semantic relationships or merely recognize surface patterns. The study tested 18 different similarity measurement approaches, including word-based methods, embedding techniques, LLM-based systems, and structure-aware algorithms. The researchers created a systematic testing framework that applies controlled changes to text and code to evaluate how well each method handles different types of semantic relationships. The results revealed significant issues with commonly used metrics. Some embedding-based methods incorrectly identified semantic opposites as similar up to 99.9 percent of the time, while certain transformer-based approaches occasionally rated opposite meanings as more similar than synonymous ones. The study found that embedding methods' poor performance often stemmed from how they calculate distances; switching from Euclidean distance to cosine similarity improved results by 24 to 66 percent. LLM-based approaches performed better at distinguishing semantic differences, producing low similarity scores (0.00 to 0.29) for genuinely different meanings, compared to embedding methods that incorrectly assigned high scores (0.82 to 0.99) to dissimilar content.