Page 425 - 《软件学报》2025年第9期
P. 425
4336 软件学报 2025 年第 36 卷第 9 期
13. End For
14. For c ∈ C // 更新社区集并计算模块度
∑ ∑ 2
in tot
c c
15. Q ← Q+ − ;
2m 2m
16. C ← C ∪{c};
′
′
17. End For
18. Print C and Q; // 输出社区集和模块度
′
19. For u ∈ c // 重构相似度矩阵, 见公式 (6)
20. For v ∈ c∩v , u
∑
21. w = w uv +β (w uk +w vk ),(k , u∩v)∩(w uk ∩w vk );
′
uv
k∈c
22. End For
23. End For
/* 多层循环 GCN 模块 */
24. For u ∈ U,i ∈ I // 分别聚合用户/项目节点与相应邻居节点
1
− 2 ˆ
1
(k)
(k)
− 2
25. X (k+1) = ϖ(D WD X F ); // 生成节点嵌入, 见公式 (7)
< x (k+1) × F 1 , x (k+1) × F 2 >
26. a (k+1) = σ u i ; // 生成用户-项目偏好权重, 见公式 (8)
ui (k+1) (k+1)
x u × F 1 |x × F 2 |
i
27. θ ui (k) = αa (k−1) +(1−α)θ ui (k −1) // 阈值动态调整, 见公式 (9)
ui
(k)
28. If a < θ ui (k) then // 对偏好权重进行动态剪枝, 见公式 (10)
ui
(k)
29. a = 0;
ui
30. End If
31. End For
(k)
(0)
32. x = x ∥ ... ∥ x ∥ ... ∥ x (K−1) ; // 聚合节点的 K 层嵌入, 见公式 (11)
[
)
(
(
S
O O
S
S
S
O
S
O O
33. z = σ V x +V x ⊙ x + 1−σ V x +V x S )] ⊙ x ;
[
)
(
(
T
T
34. z = σ V x +V x ⊙ x + 1−σ V x +V x T )] ⊙ x ;
O
O O
T
T
O O
T
//生成源域/目标域节点组合特征, 见公式 (12)
/* 模型预测模块 */
(L)
(L)
(L)
(L)
35. φ (L) = ϖ (G φ (L−1) +h ), ˆy = f(φ ); // 获得源域/目标域的预测得分概率, 见公式 (13)、(14)
ui
36. Output ˆ y ; // 输出源域/目标域的最终预测得分概率
ui
End
在算法 1 中, 第 1–23 行是伪重叠判定机制模块, 通过伪重叠判定机制对用户聚类得到社区集和模块度, 并以
此重新构建相似度矩阵; 第 24–34 行是多层循环 GCN 模块, 其中第 24–32 行利用多层动态 GCN 获得域特有和域
共享节点嵌入, 第 32–34 行通过 4 个门控神经单元聚合得到源域和目标域的用户、项目组合特征向量; 第 35–36
行是模型预测模块, 使用 MLP 得到不同域用户的最终预测项目得分概率.
源域和目标域损失函数被定义为预测得分和实际得分的交叉熵, 如公式 (15) 所示.
∑ ( ( ) ( ))
S
S
S
L S = − y log ˆy + 1−y log 1− ˆy S ,
(u,i)∈Ω + ∪Ω − ui ui ui ui
∑ ( ( ) ( )) (15)
T
T
T
L T = − y log ˆy + 1−y log 1− ˆy T
(u,i)∈Ω + ∪Ω − ui ui ui ui
其中, y / y 是已知的用户-项目交互, Ω 是观察到的交互集, Ω 是从未观察到的交互集中随机抽样的一定数量负
T
S
+
−
ui ui
实例, 以防止过拟合.
为进一步提高两域的推荐性能, 我们将前文中提出的损失函数相结合, 得到联合优化的总损失函数, 如公

