Mastodon normalizer: Difference between revisions

From ludd
Adamw (talk | contribs)
try to smooth out the intro to normalization
Adamw (talk | contribs)
→‎Normalization: Drop in some images; link to recent article
Line 6: Line 6:


== Normalization ==
== Normalization ==
[[File:API_Console_-_VU_Meter_Bridge,_API560_10_Band_EQ,_API550A_3_Band_EQ_(2017-01-05_19.45.22_piqsels.com_en).jpg|thumb|It's all about the volume]]
If one topic or author is much more prolific than another, then the louder channel will tend to draw more attention.  This problem is often framed as "signal to noise", but the phrase doesn't quite describe the same problem and would be more accurately applied to spam-filtering.  Here we're looking at something more nuanced which we'll call "loudness normalization" in which the voices may be equally important, we simply want to give each voice a fair chance to be heard.
If one topic or author is much more prolific than another, then the louder channel will tend to draw more attention.  This problem is often framed as "signal to noise", but the phrase doesn't quite describe the same problem and would be more accurately applied to spam-filtering.  Here we're looking at something more nuanced which we'll call "loudness normalization" in which the voices may be equally important, we simply want to give each voice a fair chance to be heard.


Line 15: Line 16:


== Dimensionality ==
== Dimensionality ==
[[File:Alcudia,_detalle_de_saetera,_sección_norte,_02.jpg|thumb|225x225px|Feeling lucky?]]
Playing with the "check in" mode I found that it successfully levels out authors so that everyone gets an equal chance to be seen, however the limitation of one recent post 's a painfully narrow viewport, like watching an orchestra through an arrowslit.  How can we cross the broad perspective of multiple, leveled channels with the known strengths of a chronological timeline and its potential to tell a story?
Playing with the "check in" mode I found that it successfully levels out authors so that everyone gets an equal chance to be seen, however the limitation of one recent post 's a painfully narrow viewport, like watching an orchestra through an arrowslit.  How can we cross the broad perspective of multiple, leveled channels with the known strengths of a chronological timeline and its potential to tell a story?


Line 24: Line 26:
In the long term, the algorithm should be fully flexible and visually-programmable, and there would be a library for sharing your algorithms with others.  
In the long term, the algorithm should be fully flexible and visually-programmable, and there would be a library for sharing your algorithms with others.  


== Similar projects ==
== Resources ==


=== Similar projects ===
* [https://terhech.de/ebou/ Ebou by Benedikt Terhechte] ([https://github.com/terhechte/Ebou source code]) ([https://sauropods.win/@h_albermann@mastodon.social/109972305658551708 highlighted] by @h_albermann) shows a timeline with a single card for each user, and clicking on a user expands their timeline into a new column.  Looks very active as of August 2023.
* [https://terhech.de/ebou/ Ebou by Benedikt Terhechte] ([https://github.com/terhechte/Ebou source code]) ([https://sauropods.win/@h_albermann@mastodon.social/109972305658551708 highlighted] by @h_albermann) shows a timeline with a single card for each user, and clicking on a user expands their timeline into a new column.  Looks very active as of August 2023.
=== Reporting on the topic ===
* [https://www.cbc.ca/radio/spark/eurpoe-digital-services-act-julia-angwin-1.6960911 "As EU law hopes to rein in Big Tech's algorithms, this reporter wants a 'third path'"]. [https://www.cbc.ca/radio/spark Spark].  Retrieved 11 September 2023.


== Notes ==
== Notes ==


<references />
<references />

Revision as of 21:34, 11 September 2023

Project link (beta):
https://normalizer.webflux.us/

My crash course in "undirected search" began with two brief but eventful years moonlighting for Jibril Jackson's startup HYVE, which made me aware of Dunbar's number, the limits of how much attention we can pay our friends, and how social media tilts the scales so that the loudest voice is heard most.

When @futurebird@sauropods.win mentioned the fun idea of a customizable timeline as something that comes up regularly in discussions about improving Mastodon, I recognized this as the same perennial problem and decided to give a whack at the proposed solution, to see what it looks like. I'm happy with the results so far! You can try the demo using your own Mastodon account.

If you like the idea, please feel free to borrow the code, help with the project, or reimplement it on your preferred platform.

Normalization

It's all about the volume

If one topic or author is much more prolific than another, then the louder channel will tend to draw more attention. This problem is often framed as "signal to noise", but the phrase doesn't quite describe the same problem and would be more accurately applied to spam-filtering. Here we're looking at something more nuanced which we'll call "loudness normalization" in which the voices may be equally important, we simply want to give each voice a fair chance to be heard.

In audio engineering one loud instrument can often drown out another softer sound. The standard approach to fix this is to normalize the audio, bringing the average loudness of all instruments to the same level.

As social media readers, we're instinctively aware that each voice has its own style, conciseness and frequency of posting. We might naturally gravitate towards the bright colors, loud text, frequent posters, and to push back we protect our attention through various strategies: muting the spammiest accounts, automatic filtering, skimming aggressively, and so on. (It's also interesting that these strategies have audio analogies: multitrack mixing, noise reduction and fast-forwarding, respectively.)

The basic normalization suggested by @futurebird is implemented in my demo as the "Check in" mode, and it works by showing exactly one recent post from each account you've subscribed to.

Dimensionality

Feeling lucky?

Playing with the "check in" mode I found that it successfully levels out authors so that everyone gets an equal chance to be seen, however the limitation of one recent post 's a painfully narrow viewport, like watching an orchestra through an arrowslit. How can we cross the broad perspective of multiple, leveled channels with the known strengths of a chronological timeline and its potential to tell a story?

One obvious visualization is to put the two dimensions at right angles to one another, so a two-dimensional view. In my demo this is called "Orthogonal" mode and you can scroll between authors vertically, then read individual timelines by scrolling horizontally. Let me know what you think, dear reader!

Customization

Like in a fairy tale, these three experiments—I'm including classic "timeline" with only the time dimension and no normalization—have also satisfied the programming "rule of three" and [1]I'm ready to collapse the different feed styles down into something that can be generalized. As a first step, I'll turn the parameters into visual knobs that can be seen and adjusted by the user.

In the long term, the algorithm should be fully flexible and visually-programmable, and there would be a library for sharing your algorithms with others.

Resources

Similar projects

Reporting on the topic

Notes

  1. Current project status: working on the thing right here in the sentence.