  Graph Neural Network (GNN), with the main idea of encoding graph structure
information of graphs by propagation and aggregation, has developed rapidly. It
achieved excellent performance in representation learning of multiple types of
graphs such as homogeneous graphs, heterogeneous graphs, and more complex
graphs like knowledge graphs. However, merely stacking GNN layers may not
improve the model's performance and can even be detrimental. For the phenomenon
of performance degradation in deep GNNs, we propose a new perspective. Unlike
the popular explanations of over-smoothing or over-squashing, we think the
issue arises from the interference of low-quality node representations during
message propagation. We introduce a simple and general method, SF-GNN, to
address this problem. In SF-GNN, we define two representations for each node,
one is the node representation that represents the feature of the node itself,
and the other is the message representation specifically for propagating
messages to neighbor nodes. A self-filter module evaluates the quality of the
node representation and decides whether to integrate it into the message
propagation based on this quality assessment. Experiments on node
classification tasks for both homogeneous and heterogeneous graphs, as well as
link prediction tasks on knowledge graphs, demonstrate that our method can be
applied to various GNN models and outperforms state-of-the-art baseline methods
in addressing deep GNN degradation.
