Towards Balanced Defect Prediction with Better Information Propagation
文献:
Towards Balanced Defect Prediction with Better Information Propagation - AAAI 2021
1 背景
为发现的漏洞对软件安全和质量造成巨大影响,所以漏洞预测模型对软件生态具有重要意义。
2 动机
目前使用DL模型进行漏洞预测存在以下3个缺点:
- 标记数据少:已知漏洞代码数量较少,缺乏大量标记的代码样本;
- 数据不平衡:当前代码数据中漏洞样本占比较少;
- 消息传递机制不完善:各代码工件的标签对消息传递的影响未加入研究;
- 节点特征通过连接矩阵在节点之间进行信息传递,但是节点本身的标签信息在消息传递阶段却未被考虑;
本文的主要目标就是为解决上述3个缺点。
3 方法
-
- Graph construction:利用CodeOntology
- Graph embedding:图表示学习
3.2 消息传递矩阵优化
传统的消息传递矩阵仅仅考虑了图结构,而未考虑节点标签和节点属性。例如最常用的邻接矩阵和拉普拉斯矩阵都只代表了图的结构信息,在消息传递时邻接矩阵内部的权重只受到反向传播的影响,而其连接的节点所带标签等先验知识对这个权重的调整没有任何影响。
所以在消息传递时需要同时保证:依照图结构传递 + 传递效果受到节点标签的影响,如下图:
其中节点V7是有标签节点,通过V7相连的边进行消息传递时,传递权重要受到该标签的影响而放大。
创新点:将节点标签加入到消息传递矩阵的初始化中(按我理解:作为一种先验知识,可以避免GCN天然的平均化,加速模型收敛)
消息传递矩阵的初始值和节点的标签密切相关,利用LPA对消息传递矩阵进行优化:
由截图可知,消息传递机制除了考虑到图结构,还考虑了节点的标签信息。
3.3 The EM-based Defect Prediction Model
EM框架分为2个阶段:E-step 和 M-step
E-step任务:根据节点特征X和消息传递矩阵A*得到节点标签的概率分布函数q M-step任务:根据节点标签Y和消息传递矩阵A*得到节点标签的概率分布函数p
最终目标:
: