Jan
09

Facebook’s Magic Sauce

Ever wondered how Facebook chooses which items by which people are to be shown on your News Feed under the ‘Top News’ section? The Top News section is great in my opinion, the ‘Most Recent’ section of the news feed can sometimes be a little overwhelming, sifting through all the Bullshit to find posts that you feel are of relevance to you. It’s quite cool how Facebook works it out and is dictated by the EdgeRank algorithm.

Every item that shows up on your News Feed is considered an Object. If you have an object in your News Feed, ie: a status update, whenever users interact with that Object they’re creating an Edge, which includes such actions as ‘like’ and ‘comment’.

Each Edge has three important components:

1. Affinity Score between the viewing user and the Object creator – If you send your friend a lot of messages and regularly check their profile, then you’ll have a much higher affinity score for that specific user than you would, say, an old acquaintance you haven’t spoken to for a few years.

2. Weight – There’s a given weight to each type of Edge, for example, a ‘comment’ has more importance than a ‘like’.

3. Time – This is the most important factor in the EdgeRank algorithm. The older an Edge is, the less important it becomes.

Multiply the given factors for each Edge, add the Edge scores up and voila, you have your Object’s EdgeRank. The higher the EdgeRank is, the more likely your Object is to appear in the user’s feed.

FYI, creating an Object is also considered an Edge, which is what allows Objects to show up in your friends’ feeds before anyone has interacted with them.

Why have I blogged about this? I’m currently working on something  that will use a similar algorithm and I thought I’d share my homework in case some of you are interested.

Written by Matthew Leak

Matthew Leak is a Freelance Web and UI designer and front-end developer with a love for experimenting with new and emerging technologies.

Follow Matthew on Twitter here

You got somethin' to say? Speak up.

  • The following tags can be used : em, strong, a.