Page 424 - 《软件学报》2025年第9期
P. 424
钱忠胜 等: 利用伪重叠判定机制的多层循环 GCN 跨域推荐 4335
T
S
量 z , z 也由同样方法生成), 其计算如公式 (12) 所示.
i i
( ) [ ( )]
S
O O
O
S
O O
S
S
z = σ Vt a +Vt a ⊙a + 1−σ Vt a +Vt a S ⊙a S
u u u u u u u u u u u
(12)
( ) [ ( )]
T O O T T O O O T T T
z = σ Vt a +Vt a ⊙a + 1−σ Vt a +Vt a u ⊙a u
u
u
u
u
u
u
u
u
u
O
S
T
其中, Vt , Vt / Vt 分别是门控单元的域共享权重矩阵和域特有权重矩阵.
u u u
2.3 模型预测过程
在第 2.2 节获取用户与项目的组合特征向量后, 为更好地学习用户与项目表示之间的交互, 我们采用 MLP 模
型对用户-项目交互建模, 以源域为例, 如公式 (13)、(14) 所示.
S
z
(1) (1) (1) u (1)
+h )
φ = ϖ (G
S
z
i
. (13)
.
.
φ = ϖ (G φ +h )
(L) (L) (L) (L−1) (L)
S
(L)
ˆ y = f(φ ) (14)
ui
(k)
其中, φ (k) 表示第 k 层的输出结果 (1≤k≤L), G (k) 和 h (k) 分别为第 k 层可训练矩阵和偏置项, ϖ (·) 表示第 k 层激活
函数, f(·) 表示将 φ (L) 映射为得分概率 ˆ y S 的预测函数.
ui
ˆ y T 也由同样方法得到. 利用伪重叠判定机制的多层循环 GCN 跨域推荐算法, 利用伪重叠
目标域的评分预测 ui
判定机制获取节点相似度矩阵后, 输入至多层循环 GCN 以有效学习并组合节点特征, 最终利用 MLP 学习源域和
目标域的得分概率, 如算法 1 所示.
算法 1. 利用伪重叠判定机制的多层循环 GCN 跨域推荐过程.
输入: 源域/目标域用户集 U /U , 源域/目标域项目集 I /I , 源域/目标域评分矩阵 R /R ;
T
S
S T
S
T
输出: 社区集 C, 模块度 ˆ y S ˆ y ).
T
ˆ y ui (即
Q, 源域/目标域的预测得分概率
ui / ui
Begin
1. C ← {{u}},∀u ∈ U; // 初始化每位用户为一个社区
∑ ∑
2. in ← w uv ,u ∈ c∩v ∈ c; // 计算社区 c 内部边权重和
c
∑ ∑
3. tot ← w uv ,u ∈ c∪v ∈ c; //计算与社区 c 中节点相连边的权重和
c
/* 伪重叠判定机制模块 */
4. For u ∈ U // 找到用户 u 的最优社区
5. For v ∈ U ∩v ∈ c∩v , u∩w uv , 0
∑ ∑
tot
w uv ∗w u ∑
c
v∈c o
− +λ w uv , v ∈ U
2
6. ∆Q u→c = ∑ 2m ∑ 2m v∈c ;
tot
w uv ∗w u
v∈c c
o
− , v < U
2m 2m 2
// 计算将 u 移入所有邻居节点 v 所在社区 c 所产生的模块度增益, 见公式 (5)
7. End For
8. If max∆Q u→ˆc then // 将 u 移入使其获得最大模块度增益的社区 ˆ c
∑ ∑ ∑ ∑ ∑
9. in ← in + w uv , tot ← tot +w u ;
ˆ c ˆ c ˆ c ˆ c
v∈ˆc
∑ ∑ ∑ ∑ ∑
10. in ← in − w uv , tot ← tot −w u ;
c c c c
v∈c
11. ˆ c ← ˆc∪{u} c ← c−{u};
,
12. End If

