What is up with my Facebook chat?

What algorithm does Facebook use to dynamically change the friends order in the Facebook chat list (on the right side)?

  • The list changes dynamically moving friends from first list to "more friends" and vice versa (based on the recent chat with the friend or by the frequency of chat with the friend or anything else)?

  • Answer:

    For me, the rule seems to be "friends I actually chat with all the time, random people I've exchanged three lines with recently and, of course, crush with whom I talk extremely rarely, but it's there as a permanent stalking incentive; plus people I've never interacted with"

Ana Albutiu at Quora Visit the source

Was this solution helpful to you?

Other answers

The engineering behind could be as follows They might have a score for every friend in your friend list which could either increase or decrease. Increase cases - you chat with that friend ver often , you interact with him/her very often via liking pictures ,commenting on status etc. They internally might be using profile views also as a metric which is not public thats why i said internally). Decrease cases:- You did not chat , interaction decreasing over time . PS- It has to decrease , suppose you chatted with a person for over months day n night , n you suddenly stopped chatting for months. That friends score would have been much high now. And now a new friend comes with whom you hv started chatting a lot. It makes sense to put that chat friend up in the order now rather then waiting to catch him up with the old friends score. so the old friends score should decrease if there is no interaction.

Anonymous

This depend on various factors: Number of times you have interacted with this person recently (Initiated by you) Number of times your friend has interacted with you recently (Initiated by your friend) How often You search for this friend in FB Search. How often Your friend searches for you in FB Search. You interacted with your mutual friends of this friend recently. You became friends with this new person recently. You have many common interests ( in your/your fiend's profile )

Anurag Verma

I think its pretty much like this... Facebook notices, who all you talked to recently and whom you talk to more often and keeps them above. Also if you visit someone's profile too often (like a secret crush or a guru) to see what the person is doing and even when someone is visiting your profile the same way, they tend to come above the divider !!

Veerendra Bidare

Unless you specifically talk to a developer at facebook (and they release what might be considered company secrets and valuable IP) there's no way to deduce the specific algorithm without quite a bit of testing.  If you collect enough data and have a decent programmer who understands statistics and math you might be able to very nearly or even exactly reverse engineer the formula's in use.  It's algebra and uses a concept similar to a weighted average.  Something along these lines:P = (message factor) * (tag factor) * (share factor) * (invite factor) * (browse factor)*(like factor)*(comment factor)there might be other factors I'm not thinking of off the top of my head but the P would be a combinatorial value computed by all the considered factors.  This might logically be the product if their combined by multiplication or else possibly the sum if they were simply added.  Both are essentially the same.  The specifics of each factor would need to be isolated by testing to reverse engineer and might be nearly impossible to reverse engineer if there's a random element incorporated in the final answer.  The P in my example stands for priority and it's how the results would be ordered when your friends are pulled from the db. Highest priority first (ORDER BY in SQL terms)Just as a hypothetical example say each kind of factor yields a weighted score of 1-50 based upon how many times and how recently (older instances being considered less important) you might have a simple formula for invite factor (IF) like this:IF = 5*week + 2*month + 1*90days where you're multiplying the number of invites to play a game in the last week times 5 and the number from 1 week to 30 days by 3 and just counting any other invites in the last 90 days. Say you invite someone 3 times this week, 5 other times this month and 10 other times in the last 90 days the formula would yield a score of 40.  If you want to prevent one "factor" from being too heavily weighted you could cap the value at 50 or 100.  If you're using multiplication to combine them then you would set any 0 value to 1 other wise if you never invite someone to play a game even though you message them every day and tag them in photos 3 times a week they would have a zero result for IF.isolation testing would be the process of experimenting by repeatedly taking actions that probably impact the score on various friends and seeing who appears first.  If I tag one friend 10 times and message another friend 10 times and comment on one friends pictures 10 times without doing anything else to any of them (the isolation part) by observing which showed up first in the sidebar I might be able to determine which of those "actions" carried more weight.  With enough data I could probably nail down the weighting system (at least portionally because I might assign 3 things factors of 2 - 4 - 6 but it might turnout the engineers at facebook gave them weights of 50-100-150 to allow for more granularity in the future. 

Brian Baker

Friend ordering algorithms take into account how much you “interact” with certain people as well as how often and how recently. So the random high school acquaintance that’s been popping up in your highlighted friends could be the algorithm gently nudging you to keep in touch with someone you’ve been friends with a long time. On the flip side, it may show you people you recently friended to jumpstart the connection, even if you haven’t interacted yet. The formula also gives extra weight to people who recently posted stories or photos, the company says.And sometimes, yes, it’s simply random, Facebook told me.Facebook’s algorithms are also constantly evolving—this is the company’s secret sauce and the ingredients are continually being tweaked to encourage engagement and promote new features. http://www.dailydot.com/technology/facebook-news-feed-algorithm-edgerank/, Facebook used a friend algorithm called Edgerank. It looked at three factors to determine social proximity, affinity, weight, and decay: how much you interact, what kind of interactions, and how long ago. The current formula is more complex. It uses machine learning and takes thousands of data points into account to determine people’s social proximity. But assuming the basic tenets are the same, the equation likely weighs various types of interactions differently: Being tagged with someone in a photo or attending the same event is a better indicator that you’re tight with them than liking a news story they shared or commenting on a wall post.You can find some insight into the algorithm by https://www.facebook.com/help/437430672945092. Facebook tracks and records everything you do on the site, and if you browse through you can see all those little interactions you maybe forgot about, and draw a line between those and how the algorithm’s ranking your friends. Those “random” folks showing up on your profile page or chat list may make a bit more sense.

Ammar Soghair

It is clear to me when I click a friend to chat. They remain in their spot for a little bit, then sometimes (usually after I close the chat) they shoot to the top really fast and stay there for a minute or two then they go back down in between the top and where they were. This says "Hey I just clicked on your name and went to your profile to poke around for a minute." I see it happen also if I just posted something really popular. I'll see people cycling around in the top slots for a little bit after the post then it stabilizes. Position in the chat lineup is obviously affected by all these metrics in real time. It would be really cool to see a diagram of how they have it worked out.

Phillip Walker

The algorithm can be thought in this way: Each message we send or receive is an object which has variables like time of sending, user whom it was send to, read or unread boolean etc.  and now these objects can be used to track things like frequency of chats between two people, recent chats and dynamically alter things.

Ankur Goyal

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.