CTR-GCN、HD-GCN:图卷积网络在骨骼动作识别中的应用(二)

本文介绍了两种改进的图卷积网络CTR-GCN和HD-GCN,它们在基础架构上扩展了2s-AGCN。CTR-GCN通过通道细化拓扑解决了共享与非共享问题,而HD-GCN则提出层次分解图和注意力引导聚合,提升了对远程关节关系的捕捉。这两种方法都在骨骼动作识别领域取得了进展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、内容概要

CTR-GCN和HD-GCN均在2s-AGCN上进行改进,其基本网络架构保持不变

二、通道拓扑细化图卷积网络CTR-GCN

论文:
https://openaccess.thecvf.com/content/ICCV2021/html/Chen_Channel-Wise_Topology_Refinement_Graph_Convolution_for_Skeleton-Based_Action_Recognition_ICCV_2021_paper.html

代码:
https://github.com/Uason-Chen/CTR-GCN

时间:2021

1. 创新点

2. 相关概念介绍

(1)共享 & 非共享

A. 共享拓扑

所有的输入骨骼序列共享相同的图拓扑结构
此前骨骼动作识别大部分方法用的都是共享拓扑,但其具有一些未由骨骼连接关节点之间的关系信息可能损失的问题

B. 非共享拓扑

每个输入骨骼序列可以有不同的图拓扑结构

ps. 该模型中,由于通道特定相关性处为非共享拓扑图,其与共享拓扑图结合,得到的通道细化拓扑实质属于非共享拓扑

(2) 动态 & 非动态

3. 模型架构

(1) 网络层面

与2s-AGCN网络结构基本相同

(2) 基本块层面

在这里插入图片描述
在CTR-GCN基本块中,特征向量分别先后经过空间建模模块和时间建模模块。

A. 空间建模模块

该模块首先通过深度可分离卷积分成三个支路处理特征向量,其相较直接进行更加轻量化。其中CTR-GC表示通道拓扑细化图卷积,具体见后文。

B. 时间建模模块

该模块包含四个分支,每个分支包含一个1 × 1卷积以减少通道维数。前三个分支包含两个具有不同扩张率的时间卷积和一个MaxPool,最后一个分支为一个独立的1 × 1卷积。四个分支的结果最终通过直接连接结合。

(3) 卷积层面

在这里插入图片描述
特征向量首先分别进行通道拓扑建模模块和特征转化模块,然后在通道融合模块通过先相乘后拼接的方式综合二者结果。
在这里插入图片描述
此图为之前图示的另外一种表达方式,二者具体内容相同

A. 通道拓扑建模模块
B. 特征转化模块
C. 通道融合模块

(4) 图层面

在这里插入图片描述
论文提出的通道拓扑细化图在Shared Topology(共享拓扑)的基础上,结合Channel-Specific Correlations(通道特定相关性),构成Channel-wise Topologies(通道细化拓扑),避免了对每个通道的拓扑进行独立建模。

图中不同颜色线条对应不同通道中的拓扑结构,线条粗细表示节点的关联强度。

4. 代码解读

三、分层分解图卷积HD-GCN

论文:
https://openaccess.thecvf.com/content/ICCV2023/html/Lee_Hierarchically_Decomposed_Graph_Convolutional_Networks_for_Skeleton-Based_Action_Recognition_ICCV_2023_paper.html

代码:
https://github.com/Jho-Yonsei/HD-GCN

时间:2023

1. 创新点

(1)提出一个层次分解图(HD-Graph),以体现相同层次节点集内遥远节点之间的关系;
(2)提出一个注意力引导层次聚合模块(A-HA),以突出具有代表性的边集;
(3)提出一种六向集成方法,用于具有不同质心(CoM)的层次分解图

2. 模型架构

在这里插入图片描述
输入骨架通过层次分解图(HD-Graph)应用于几个边集(Set1, Set2, …)。红线为包含在相应层次边集中的边,虚线表示骨骼中未连接的边。上方方框通过注意力机制处理得到下方方框,其中红线的颜色越深,表示该边集越重要,即越能通过该边集反映这个动作。

(1) 图层面:层次分解图HD-Graph

A. 物理连接PC

将人体骨架表示为有根树,再按语义将骨骼划分至四个集合中,同一语义空间中的节点(如肘关节和膝关节,或手和脚)必须存在于相同层次节点集中。其中有根树的根节点为选取的质心节点,即包括胸部、腹部、臀部三种

在这里插入图片描述

在这里插入图片描述

A为有向邻接矩阵,包含NL个层次层,NH个层次边缘集,且 NL = NH -1。Hk表示第k个层次节点集合。Ek表示 S = {Sid, Scp, Scf} 的三个边子集的级联,其中Sid、Scp、Scf分别表示同心、向心、离心边子集。通过该构造策略,作者创建了一个具有双向和相等边的骨架图

对于Kinetics-Skeleton数据集,作者对其骨架结构进行了修改。原始数据集包含18个节点,未使用质心的腹部和臀部节点
在这里插入图片描述
故作者设置左髋关节节点和右髋关节节点的中点为臀部节点,胸部和臀部节点的中点为腹部节点,得到含20个节点的骨架结构

B. 全连接FC

通过连接相邻层次边集合中的所有节点,得到同一语义空间中所有节点之间的边(非同一语义空间内节点两两相互连接)

在这里插入图片描述

为了识别远距离关节节点(尤其是同一语义空间中远距离关节节点)之间的关系,作者将相邻层次节点集之间所有节点连接

(2) 卷积层面

层次分解图卷积包括四个并行的分支操作,其中包括三个图卷积和一个额外的边卷积。为降低复杂度,对四个操作均用线性变换

在这里插入图片描述

A. 空间边卷积S-EdgeConv

虽然作者提出的层次分解图定义了比传统图更有意义的节点关系,但仍然无法提取反映特征空间中所有节点之间相似性的样本关系,故引入边卷积

在这里插入图片描述

基于欧氏距离的k-最近邻(k-NN)构造具有局部边的图,并通过可训练参数Wedge对局部边和单位边进行聚合

B. 层次边卷积H-EdgeConv

在这里插入图片描述

(3) 网络层面:层次分解图卷积网络HD-GCN

在这里插入图片描述
HD-GCN接收骨架序列作为输入,并通过9个GCN块、FC层和softmax函数获得类别标签

现有集成方法多采用关节流、骨骼流、关节运动流、骨骼运动流这四流数据,分别由原始骨骼坐标、关节不同坐标间空间差分、关节不同时刻间时间差分、骨骼不同时刻间时间差分表示。然而模型仅利用运动数据,性能较差。因而作者提出了一种六向集成方法,替代传统的四向集成方法。

作者使用三种不同的层次分解图,每个图都用于关节和骨骼流的训练(舍弃了关节运动流和骨骼运动流)。三个层次分解图具有不同的质心节点,分别是胸部、腹部、臀部节点。由于具有三种不同图的模型应在不同方面进行训练,因此每个图由不同的边集组成。如果质心节点是腹部,则两条大腿边和两条上臂边都包含在同一个边集中,而当质心节点是胸部时,两条大腿边和两条前臂边都包含在同一个边集中

“六向集成” 中 “六向” 具体包括:

  • 质心节点为胸部的关节流
  • 质心节点为胸部的骨流
  • 质心节点为腹部的关节流
  • 质心节点为腹部的骨流
  • 质心节点为臀部的关节流
  • 质心节点为臀部的骨流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4) 基本块层面:注意力引导层次聚合A-HA

注意力引导层次聚合(A-HA)由注意力引导,由代表性空间平均池(RSAP)和层次边卷积(H-EdgeConv)两个子模块组成。通过RSAP和H-EdgeConv,模型成功确定在输入特征中应该强调哪些层次边缘集和关节

在这里插入图片描述

A. 代表性空间平均池化RSAP

如果直接使用空间平均池化而没有任何节点提取过程,由于每个节点具有不同相邻节点数,会出现放缩偏差问题
–> RSAP在池化层之后,通过代表性节点提取表示特征

B. 层次边卷积H-EdgeConv

(用于管理通过RSAP获得的分层特征)
将每个分层特征视为一个图节点,并通过特征空间中的欧氏距离来识别应突出显示的分层特征

### CTR-GCN:基于图神经网络的点击率预测模型 CTR-GCN 是一种结合图神经网络 (Graph Convolutional Networks, GCNs) 的点击率预测模型,旨在利用用户行为之间的关系来提升点击率预测的效果。以下是关于该模型架构和实现的一些关键点: #### 模型背景与目标 点击率预测是推荐系统的核心任务之一,其目的是估计用户对某个项目(如广告、商品或视频)的点击概率。传统的点击率预测方法通常依赖于特征工程和浅层模型,而近年来深度学习方法逐渐成为主流。然而,在许多实际场景中,用户的交互行为可以被建模为复杂的图结构,其中节点代表用户或物品,边则表示它们之间的交互关系。因此,引入图神经网络能够更好地捕获这些复杂的关系。 CTR-GCN 将用户的行为序列视为一个动态变化的图,并通过多层卷积操作提取高阶邻域信息[^1]。这种方法不仅考虑了个体特征的重要性,还充分挖掘了用户与其他实体之间潜在的关联性。 --- #### 模型架构详解 ##### 输入表示 输入数据主要包括两部分: 1. **用户历史行为**:记录用户过去一段时间内的点击行为,例如浏览过的新闻文章列表或者购买的商品集合。 2. **上下文信息**:除了显式的点击事件之外,还可以加入时间戳、地理位置等辅助属性作为补充特征[^3]。 对于每条样本而言,它会被转化为一张异构图 G=(V,E),其中 V 表示顶点集(可能包含多种类型的对象),E 则对应边连接情况。 ##### 图构建过程 在具体实践中,可以通过以下方式定义图结构: - 如果两个物品 A 和 B 被同一个用户频繁交替访问,则认为存在一条无向边 e(A,B)=w 连接者;权重 w 可由共现频率决定。 - 此外,也可以依据协同过滤的思想扩展候选邻居范围——即当多个不同用户都倾向于同时喜欢某些特定组合时,即使他们从未直接接触过彼此,仍然允许建立间接联系[^4]。 ##### 层级设计 整个框架大致分为以下几个模块: 1. **Embedding Layer** 使用预训练好的词向量初始化各个节点对应的低维稠密表达形式 v_i ∈ R^d 。如果涉及类别变量的话,则需额外设置独热编码器 HotEncoder() 来完成映射工作。 2. **Propagation Mechanism** 基于消息传递机制更新当前状态 s_t(v_j )=f(s_(t−1)(v_j ),{s_(t−1)(v_k)|k∈N(j)}) ,这里 N(j) 定义为 j 所属局部区域内的所有相邻结点索引集合。典型的选择有 mean pooling 或者 max pooling 等聚合策略[^2]。 3. **Output Module** 经过多轮迭代之后得到最终全局表征 z=[z_u;z_p] (分别对应 user profile pofile 以及 candidate item embedding)。随后送入全连接层并通过 sigmoid 函数计算出预期的概率值 y_hat=P(click|u,p)。 ```python import torch from torch_geometric.nn import GCNConv class CT RG CN(torch.nn.Module): def __init__(self, num_features, hidden_dim, output_dim): super(CTRG CN , self).__init__() # 初始化参数 self.conv1 = GCNConv(num_features, hidden_dim) self.conv2 = GCNConv(hidden_dim, output_dim) def forward(self, data): x, edge_index = data.x, data.edge_index # 第一层传播 x = self.conv1(x, edge_index) x = torch.relu(x) # 第层传播 x = self.conv2(x, edge_index) return torch.sigmoid(x) ``` 上述代码片段展示了如何使用 PyTorch Geometric 库快速搭建基础版的 CTR-GCN 结构。需要注意的是,这只是一个简化版本的实际部署方案可能会更加精细复杂一些。 --- #### 训练与评估指标 由于目标任务属于典型的分类问题范畴内,所以损失函数一般采用 Binary Cross Entropy Loss(BCELoss): \[ L=-\frac {1}{n}\sum _i^n[y_ilog(\hat {y}_i)+(1-y_i)log(1-\hat {y}_i)] \] 与此同时,为了衡量算法效果的好坏程度,还需要综合考量 Accuracy,Roc-Auc Score,F1-Score等多种维度下的表现数值。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarrey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值