software-store-developers team mailing list archive
-
software-store-developers team
-
Mailing list archive
-
Message #00070
How to implement "Recommended for you"
-
To:
software-store-developers@xxxxxxxxxxxxxxxxxxx
-
From:
Matthew Paul Thomas <mpt@xxxxxxxxxxxxx>
-
Date:
Tue, 14 Jun 2011 11:02:51 +0100
-
In-reply-to:
<BANLkTi=DOzSSmaqkVY_uJ_Kg2uO+ftrQsA@mail.gmail.com>
-
Organization:
Canonical Ltd
-
User-agent:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
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>
> 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.
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>
Storage
The server stores the list of each participant's installed
packages, and a cache of the recommendations generated for them.
Serving
When sent a request containing the UUID, the server returns a
space-separated ordered list of packages representing the
recommendations for that UUID.
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.
Caching
USC caches the list of recommendations.
Fallback
If USC can't contact the server, it displays the cached
recommendations. If no cache is available, it either tells you to
connect to the Internet or to try again later, depending.
What have I got slightly wrong? What have I got completely wrong? What
have I missed? What have I included that's unnecessary?
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.
Cheers
- --
mpt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk33McsACgkQ6PUxNfU6ecoM9wCdFOwSRU+bnDk6wo9QT51nFhhg
ocEAoNJfypfiquED4NLF2B/ZsBlUt+eg
=qY98
-----END PGP SIGNATURE-----
Follow ups
References