Hello! One possible bug in the implementation of HGCN.
The graph convolution in the paper "Hierarchical Graph Convolution Networks for Traffic Forecasting", is directly borrowed from "GraphWaveNet for Deep Spatial-Temporal Graph Modeling".
From the two papers, they have three convolution operations using two diffusion matrices and one adaptive matrix (see Eq. (4) in the HGCN paper and Eq. (6) in the GWNET paper).
The implementation of HGCN in LibCity directly uses the Original Adjacent Matrix to do the graph convolution, which may not be correct:
Hello! One possible bug in the implementation of HGCN.
The graph convolution in the paper "Hierarchical Graph Convolution Networks for Traffic Forecasting", is directly borrowed from "GraphWaveNet for Deep Spatial-Temporal Graph Modeling".
From the two papers, they have three convolution operations using two diffusion matrices and one adaptive matrix (see Eq. (4) in the HGCN paper and Eq. (6) in the GWNET paper).
The implementation of HGCN in LibCity directly uses the Original Adjacent Matrix to do the graph convolution, which may not be correct:
https://github.com/LibCity/Bigscity-LibCity/blob/065a2adf70df8563aa9638d062eef2a2e0515abf/libcity/model/traffic_speed_prediction/HGCN.py#L199-L200
One more step may be needed to process the Original Adjacent Matrix to the Laplacian Matrix. See the code provided by the original authors (https://github.com/guokan987/HGCN/blob/7ab2d8376cf98e77b5dad336a67bfb259e49b22d/util.py#L177):
I also read your implementation of GWNET and suppose you could directly borrow the function from GWNET to HGCN: https://github.com/LibCity/Bigscity-LibCity/blob/065a2adf70df8563aa9638d062eef2a2e0515abf/libcity/model/traffic_speed_prediction/GWNET.py#L293-L307
Again, thank you for all your efforts in implementing these models!