Knowledge-aware Logical Query-based Recommendation (KLQR) is a knowledge-aware recommendation framework, which consists of four components: (1) Query Generation Module, (2) Embedding Module (3) Logical Reasoning Module, (4) Prediction Module.
-
data/
-
BookCrossing/
: raw dataset of Book-Crossingitem_index2entity_id.txt
: the mapping from item indices in the raw rating file to entity IDs in the KGkg.txt
: knowledge graph fileBX-Book-Ratings.csv
: raw rating file of BookCrossing
-
MovieLens1M_0.1/
,MovieLens1M_0.3/
,MovieLens1M_0.5/
: preprocessed sparse dataset of MovieLens1M with respective sparsity ratio 10%, 30%, 50%train.txt
: train filevalid.txt
: valid filetest.txt
: test filekg_final.txt
: KG file
-
Yelp_0.1/
: Preprocessed sparse dataset of Yelptrain.txt
: train filevalid.txt
: valid filetest.txt
: test filekg_final.txt
: KG file
-
-
src/
data_preparation.py
: proprocess raw data filesdataloader.py
: dataloader for training and testingmodels.py
: colleciton of models (Embedding Module, Logical Reasoning Module, Prediction Module) in KLQRpath_extration.py
: path extraction code for Query Generation Moduleutil.py
: collection of helper funtions
-
main.py
: main code
-
BookCrossing
$ python src/data_preparation.py -dataset BookCrossing $ python src/path_extraction.py -dataset BookCrossing $ CUDA_VISIBLE_DEVICES=0 python main.py --cuda --do_train --do_valid --do_test --valid_steps 100 --data_path data/BookCrossing -n 128 -b 128 -d 32 -g 15 -lr 0.0001 --l2_lambda 1e-2 --geo beta --beta_mode "(800,2)" --tasks "1p.2p.3p"
-
MovieLens1M_0.1
$ python src/path_extraction.py -dataset MovieLens1M_0.1 $ CUDA_VISIBLE_DEVICES=0 python main.py --cuda --do_train --do_valid --do_test --valid_steps 100 --data_path data/MovieLens1M_0.1 -n 128 -b 128 -d 32 -g 15 -lr 0.0001 --l2_lambda 1e-2 --geo beta --beta_mode "(400,2)" --tasks "1p.2p.3p"
-
MovieLens1M_0.3
$ python src/path_extraction.py -dataset MovieLens1M_0.3 $ CUDA_VISIBLE_DEVICES=0 python main.py --cuda --do_train --do_valid --do_test --valid_steps 100 --data_path data/MovieLens1M_0.3 -n 128 -b 128 -d 32 -g 6 -lr 0.01 --l2_lambda 1e-2 --geo beta --beta_mode "(1600,2)" --tasks "1p.2p.3p"
-
MovieLens1M_0.5
$ python src/path_extraction.py -dataset MovieLens1M_0.5 $ CUDA_VISIBLE_DEVICES=0 python main.py --cuda --do_train --do_valid --do_test --valid_steps 100 --data_path data/MovieLens1M_0.5 -n 128 -b 128 -d 32 -g 6 -lr 0.01 --l2_lambda 1e-2 --geo beta --beta_mode "(1600,2)" --tasks "1p.2p.3p"
-
Yelp_0.1
$ python src/path_extraction.py -dataset Yelp_0.1 $ CUDA_VISIBLE_DEVICES=0 python main.py --cuda --do_train --do_valid --do_test --valid_steps 100 --data_path data/Yelp_0.1 -n 128 -b 128 -d 32 -g 6 -lr 0.01 --l2_lambda 1e-2 --geo beta --beta_mode "(1600,2)" --tasks "1p.2p.3p"