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.
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.
@narF That wouldn't solve the problem IMO.
@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 I completely agree. More choice is always good.
@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: https://mastodon.social/@sengi_app/104892648486105455
@gabek But it's true that, at least, it's open to change, instead of being closed like Facebook.
@mira fraidyc.at 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 I would like this, and it's what I implemented in my mastodon client. But it would be better and easier to do it server-side.
@pharham I do use lists a lot, but still, there's always someone who post more frequently than others and floods the list timeline. So I have "rare posters" and "rarest posters", etc. Not ideal! Haha!
@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.
@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!
@carlospg @narF I wrote in English/Japanese
Order of timelines / タイムラインの順序 | Cutls Blog - https://blog.cutls.com/2020/09/20/order-of-timelines/
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 (...)
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 (...)
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.
@narF I don't have anything ready yet, but I'll notify you when I do! 🙂
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!