Giter Club home page Giter Club logo

Comments (12)

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
Yes, understood. It's less trivial than it sounds just because the recommender 
does not already have this information at runtime, actually. Only the projected 
feature space data is on-line. Of course it wouldn't be too hard to also record 
and load this sort of thing. The main work is just the overhead of new API 
methods, updates, etc.

Original comment by [email protected] on 8 Jan 2013 at 3:10

  • Changed title: Implement a mostPopular method
  • Added labels: Type-Enhancement
  • Removed labels: Type-Defect

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
In fact, the recommender may have this information if the Generation provides 
the knownUserIDs (this is the implementation I've used for now): the score is 
the size of the knownUserID set. Patch will follow shortly.

And yes, the main work is the overhead of the API methods, updates, etc.

Original comment by [email protected] on 8 Jan 2013 at 3:14

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
Attaching the patch file (note: this is a git patch)

Original comment by [email protected] on 8 Jan 2013 at 3:38

Attachments:

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
Yeah that's a lot of the change. I had thought most popular might mean highest 
sum of input values rather than just highest cardinality. So an item has 
interaction values of 4, 9, and 1, that's a score of 14 for purposes of 
ranking, not 3.

I'll look into this.

Original comment by [email protected] on 8 Jan 2013 at 11:55

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
I tried to store the sum of input values in the Generation (as a 
FastByIDFloatMap itemsWeight), but I do not know how to handle the remove 
preference (nor a preference update by the way, as it would count as a new 
preference).

The only solution I see for now is to store the whole preferences data in 
memory (would not that be too much??) as a FastByIDMap<FastByIDFloatMap> 
knownUserIDsWithPref.
But this solution has another issue: the MostPopularIterator would have to sum 
all the values of the FastByIDFloatMap corresponding to the users prefs for a 
given item to get the score for the item, which could be time consuming if 
there is lots of users and/or items.

What do you think?

Original comment by [email protected] on 9 Jan 2013 at 10:27

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
For the second issue, I found a simple way to do it: compute the sum of all the 
values inside the FastByIDFloatMap (via a specialized copy and/or subclass): 
compute and maintain the accurate sum in put/remove/clear methods.

Original comment by [email protected] on 9 Jan 2013 at 10:35

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
Here is a patch (not: this is a git patch) which implements the second proposed 
solution:
- Generation#knownUserIDs has been changed from FastByIDMap<FastIDSet> to 
FastByIDMap<FastByIDFloatMap>, to store the pref values
- FastByIDFloatMap now has a field sumOfValues, maintained within the 
put/remove/clear/entry.setValue methods
- ServerRecommender updates the user pref values in knownUserIDs.

Original comment by [email protected] on 10 Jan 2013 at 3:19

Attachments:

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
OK I'll have a look. On second thought your original idea may be better, to 
avoid storing more data by just using the count rather than sum of values. It 
just requires the data structure already in place.

Original comment by [email protected] on 10 Jan 2013 at 3:23

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
Ok, thanks a lot

Original comment by [email protected] on 10 Jan 2013 at 3:58

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
Take a look at what I've added here and see if it works for you. I'm reluctant 
to add another larger data structure in memory, so implemented something less 
efficient at runtime using what's already being loaded. It still works fairly 
quickly.

Original comment by [email protected] on 11 Jan 2013 at 10:56

  • Changed state: Fixed

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
It works really fine, thanks !
If you could just consider the addition of an IDRescorer to the 
mostPopularItems method (a requirement for us), I've attached a patch which 
does just that.

Again, many thanks !

Original comment by [email protected] on 11 Jan 2013 at 12:56

Attachments:

from myrrix-recommender.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 29, 2024
OK, see my latest change, which is 95% the same as yours

Original comment by [email protected] on 12 Jan 2013 at 4:45

from myrrix-recommender.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.