recommenders icon indicating copy to clipboard operation
recommenders copied to clipboard

[ASK] negative example defined by user

Open Chen-Cai-OSU opened this issue 3 years ago • 1 comments

Hello,

I want to confirm with you whether my current understanding is correct. Following the movielens dataset, I am replacing the rating with a score where 1 means positive interaction and negative (can be a float) examples is the negative interaction. I am currently running ligtgcn and found that I get the same result when I change all rating score from -1 to 1.

It seems that all ratings are treated as positive examples, no matter whether they are positive or negative. This is rather unintuitive as I expect the positve/negative of number in rating column should correspond to the postive/negative examples. And the larger the number is, the more positve user-item interaction it stands for.

Looking at the details of train_loader method of ImplicitCF class, it seems right now the negative example is generated by random sampling. Is there a way for user to provide negative examples?

Would you like to clarify that the right way to provide negative examples (possibly with different weights like -1, -0.5) to different models? Thank you!

Chen-Cai-OSU avatar Aug 08 '21 04:08 Chen-Cai-OSU

@Chen-Cai-OSU ImplicitCF should have filter out negative ratings (which happens in the function _data_processing). It is strange that you got the same result when you change all rating score from -1 to 1.

LightGCN is for item retrieval purpose. In the item retrieval stage, the RS aims to generate related items for the user. So we usually only process positive items, while sampling negative items from the entire item pool, because in the item retrieval stage, the RS model need to select top-k items from the entire item pool, it is critical to make offline and online data distribution consistent.

After the item retrieval stage, we can train a ranking model to discriminate fine-grained user preference, at this stage, you can construct negative items from negative feedbacks or non-click impression. Besides, you can also use negative feedbacks as a input component for the RS model, just like https://arxiv.org/abs/2101.04328

Leavingseason avatar Sep 29 '21 13:09 Leavingseason