The first thing someone sees when they log into Facebook is the news feed. This is a summary of what’s been happening recently among their friends on Facebook.
Every action their friends take is a potential news feed story. Facebook calls these actions “Edges.” That means when a friend posts a status update, comments on another status update, tags a photo, joins a fan page, or RSVP’s to an event it generates an “Edge,” and a story about that Edge might show up in the user’s personal news feed.
It’d be completely overwhelming if the news feed showed all the possible stories from your friends. So Facebook created an algorithm to predict how interesting each story will be to each user. Facebook calls this algorithm “EdgeRank” because it ranks the edges. Then they filter each user’s news feed to only show the top-ranked stories for that particular user.
Facebook looks at all possible stories and says “Which story has the highest EdgeRank score? Let’s show it at the top of the user’s news feed. Which one has the next highest score? Let’s show it next.” If EdgeRank predicts a particular user will find your status update boring, than your status update will never even be shown to that particular user.
Caveat: There actually appears to be two algorithms, although this has not been conclusively proven. The EdgeRank algorithm ranks stories, and a second algorithm sorts the news feed. This news feed algorithm includes a randomization element and a keyword aggregator. Zuckerberg mentioned in an interview with TechCrunch that Facebook users found it eery how well Facebook knew what they were interested in, so they started randomizing the news feed slightly.
The numbers on this are frightening. In 2007, a Facebook engineer said in an interview that only about 0.2% of eligible stories make it into a user’s news feed. That means that your status update is competing with 499 other stories for a single slot in a user’s news feed. Most of your Facebook fans never see your status updates.
Affinity Score means how “connected” a particular user is to the Edge. For example, I’m friends with my brother on Facebook. In addition, I write often on his wall, and we have fifty mutual friends. I have a very high affinity score with my brother, so Facebook knows I’ll probably want to see his status updates.
Facebook calculates affinity score by looking at explicit actions that users take, and factoring in 1) the strength of the action, 2) how close the person who took the action was to you, and 3) how long ago they took the action.
Explicit actions include clicking, liking, commenting, tagging, sharing, and friending. Each of these interactions has a different weight that reflects the effort required for the action–more effort from the user demonstrates more interest in the content. Commenting on something is worth more than merely liking it, which is worth more than merely clicking on it. Passively viewing a status update in your news feed does not count toward affinity score unless you interact with it.
Affinity score measures not only my actions, but also my friends’ actions, and their friends’ actions. For example, if I commented on a fan page, it’s worth more than if my friend commented, which is worth more than if a friend of a friend commented. Not all friends’ actions are treated equally. If I click on someone’s status updates and write on their wall regularly, that person’s actions influence my affinity score much more than another friend who I tend to ignore.
Lastly, if I used to interact with someone a lot, but less so now, then their influence will start to wane. Technically, Facebook is just multiplying each action by 1/x, where x is the time since the action happened.
Affinity score is one-way. My brother has a different affinity score to me than I have to him. If I write on my brother’s wall, Facebook knows I care about my brother, but doesn’t know if my brother cares about me.
This may sound confusing, but it’s mostly common sense.
Each category of edges has a different default weight. In plain English, this means that comments are worth more than likes.
Every action that a user takes creates an edge, and each of those edges, except for clicks, creates a potential story. By default, you are more likely to see a story in your news feed about me commenting on a fan page than a story about me liking a fan page.
Facebook changes the edge weights to reflect which type of stories they think user will find most engaging. For example, photos and videos have a higher weight than links. Conceivably, this could be adjusted on a per-user level–if Sam tends to comment on photos, and Michelle comments on links, then Sam will have a higher Edge weight for photos and Michelle will have a higher Edge weight for links. It’s not clear if Facebook does this or not.
As a sidenote, Facebook may actually rank the act of commenting, liking, visiting a fan page, or even fanning a page differently depending on the source. For example, becoming a fan via an ad may have a lower Edge score than becoming a fan by searching for the fan page and then becoming a fan. This makes intuitive sense–the one user is hunting for the page and generally will care more about page stories than someone who had an ad thrust in their face. There is no proof of this though.
New Facebook features generally have a high Edge weight in order to promote the feature to users. For example, when Facebook Places rolled out, check-ins had a very high default weight for a few months and your news feed was probably inundated with stories like “John checked into Old Navy.” Generally, after a few weeks or months Facebook dials the new feature back to a more reasonable weight.