第 8 周 图神经网络与动态网络建模

局部聚合、异步记忆与物理执行

石守谦

2027 春季 · 资料核对至 2026-10-15

怎样在变化的邻居之间共享模型

  • 邻居数量和顺序不断变化
  • 消息可能迟到、重复或缺失
  • 共享模型需要适应这些输入条件

把协作关系表示为图

  • 节点:无人机或其他参与者
  • 边:当前允许的信息交互
  • 边属性:方向、时延、质量与代价

交换编号之后,结果应该怎样变化

  • 汇总整个集合:结果不随排列改变
  • 分别输出节点动作:输出随节点一起换位
  • 节点类型和能力可以作为显式输入

Deep Sets:无序集合的结构依据

z=ρ(∑j∈𝒩iϕ(xj))z=\rho\!\left(\sum_{j\in\mathcal N_i}\phi(x_j)\right)

  • 对每个元素使用共享变换
  • 用对称运算汇总邻居
  • 用不同节点数量检验实际泛化

手算:求和与取平均

邻居特征为 0.2,0.6,1.00.2,0.6,1.0。

sum=1.8,mean=0.6\mathrm{sum}=1.8,\qquad \mathrm{mean}=0.6

求和保留数量效应;平均值需要另行输入邻居数量。

对邻居使用同一套参数

mij=ϕ(hj,eij),zi=∑j∈𝒩imijm_{ij}=\phi(h_j,e_{ij}),\qquad z_i=\sum_{j\in\mathcal N_i}m_{ij}

  • hjh_j:邻居状态
  • eije_{ij}:链路与消息属性
  • ϕ\phi:所有邻居共用的消息编码器

一层消息传递怎样计算

mi=AGG⁡j∈𝒩iϕ(hi,hj,eij)m_i=\operatorname{AGG}_{j\in\mathcal N_i}\phi(h_i,h_j,e_{ij}) hi′=ψ(hi,mi)h'_i=\psi(h_i,m_i)

先编码每条消息,再聚合,最后更新本地状态。

MPNN:统一消息与状态更新

  • 消息函数根据节点与边属性产生信息
  • 聚合函数汇总邻居消息
  • 更新函数形成新的节点状态

手算:加权聚合

两条消息的值为 0.50.5、1.01.0,权重均为 0.50.5。

z=0.5×0.5+0.5×1.0=0.75z=0.5\times0.5+0.5\times1.0=0.75

权重应结合任务、消息新旧与可信程度。

把评分转换为权重

评分为 (ln⁡2,0,0)(\ln2,0,0)。

softmax⁡(s)=(2,1,1)4=(0.5,0.25,0.25)\operatorname{softmax}(s)=\frac{(2,1,1)}4=(0.5,0.25,0.25)

评分控制相对权重,不能单独决定是否发送。

先筛选可用消息,再计算权重

  • 剔除失效记录和不兼容版本
  • 排除测试时无法获得的信息
  • 对没有有效邻居的情况设置回退规则

GAT:按内容分配邻居权重

  • 为邻居消息计算相关性评分
  • 在允许的邻居集合内归一化
  • 将消息按权重汇总为节点表示

GraphSAGE:学习共享的聚合规则

  • 采样邻居,控制计算规模
  • 使用共享聚合器生成节点表示
  • 对新节点的适用性仍需用新场景检验

GraphSAGE:采样、聚合与更新

GraphSAGE Figure 1

Set Transformer:处理无序消息集合

  • 消息之间通过注意力交换信息
  • 聚合结果可保持排列不变
  • 时间、来源与坐标仍需显式编码

模型层数与无线交换轮数

  • 模型的一层表示一次特征聚合
  • 分布式执行时,跨节点依赖需要真实传输
  • 缓存、批处理和中继会改变实际通信轮数

时间顺序决定信息能否到达

A 的新消息必须等待下一次 B→C 传输,才能到达 C。

A 的新消息必须等待下一次 B→C 传输,才能到达 C。

估算通信量

NN 个节点,平均发送给 dd 个邻居,每条 bb 字节,每秒 ff 次:

R≈NdbfR\approx Ndbf

这是应用层估算;多跳、协议头和重传应另计。

增加聚合层数之后要检查什么

  • 接收信息的范围是否扩大?
  • 信息是否已经过期或重复?
  • 计算、通信与任务收益是否相称?

将消息接收建模为事件

每次收到消息,记录:

  • 原始生成时间与本地接收时间
  • 来源、序号及内容
  • 接收时可用的本地状态

动态图有两种时间建模思路

工作 主要思路
TGAT 将时间编码带入邻域聚合
EvolveGCN 随时间更新图卷积参数

部署时,模型只能使用当时已经到达的信息。

用本地记忆保留历史

  • 新观测到来时更新状态
  • 旧消息到来时检查时间与来源
  • 长期未更新时,提高不确定性或转入回退策略

暂时没有邻居时怎样运行

  • 使用本地观测继续执行允许的动作
  • 保留待同步的状态变化
  • 重连后校验版本,按需补传增量

研究设想:断联时积累,重连后补传

从共同版本出发,独立更新、校验、增量合并

用连续失联区段训练,分别测量失联表现和恢复过程。

交互:改变邻居与消息权重

训练样本必须遵守接收时序

  • 输入只能包含决策时已经到达的信息
  • 先按接收事件重放,再构造训练样本
  • 将未来信息作为输入会高估部署效果

根据输出任务选择训练目标

  • 检测或建图:使用对应标注
  • 动作选择:使用专家动作或任务回报
  • 表示一致性:作为辅助目标单独做消融

异步决策也需要相应的训练方法

  • 不同节点的动作可能持续不同时间
  • 异步 Actor-Critic 直接建模异步策略
  • 数据包接收事件与动作结束事件分别记录

模仿学习与 DAgger

  • 首先模仿专家在训练场景中的动作
  • 再让学习器运行,采集自身遇到的状态
  • 请专家补充标注,缓解状态分布偏移

RAMEN:异步协作建图的启发

  • 在异步条件下交换地图信息
  • 根据不确定性处理过期的邻居地图
  • 迁移到控制任务时,重新定义状态与损失

学习协作图需要考虑物理执行

  • G-Designer:为任务生成智能体协作图
  • SOPS:在稀疏结构上选择连接
  • 无线部署还需计算路径、时延和信道占用

从期望协作关系到可执行连接

为模型需要的远端信息安排可用路径、队列与预算。

为模型需要的远端信息安排可用路径、队列与预算。

联邦学习怎样进入课程

  • FedAvg 聚合训练期间的模型参数
  • 运行期消息传递交换任务信息
  • 两者可以组合,但应分别设置周期与预算

去中心化学习还依赖哪些条件

  • 节点通过时变稀疏网络交换学习信息
  • 局部回报与邻居消息共同参与更新
  • 通信连通性和函数形式会影响理论结论

实验:实现一个邻居聚合器

  1. 支持任意数量的邻居
  2. 过滤过期与重复消息
  3. 保持排列不变
  4. 检查零邻居和迟到消息

本讲需要形成的设计

  • 节点状态与消息格式
  • 聚合、记忆和回退规则
  • 时序重放方法与训练目标