← Back to team overview

software-store-developers team mailing list archive

Re: How to implement "Recommended for you"

 

On Wed, Jun 15, 2011 at 08:46:10AM +1000, Aaron Peachey wrote:
> On 6/14/11, Matthew Paul Thomas <mpt@xxxxxxxxxxxxx> wrote:
> 
> > Generation
> >
> >     By default, the "Recommended for you" box contains only a "Turn On
> >     Recommendations" button, and an explanation that turning them on
> >     will submit data about what software you have installed. When you
> >     turn it on, USC securely submits to the server a list of all the
> >     packages you have installed, together with a UUID and (if you're
> >     signed in) your SSO ID to link with your ratings. So you don't need
> >     to sign in to an SSO account to get recommendations, you just need
> >     to click one button.
> 
> How do we cater for people whose computer is used by multiple people?
> Should we add local username to the UUID to ensure it's unique (when
> some or all of the users don't have an SSO account?

A good point! This looks like the UUID needs to be per-user which
rules out to re-use the popcon UUID unless we append the username as
you suggest.
 
> >     Whenever you submit the data (which is whenever you install,
> >     remove, or rate anything subsequently), the server uses a
> >     recommender algorithm
> >     <http://en.wikipedia.org/wiki/Recommendation_system#Algorithms> to
> >     identify the ~50 packages you don't have installed that you're
> >     most likely to rate as excellent.
> > <http://cacm.acm.org/blogs/blog-cacm/22925-what-is-a-good-recommendation-algorithm/fulltext>
> 
> Does the algorithm take software ratings into account as well as
> whether it is installed? Is it less effective if someone has never
> rated software themselves (i.e. Users without an SSO account)?
> 
> Should we revisit the discussion about the pros and cons of 5 star
> system before we implement this?

It seems like we should consider making it easier to the user to
express "I like/dislike this app" without having to write a full
review as we should benefit from the data.

> > Serving
> >
> >     When sent a request containing the UUID, the server returns a
> >     space-separated ordered list of packages representing the
> >     recommendations for that UUID.
> 
> Any reason why it should be space separated or is this just for example's sake?

I think Matthew just put this out as a example. I'm pretty sure the
actual implementation will use something more standard like JSON.

[..]
> > One thing I am really fuzzy on is what should happen if you use multiple
> > computers for different purposes. They'll have different UUIDs, but
> > you'll be signed in to the same SSO account.
> Good point. I think SSO account should take precedence so that
> recommendations are seamlessly portable, but the algorithm then needs
> to get the union of installed packages across 2 or more PCs. 

Its a interessting question what people would expect here. If I have a
dedicated game machine and productivity machine then we should have
two different recommendations. If OTOH I have a laptop and a desktop
that I use for the same things the recommendations should be the
same. Hopefully the system can work it out from the context.

[..]
> Overall, this is an exciting feature for us to work on.
> Love the concept and think the approach is a good one.

Yeah, I agree. Good recommendations will be yet another killer feature
of software-center :)

Cheers,
 Michael


References