## 3 Methodology
### KD-Fused Graph-GRU Predictor  
The inputs to the KD-fused Graph-GRU are the kinematic features \(\mathbf{X}_{out}^{k}\in\mathbb{R}^{C_{out}\times T\times V}\) and dynamic features \(\mathbf{X}_{out}^{d}\in\mathbb{R}^{C_{out}\times T\times V}\) obtained through Kinematic Net and Dynamics Net. The model first employs a temporal pooling module that utilizes Temporal Graph Convolutional Networks (Temporal-GCN) to perform temporal aggregation on \(\mathbf{X}_{out}^{k}\) and \(\mathbf{X}_{out}^{d}\), respectively. The temporal graph convolution can be expressed as follows:  
\[\mathbf{H}^{k}=\sigma(A_{t}\mathbf{X}_{out}^{k}W^{k}) \tag{6}\]  
where \(\mathbf{H}^{k}=\left\{H_{1}^{k},H_{2}^{k},\dots,H_{T}^{k}\right\}\in\mathbb{R }^{T\times V\times C}\) is the output of temporal graph convolution, \(W^{k}\) is the learnable weight, and the temporal adjacent matrix \(A_{t}\) is pre-defined as follows:  
\[A_{t}(i,j)=\left\{\begin{array}{ll}1,&\text{if i = j, or i = j+1}\\ 0,&\text{else}\end{array}\right\} \tag{7}\]  
Because the above temporal graph convolution operation allows for the features of each frame to propagate along the time axis, the features in the last frame have already aggregated those from previous frames. Therefore, we only need to take the features of the last frame for prediction, that is, \(h_{0}^{k}=H_{T}^{k}\).  
Figure 2: Three scales of human body. Note, the blue dashed lines represent the connectivity of the related nodes.  
Then, given a recurrent step \(t\) and the corresponding input pose \(x_{t}\), a Diff operator captures frame-to-frame motion. Rather than modeling the next pose \(\hat{Y}_{t+1}\) from scratch, the model can learn the difference (or velocity) between \(\hat{Y}_{t+1}\) and \(\hat{Y}_{t}\). Then, the hidden state of kinematic \(h_{t}^{k}\) is updated by introducing gating mechanisms of Graph-GRU [18] as follows:  
\[\begin{array}{l}m_{t}^{k}=\text{GraphConv}(h_{t-1}^{k})\\ r_{t}^{k}=\text{sigmoid}(W_{r}\cdot x_{t}+U_{r}\cdot m_{t}^{k})\\ z_{t}^{k}=\text{sigmoid}(W_{z}\cdot x_{t}+U_{z}\cdot m_{t}^{k})\\ \widetilde{h}_{t}^{k}=\tanh(W_{h}\cdot x_{t}+U_{h}\cdot(r_{t}^{k}\odot m_{t}^ {k}))\\ h_{t}^{k}=(1-z_{t}^{k})\odot h_{t-1}^{k}+z_{t}^{k}\odot\widetilde{h}_{t}^{k} \end{array} \tag{8}\]  
where \(x_{t}\) denotes the input of Graph-GRU at time \(t\). \(m_{t}^{k}\) denotes the output of \(\text{GraphConv}(\cdot)\) operation, and \(r_{t}^{k}\) and \(z_{t}^{k}\) denote reset and update gate, respectively. \(W_{r}\), \(U_{r}\), \(W_{z}\), \(W_{h}\), and \(U_{h}\) are learnable weights, and \(\odot\) is element-wise multiplication.  
For dynamic features \(\mathbf{X}_{out}^{d}\), we perform the same steps as \(\mathbf{X}_{out}^{k}\) to calculate the hidden state of dynamics \(h_{t}^{d}\). Then, a weighted fusion module integrates different hidden states by learning weight coefficients \(\lambda\):  
\[h_{t}^{kd}=h_{t}^{d}+\lambda\cdot h_{t}^{k} \tag{9}\]  
The output layer comprises fully connected layers that map the fused hidden state to the prediction space:  
\[\hat{Y}_{t}=\text{MLP}(h_{t}^{kd}) \tag{10}\]  
where \(\text{MLP}(\cdot)\) is a Multi-Layer Perceptron layer. By performing \(T_{f}\) times of (8), (9), (10) recursively, we finally obtain the predicted motion \(\hat{\mathbf{Y}}=[\hat{Y}_{1},\hat{Y}_{2},\ldots,\hat{Y}_{T_{f}}]\in\mathbb{R} ^{T_{f}\times V\times C}\).