RUCAIBox / RecBole

A unified, comprehensive and efficient recommendation library
https://recbole.io/
MIT License
3.42k stars 612 forks source link

[🐛BUG] 平台提供的完整的Amazon-Books数据集在KGAT模型上一个epoch需要三个小时,有什么办法缩小数据集啊? #1807

Open qqqqxun opened 1 year ago

qqqqxun commented 1 year ago

描述这个 bug 对 bug 作一个清晰简明的描述。

如何复现 复现这个 bug 的步骤:

  1. 您引入的额外 yaml 文件
  2. 您的代码
  3. 您的运行脚本

预期 对您的预期作清晰简明的描述。

屏幕截图 添加屏幕截图以帮助解释您的问题。(可选)

链接 添加能够复现 bug 的代码链接,如 Colab 或者其他在线 Jupyter 平台。(可选)

实验环境(请补全下列信息):

qqqqxun commented 1 year ago

按提供的配置文件和建议的设备平台,如何减小inter,item,link和kg四个文件,让数据集缩小

Ethan-TZ commented 1 year ago

@qqqqxun 感谢关注! 你可以参考以下示例文件:

# dataset config
field_separator: "\t"
seq_separator: " "
USER_ID_FIELD: user_id
ITEM_ID_FIELD: item_id
RATING_FIELD: rating
HEAD_ENTITY_ID_FIELD: head_id
TAIL_ENTITY_ID_FIELD: tail_id
RELATION_ID_FIELD: relation_id
ENTITY_ID_FIELD: entity_id
NEG_PREFIX: neg_
LABEL_FIELD: label
load_col:
    inter: [user_id, item_id, rating]
    kg: [head_id, relation_id, tail_id]
    link: [item_id, entity_id]

# data filtering for interactions
val_interval:
    rating: "[3,inf)"    
unused_col: 
    inter: [rating]

user_inter_num_interval: "[10,inf)"
item_inter_num_interval: "[10,inf)"

# data preprocessing for knowledge graph triples
kg_reverse_r: True
entity_kg_num_interval: "[5,inf)"
relation_kg_num_interval: "[5,inf)"

# training and evaluation
epochs: 500
train_batch_size: 4096
eval_batch_size: 40960000
valid_metric: NDCG@10
train_neg_sample_args: 
    distribution: uniform
    sample_num: 1
    dynamic: False

# model
embedding_size: 64

如果想要缩小数据集规模,可以选择增强数据集的过滤规则,e.g., 更改user_inter_num_interval: "[15,inf)",item_inter_num_interval: "[15,inf)"等。 此外,如果你训练时间过长,你也可以改变评测方式,例如将 全评侧方式(full)改变为(uni100)。