Page 395 - 《软件学报》2025年第5期
P. 395
王晨旭 等: 基于半监督和自监督图表示学习的恶意节点检测 2295
AGG(·) , 改进后的不一致图神经网络表示学习过程如公式 (10)
组合, 作为最终的节点表示向量. 结合前两节提出的
和公式 (11) 所示:
∑ ( ) ∑ ( )
(l)
h = λ att α vu 1 +λ adj h (l−1) ∥ λ att α vu 2 +λ adj h (l−1) (10)
v
u 2
u 1
u 1 ∈N 1 (v) u 2 ∈N 2 (v)
(0)
(1)
h (final) = h ∥ h ∥ ... ∥ h (L) (11)
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 UPDATE(·) 方法, 可以保留每个节点自身原本的
初始隐层向量维度, 函数, h v ∈ R . 这样的
信息与表示学习过程中不同局域性的信息, 增加节点表示的表达能力.
3.5 类别感知不平衡损失函数
本节引入一种类别感知不平衡损失函数以解决上文中提出的数据不平衡问题. 对于本文中的恶意节点检测任
务, 在下游分类任务中可以将其看作一个二分类问题. 构造一个分类器 f Θ : h (final) 7→ p , 以第 3.4 节中的不一致图神经
网络编码器输出的节点表示向量作为输入, 最终输出得到每个节点的类别概率分布, 其具体形式如公式 (12) 所示:
( )
p = σ Wh (final) +b (12)
其中, W 和 b 为可训练的参数, σ 为 Softmax 函数.
随后引入标签感知的不平衡损失函数对模型进行优化, 该损失函数具体来说分为两部分, 分别是标签分布感
知损失函数和自适应类级重加权.
3.5.1 标签分布感知损失函数
本文引入标签分布感知的损失函数 LDAM [19] 来对模型进行优化. 此损失函数具有标签分布感知的特点, 以一
个节点类型为 y 的节点表示 h (final) 为例, 其损失的具体计算方式如公式 (13) 所示:
v
e p y −∆ y
L LDAM ((h (final) ,y); f Θ ) = −log ∑ (13)
v
p
e y −∆ y + e z j
j,y
C
y
y
其中, f Θ 代表分类器, p y = f Θ (h (final) ) y 表示分类器的输出 p 中第 个元素的值, 即节点类型为 的概率, ∆ j = , C
v 1/4
n
j
j
为超参, n j 为类型为 的节点个数, 因本文为二分类问题, 因此 j ∈ {0,1} .
此损失函数根据每一类的节点个数来计算此类节点的间隔距离 ∆ j , 因此少数类 (恶意节点) 的 ∆ j 会比正常类
大, 从上式不难看出, 此损失函数较为直观的作用是使少数类的表示距离分类器的决策超平面尽可能地远离, 从而
防止模型向少数类过拟合.
3.5.2 自适应类级重加权
类级重加权 (class level re-weighting) [20] 可以自适应地根据不同类型节点的数量调整训练期间不同类别的损失
值, 以此来重新平衡类别. 具体来说, 其可以给恶意节点以较大的分类损失来有效地使不平衡的训练分布更接近均
匀的测试分布. 此方法提出, 传统逆类频率重加权方法在数据极度不平衡的情况下会使模型优化变得困难, 引入有
效样本数量的概念, 通过逆有效样本数量对损失重新加权, 具体如公式 (14) 和公式 (15) 所示:
1−β
n
1−β y
[
weight y] = 1 ∑ 1−β (14)
2 j=0,1 1−β j
n
L RW (p,y) = weight y] L(p,y) (15)
[
1−β
y
其中, β ∈ [0,1) 为超参, n y 表示类型为 的节点的数量, 表示数据中类型为 y 的节点的有效样本数量的倒数,
n
1−β y
本文对该值进行归一化使得两类节点的权重之和为 1. L(p,y) 为预测概率分布为 p , 真实标签为 的损失.
y
3.5.3 CAMD 全局损失函数
以上两种方法中, 重加权引入的权重只依赖于节点的类别信息, 而 LDAM 还依赖于模型的输出. 研究表明 [19] ,