parser.py 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. '''
  2. Created on Oct 10, 2018
  3. Tensorflow Implementation of Neural Graph Collaborative Filtering (NGCF) model in:
  4. Wang Xiang et al. Neural Graph Collaborative Filtering. In SIGIR 2019.
  5. @author: Xiang Wang (xiangwang@u.nus.edu)
  6. '''
  7. import argparse
  8. def parse_args():
  9. parser = argparse.ArgumentParser(description="Run NGCF.")
  10. parser.add_argument('--weights_path', nargs='?', default='',
  11. help='Store model path.')
  12. parser.add_argument('--data_path', nargs='?', default='Data/',
  13. help='Input data path.')
  14. parser.add_argument('--proj_path', nargs='?', default='',
  15. help='Project path.')
  16. parser.add_argument('--dataset', nargs='?', default='gowalla',
  17. help='Choose a dataset from {gowalla, yelp2018, amazon-book}')
  18. parser.add_argument('--pretrain', type=int, default=0,
  19. help='0: No pretrain, -1: Pretrain with the learned embeddings, 1:Pretrain with stored models.')
  20. parser.add_argument('--verbose', type=int, default=1,
  21. help='Interval of evaluation.')
  22. parser.add_argument('--is_norm', type=int, default=1,
  23. help='Interval of evaluation.')
  24. parser.add_argument('--epoch', type=int, default=1000,
  25. help='Number of epoch.')
  26. parser.add_argument('--embed_size', type=int, default=64,
  27. help='Embedding size.')
  28. parser.add_argument('--layer_size', nargs='?', default='[64, 64, 64, 64]',
  29. help='Output sizes of every layer')
  30. parser.add_argument('--batch_size', type=int, default=1024,
  31. help='Batch size.')
  32. parser.add_argument('--regs', nargs='?', default='[1e-5,1e-5,1e-2]',
  33. help='Regularizations.')
  34. parser.add_argument('--lr', type=float, default=0.01,
  35. help='Learning rate.')
  36. parser.add_argument('--model_type', nargs='?', default='lightgcn',
  37. help='Specify the name of model (lightgcn).')
  38. parser.add_argument('--adj_type', nargs='?', default='pre',
  39. help='Specify the type of the adjacency (laplacian) matrix from {plain, norm, mean}.')
  40. parser.add_argument('--alg_type', nargs='?', default='lightgcn',
  41. help='Specify the type of the graph convolutional layer from {ngcf, gcn, gcmc}.')
  42. #parser.add_argument('--gpu_id', type=int, default=0,
  43. # help='0 for NAIS_prod, 1 for NAIS_concat')
  44. parser.add_argument('--node_dropout_flag', type=int, default=0,
  45. help='0: Disable node dropout, 1: Activate node dropout')
  46. parser.add_argument('--node_dropout', nargs='?', default='[0.1]',
  47. help='Keep probability w.r.t. node dropout (i.e., 1-dropout_ratio) for each deep layer. 1: no dropout.')
  48. parser.add_argument('--mess_dropout', nargs='?', default='[0.1]',
  49. help='Keep probability w.r.t. message dropout (i.e., 1-dropout_ratio) for each deep layer. 1: no dropout.')
  50. parser.add_argument('--Ks', nargs='?', default='[20]',
  51. help='Top k(s) recommend')
  52. parser.add_argument('--save_flag', type=int, default=0,
  53. help='0: Disable model saver, 1: Activate model saver')
  54. parser.add_argument('--test_flag', nargs='?', default='part',
  55. help='Specify the test type from {part, full}, indicating whether the reference is done in mini-batch')
  56. parser.add_argument('--report', type=int, default=0,
  57. help='0: Disable performance report w.r.t. sparsity levels, 1: Show performance report w.r.t. sparsity levels')
  58. return parser.parse_args()