Self-supervised Graph Learning for Recommendation
  Representation learning on user-item graph for recommendation has evolved
from using single ID or interaction history to exploiting higher-order
neighbors. This leads to the success of graph convolution networks (GCNs) for
recommendation such as PinSage and LightGCN. Despite effectiveness, we argue
that they suffer from two limitations: (1) high-degree nodes exert larger
impact on the representation learning, deteriorating the recommendations of
low-degree (long-tail) items; and (2) representations are vulnerable to noisy
interactions, as the neighborhood aggregation scheme further enlarges the
impact of observed edges.
  In this work, we explore self-supervised learning on user-item graph, so as
to improve the accuracy and robustness of GCNs for recommendation. The idea is
to supplement the classical supervised task of recommendation with an auxiliary
self-supervised task, which reinforces node representation learning via
self-discrimination. Specifically, we generate multiple views of a node,
maximizing the agreement between different views of the same node compared to
that of other nodes. We devise three operators to generate the views -- node
dropout, edge dropout, and random walk -- that change the graph structure in
different manners. We term this new learning paradigm as
\textit{Self-supervised Graph Learning} (SGL), implementing it on the
state-of-the-art model LightGCN. Through theoretical analyses, we find that SGL
has the ability of automatically mining hard negatives. Empirical studies on
three benchmark datasets demonstrate the effectiveness of SGL, which improves
the recommendation accuracy, especially on long-tail items, and the robustness
against interaction noises. Our implementations are available at
\url{https://github.com/wujcan/SGL}.
