## 3 Methods
### Joint Attention Module  
Most graph convolution methods use graph representations to represent skeletal data and model the relationships between joints using learnable weights in the networks. However, there is no network or operation that can be used to enhance key joint features throughout the process. We thus introduce an attention mechanism. Unlike previous work [39] that introduced attention weights in graph convolutional networks, our JAM has three distinct advantages: (1) the module is designed independently of the backbone network, so it can be used by other backbone networks; (2) the independently designed JAM utilizes both temporal and spatial domain information, and these spatio-temporal features can help it learn more robust attention weights; (3) with the feature map of the whole skeletal sequence as input, the module can learn the importance of each joint in a global view. The JAM learns from the spatio-temporal information feature map output from the previous layer and arranges different attention weights for different joints. As shown in Figure 2, for a given input feature map with dimensions \((C,N,T)\), the entire feature map first undergoes a pooling operation, which generates a joint description feature map by aggregating the feature maps in the temporal dimension. The role of joint description feature map is to generate embeddings corresponding to the global distribution of each joint feature, allowing the global information from the network to be used by later network layers. Following the feature aggregation is the excitation, which takes the global distribution embedding as input to generate modulation weights for each joint. These weights are then applied to the original input feature map to produce the output of the entire JAM. Specifically, the JAM is a computational unit that maps the input \(\mathbf{X}\in\mathds{R}^{\mathbb{C}\times N\times T}\) to the feature map \(\mathbf{X}\in\mathds{R}^{\mathbb{C}\times N\times T}\). We define \(\mathbf{X}=\{\mathbf{x}_{1},\dots,\mathbf{x}_{N}\}\), where \(\mathbf{x}_{i}\in\mathds{R}^{\mathbb{C}\times T}\) is the feature representation corresponding to the joint \(i\). The signal in each output feature map is obtained by a locality operation, so that each cell of the transformed output feature map cannot make use of information from the context outside that region. Therefore, we use a pooling operation to convert the input features associated with the global temporal  
Figure 2: The Joint Attention Module first pools the spatial-temporal feature map, and then uses the linear layer and _Softmax_ to obtain the attention weight, which is used to perform element multiplication with the original feature map. Finally, each joint receives different attention in the feature map. domain into a joint description feature map, which is achieved by performing a global average pooling. Formally, the joint description feature map \(\mathbf{Z}=\mathbf{z}_{1},\ldots,\mathbf{z}_{2}\) is generated by collapsing the temporal dimension \(T\). For example, the description feature \(\mathbf{z}_{i}\in\mathbb{R}^{C}\) of the \(i\) joint is computed as follows  
\[\mathbf{z}_{i}=\frac{1}{T}\sum_{l=1}^{T}\mathbf{x}_{i}[:,j] \tag{8}\]  
To take advantage of the information aggregated in the pooling operation, we follow the activation operation with the aim of obtaining joint attention weights. To achieve this target, the activation operation must satisfy two requirements: (1) it must be flexible enough to learn nonlinear interactions between joints, and (2) it needs to learn non-reciprocal relationships, since we want to allow the existence of multiple key joints, rather than emphasizing only one of them. Therefore, we select to use a gated network with a _Sigmoid_ activation function. \[\mathbf{s}=\sigma(\mathbf{W}_{2}\delta(\mathbf{W}_{1}\mathbf{z})) \tag{9}\]  
where \(\sigma\) and \(\delta\) are the _Sigmoid_ and _ReLU_ activation functions, respectively, \(\mathbf{W}_{1}\in\mathbb{R}^{\frac{C}{n}\times C}\), \(\mathbf{W}_{2}\in\mathbb{R}^{2\times\frac{C}{n}}\).