New Trending Algorithm - Attempt Number 4

in Steem Oasis 🌴3 months ago

Next attempt for the Tending algorithm:

Score calculation with linear gradation between 0 and 30 votes and scaling down below 10 votes:

def _score_with_linear_median_and_min(active_votes, created_timestamp, timescale=480000):
    """Calculate trending/hot score with linear median and min rshares."""
    if active_votes:
        rshares = [int(vote['rshares']) for vote in active_votes]
        length = len(rshares)
        median_rshares = sorted(rshares)[length // 2]
        median_rshares *= 1 if length > 10 else 0.00001 # under 10 votes scale down
        weighted_median_rshares = int(median_rshares * min(length / 30, 1))  # Linear weighted median
    else:
        weighted_median_rshares = 0
    return _score(weighted_median_rshares, created_timestamp, timescale)

This is the code extract for the calculation used now. As always, it will be a while before you see it on the test trending page.

Thoughts

The last attempt (blue line below) consisted of first calculating the median of all votes and then weakening the score of posts with fewer votes with log10. However, this resulted in posts with particularly few votes receiving a higher score. In other words, the exact opposite of what was intended.

Therefore, I have considered that posts with very few votes should not play a role in the trending score at all. For posts with fewer than 30 votes, the value of the median increases slowly until the median is no longer weakened from 30 votes. The number 30 is chosen arbitrarily here.

Here you can see a comparison of the three methods:


Figure_1.png

I'm curious to see how the trendings will develop now :-)

Steem Search on https://moecki.online/

My Full Node on https://api.moecki.online

My Python Pricefeed for Witnesses

Vote for me as Witness

27.09.2024
Sort:  

on the test trending page.

Öhm, hab da noch was im Hinterkopf, du meinst diese hier?

Nun ja, da hat sich wenig getan bzw. macht keinen großen Unterschied zu Steemit.

Vielleicht sollten wir erstmal klären, was überhaupt unter trending erscheinen soll. Ich würde mir dort "normale" nicht überbewertete Beiträge wünschen, bei denen auch Resonanz, also Kommentare vorhanden sind - ähnlich wie Chiller das macht.

Ob Anzahl und Länge der Kommentare einen sinnvollen Wert ergeben, den man bei der Gewichtung verwenden kann bin ich überfragt. Müsste man testen.

Find es jedenfalls gut, dass du daran schraubst, kann im Grunde nur besser werden!

Vielleicht sollten wir erstmal klären, was überhaupt unter trending erscheinen soll. Ich würde mir dort "normale" nicht überbewertete Beiträge wünschen, bei denen auch Resonanz, also Kommentare vorhanden sind - ähnlich wie Chiller das macht.

Ich weis ja nicht wie man das macht aber trending wird von großen Votes , Votekäufen Votetrails meist verzehrt, man stellt sich ja da eher Post vor die von vielen als wow oder super empfunden werden, aber wie transportiert man eine Empfinden vielleicht müsste man was anklicken können was nur händig' machbar wäre ein Herz ❤️ ein Häkchen ✔️ i don’t now
VgA

was nur händig' machbar wäre

Ja genau! Wär ne gute Sache, nur die "organischen" Transaktionen herauszufiltern und nur diese als Grundlage herzunehmen. Wüsste aber auch nicht, wie man das unterscheiden bzw. programmtechnisch umsetzen könnte.

!dubby 25 %

Da hast du den Nagel auf den Kopf getroffen.
Wie ich eben schon Andreas schrieb, hatte ich zuerst versucht, nur die Bot-Votes herauszurechnen, weil wir diese eben nicht als Trend ansehen wollen. Das allein reicht aber nicht.

Richtig super wäre schon die Unterscheidung zwischen manueller Interaktion und technischer. Aber genau da liegt auch das wohl unlösbare Problem. Woran könnten wir erkennen, dass eine Interaktion von einem bzw. im Trend-Sinne von vielen Menschen kommt?

Das habe ich mir auch schon gedacht , auch wenn ich null Ahnung vom Programmieren habe, vermutete ich schon genau das ,das der Knackpunkt geben wird .
VgA

@moecki hast Du die Blockchain lahmgelegt? Ich bekam in 24H nur einmal Steemit geöffnet oder habt ihr die Eifel abgedreht um mich zu … 😧
VgA

Ich nicht, aber der SC vielleicht ;-)
Nein, es gibt ein Performance-Problem wieder einmal mit Hivemind. An der Lösung wird gearbeitet. Du kannst während dessen gern meine Seite verwenden.

Hey @moecki,
thank you for using our automatic payout bot 'DUBby' to share your post rewards with your commentators.

You have not yet issued any payout instructions.
Just write a comment to the users who should receive a share. It should contain the instruction in the form !dubby x %.

If you need help with this, feel free to ask or check this manual (german).

Greetings from the 'DU-Finanzbot' (by Witness @moecki).

Danke für die Info und den Link
Den SC01 habe ich grundsätzlich in Verdacht 😉
VgA

!dubby 25 %

Hallo Moecki wer ist Dubby?
Vor einiger Zeit ist mir der Name schon mal begegnet, circa 2 Monate ist es her , da wollte ich schon fragen wer ist er, was kann oder macht er .
Ich vermute mal das es jemand ohne Blutdruck ist, dem Du Leben eingehaucht hast oder🤷🏻‍♂️❓Ich hoffe ja das ich mich nicht schämen muss wegen meiner Unwissenheit bezüglich Dubby !

SC07 war heute Nacht zu Besuch und das ohne einen Kommentar zu hinterlassen ,👏 sehr gut , es würde mich wirklich freuen wenn sie eine andere Lösung gefunden hätten
VgA🙂
Omg eine Zeile weiter oben finde ich die Antwort

!dubby 10%

du meinst diese hier?

Ja, letztlich auch. Interessant in Bezug auf die Trendings ist es besonders, wenn man diese Seite aufruft, ohne eingeloggt zu sein.
Ich rufe direkt die Trendings auf. Die Domain zeigt aber auf dasselbe Ziel wie moecki.online, nur über Cloudflare :-)

Vielleicht sollten wir erstmal klären, was überhaupt unter trending erscheinen soll.

Tja, ich würde sagen, das ist die Gretchen-Frage.
Im Grunde wird mir das mit jedem neuen Versuch immer klarer. Eigentlich war das Ziel, nur die Bot-Votes herauszufiltern. Das brachte aber fast keinen Unterschied, da doch sehr viele an diesen Votes sozusagen dranhängen. Das würde nur was bringen, wenn man die Posts ganz herausfiltert... oder den Score solcher Posts extrem verringert.

Ich würde mir dort "normale" nicht überbewertete Beiträge wünschen, bei denen auch Resonanz, also Kommentare vorhanden sind - ähnlich wie Chiller das macht.

Mit jedem neuen Versuch wird im Grunde klarer, dass sich ein "Trending" heutzutage wohl nicht ausschließlich auf Votes beziehen sollte, wenn man echte Interaktion als Trend bezeichnen möchte. Was ich im Grunde befürworten würde. Das hatte ich allerdings vermeiden wollen, da es dann erst richtig kompliziert wird:
Welchen Einfluss haben Kommentare, Resteems, Votes, Textlänge etc. für die Ermittlung des Trending-Scores?

Und dann wäre der Ansatz vom Chiller wohl ziemlich nah dran.

Well, with this new adjustment of increasing the median level for post with fewer votes, I am hopeful , the impact will be a positive one, for those content creators that truly interact within the Steemit community!

!dubby 5 %

This is a massive great work you are definitely putting into this dear friend. So right now, post even with few votes have the chance to also influence the trending page and that is a good idea

post even with few votes have the chance to also influence the trending page

That wasn't actually the goal. For a post to be trending, it should have as much interaction as possible. However, we probably won't be able to rely on votes alone in future.

!dubby 1 %

It will be interesting to see the result. I am glad that work in this direction is underway. 🙂

image.png

This post has been upvoted/supported by Team 7 via @philhughes. Our team supports content that adds to the community.

image.png