← Back to team overview

software-store-developers team mailing list archive

Re: How to implement "Recommended for you"

 

Hi!

I was unsure about where to hop onto this conversation, I guess this one
will do but excuse me if I copy-paste some snippet from some other mail...

On 06/14/2011 07:02 AM, Matthew Paul Thomas wrote:
> Matthew McGowan wrote on 13/06/11 23:22:
> 
>> My only concern is recommendations quality. 
> 
>> In all the mock-ups recommendations are prominent.  Are we able to
>> provide quality recommendations at this point?  The zeitgeist based
>> recommendations we have at the moment seem lacklustre IMHO.
> 
> The current recommendations seem to be based on filetypes, which was an
> interesting idea, but I doubt it could ever produce good results.
> <http://launchpad.net/bugs/745662>

Learnings association rules[1] using installed package sets (or "good
review" sets) as carts is relatively easy and will probably produce
quite more effective recommendations.
[1] http://en.wikipedia.org/wiki/Association_rule_learning

One interesting point though is bootstrapping the dataset, that is, what
recommendations to serve until we have a reasonable amount of data on
the server.  In the case of recommendations based on reviews we already
have a decent amount of reviews up there to start review-based
recommendations.  For recommendations based on installed packages otoh,
we'd need to start receiving data for a while before we can start
making useful recommendations.
The popcon data doesn't seem to help us here either as the package-sets
each user installed aren't available, only aggregated results per
package.  Maybe there's some other dataset somewhere we can use?

>>                                                              I know
>> there was some exciting conversation at UDS about tapping RnR and
>> contacts to make suggestions but when would this likely be ready?
>> ...
> 
> I guess in some cases basing it on contacts would produce results better
> than basing it on Ubuntu users in general. For example, if you had a lot
> of classmates or colleagues as contacts ("oh, everyone else here is
> playing Hedgewars and chatting on Mumble, maybe I should too").
> 
> To start with, though, let's design recommendations assuming that we can
> use ratings but not contacts yet. We can always juice them up with
> contacts later.
> 
> On Friday I identified six problems to solve for each of these new
> features: generation, storage, serving, displaying, caching, and fallback.
> 
> So, here's a straw-man sketch of what those might look like for
> recommendations. Please, everyone pick holes in it. :-)
> 
> 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.

What information would be used to generate this UUID?  This would
determine if your UUID changes from time to time, from one install to
the next, or from one of your devices to another.  If we can tell what
*user* a package-set belongs to (even if we keep many different ones for
each user based on a UUID) it would enable us to link that data to
social data if we ever find some.  I see the advantages of not requiring
a user to log in, though.

> (...snip...)
> 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.

If we do link data to a SSO account it would include the hostname or
some other device identifier.  If we keep all versions provided by
device id/UUID we may be able to do some very interesting
recommendations at some point, like "apps you're likely to install in
the future based on your current installed apps" that looks at the usual
trend of app installation per device.

Kind regards,

achuni.


References