This is the official PyTorch implementation of our paper:
T. Wei, T. W. S. Chow, J. Ma, and M. Zhao, “ExpGCN: Review-aware Graph Convolution Network for explainable recommendation,” in Neural Networks, 2022. Paper Link
The model implementation ensures compatibility with the Recommendation Toolbox RecBole1 (Github: Recbole), and use Numba for high speed nagative sampling.
- Python: 3.8+
- RecBole: 1.0.1
- Numba: 0.55.1+
The dataset is processed as follows:
Include all
<user_id> <item_id> <explanation_id_1>,<explanation_id_2>...
Include name of all items. Each row contains an item identified by <item_id>
.
Include name of all users. Each row contains a user identified by <user_id>
.
The above three files are placed in folder Data/<DATASET_NAME>
. The configuration file can be created in Params/<DATASET_NAME>.yaml
. In this repository we have provided Amazon Movies & TV2 (AmazonMTV) dataset as an example.
The script run.py
is used to run the demo. Train and avaluate ExpGCN on a specific dataset, run
python run.py --dataset DATASET_NAME
@article{Wei2023,
title = {ExpGCN: Review-aware Graph Convolution Network for explainable recommendation},
journal = {Neural Networks},
volume = {157},
pages = {202-215},
year = {2023},
issn = {0893-6080},
doi = {https://doi.org/10.1016/j.neunet.2022.10.014},
url = {https://www.sciencedirect.com/science/article/pii/S0893608022004087},
author = {Tianjun Wei and Tommy W.S. Chow and Jianghong Ma and Mingbo Zhao},
keywords = {Explainable recommendation, Recommender system, Graph Neural Network, Multi-task learning, Collaborative filtering},
abstract = {Existing works in recommender system have widely explored extracting reviews as explanations beyond user–item interactions, and formulated the explanation generation as a ranking task to enhance item recommendation performance. To associate explanations with users and items, graph neural networks (GNN) are usually employed to learn node representations on the heterogeneous user–item–explanation interaction graph. However, modeling heterogeneous graph convolution poses limitations in both message passing styles and computational efficiency, resulting in sub-optimal recommendation performance. To address the limitations, we propose an Explanation-aware Graph Convolution Network (ExpGCN). In particular, the heterogeneous interaction graph is divided to subgraphs regard to the edge types in ExpGCN. By aggregating information from distinct subgraphs, ExpGCN is capable of generating node representations for explanation ranking task and item recommendation task respectively. Task-oriented graph convolution can not only reduce the complexity of heterogeneous node aggregation, but also alleviate the performance degeneration caused by the conflicts between task learning objectives, which has been neglected in current studies. Extensive experiments on four public datasets show that ExpGCN significantly outperforms state-of-the-art baselines with high efficiency, demonstrating the effectiveness of ExpGCN in explainable recommendations.}
}