glossary

Was die Reddit-Upvote-Ratio misst und was Vote Fuzzing verbirgt

Taras Shynkarenko
Taras Shynkarenko
•Updated: •7 Min. gelesen
Was die Reddit-Upvote-Ratio misst und was Vote Fuzzing verbirgtWas die Reddit-Upvote-Ratio misst und was Vote Fuzzing verbirgt

TL;DR

7 Min. gelesen

Die Reddit-Upvote-Ratio ist der Anteil aller Votes auf einem Post, die Upvotes waren, und die API liefert sie als Dezimalzahl zwischen 0 und 1 im Feld upvote_ratio. Reddits archivierter Quellcode berechnet sie als Upvotes geteilt durch alle Votes. Zwei Posts mit demselben Score können bei 0.90 und 0.55 liegen, also lesen Sie die Ratio immer zusammen mit dem Score. Reddit hat nie gesagt, ob die heutige Ratio auf verfälschten oder echten Vote-Zahlen beruht, und das Hilfecenter definiert "upvote ratio" für Kommentare noch ein zweites Mal, und zwar anders.

Was ist die Reddit-Upvote-Ratio?

Der Prozentwert, den Reddit neben einem Post anzeigt, ist die Reddit-Upvote-Ratio: der Anteil aller Votes auf diesem Post, die Upvotes waren, von der API als Dezimalzahl zwischen 0 und 1 im Feld upvote_ratio geliefert. Ein Post mit 45 Upvotes und 5 Downvotes hat eine Ratio von 0.9, also 90 Prozent.

Reddits aktuelle API-Referenz unter reddit.com/dev/api dokumentiert Endpoints und Parameter, aber keine Antwortfelder. Die klarste Definition steht deshalb in Reddits eigenem archivierten Quellcode. In r2/models/builder.py im Repository reddit-archive/reddit besteht die Berechnung aus zwei Zeilen:

total_votes = max(item.num_votes, 1)
w.upvote_ratio = float(item._ups) / total_votes

Upvotes geteilt durch alle Votes, mit einer Untergrenze von einem Vote, damit ein brandneuer Post nicht durch null teilt. PRAW, der meistgenutzte Python-Wrapper für die API, beschreibt das Feld genauso: "The percentage of upvotes from all votes on the submission."

Wie berechnet man die Upvote-Ratio?

Teilen Sie die Upvotes durch die Summe aus Upvotes und Downvotes. Der Score, also die Zahl neben den Pfeilen, ist eine andere Größe: Upvotes minus Downvotes. Die beiden Zahlen beantworten unterschiedliche Fragen, und nur die Ratio sagt Ihnen, ob die Leute zugestimmt haben.

PostUpvotesDownvotesScore (score)Upvote-Ratio (upvote_ratio)
A455400.90
B220180400.55
C4041.00

Die Posts A und B zeigen denselben Score von 40. Post A ist ein ruhiger Post, den die meisten Leser mochten. Post B hat achtmal so viele Votes bekommen und den Raum fast genau gespalten, und genau dieses Muster sucht Reddits Controversial-Sortierung. Post C zeigt, woran es sonst scheitert, wenn man nur die Ratio liest: Eine perfekte 1.00 bei vier Votes sagt fast nichts.

Wo taucht upvote_ratio in Reddits API auf?

Das Feld steht auf Post-Objekten im JSON, das Reddit zurückgibt, neben score, ups und downs. Zwei dieser Nachbarn bedeuten nicht mehr, was ihr Name sagt. Das archivierte JSON-Template in r2/lib/jsontemplates.py setzt fest "downs": 0 und "ups": item.score, also entspricht ups bei jedem Post dem Netto-Score, und downs ist immer null. Ein Skript, das ups / (ups + downs) rechnet, bekommt bei jedem Post 1.0.

Dasselbe archivierte Template fügt upvote_ratio nur hinzu, wenn c.permalink_page wahr ist, also auf der Kommentarseite des Posts selbst und nicht im Subreddit-Listing. Das Repository wurde zuletzt am 17. Oktober 2017 aktualisiert und ist als archiviert markiert, die Live-Seite kann also abweichen. Reddits archivierte Feldreferenz im Wiki des Repositorys führt ups, downs und score auf und erwähnt upvote_ratio gar nicht.

Das archivierte Kommentar-Template hat kein upvote_ratio. Kommentare tragen nur einen Score.

Kann man aus Ratio und Score die echte Anzahl der Votes ableiten?

Ja, mit etwas Algebra, solange die Ratio nicht genau 0.5 ist. Upvotes minus Downvotes ergibt den Score, und Upvotes geteilt durch alle Votes ergibt die Ratio. Löst man beide Gleichungen, erhält man:

upvotes   = ratio x score / (2 x ratio - 1)
downvotes = upvotes - score

Für Post A ergibt 0.9 x 40 / 0.8 = 45 Upvotes und 5 Downvotes, das passt. Die Formel versagt an zwei Stellen. Bei einer Ratio von 0.5 ist der Nenner null, und ein Score von 0 verrät nichts darüber, wie viele Votes sich gegenseitig aufgehoben haben. In der Nähe von 0.5 wird sie extrem empfindlich. Post B mit 0.55 und einem Score von 40 ergibt 220 Upvotes. Schiebt man die Ratio auf 0.56, liefert dieselbe Formel etwa 187. Ein Rundungsunterschied von einem Punkt verschiebt die Schätzung um 33 Votes, behandeln Sie jede rekonstruierte Zahl bei einem gespaltenen Post also als grobe Spanne.

Eine Person scrollt auf einem Sofa am Handy, neben dem Abschnitt über Vote Fuzzing und was Reddit dazu offengelegt hat.

Was ist Vote Fuzzing, und betrifft es die Upvote-Ratio?

Vote Fuzzing heißt, dass Reddit den Up- und Down-Zählern falsche Votes hinzufügt, damit Bots nicht erkennen können, ob ihre Votes gezählt wurden. Reddits altes FAQ, inzwischen als "no longer updated" markiert, erklärt das an einem Beispiel: Fünf Upvotes und drei Downvotes "may say 23 upvotes and 21 downvotes, or 12 upvotes, and 10 downvotes. The points score is correct, but the vote totals are 'fuzzed'."

Früher wurde die Ratio aus diesen verfälschten Summen berechnet. Am 18. Juni 2014 kündigte der Reddit-Admin Deimorz in r/announcements an, dass die einzelnen Up- und Down-Zahlen aus der öffentlichen Ansicht verschwinden, und nannte den Grund: Jeder Post weit oben auf der Startseite "seems to drift towards showing '55% like it' due to the vote-fuzzing." Über den obersten Post schrieb er nach der Änderung, er "has gone from showing '57% like it' to '96% like it'." Am 6. Dezember 2016 kündigte der Admin KeyserSosa eine Neuberechnung historischer Scores an, bei der veraltete Anti-Cheating-Regeln wegfielen, mit dem TL;DR "Scores are increasing by a lot."

Hier liegt die Lücke. Keine der beiden Ankündigungen sagt, woraus die Ratio heute berechnet wird, und Reddits aktuelles Hilfecenter erwähnt Fuzzing nirgends. Sein Artikel über ausgeblendete Votes sagt nur, dass Votes in "the first few hours after a post is created" nicht angezeigt werden und dass manche Communities sie für kurze Zeit ausblenden. Die Ratio kam 2014 "closer to reality". Dass sie exakt ist, hat Reddit nie gesagt.

Woraus die Ratio berechnet wurde
Bis 2014: verfälschte Summen
18. Juni 2014: einzelne Up- und Downvote-Zahlen ausgeblendet
6. Dezember 2016: historische Scores neu berechnet
Heute: Reddit hat sich nicht geäußert
Reddits aktuelles Help Center erwähnt Fuzzing nirgends.

Wie hängt die Upvote-Ratio mit Reddits Controversial-Sortierung zusammen?

Der archivierte Code nutzt die Ratio direkt, um zu entscheiden, was als kontrovers gilt. _is_controversial in builder.py markiert ein Element, wenn seine Vote-Zahl cflag_min_votes übersteigt und seine Ratio zwischen cflag_lower_bound und cflag_upper_bound liegt. Die mitgelieferte example.ini setzt diese Werte auf 7, 0.4 und 0.6.

RedReplier
RedReplier

Loslegen

Reddit, X, Bluesky & HN

Echtzeit-Kaufabsicht-Alerts

Unbegrenzte KI-Antworten

Nach Kaufabsicht sortiert

Die Controversial-Sortierung selbst, in _sorts.pyx, belohnt Menge und Ausgewogenheit zugleich: magnitude ** balance, wobei magnitude die Gesamtzahl der Votes ist und balance die kleinere Seite geteilt durch die größere. Post B von oben, 220 gegen 180, landet weit vor einem Post mit 3 zu 2 und derselben Ratio. Alle Sortierungen und welche davon Reddit dokumentiert, finden Sie in Reddit hot vs new vs top.

Definiert Reddit "upvote ratio" überall gleich?

Nein. Reddit verwendet den Begriff für mindestens zwei verschiedene Formeln.

WoGilt fürDefinition
API-Feld upvote_ratio (archivierter Quellcode, PRAW)PostsUpvotes geteilt durch alle Votes, 0 bis 1
Hilfecenter, Post & Comment InsightsKommentare"The ratio of upvotes to downvotes that the comment has received"
Hilfecenter, Reddit Pro PerformancePostsUpvotes: "Ratio of upvotes to downvotes"

Upvotes zu Downvotes und Upvotes zu allen Votes sind verschiedene Zahlen. Ein Post mit 90 Up- und 10 Downvotes steht nach der ersten Rechnung bei 9 zu 1 und nach der zweiten bei 0.9. Wenn Sie Zahlen aus Reddits eigenen Tools vergleichen, prüfen Sie, welche Sie gerade vor sich haben. Dieselbe Falle taucht bei Rechnungen zur Reddit-Engagement-Rate auf, wo der Nenner das Ergebnis verändert.

Zwei Personen in einem hitzigen Gespräch am Tisch, neben dem Abschnitt darüber, dass eine Ratio nahe 0.5 auf Uneinigkeit hindeutet.

Was ist eine gute Upvote-Ratio auf Reddit?

Reddit veröffentlicht keinen Richtwert, und eine einzelne Zielzahl würde in die Irre führen. Die Ratio hängt vom Subreddit, vom Thema und davon ab, wie viele Leute abgestimmt haben. Lesen Sie sie in drei Teilen. Eine hohe Ratio bei hohem Score heißt breite Zustimmung. Eine Ratio nahe 0.5 bei hohem Score heißt Streit, und die Kommentare verraten Ihnen, worum. Eine Ratio nahe 1.0 bei einer Handvoll Votes heißt, dass sich noch niemand entschieden hat.

Für Marken ist eine niedrige Ratio auf einem Post, der sie erwähnt, ein Signal, den Thread zu lesen, bevor sie antworten. Ein Grund, Votes zu mobilisieren, ist sie nicht. Wer Leute zum Abstimmen auffordert, bricht Reddits Regeln, wie in Reddit-Vote-Manipulation beschrieben, und Downvotes auf eigene Posts und Kommentare kosten Sie außerdem Reddit-Karma.

Die Ratio zusammen mit dem Score lesen
Hohe Ratio, hoher ScoreBreite Zustimmung
Ratio um 0.5, hoher ScoreEin Streit, also lesen Sie die Kommentare
Ratio um 1.0, wenige VotesNoch hat niemand entschieden
Reddit veröffentlicht keinen Richtwert, deshalb sagt die Ratio nur zusammen mit der Vote-Menge etwas aus.

Häufig gestellte Fragen

Was bedeutet eine Upvote-Ratio von 50 Prozent auf Reddit?

Sie bedeutet, dass der Post genauso viele Downvotes wie Upvotes bekommen hat, sein Score also bei oder nahe null liegt. Eine Ratio von 50 Prozent sieht bei zwei Votes genauso aus wie bei zweitausend, deshalb brauchen Sie die Vote-Menge oder die Zahl der Kommentare, um sie zu deuten.

Warum liefert die Reddit-API downs als 0?

Reddit hat im Juni 2014 aufgehört, getrennte Up- und Down-Zahlen herauszugeben. Das archivierte JSON-Template setzt fest "downs": 0 und ups gleich dem Netto-Score, also ist keines der beiden Felder eine echte Zählung. Nutzen Sie stattdessen score und upvote_ratio.

Kann man die Upvote-Ratio eines Reddit-Kommentars sehen?

Nicht im API-JSON. Reddits archiviertes Kommentar-Template liefert einen Score und keine Ratio. Der Autor des Kommentars sieht in den Comment Insights eine "Upvote ratio", die Reddits Hilfecenter als Upvotes zu Downvotes definiert, eine andere Formel als beim Post-Feld.

Ist die Reddit-Upvote-Ratio genau?

Laut Reddits Ankündigung von 2014 liegt sie näher an der Wahrheit als die verfälschten Zählungen, die sie abgelöst hat. Reddit hat nicht gesagt, ob die heutige Ratio verfälschte oder echte Vote-Zahlen nutzt, behandeln Sie sie also als gute Schätzung und nicht als geprüfte Zahl.

Warum ist die Upvote-Ratio meines Posts verborgen?

Reddit verbirgt Vote-Zahlen in den ersten Stunden nach dem Veröffentlichen eines Posts, und manche Communities blenden Votes auf Posts und Kommentaren zusätzlich für kurze Zeit aus. Laut Hilfecenter verhindert das Vote-Manipulation und sorgt dafür, dass sich Leute nicht davon beeinflussen lassen, wie andere abgestimmt haben.

Schadet eine niedrige Upvote-Ratio dem Ranking eines Posts?

Die Hot-Sortierung in Reddits archiviertem Code nutzt den Netto-Score und das Alter des Posts, nicht die Ratio. Bei gleicher Zahl an Votes bedeutet eine niedrigere Ratio einen niedrigeren Score, und der senkt den Hot-Rang. Den Ranking-Code, den Reddit heute einsetzt, hat Reddit nicht veröffentlicht.

Wie finde ich die Upvote-Ratio eines Reddit-Posts?

Reddit zeigt sie als Prozentwert neben dem Post an. In der API ist es das Feld upvote_ratio, eine Dezimalzahl zwischen 0 und 1. Reddits archiviertes Template fügt es nur auf der Kommentarseite des Posts hinzu, nicht in Subreddit-Listen.

Wie berechnet man Upvotes und Downvotes aus Ratio und Score?

Lösen Sie das Gleichungspaar: Upvotes = Ratio x Score / (2 x Ratio - 1) und Downvotes = Upvotes - Score. Bei einer Ratio von 0.9 und einem Score von 40 ergibt das 45 Upvotes und 5 Downvotes. Bei genau 0.5 bricht die Formel zusammen, und in der Nähe verschiebt schon ein Rundungsunterschied von einem Punkt die Schätzung um Dutzende Votes.

Was ist der Unterschied zwischen Reddit-Score und Upvote-Ratio?

Der Score ist Upvotes minus Downvotes. Die Upvote-Ratio ist Upvotes geteilt durch alle Votes. Zwei Posts können beide einen Score von 40 haben, während der eine bei 0.90 und der andere bei 0.55 liegt.

RedReplier
RedReplier

Loslegen

Reddit, X, Bluesky & HN

Echtzeit-Kaufabsicht-Alerts

Unbegrenzte KI-Antworten

Nach Kaufabsicht sortiert

Bei welcher Upvote-Ratio gilt ein Reddit-Post als kontrovers?

In Reddits archiviertem Code wird ein Eintrag als kontrovers markiert, wenn er mindestens 7 Votes hat und die Ratio zwischen 0.4 und 0.6 liegt. Das sind die Werte in der mitgelieferten example.ini. Die Einstellungen, die Reddit heute nutzt, hat es nicht veröffentlicht.

Sehen Sie uns öfter bei Google

Ein Klick macht RedReplier zu einer bevorzugten Quelle. Unsere Artikel stehen dann weiter oben in Ihren Top-Meldungen, im KI-Modus und in den KI-Übersichten.

Bevor Sie gehen...

RedReplier

RedReplier

Erreichen Sie jeden Käufer, der nach Ihrem Angebot sucht

RedReplier überwacht Reddit, X, Bluesky und Hacker News in Echtzeit, bewertet jeden Thread nach Kaufabsicht und entwirft Ihre Antwort, damit Sie als Erster da sind.

Reddit, X, Bluesky & HN

Echtzeit-Kaufabsicht-Alerts

Unbegrenzte KI-Antworten

Nach Kaufabsicht sortiert

Verwandte Artikel