Gravity was born under interesting circumstances. Amit, Jim, and I had joined MySpace early on, and by the end of 2008 were running the business, tech, and product initiatives respectively (at a time when that was a good thing to run). The three of us had been operating as a team for years and always knew that we’d start a company together at some point. The real question was what to build.
Social was the obvious choice given our backgrounds (we’d gotten on the social train at a time when you had folks willing to violently argue with you that no one would ever put their picture online). But by the end of 2008 it was pretty clear that social was on a fairly well established trajectory, and, to a certain degree, a solved problem. Sure, the particulars were still in flux and market dominance was very much in dispute, but the web of “us” was no longer uncharted territory. The foundational behavioral frameworks were all in place. So if the problem of “us” had been tackled, what other ridiculously audacious project could we tackle?
I’m not sure exactly which of us suggested it, but the idea of personalizing the whole web for every user came up and seemed appropriately audacious. We founded Gravity , and here we are bringing that dream to fruition with our first implementations. I’m reminded of those early MySpace days I spent explaining to every major web company that social networking was going to change everything and getting only blank stares in return. So let me say something along those lines about personalization. Personalization is not a feature; it is an infrastructure. The power of the social web isn’t widgets or share buttons, it is the ability to see the world through the lens of your friends. The power of the personalized web is not about recommendations, it is the ability to see the web through a lens that is as utterly unique as you are.
All of that being said, it turns out that personalizing the web is pretty tricky, and not simply from a technical execution perspective. Rather, one of the biggest hurdles of the endeavor is pinning down exactly what is entailed in “personalization.” What qualifies one particular match candidate (piece of content, potential friend, ad, etc.) as a better personalization result than another? Having spent a healthy chunk of time thinking about exactly that problem, we have some thoughts to share.
The Gravity Approach
After a lot of meditation and a number of failed attempts, we’ve settled on what we believe to be the right way to go about personalization. Our method relies on a number of signals to value an object’s inherent worth and then combines that with a holistic picture of a user to render a set of personalized results that should yield optimize for user happiness. That’s a mouthful, so we’ll break it down.
The Interest Graph
The foundational component of our system is the Interest Graph. This is a digital representation of the things you care about and the relative levels of attachment to those things. I, for instance, am very attached to surfing, start ups, and parenting. I’m only moderately interested in poodles, iPhone apps, and 3D printing. Not to be confused with simple behavioral targeting that puts me in binary interest buckets, the Interest Graph has attachment gradients, and a memory that allows for calculation of trajectories and trends. Interests wax and wane (looking at you, LA Gear fans), and properly projecting patterns at the individual or aggregate levels can be very useful.
Building the Interest Graph can be done in a few ways. It can be explicitly volunteered by a user (What are you interested in?). It can be implicitly derived (What are you reading on my site?). It can be inferred from the things you say (Connect your Facebook/Twitter and let’s have a look at what you’ve been liking, status’ing, and tweeting). Really, any signal of user interest can be employed to increase or decrease a user’s attachment to any topic under the sun. And if you handle your ontologies correctly, you can infer attachment to the larger related concepts (Love the Lakers? Here’s what else is hot in the NBA…).
This approach seems simple enough, but, of course, you have to be able to derive the essential meaning of the things with which a user interacts in order to be able to imbue a user an attachment to the appropriate interests. This is the hard core semantic science of what we do, and well beyond this simple product guy. I’ll leave that to the tech gang to explain more competently in another post.
Learn More about Gravity’s Technology here.
Let’s review. To calculate the Interest Graph for any human:
- Understand the objects they create or interact with
- Divine the meaning of those objects
- Modify their attachment to those meanings based on the type of behavior over time
Great, now we have Interest Graphs. Hurray! Hold your horses, little buckaroo. Having an Interest Graph is like having a map, tells you where to go, but you still have to get there. Cue the section on personalization.
Discovery, executed correctly, is a beautiful thing. The books you didn’t intend to buy, the people you didn’t set out to meet, these are the serendipitous discoveries that add color to our lives. This is the ultimate goal of personalization, to show you the things you’ll love that you didn’t know you should be looking for (all needles, no haystacks). To accomplish this goal, you have to consider a pretty broad set of signals. Together, they produce a composite score indicative of correctness for a particular user. Here’s what we consider:
Interest Graph Proximity
Remember our process for calculating a human’s Interest Graph? We do a similar process for every content object. Comparing every user to every object, we can confidently say that a particular object is closely relevant to this person’s interests. The results are actually very good and exceedingly relevant. The problem with deploying a solution using solely this approach is the lack of serendipity. It’s predictable and, to a certain degree, boring. Read a lot about Apple? Here’s more Apple. Mostly reading about iPhones from that set? Now it’s mostly iPhone. The process tends to winnow results to an unacceptable level of specificity over time. It’s almost like having a set of saved searches that slowly morph based on their own self-referential activity. This was one of our early learnings leveraging the Interest Graph, and one we took to heart. Truly excellent personalization must be something more than this. Enter content value as a tunable serendipity measure.
If you can effectively determine the inherent value of a content object, this value can be combined with Interest Graph proximity. Together they give you a set of content that is relevant to your interests and serendipitously important. The set of things that you both want to see and ought to see. Not particularly interested in tsunamis? Doesn’t mean that you won’t be when they happen. So how do you determine the value of an object? A few vectors are considered:
- Editorial weight – There are people out there paid to know what is important. Call them tastemakers, pundits, or editors, their opinions matter. Recognizing and weighting their guidance can strongly indicate an object’s importance.
- Virality – Every share, tweet, digg, link, and search is an indication of collective interest in an object or its associated semantic topic. Where once there was only the linking behavior of webmasters, the universe of user generated content has enabled each of us to indicate what links matter within the superset. Monitoring the public streams and meta data provides pure signal of the things that matter right now. The Twitter firehose, among others, is a great mechanism for teasing the gold from the stream if you know how to properly parse the vastness that these data sets represent. We combine all of these signals into our virality calculations.
- Interaction feedback – What happens when an object is presented in a personalization context? Even when properly targeted based on the combined graph proximity and content value, some content just falls flat while others unexpectedly surge. Constant tuning based on the interaction of users with the targeted content optimizes the results for everyone.
See what gravity personalization looks like here.
So where does all this take us? We imagine a web where every experience is personal, viewed through the lens of my own interests with a healthy dollop of serendipity on top. Where not only the presentation of content is informed by my interest graph, but the production of content is informed by our collective interests. Editors are not replaced, but rather they operate with a level of transparency and sophistication previously unheard of. Where each of us are able to exorcise the noise from our view and focus only on the gems scattered across the web. It won’t be easy and it won’t be fast, but that’s the future as we see it.