| GEARSConvLayer {SMRUCC.genomics.Analysis.GEARS.Layers} | .NET clr documentation |
GEARS 边类型感知的图卷积层
实现 readme 第五节的「带边类型感知的消息传递」: ' h_i^(l+1) = σ( W_self · h_i^(l) + Σ_{j ∈ N_in(i)} α_ji · sign(r_ji) · (W_{r_ji} · h_j^(l)) ) '
要点: 调控图中 TF → Target 是有向边,扰动信号沿调控方向向下游传播, 因此聚合的是入边邻居(即调控该基因的上游基因);抑制边(EdgeRelationType.Repression)的消息符号为 -1, 使模型能够表达「上游下调导致下游上调」这样的反向效应;默认使用稀疏入边聚合(复杂度 O(|E|·d)),因为先验调控网络非常稀疏 (350+ 基因仅约 350 条边),稠密邻接矩阵乘法会带来两个数量级的无用开销;堆叠 L 层即可捕捉 L-hop 的间接调控效应;readme 建议 2~4 层以避免过平滑。
之所以不使用 GNN 模块自带的 GATLayer,是因为它的 Backward 直接抛出 InvalidOperationException,无法参与训练。
# namespace SMRUCC.genomics.Analysis.GEARS.Layers
export class GEARSConvLayer extends Layer {
# 激活函数类型
Activation: ActivationType;
# 输入特征维度
InFeatures: integer;
IsTraining: boolean;
Name: string;
# 输出特征维度
OutFeatures: integer;
# 是否使用稠密邻接矩阵聚合(仅用于小图对照,默认关闭)
UseDense: boolean;
# 是否为每种边关系类型分配独立的变换矩阵
UsePerRelationTransform: boolean;
}
Activation: ActivationType