TAAFT
Free mode
100% free
Freemium
Free Trial
Deals

HKUDS / DiffMM

[ACM MM'2024]"DiffMM: Multi-Modal Diffusion Model for Recommendation"

99 5 Language: Python Updated: 21d ago

README

DiffMM: Multi-Modal Diffusion Model for Recommendation

This is the PyTorch implementation for DiffMM proposed in the paper DiffMM: Multi-Modal Diffusion Model for Recommendation, which is accepted by ACM MM 2024 Oral.

In this paper, we propose DiffMM, a new multi-modal recommendation model that enriches the probabilistic diffusion paradigm by incorporating modality awareness. Our approach utilizes a multi-modal graph diffusion model to reconstruct a comprehensive user-item graph, while harnessing the advantages of a cross-modal data augmen- tation module that provides valuable self-supervision signals. To assess the effectiveness of DiffMM, we conducted extensive experi- ments, comparing it to several competitive baselines. The results unequivocally establish the superiority of our approach in terms of recommendation performance, firmly establishing its efficacy.

๐Ÿ“ Environment

We develop our codes in the following environment:

  • python==3.9.13
  • numpy==1.23.1
  • torch==1.11.0
  • scipy==1.9.1

๐ŸŽฏ Experimental Results

Performance comparison of baselines on different datasets in terms of Recall@20, NDCG@20 and Precision@20:

๐Ÿš€ How to run the codes

The command lines to train DiffKG on the three datasets are as below. The un-specified hyperparameters in the commands are set as default.

! If you want to run the codes on baby or sports dataset, please firstly follow the instrcution in ./Datasets

  • TikTok
python Main.py --data tiktok --reg 1e-4 --ssl_reg 1e-2 --epoch 50 --trans 1 --e_loss 0.1 --cl_method 1
  • Baby
python Main.py --data baby --reg 1e-5 --ssl_reg 1e-1 --keepRate 1 --e_loss 0.01
  • Sports
python Main.py --data sports --reg 1e-6 --ssl_reg 1e-2 --temp 0.1 --ris_lambda 0.1 --e_loss 0.5 --keepRate 1 --trans 1

๐Ÿ‘‰ Code Structure

.
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ Main.py
โ”œโ”€โ”€ Model.py
โ”œโ”€โ”€ Params.py
โ”œโ”€โ”€ DataHandler.py
โ”œโ”€โ”€ Utils
โ”‚ย ย  โ”œโ”€โ”€ TimeLogger.py
โ”‚ย ย  โ””โ”€โ”€ Utils.py
โ”œโ”€โ”€ figures
โ”‚ย ย  โ”œโ”€โ”€ model.png
โ”‚ย ย  โ”œโ”€โ”€ dataset.png
โ”‚ย ย  โ””โ”€โ”€ performance.png
โ””โ”€โ”€ Datasets
    โ”œโ”€โ”€ tiktok
    โ”‚ย ย  โ”œโ”€โ”€ trnMat.pkl
    โ”‚ย ย  โ”œโ”€โ”€ tstMat.pkl
    โ”‚ย ย  โ”œโ”€โ”€ valMat.pkl
    โ”‚ย ย  โ”œโ”€โ”€ audio_feat.npy
    โ”‚ย ย  โ”œโ”€โ”€ image_feat.npy
    โ”‚   โ””โ”€โ”€ text_feat.npy
    โ”œโ”€โ”€ baby
    โ”‚ย ย  โ”œโ”€โ”€ trnMat.pkl
    โ”‚ย ย  โ”œโ”€โ”€ tstMat.pkl
    โ”‚ย ย  โ”œโ”€โ”€ valMat.pkl
    โ”‚ย ย  โ”œโ”€โ”€ text_feat.npy
    โ”‚   โ””โ”€โ”€ image_feat.npy.zip
    โ””โ”€โ”€ README.md

๐Ÿ“š Datasets

๐ŸŒŸ Citation

If you find this work helpful to your research, please kindly consider citing our paper.

@article{jiang2024diffmm,
  title={DiffMM: Multi-Modal Diffusion Model for Recommendation},
  author={Jiang, Yangqin and Xia, Lianghao and Wei, Wei and Luo, Da and Lin, Kangyi and Huang, Chao},
  journal={arXiv preprint arXiv:2406.11781},
  year={2024}
}
0 AIs selected
Clear selection
#
Name
Task