BestActionNow / CVAR

20 stars 5 forks source link

Why here always uses a fixed data loader? #1

Closed Isuxiz closed 2 years ago

Isuxiz commented 2 years ago

https://github.com/BestActionNow/CVAR/blob/d97942df04a6be663afb2c1c7432a443f6440324/main.py#L386-L391

Shouldn't you just use the arguments of the function warm_up?

BestActionNow commented 2 years ago

This depends on the dataset splitting way. Firstly we divide items into two parts, hot items and cold items, by their frequency in the dataset. Notice that dataloaders['train_base'] only contains rating samples of hot items, while rating samples of cold items are uniformly distributed in dataloaders['train_a'],dataloaders['train_b'], dataloaders['train_c']. The function warm_up() only helps to warm up the item ID embeddings of cold items. Considering that dataloaders['train_base'] is also fed to warm_up() as training samples, we fixed the dataloader to dataloaders['train_a'] here to get the cold items. It can be fixed to dataloaders['train_b'], dataloaders['train_c'] as well.

Isuxiz commented 2 years ago

I see. That is to say, this is a special case prepared for the train_base dataset. I modified the code to skip directly in the case of the train_base dataset, and directly use the parameters of warm-up in other cases , obtained similar results to the initial version, confirming this. Thanks for answering.