This would push users toward local posts (especially on smaller instances) while still supporting a better distribution of user engagement over the threadiverse. And if you don’t trust that it was implemented correctly – you can simply check it by counting the amounts of posts against your chosen probabilities.
Edit: changed feed name to mixed-feed
I’ve been considering a very similar but distinct idea for a while now. I want my subscribed feed to be based on user weightings. Give subscribed community a default weight of 100. Then if I see too much from worldnews, I can scale it down to 50 and see half as much from that community in my feed. The goal being that I can adjust the proportions of different contents types without blocking users or unsubscribing entirely.
Mmh … why call it weight? You probably still want to sum it up to 100, right? So why not just call it probability right away?
That’s basically a fully custumizable feed, right? Yeah, that would also be cool. Altough maybe a bit of over-engineering - don’t now if it would be that useful to the average user.
Edit: I think this also addresses the problem that smaller communities don’t appear as often between very active communities. I think this should be solved with a better sorting algorithm (already tried to fix here: https://github.com/LemmyNet/lemmy/pull/3907). But in part, this also needs to be fixed by the community, because discussion quality in some communities isn’t what it could be. This will probably change over time and then, for the average user, I think it will be enough to unsubscribe. I still think weights are a bit too much.
A few thoughts.
Actually. I don’t think I would want it presented as a probability from a usability perspective. If everything has to add up to 100, then increasing one means lowering all the others and vise versa. Similarly, those numbers will all change when I (un)subscribe to a community. This sounds extra confusing for users. Want to see half as much? Divide by 2. Let the computers do the math and turn it into probabilities.
Agreed that it might be an over engineered solution. But I think it would make a very good experience for users. And if a user doesn’t want to bother with it, they can easily ignore the feature.
While I do think better sorting algorithms are good to explore, I see that as a separate initiative. Yes, weighted subscriptions and better sorting algorithms can address the same problems but they can also be implemented separately. And they can work together to improve the user experience.
My big concern is performance. These are all assumptions but here are my expectations: Giving every user a distinct sort will send memory usage crazy high. Thus, you have to apply the weights dynamically when a client gets data. Can it be done fast enough to not slow down those calls? How much extra cpu will this cost?