Page 321 - 《软件学报》2025年第12期
P. 321
5702 软件学报 2025 年第 36 卷第 12 期
化. 同时, 通过超图节点与超边的连接, 实现会话及其相似会话的关系提取. 与 Xia 等人 [8] 方法不同的是, 本文不是
采用超边图卷积网络提取高阶关系, 因为这会融杂过多的邻居信息, 从而易使用户的兴趣产生漂移, 所以我们采
用 Transformer 编码器提取原始会话中更重要的顺序信息 (见第 3.2.2 节).
在超图构建之后, 使用超图卷积网络来捕捉会话级的隐藏高阶关系. 定义超图上的卷积操作的主要挑战是如
何传播项目的嵌入. 我们使用的光谱超图卷积来构建超图卷积网络, 如公式 (5) 所示:
M
N ∑ ∑
e (l+1) = A iε A jε W εε e (l) (5)
s u ,i s u ,i
i=1 ε=1
其中, e (l+1) 代表在超图卷积 l 层会话 s u 中项目 v i 的嵌入表示, A 为邻接矩阵, W 为权重矩阵 (它的每个超边赋予相
s u ,i
同的权重 1), M 为会话中的项目数, N 为相关联的会话数. 超图卷积网络的矩阵带行归一化的表达式, 如公式 (6)
所示:
T
−1
−1
H (l+1) = D AWB A H (l) (6)
s u ,i s u ,i
其中, H (l+1) 代表在超图卷积 l 层会话 s u 中的项目 v i 嵌入矩阵, B (或 D) 为边 (或节点) 度矩阵, A 为邻接矩阵, W 为
s u ,i
权重矩阵. 超图卷积可看作是对超图结构进行“节点-超边-节点”的两阶段特征变换, 即“项目-会话-项目”的信息传
T
递. 节点到超边的信息聚合由节点矩阵与邻接矩阵的乘法 A H (l) 完成, 后再乘以邻接矩阵 A, 这样将信息从超边传
H (0) H s u ,i =
递到节点. 将 通过 L 层超图卷积后, 对每一层得到的项目嵌入实施平均化操作, 得到最终的项目嵌入
∑ L
(l)
1/(L+1) H .
l=0 s u ,i
在空间上传递信息时, 时间信息是不可忽视的. 而在会话序列中, 时间信息往往体现为项目的位置前后关系.
Vaswani 等人 [31] 认为位置嵌入是 Transformer 中引入的一种有效技术, 在许多领域被应用于项目位置信息的存储
与运用. 参考 Xia 等人 [8] 的方法, 我们设计一个可学习的位置矩阵 Pos r = [pos 1 , pos 2 , pos 3 ,..., pos m ], 其中 m 是当前
a
s =< v 1 ,v 2 ,v 3 ,...,v m > 中, e ∗ 为增
会话长度, 通过该矩阵与会话嵌入拼接, 使时间信息融入会话嵌入. 在增强会话 u s u ,i
a v i 的嵌入表示, 如公式
强会话 s 中 (7) 所示:
u
e ∗ = tanh(W 1 [e s u ,i ∥ pos m−i−1 ]+b) (7)
s u ,i
d
其中, W 1 ∈ R d×2d , b ∈ R 是可学习的参数. 通过对会话包含的所有项目嵌入进行平均操作来表示此会话的嵌入, 以
′
细化增强会话 s 的嵌入表示, 如公式 (8) 所示:
u
1 ∑ m
a
h = e ∗ (8)
s u s u ,i
m i=1
其中, h a 是增强会话 s 的嵌入, e ∗ 是增强会话 s 中第 i 个项目的嵌入.
a
a
s u u s u ,i u
上面经过超图卷积网络编码器获得的会话嵌入包含了会话间的关系, 然而, 准确预测用户兴趣还需提取会话
内信息.
3.2.2 Transformer 编码
Transformer 编码器具备卓越的特征提取能力, 能够从复杂的序列数据中识别并捕捉到用户的兴趣变化. 这种
能力使得它可为超图视图提供高质量的对比信号, 以增强模型的鲁棒性. 利用 Transformer 编码器可有效地筛选出
会话中与目标用户兴趣不相关的信息, 不仅能够更全面地提取会话内的短期兴趣, 还能在捕捉会话间的潜在高阶
关联上取得更大突破. 这种全局感知与高效计算的结合, 使其在复杂的推荐任务中表现优异, 为推荐任务提供了强
有力的技术支持. 本文使用 Transformer 编码器提取会话内信息, 将 Transformer 编码器表示为 SeqEnc(·), 如公式 (9):
a
a
, f = SeqEnc(s u , s ) (9)
f s u
s u u
a
其中, 表示原始会话嵌入, f a 表示增强会话嵌入, s u 是原始会话, s 是增强会话. Transformer 编码器由一个序列
f s u
s u u
块和一个全连接前馈网络构成, 每个编码器层包括多头自注意力层 (multi-head self-attention layer) 与前馈全连接
层 (feed forward layer) 两个子层. 多头自注意力子层将会话序列作为输入计算 query、key 和 value, 通过缩放点积
操作实现注意力计算, 并采用多套线性变换映射矩阵提取会话序列的不同表示. 前馈全连接子层包含两个线性变
换和一个 ReLU 激活函数, 以对会话序列建模. 这两个子层均使用了残差连接和层归一化, 以提升性能和加速收敛

