NVIDIA-Merlin / Transformers4Rec

Transformers4Rec is a flexible and efficient library for sequential and session-based recommendation and works with PyTorch.
https://nvidia-merlin.github.io/Transformers4Rec/main
Apache License 2.0
1.07k stars 142 forks source link

[FEA] Support for incorporating negative signals, i.e. song skipped by a user #702

Open animesh-wynk opened 1 year ago

animesh-wynk commented 1 year ago

🚀 Feature request

It would be great if there is a support for using negative signals as inputs to the model. In the context of a music-streaming platform, a song skipped by a user is a negative signal which can be useful for understanding the preferences of a user.

Motivation

Negative signals, just like the positive signals, contain useful information about the preferences of a user, and being able to use it for training recommender systems can be helpful in delivering enhanced experience to the users. An example of a positive signal could be downloading a song. And an example of a negative signal could be skipping a song within 30 seconds. Using skip signals have shown to improve the user engagement as mentioned in this paper by Spotify.

rnyak commented 1 year ago

@animesh-wynk can you give more details how these negative signals are defined given a positive? Meaning if someone downloads a song now, but skip another song two hours later, are you using this skipped song as negative signal for the song downloaded two hours ago? Basically how positive-negative pairs are integrated? thanks.

animesh-wynk commented 1 year ago

Hi Ronay!

If a song is streamed for >= 30 seconds, then we count it as a successful stream, else it is considered an unsuccessful stream as it was skipped too soon. So a session can have an array of consumed songs and an array of skipped songs. One of these 2 arrays can be negative as well, in case all the songs in that session were consumed or skipped.

Feel free to ask me more about it if you still have any other questions or doubts.

Thanks Animesh

On Wed, Jun 28, 2023 at 7:08 PM rnyak @.***> wrote:

@animesh-wynk https://github.com/animesh-wynk can you give more details how these negative signals are defined given a positive? Meaning if someone downloads a song now, but skip another song two hours later, are you using this skipped song as negative signal for the song downloaded two hours ago? Basically how positive-negative pairs are integrated? thanks.

— Reply to this email directly, view it on GitHub https://github.com/NVIDIA-Merlin/Transformers4Rec/issues/702#issuecomment-1611431046, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQVXDVJ65DHEFUG52KRRN2DXNQXTXANCNFSM6AAAAAAYDJAE2I . You are receiving this because you were mentioned.Message ID: @.***>