Official Implementation of "Bi-directional Heterogeneous Graph Hashing towards Efficient Outfit Recommendation".
Weili Guan1, Xuemeng Song2*, Haoyu Zhang2, Meng Liu3, Chung-Hsing Yeh1, Xiaojun Chang4*
1 Monash University
2 Shandong University
3 Shandong Jianzhu University
4 University of Technology Sydney
* Corresponding authors
Personalized outfit recommendation, which aims to recommend the outfit to a user according to his/her preference, has gained increasing research attention due to its great practical economic value. Majority of existing methods mainly focus on improving the recommendation effectiveness, while overlook the recommendation efficiency. Inspired by this, we devise a novel bi-directional heterogeneous graph hashing scheme, BiHGH for short, towards efficient personalized outfit recommendation. In particular, this scheme consists of three key components: heterogeneous graph node embedding, bi-directional sequential graph convolution, and hash code learning. We first unify four types of entities (i.e., users, outfits, items, and attributes) and their relations with a heterogeneous four-partite graph. We then creatively devise a bi-directional sequential graph convolution paradigm to sequentially and repeatedly transferring knowledge from top-down and down-top directions, whereby we divide the four-partite graph into three subgraphs, each of which include two adjacent levels of entities. Finally, we adopt the commonly used Bayesian Personalized Ranking loss for the user preference learning, and design the bi-level similarity preserving regularization to prevent the information loss during the hash learning. Extensive experiments on three benchmark datasets demonstrate the superiority of BiHGH.
We have provided the data files used in the /data folder, including edge files and node initialization features used to build the graph.
Edge files: [download]
Train/Val/Test files: [download]
Vocab files: [download]
Embedding files: [download]
img2path.json: [download]
In addition, you also can filter the open-source dataset IQON-3000 according to the experimental details in the paper, see this link. And the filter code we used can be found at the link.
After obtaining the IQON-550 dataset, we provided the data preprocessing code to obtain the above data files, see the /preprocess folder.
python 3.9.0
pytorch 1.8.1
You can install all the dependencies required for execution with the following command.
pip install -r requirements.txt
Before start, the configuration file conf/gat_tf_emb_max_v1.yaml is supposed to be modified first.
CUDA_VISIBLE_DEVICES=[gpu_id] python trainer.py
After the training is completed, the model file, configuration file and tensorboard log file will be saved to the /experiments folder.
Then, you can read the saved model for testing with the following command.
CUDA_VISIBLE_DEVICES=[gpu_id] python predict.py
Any question please contact me by email: zhang.hy.2019@gmail.com
If this work is helpful, please cite it:
@inproceedings{10.1145/3503161.3548020,
author = {Guan, Weili and Song, Xuemeng and Zhang, Haoyu and Liu, Meng and Yeh, Chung-Hsing and Chang, Xiaojun},
title = {Bi-Directional Heterogeneous Graph Hashing towards Efficient Outfit Recommendation},
year = {2022},
doi = {10.1145/3503161.3548020},
booktitle = {Proceedings of the 30th ACM International Conference on Multimedia},
pages = {268–276},
numpages = {9}}
