Page 396 - 《软件学报》2025年第5期
P. 396
2296 软件学报 2025 年第 36 卷第 5 期
重加权与 LDAM 是互补的, 两者结合使用可能会起到更好的效果. 因此, 本文中将两者结合使用来优化模型参数,
以缓解数据不平衡对模型带来的影响, 具体如公式 (16) 和公式 (17) 所示:
(( ) ) (( ) )
L CAMD = L LDAM-RW h (final) ,y ; f Θ = weight [y] ·L LDAM h (final) ,y ; f Θ (16)
v ν
1−β
1−β y n e p y −∆ y
L CAMD = · −log ∑ (17)
1 ∑ 1−β p z j
e y −∆ y + e
2 j=0,1 1−β j j,y
n
1−β
y
其中, y 为节点 v 的真实标签, f Θ 代表分类器, β ∈ [0,1) 为超参, n y 表示类型为 的节点的数量, 表示数据中
n
1−β y
y
类型为 y 的节点的有效样本数量的倒数, p y = f Θ (h (final) ) y 表示分类器的输出 p 中第 个元素的值, 即节点类型为 y
v
C
j
的概率, ∆ j = 1/4 , C 为超参, n j 为类型为 的节点个数. CAMD 的损失函数为标签感知的不平衡损失函数, 该损
n
j
失函数分为两部分, 分别是标签分布感知损失函数和自适应类级重加权. 标签分布感知损失函数旨在提高少数类
的可区分性, 确保模型不会由于类别内样本数量的不均衡而偏向于某些类别, 有助于更准确地识别边界上的少数
类别, 避免模型向某些类别过度拟合. 自适应类级重加权通过动态平衡机制, 确保模型在训练过程中持续关注难以
分类的类别. 因此, 标签感知的不平衡损失函数能够在全局下有效处理不平衡数据集, 有助于提升模型整体性能.
4 标签稀缺情况下的恶意节点检测方法 CAMD +
现实世界的恶意用户检测任务, 要检测的数据中大多是正常用户, 将很小一部分欺诈用户贴上“异常”的标签,
成本非常高. 对于恶意节点检测任务来说, 很少有数据被标记, 通常有大量的未标记数据. 标记数据稀缺将导致两
个问题: (1) 模型在训练过程中获取的信息不足, 无法捕捉到恶意节点的真实分布和规律, 分类器会在少量的标记
数据上过拟合, 编码器也无法学习到有区分度的节点表示, 从而使得整体模型泛化能力不足, 影响检测效果. (2) 类
别感知注意力系数机制会因标记数据稀少而影响性能, 此机制基于多层感知机 MLP, 通过节点特征信息预测每个
节点的类别, 在此基础上计算节点间的类型相似度并作为聚合时的注意力系数. 而该模块的训练需要用到充分的
节点标签信息, 标记数据过少会导致 MLP 预测准确率大大降低, 进一步影响注意力系数的效果, 对于图上的信息
聚合过程可能会起到负面影响. 因此, 结合恶意检测任务标记成本较高、标记数据稀缺的任务场景, 有必要构造一种
+
方法, 使得在标签稀缺情况下也能保证检测效果. 基于此, 本文提出了 CAMD 在标签稀缺情况下的优化算法 CAMD .
该方法对于标签稀缺情况下, 真实标签信息对于指导模型训练远远不足的问题, 本文提出了如下解决方案.
如果直接从原始图 ϕ 1 学习节点表达, 则具有局部性. 使用图增强的方法可以为原始图 ϕ 1 生成一个全局视图
ϕ 2 , 则同时得到原始图 ϕ 1 和一个全局视图 ϕ 2 , 从而扩大了训练集, 提高模型的泛化能力和性能. 此外, 由于
CAMD 中的类别感知注意力系数在标签稀缺情况下无法很好地发挥作用, 在本章方法中将此机制去除, 因此本节
中不一致图神经网络编码器的节点表示学习过程如公式 (18) 和公式 (19) 所示:
∑ ∑
(l)
h = h (l−1) ∥ h (l−1) (18)
v u 1 u 2
u 1 ∈N 1 (v) u 2 ∈N 2 (v)
(0)
(1)
h (final) = h ∥ h ∥ ... ∥ h (L) (19)
v v v v
(0) d h ×d x d h 为
其中, ∥ 表示拼接操作. 使用 h = σ(W e x v ) 将节点原始特征映射到隐层空间, W e ∈ R 为可训练权重矩阵,
v
σ 为 ReLU (final) ( 2 L+1 −1) d h ϕ 1 和一个全局视
初始隐层向量维度, 函数, h v ∈ R 为编码器输出的最终节点表示. 为原始图
图 ϕ 2 分别构造一个不一致图神经网络编码器 g ϕ 1 ,g ϕ 2 , 然后使用图对比学习的方式来对两个编码器进行训练. 采用
自监督学习方式从未标记数据中挖掘信息, 从而弥补标签信息不足带来的问题, 同时引入类别感知图对比学习, 充
分利用稀缺的标签信息, 从而增加节点的表示向量的区分度. 最终将两个编码器输出的表示向量 h (final),ϕ 1 ,h (final),ϕ 2 进
行求和, 如下式所示:
h (final) = λ 1 h (final),ϕ 1 +λ 2 h (final),ϕ 2 (20)
v v v