I want to talk about algorithms on social media. Specifically about how mastodon and the Fediverse often write on their presentation page or feature list about how they "don't have algorithms" because they display posts in chronological order.

👇A thread

Obviously, I think we can all agree that using chronological order *is* an algorithm, but my point is not to be pedantic but to ask everyone how we feel about this choice of algorithm, of displaying all posts in chronological order.

Every algorithm has flaws. The chronological order also have flaws. If someone posts infrequently, their posts will be flooded on my timeline by people who post very frequently. And so, as a user, if I don't look at mastodon very often, I will miss a lot of posts from the rare poster and see of lot of posts from the frequent poster.

The algorithm of chronological order, which we say in impartial when comparing to the Facebook feed algorithm, is not so impartial. It favours user who post very frequently. It gives them more voice. The one who shout the loudest or the most often is the one who is most heard.

So I'd like to propose alternatives that I feel could be more fair for everybody.

Proposition #1: A feed which groups posts from the same user. When I open my main timeline, I would see 1 entry per user, maybe their most recent post, with a button to expend the block and see their previous posts. Kinda like opening their profile page. Ideally the system would have a way to know which posts I already saw in a previous visit and would hide those behind another fold. This way, if someone post a lot of message, they don't flood my timeline.

I'm sure you had this experience already, of trying to follow a cool person or bot, but it floods your timeline because it posts too frequently, so you're forced to unfollow it. As for the user who post very rarely, I would have a much higher chance of seeing their messages. Every user would be able to choose which algorithm they prefer: chronological or grouped. Ideally, this would be a simple toggle switch at the top of their timeline.

Proposition #2: The next logical step but quite more ambitions: A set of tools that are easy enough to use so that every end user of Mastodon and the Fediverse is capable to customize their timeline. Basically, a set of tools to "make your own algorithm!" Maybe have a priority list to "show posts from these users first".

Maybe, combine that with my first proposal. Maybe you want to customize how many post per user you see: instead of 1, you say 3. I don't have all the details for this but I would be welcome to brainstorm with you if you're interested.

These are my proposals. Now, I want to hear what you think!

And then, if we find the idea to be popular, I would like to know what would be necessary to make it happen. I'm not a programmer so I have no clue, but maybe you know? Who do we need to talk to? Every front-end and client developer? Or is that more on the Mastodon/ActivityPub API side?

I understand why chronological order is the most popular option for social media. It's easy to implement and generates a sense of urgency. "Come back often, because you could be missing out!!!"

But I would like Mastodon and the Fediverse to be better than that. To be the more humane version. One that understands that we have other things to do than be glued to our screens.

Update: Having now read your answers, I now understand better. It seems to be something that needs to be done by the creators of Mastodon and Pleroma and others on the database/server/API side.

I'm not sure who to contact. Who are the people making those?

@narF this is a great thread and I like the idea of a tweakable timeline a lot. chronological isn’t the end all be all

Interesting ideas! I am not sure about the 'block of posts' one though: hiding something X behind something Y only makes sense (to me) where Y *summerises* or somehow *is a guide for* X. In general, one post by a user does not summerise all posts by that user. People post different things and I don't want posts I find interesting to be hidden behind posts I don't; otherwise I would never click on them.

@Hyolobrika True. I guess you would need a visual indication of how many posts are hidden behind.

@Hyolobrika Maybe not for you, but it would for me. That's why I'm saying that the Fediverse needs to provide us with a choice of algorithms, and the means to customize them, rather than trying to provide a one-size-fits-all. That's what Facebook and Twitter and commercial social media's are doing and we don't want that.

@narF A thought about Proposition #1. Let's say the timeline has user groups and it also stores which ones you've already seen. Then won't it be the same as only showing more frequent users' posts, because those who don't post frequently will be removed as soon as you read there posts unless that's what you want.

Also, I think it does not account for Federated timeline, as that is generally for discovering new people/posts and you cannot already have a preference for the new ones.

@ankit True. But then that's exactly why it would be nice to have options. For example, maybe I want my main timeline to be grouped, but not my federated timeline.

But I agree with your first point. That's a problem that I hadn't seen at first. But I feel we can still find solutions to that if we think about it.

@narF The nice thing about the fediverse is that there are open apis and you can build a client that has the exact experience you want without changing anything for anybody else. Different clients for different people is a great solution. Choice is good

@gabek Unfortunately, there are 2 problems with that. The first is obviously that I don't know how to code such thing. It would take me a long time to learn.

Then, it seems that it would be difficult to do on the client side:

@gabek But it's true that, at least, it's open to change, instead of being closed like Facebook.

@narF I think #1 would be a very nice option to have! does something like this for RSS feeds, and it is a very nice experience.

@mira does look interesting (and have the coolest, chilliest, most compelling introduction video I've ever seen!!❤️) In fact, it seems to exactly what I want my social media to be. But I'm a big mobile user so I would need that thing but on my phone.

@narF @h3poteto Whalebird would benefit from this feature. I see that it's mostly written in Type/JavaScript which is not my strong area but I'd be more than happy to see where I can assist to make this happen (docs, algorithms, python, rust, testing, etc.)

@carlospg @narF I like chronological order, but I think your proposition is good.
I hope to implement that feature on server side. Because client application must get data through API to calculate feed according to the algorithm. And if, like your proposition, we need to manage whether a user has seen posts, the read flag should be kept in database.
@Sapphire Rubyant @narF 🎲
Ce n'est pas pour polémiquer mais tout ça existe déjà sur le réseau Zot (hubzilla, Zap, Mistpark, etc), qui fait partie du fédiverse. C'est ce que je fais tout les jours sur mon compte zap. Je classe mes contacts par Thème ou affinité, appelléés "lists", et quand j'ouvre ma session, c'est moi qui choisie de regarder la liste que je veux.

@lotfi Ouais, y'a aussi les listes sur Mastodon. Je m'en sers beaucoup. Mais c'est le même problème: y'a toujours quelqu'un dans chaque liste qui post trop souvent et qui enterre tout le monde.

@narF 🎲
Désolé, je ne connais pas assez Masto. J'avais cru comprendre que ça n'existait pas.

@lotfi pas de problèmes! 🙂On ne peut pas tout savoir. Moi même je ne connais pas beaucoup les autres parties du Fediverse. C'est à ça que sert de se parler entre nous!

@narF this is a great thread. @Cutls what do you think? Should this feature be added to the thedesk?

@carlospg @narF I'm reading and thinking of it (I'll reply it till tomorrow)

@carlospg @narF I wrote in English/Japanese
Order of timelines / タイムラインの順序 | Cutls Blog -

@Cutls @carlospg Thank you for spending the time to write your thoughts, and so so in 2 languages!

You do bring good points. I think this shows even more how we need to provide different version of the feed, and let the user what they think is best by giving them tools.

@Cutls @narF Thank you so much for taking the time to consider the idea and put it in writing 😁

@carlospg @narF

It's a nice idea and it's something I was also thinking of a while ago when I was discovering Twitter (in 2009-2010).

And it's definitively something you must do server-side: lets say you want to group the publications of the last 24h (duration that could be defined by the user), you will then query the following's publications and then be able to group them/display them. Since a client can be launch at any time (and doesn't have this history of publications) it's not (...)

@carlospg @narF really achievable without huge trade-offs.

Also it's something that could be processed only once a day so it shouldn't be too resource intensive.

I'm a strong believer that useful algorithms (to oppose to mercantile algorithms) are the next steps for Fediverse applications, maybe this should be proposed to the repos of Mastodon/Pleroma/Misskey/etc.

@sengi_app @carlospg I think I understand. You're saying that it needs to be done by the server because doing it on the client would be very difficult. I was worried this would be the answer because it's a lot more difficult to change and less visible.

I'm glad you agree that it seems to be the future of the Fediverse and I like the name "useful algorithm" vs "mercantile algorithm" :D

@narF @carlospg Exactly. There would be some hacky way to do it on the client-side tho, but it would be in direct conflict with anti-spam measures and equivalents from the server. So not really viable, nor very efficient.

The Fediverse needs to find ways to curate content. Proprietary social-medias do curate content but for their own profit (and directly against user's benefits). And people are starting to notice. The fact that we're mostly building a common here make it a perfect space (...)

@narF @carlospg to create / experiment / provide new ways to navigate through a lot of information, and those curations would be 100% oriented to users needs and benefits; and make the Fediverse even more distinctive and useful than mainstream services.

I'm planning on working on an new ActivityPub project this year (or maybe in early 2021) to try to address some of those issues. Not the way your have described (it would be complementary in fact), but definitively with the same analysis (...)

@narF @carlospg of the current situation and flaws: visibility shouldn't be function of your activity nor popularity (followers count), but depending on the quality of the content itself.

I will try to write down my own thought process on those issues in my dev blog in the following months, if you're interested to see more.

@sengi_app @carlospg Yes! I'm very interested! Please share if you have already written on the subject! Or poke me if you plan to write about it, so I can re-share! :)

@narF I don't have anything ready yet, but I'll notify you when I do! 🙂

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!