Page 415 - 《软件学报》2025年第4期
P. 415
邹慧琪 等: 基于图神经网络的复杂时空数据挖掘方法综述 1821
络来连续更新节点信息, 并结合了图注意力块来集成空间信息. 每个 CDOD 单元由 4 个主要部分组成, 分别是连
续时间表示学习模块 (CTRL)、离散时间表示学习模块 (DTRL)、Co-Updater 和图注意力模块. 在 CDOD 中, 时间
信息和空间信息通过串联进行融合, CTRL 和 DTRL 分别负责提取离散和连续时间信息, Co-Updater 负责融合时
间信息, 而图注意力模块负责挖掘空间信息.
在 CDOD 中, CTRL 由连续时间消息生成器、连续时间消息聚合器和连续时间内存更新器这 3 个模块构成.
首先, 在连续时间信息生成器部分, 可由如下公式表示:
ϕ(e m ) = e (t−t m )/τ (22)
∗ f v m
,c m ,ϕ(e m )) (23)
φ(e m ) = ||(M v m
,
其中, e m = (u m ,v m ,t m ,c m ) 是带时间戳的事件, 表示乘客在 t m 从 u m 出发到 v m ϕ(e m ) 代表时间编码过程, φ(e m ) 代表边
c m 代表边特征, 是预测开始时间, 是输出时间窗长
τ
t
e m 产生的连续时间信息, f v m 是目的地节点 v m 的节点特征,
度, M v m 是节点 v m 的最新特征, ∗ 表示标准卷积.
接着, 在连续时间消息聚合器部分, 对于输入的 OD 对 S s 的一个批次 B , 通过对来自节点内存的部分进行平
均聚合和利用对边特征进行时间编码的部分进行求和聚合拼接, 可以表示来自同一节点的消息的聚合过程. 该过
程表示为:
_ (∑ ∑ )
E n = || φ(e nk )[: d]/|e nk ∈ B|, ϕ(e nk )[d :] , e nk ∈ B (24)
k
其中, φ(e nk ) 是边 e nk 的连续时间信息, d 是节点内存的维数, e nk 是节点 n 到 的边, |e nk ∈ B| 是当前批次 B 中起点
为 n 的边的总数.
_ [9]
最后, 在连续时间内存更新器部分, CDOD 将 E n 输入到循环神经网络 GRU 中来更新节点内存 M t . 这个步骤
利用了 GRU 可以通过组合更新门、重置门和候选值, 从而自动计算新的节点状态的优点.
在 Co-Updater 部分, CDOD 通过可调节的参数将离散时间信息和连续时间信息融合, 以更新时间信息, 之后,
CDOD 使用图注意力模块来融合全局空间信息.
首先, 需要生成每个节点的时间编码, 可用公式表示为:
ϕ u (t pred ) = cos(W T [t pred −t u ]) (25)
其中, cos 是 V . 多头注意力机制可用如下公式表示为:
t pred 是预测
u 发生最后一次内
OD
需求的开始时间,
t u 是节点
W T 是待训练的权重矩阵,
cosine 函数,
存更新的时间.
接着, 为了聚合每个节点嵌入及其时间邻居的节点嵌入, CDOD L 层图注意力层可用公式表示如下:
的
l−1
l
Z (t) = h (t)||ϕ u (t) (26)
u u
l−1
u
l
N s
Z (t) = || [h (t)||f (t j )||ϕ j (t)] (27)
j
N
j
j=1
l l l−1 h (t) 是由 Co-Updater
0
其中, Z (t) 和 Z (t) 是第 l 层的输入, h (t) 是第 l−1 层图注意力层生成的节点 u 的节点嵌入,
u
N
j
更新的节点内存, ϕ u (t) 是节点 u 的时间编码, d t 是时间编码的维度, N s 是在时间 t pred 前与节点 u 有交互的节点数
u u 之间对应
j
量, f (t j ) 是节点 和 OD 对的边特征, d e 是边特征的维度, ||是拼接操作.
j
最后, 由于多头自注意力机制 [26] 可以学习多方面的信息, 因此在图注意力模块中, CDOD 在图上引入了传统
l
l l Z (t) 用于生成
的多头自注意力机制, 以学习不同的时间邻居节点对于节点 u 的重要性. Z (t) 可用于生成查询 Q ,
u t N
l l
键 K 和值
t t
l l T
Q (K )
l t t l
a = Softmax √ V (28)
i t
d k
N s
∑
ˆ l N M α (m)V (m)W O (29)
l
l
h (t) = ||
u
m=1
j t
j=1
√
l
其中, d k 是缩放因子, W O 是待训练的权重矩阵, α 表示节点 u 和时间邻居 v i 之间的注意力权值, 计算过程如公
i
式 (28), V (m) 是通过 Z (t) 生成的值, N M 是并行的注意力头的个数, ˆ h(t) 是生成的每个节点的更新节点嵌入.
l
l
t
N