← Back to team overview

software-store-developers team mailing list archive

Re: How to implement "Recommended for you"

 

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?

>     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?

> 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?

> Displaying
>
>     USC asks the server for updated recommendations whenever the
>     feature is turned on and, since it last requested them:
>     -   you've installed or removed anything
>     -   you've rated anything
>     -   at least a week has passed (in case anything hot has been
>         released since then)
>     -   the cache is missing or unparseable.
>     The top ~6 recommendations are shown in a box on the home screen,
>     with an "All" link to a separate screen to show them all.

Excellent!


> 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. Perhaps
we can give the user an option of explicitly linking their SSO account
to 1 or more PCs.
In any event, we probably need to take care with what and how we cache.

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

Cheers
Aaron


Follow ups

References