" 在软件漏洞检测领域,深度学习方法往往依赖大量高质量标注数据。然而现实中:漏洞标注成本高、依赖专家知识;数据分布不均衡(漏洞样本稀缺);跨项目泛化能力差。这导致一个核心瓶颈:
"模型很强,但数据太贵。"
针对这一问题,论文提出:Less Is More思想,利用半监督学习,在少量标注数据下实现高效漏洞检测。"
- 📄 论文标题:Less Is More: Unlocking Semi-Supervised Deep Learning for Vulnerability Detection
📅 发表时间:ACM Transactions on Software Engineering and Methodology,2025
🏫 作者单位:华为、武汉大学、浙江大学
01---方法介绍
该工作的核心思想是:最大化利用未标注数据,让模型在"少标注"条件下依然具备强检测能力。
整体框架可以理解为一个"自增强学习闭环":
-
先用少量标注数据训练初始模型;
-
利用模型为未标注数据打标签;
-
筛选高置信度样本加入训练;
-
不断迭代优化模型。

图1. SSVD方法架构
小结:论文通过置信度筛选与一致性约束,有效缓解了伪标签错误累积的问题。****
02---关键机制
-
面向漏洞检测的半监督框架
系统性引入半监督学习到安全领域。
-
高质量伪标签机制
通过置信度控制提升标签可靠性。
-
一致性学习策略
增强模型对输入扰动的稳定性。
-
数据效率优化
显著减少对人工标注的依赖。
| 模块 | 设计思路 | 作用 |
|---|---|---|
| 少量标注数据训练 | 使用有限漏洞标签进行初始模型训练 | 构建基础检测能力 |
| 伪标签生成(Pseudo-labeling) | 利用模型对未标注数据进行预测并生成标签 | 扩展训练数据规模 |
| 一致性正则化 | 约束模型在扰动输入下输出一致 | 提升模型鲁棒性 |
| 半监督联合训练 | 融合真实标签与伪标签进行迭代优化 | 提升整体检测性能 |
小结:用"少量真标签 + 大量伪标签"替代"全量人工标注",显著降低数据成本。
03---实验结果
实验优先使用经人工标注的 Devign 和 ReVeal 作为核心数据集,并额外纳入 Big-Vul 与 Juliet 数据集以增强 SSVD 的通用性。
(1)SSVD与半监督** 的六种深度学习方法及三种机器学习方法比较结果见表1-2。结果显示,SSVD 在F1、召回率及MCC上全面优于 SST、UST、DST 三种半监督方法。以LineVul为基模型时,SSVD的F1平均提升 4.91%~12.82%,MCC 平均提升 4.62%~8.17%;以 ReVeal 为基模型时,F1 平均提升 6.98%~10.68%,MCC 提升 16.62%~22%,**
表1. SSVD 与以 LineVul 作为基检测模型的相关方法比较。

表2. SSVD 与以 Reveal作为基检测模型的相关方法比较。

(2)评估了 SSVD 在 10%~100% 标注数据比例下的性能表现,结果见图2-3。结果表明,增加标注训练数据的比例通常能提升 SSVD的性能。在大多数情况下,使用一定比例标注数据训练的SSVD,其表现能够超过或接近使用 100% 标注数据训练的 LineVul 和 ReVeal。

图2. 四个模型(SSVD(LineVul)、SSVD(ReVeal)、LineVul、ReVeal)在四个数据集上随标注数据比例变化的 F1 分数。

图3. 四个模型(SSVD(LineVul)、SSVD(ReVeal)、LineVul、ReVeal)在四个数据集上随标注数据比例变化的MCC值。
小结**:SSVD方法通过信息增益筛选高确定性伪标签,并引入 NRTL 与 NRCE 损失函数增强易漏洞与无漏洞代码的区分度、减少错误伪标签的误差累积。四个数据集上的实验验证了 SSVD 的有效性。**
📌 总结
该论文的重要意义在于:重新审视漏洞检测中的"数据依赖问题",提出低成本高性能的新路径。表明了:通过合理利用未标注数据,可以在数据稀缺场景下释放深度学习模型的潜力。这为现实工业环境(标注困难)提供了极具价值的解决方案。
📣 欢迎留言讨论
-
你认为半监督学习能否成为漏洞检测的主流范式?
-
相比大模型(LLM),数据驱动方法是否仍具长期优势?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!