Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support time-bounded popularity #359

Open
mdekstrand opened this issue Feb 21, 2024 · 8 comments · May be fixed by #493
Open

Support time-bounded popularity #359

mdekstrand opened this issue Feb 21, 2024 · 8 comments · May be fixed by #493
Labels
algorithms LensKit algorithm implementations enhancement New feature or request
Milestone

Comments

@mdekstrand
Copy link
Member

Right now, Popular is based on overall popularity.

We should add support for time-bounded popularity: most popular items in the last N days.

Time-weighted popularity could also be interesting.

@mdekstrand mdekstrand added enhancement New feature or request algorithms LensKit algorithm implementations labels Feb 21, 2024
@mdekstrand mdekstrand added this to the 2024.1 milestone Feb 21, 2024
@ZiyaoWei
Copy link
Contributor

Hi - looking for some fun side things to hack on during my spare time and got happily surprised to see lkpy having a spike of activity! Are these tickets open for contributors and if so is this a good starter ticket? Thanks!

@ZiyaoWei
Copy link
Contributor

Looked at this a little bit - I assume this should be now done with the new PopScore and either implemented as optional arguments/properties or as new classes?

@mdekstrand
Copy link
Member Author

Hi @ZiyaoWei — very glad you're interested in helping! You're right there's a lot of activity, and it makes things a bit of a moving target (and having built the pipeline and dataset abstractions, the next big lift there is to overhaul all of the model implementations to use them — so PopScore and friends are changing). I'm also on vacation this week, and will be returning to development on Aug. 26. I think this is a good first issue, though, and would love to provide what help you would need to contribute.

I think having it be a separate class from PopScore might make sense, just to keep PopScore simple.

If you wanted to work on a PR for the current APIs, you'd be welcome to; if you want to wait a couple weeks or so for the model API overhaul to land and do itagains the new code, that would remove the need to learn how to code for the current API.

@ZiyaoWei
Copy link
Contributor

Wow, thanks for the thoughtful and detailed response! I am traveling too this week and definitely can wait a few days, but overall would be happy to contribute :-)

Just curious about the API refactoring - is it happening in a branch I can check out? If not I can wait.

@ZiyaoWei
Copy link
Contributor

Definitely still interested but it seems the refactor might have stalled - anything else I can hack on in the meantime?

@mdekstrand
Copy link
Member Author

@ZiyaoWei The most important pieces for this bit are actually there now — it isn't hooked into the evaluator yet, but the new pipeline component PopScore is in lenskit.basic, so you can get started on this if you want!

@ZiyaoWei
Copy link
Contributor

Just realized the issue description mentions time-weighted popularity - not sure what's the canonical way to compute it? (And if you think it should be punted feel free to let me know if there are other things that are open to contibutions!)

@mdekstrand
Copy link
Member Author

Yeah, let's make that a separate change (and probably a separate component). There are a few models in the literature but nothing standard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
algorithms LensKit algorithm implementations enhancement New feature or request
2 participants