Eine Datenanalyse von 1.3 Millionen Hackernews-Posts (und wie man populäre Posts schreibt)

Ich widme mich schon seit längerer Zeit wieder der Data Science und dem Machine Learning. Weil aber im Moment beruflich und mit den Vorträgen viel los ist, ist irgendwie noch kein Blogartikel dabei rumgekommen. Also gibt es jetzt einen.

Vor einiger Zeit hat Randal Olson analysiert, wie man populäre Reddit-Posts schreibt. Der Witz ist, dass er das datengetrieben getan hat. Er hat sich einen riesigen Datensatz Reddit-Posts geladen und versucht, direkt aus diesem Datensatz abzuleiten, was begünstigen kann, dass ein Artikel populär wird. Ich habe mir gedacht, es wäre doch mal interessant, dasselbe für Hacker News zu machen. Hacker News ist wie Reddit eine internetweit sehr populäre social-news-Seite, aber es ist mehr in der Technikszene verhaftet als Reddit und hat auch den Ruf, etwas seriöser zu sein (alles aber nur Hörensagen). Mir ist Hacker News zum ersten Mal aufgefallen, als mein Xerox-Artikel dort auf Seite 1 landete, was bei mir ein bisschen Serverlast verursacht hat. Hacker News ist nicht ganz unwichtig im techniklastigen Web. Wenn man es dort auf Seite 1 schafft, kann man ruckzuck die kritische Masse an Aufmerksamkeit zusammen haben, die man braucht, um irgendetwas viral um den Planeten zu jagen.

Wenn man etwas datengetrieben analysieren will, ist das wichtigste was man braucht, … Daten (no shit, Sherlock!). Da trifft es sich doch gut, dass Shital Shah alle Hacker News Posts seit 2006 heruntergeladen und in einem riesigen JSON-File zum Download gestellt hat. Danke, Shital! :-) In seinen JSON-File findet man sage und schreibe 1333789 Posts.

Der Rest dieses Artikels ist gegliedert wie folgt. Als erstes, sozusagen für die eiligen Leser, werden wir in aller Kürze analysieren, was und wann man posten muss um die Chance auf einen populären Post zu maximieren. Diese Analyse ziehen wir nur aus dem vergleichsweise jungen Teil des Datensatzes, nämlich den Posts ab 2013. Danach werden wir versuchen, das analysierte etwas zu erklären, indem wir das generelle Benutzerverhalten der Hacker News-Benutzer grob betrachten. Und zum Schluss gehen wir etwas weiter und manchen ein bisschen Trendanalyse auf dem Gesamtdatensatz. So kann man sehen, wie sich das Benutzerverhalten über die Zeit ändert, und auch, was wann populär ist und war.

Disclaimer: Wie Randal in seiner Redditanalyse mache ich hier nur Aussagen über Wahrscheinlichkeiten! Wenn ihr meine Guidelines befolgt ist das in keinster Weise eine 100%-Garantie, auf Hacker News populär zu werden. Sagt also nicht, ich hätte euch nicht gewarnt.

Popularitätsanalyse auf Posts seit 2013

Was ist Popularität?

In diesem Blogartikel sagen wir, ein HN Post ist populär, wenn er eine Punktzahl auf Hacker News abräumt, die in den top 3% seines Veröffentlichungsjahres liegen. Diese Art, Popularität zu definieren ist relativ unempfindlich gegen den starken Nutzeranstieg, den HN über die Zeit zu verzeichnen hatte (mehr Nutzer erzeugen generell mehr Upvotes und damit höhere Punktzahlen). Zum Beispiel braucht ein Post aus 2009 nur 55 Punkte, um in den Top 3% seines Jahres und damit populär zu sein. Bei einem Post aus 2013 sind es schon 97 Punkte.

Wir werden gleich verschiedene Posteigenschaften betrachten und den Prozentsatz messen, mit dem Posts, die die betrachtete Eigenschaft innehaben, populär werden. Popularitätsprozentsätze über 3% heißen dann, dass Posts mit der betrachteten Eigenschaft überproportional erfolgreich sind. Prozentsätze unter 3% heißen, dass Posts mit der betrachteten Eigenschaft eher unerfolgreich sind.

Popularität nach Wochentagen und Tageszeit

Wie wir in Randals Reddit-Analyse gesehen haben, können die Postingzeitpunkte ein wichtiger, popularitätsbeeinflussender sein. Schauen wir mal die Verteilung der populären Posts über die Tageszeiten hinweg an:

Sieht auf den ersten Blick nicht sooo interessant aus, finde ich. Alle Balken bewegen sich um die Standardpopularität von 3% herum. Es gibt keine Tageszeit, bei der z.B. generell doppeltsoviele populäre Posts auftauchen. Die Zeiten sind GMT-Zeitzone. Anscheinend gibt es eine leichte Häufung von populären Artikeln um 11 Uhr GMT, aber nicht sehr krass. Falten wir die Daten einmal anders auseinander und schauen auf die Popularität pro Wochentag.

Schon interessanter. Auf der X-Achse sind die Tage in Nummern ausgedrückt. 0 ist Montag, 1 ist Dienstag, und so weiter. Posts, die am Wochenende gepostet werden, haben eine signifikant bessere Chance populär zu werden als Posts, die in der Arbeitswoche gepostet werden. Posts, die am Sonntag herauskommen, haben eine 4%-Chance, populär zu werden. Das ist mal kurz 33% über der Standardpopularität, also durchaus ein Unterschied. Interessanterweise ist aber auch am Montag die Wahrscheinlichkeit eines Posts leicht größer, populär zu werden. Das könnte ein Zeichen dafür sein, dass das Wochenende selbst der Trigger ist, aber es aus Zeitzonengründen um einige Stunden verschoben wurde. Wir machen also mal eine Heatmap der Popularitätsprozentsätze über Wochentage und Stunden:

Nochmal: Die Zeiten sind GMT. Zwischen Samstagmittag und Montagmorgen haben die Posts in der Tat eine klar höhere Chance, populär zu werden, als im Rest der Woche. Das ist relativ akkurat das Wochenende im Rahmen der US-Zeitzonen. Wie Reddit auch, scheint HN von US-Usern dominiert zu werden. Allerdings gibt es im Unterschied zu Reddit keine so ausgeprägte tägliche Bevorzugung bestimmter Zeiten (bei Reddit hat man generell jeden Tag um 9 Uhr EST bessere Chancen als sonst an dem Tag).

Popularität nach Titel-Längen

Ein weiterer wichtiger Faktor der die Entscheidung beeinflusst, ob man sich einen Post genauer anguckt oder nicht, ist meiner Meinung nach die Titel-Länge des Posts, sprich, die Zahl der im Titel enthaltenen Wörter. Mal sehen:

Tatsache. Kurze Titel kommen klar besser an als lange. Genauer gesagt, sogar sehr kurze, das Maximum ist bei zwei Worten. Um 16 Worte ist eine weitere, weniger ausgeprägte Spitze, und dazwischen liegt das Tal des Grauens. :-)

Popularität nach Art des Posts

Bei Hacker News kann man die Posts grob in verschiedene Typen unterteilen. Es gibt „Ask HN“ und „Show HN“, und dazu noch gibt es gepostete Videos (Titel enthält „[video]“) und PDFs (Titel enthält „[pdf]“).

Von diesem Plot kann man mehrere Sachen sehen: Erstens werden HN-User wohl nicht so gerne Sachen gefragt. „Ask HN“ steht echt schlecht da. Auf der anderen Seite stehen PDFs und Videos sehr, sehr gut da. Einen „Show HN“ zu posten, ist zumindest nicht schädlich, und die nichtzugeordneten Artikel liegen beim Standardpopularitätsprozentsatz.

Fazit

Alles in allem und aus statistischer Sicht kann man seine Chancen auf einen populären Post maximieren, indem man

  • versucht, am Wochenende zu posten (aus US-Sicht)
  • die Titel kurz hält, und
  • Videos und PDFs postet.

Und jetzt versuchen wir mal, etwas mehr Einblicke in das generelle HN-Nutzerverhalten zu erhalten.

Aktuelles Hacker News-Nutzerverhalten

Es ist meistens ganz aufschlussreich zu sehen, wann gepostet wird, ganz unabhängig von der Popularität. Hier ist die Verteilung der Hacker News Posts seit 2013 auf die Tageszeiten:

Die meisten Posts werden um den frühen Nachmittag nach GMT-Zeit gemacht, was heißt, dass sie um den Start der Arbeitszeit in den USA gemacht werden. Ganz wie bei Reddit sieht es so aus, als ob die Leute erstmal eine Runde auf HN gehen, bevor sie wirklich mit der Arbeit beginnen. 8-) Ein weiterer interessanter Aspekt ist, wie sich die Posts über die Woche hinweg verteilen:

Wie man sieht, wird am Wochenende weit weniger gepostet als in der Woche. Das könnte auch erklären, warum in diesem Zeitraum erstellte Posts häufiger populär werden: Es gibt einfach weniger Konkurrenz!

Bis jetzt haben wir ja nur die Posts seit 2013 betrachtet. Jetzt gucken wir mal alle Daten an.

Generelles Nutzerverhalten

Wenn man jahresweise auf die Daten guckt fällt einem als erstes auf, dass es 2006 überhaupt nur 49 Posts gab. Das ist zu wenig für sinnvolle statistische Auswertungen, also habe ich 2006 einfach aus meiner Auswertung gestrichen und fange 2007 an. Hier ist ein Plot der Posts pro Tag seit 2007:

Sieh an, sieh an – da scheinen ein paar dicke, fette Löcher in den Daten zu sein. Wenn ich Zeit habe, weise ich Shital mal darauf hin. Zweitens ist Hacker News rapide gewachsen, und zwar von fast null Posts pro Tag im Jahr 2007 auf 1200 mi Jahr 2012. Danach sind die Postzahlen leicht zurückgegangen, aber nicht so, dass man sich irgendwelche Sorgen machen muss. Nur der Vollständigkeit halber: Ich habe einen 7-Tage-RollingAverage auf die Daten angewendet, um die Wochenend-Fluktuationen loszuwerden.

Als nächstes schauen wir, wie sich die Popularitätsbewertungen über die Zeit verändert haben. Hier kommt eine Trellis-Variante vom obenstehenden „Popularität-nach-Tageszeiten“-Plot:

Wir können sehen, dass in die Daten in der HN-Frühzeit verrauschter waren. Ich denke mal, das ist, weil es da einfach weniger Daten waren, HN hatte ja wesentlich weniger User damals. Bis 2011 bildet sich dann eine klar abgegrenzte Delle in der Popularität um 6 Uhr früh (GMT), was um Mitternacht herum an der US-Ostküste und um den späten Abend herum an der Westküste ist. Für mich sieht das so aus als wäre HN damals weitestgehend in den USA populär gewesen, und auch Hacker brauchen ihren Schönheitsschlaf. Nach 2011 wird die Delle weniger auffällig – ist das ein Zeichen, dass der Rest der Welt jetzt mitmacht? Die erhöhte Popularität von Wochenendartikeln hat sich übrigens über die Zeit entwickelt:

Eine weitere interessante Beobachtung ist, wie sich die Popularität der Titellängen über die Zeit entwickelt hat.

In der HN-Frühzeit waren längere Titel populärer als sie es jetzt sind. Das Popularitätsmaximum bewegt sich seit 2012 klar zum kürzeren Ende. In den Plots sind allerdings einige Anomalien. So kann es Titellängen geben, die sehr selten sind, und wenn es dann einer der betroffenen Posts tatsächlich schafft, populär zu werden, hat man sofort einen riesigen Popularitätsprozentsatz. Ein witziges Beispiel findet sich im 2008er-Teilplot: Es gab 2008 in der Tat 7 (in Worten: sieben) Posts mit einer Titellänge von null, und siehe da: Der hier hat es geschafft, populär zu werden, was dann den irre hohen Popularitätsprozentsatz produziert.

Als nächstes schauen wir, wie sich die Popularität der Post-Typen über die Zeit verändert.

Diese Art von Plot fand ich bequem, weil es nur wenige Typen von Artikeln gibt. Jede Spalte korrespondiert zu einem Typ und hat 7 Balken für die einzelnen Jahre. Man kann klar sehen, dass PDFs zunächst unpopulär waren und jetzt auf dem aufsteigenden Ast sind. Videos waren populär, hatten dann ein Tief, und sie werden gerade wieder populär. „Other“-Posts, das sind alle restlichen, bewegen sich am Durchschnitt, was nicht überraschend ist. Ask HN-Posts werden immer unpopulärer, und Show HN-Posts waren mal populär und jetzt sind sie unauffällig.

Ein paar weitere Trivialitäten

Wenn man schon dabei ist, kann man die Daten aus ein paar weiteren Blickwinkeln ansehen. Ich habe also alle Posts nach dem Zielserver gruppiert. Hier sind die top5-Ziele (unabhängig von der Popularität):

  1. github.com ist anscheinend HNs erste Wahl als Code-Eimer, 9623 Posts zeigen darauf
  2. youtube.com ist HNs Ort für Videos (7242 Posts, ich habe keine Statistiken über die darin enthaltenen Katzenvideos)
  3. techcrunch.com ist ein auf HN beliebter Platz für TechNews (6393 Posts)
  4. medium.com ist anscheinend insgesamt eine populäre blogplattform für HN (6367 Posts)
  5. nytimes.com ist HNs erste Wahl für Nachrichten (4133 Posts)

Als Alternative zu techcrunch wird Ars Technica auch noch gelten gelassen (3401 Posts), und wer nytimes nicht mag, verlinkt zu bbc.co.uk (3313 Posts).

Ich habe nun die Zielserver, die weniger als 50 mal vorkamen, aus dem Datensatz rausgestrichen und über den Rest die Popularitätsprozente gemessen. Hier sind die Top5, wenn es nach Popularitätsprozentsatz geht:

  1. teslamotors.com (35%)
  2. wikileaks.org (32%)
  3. stripe.com (29%)
  4. codinghorror.com (23%)
  5. sivers.org (23%)

Das sind die Autoren mit den meisten Posts:

  1. shawndumas (2174 Posts 8-0 – krass!)
  2. Libertatea (1456 Posts)
  3. ColinWright (1384 Posts)
  4. danso (1326 Posts)
  5. iProject (1215 Posts)

Und last but not least, das sind Posts, die zu mir linken:

  1. Post by f055 (1 Punkt)
  2. Post by raphman (33 Punkte)
  3. Post by sxp (558 Punkte! Gratulation!)

Alle diese Posts gingen zur Xerox Saga.

BTW: Ich weiß, dass die Achsenbeschriftungen nicht überall gleich aussehen, aber habe mein Bestes getan, um die Diagramme im Text zu erklären. Aus Bequemlichkeit habe ich mehrere plotting Frameworks eingesetzt. Vielleicht säubere ich das irgendwann noch.

Comments

Aufgrund von Caching kann es bis zu zwei Minuten dauern, bis ein Kommentar erscheint!

Wieder mal eine sehr coole Datenanalyse, die zeigt, dass vieles, was nach „Glück“ oder „Zufall“ aussieht, doch ganz klaren Mustern unterliegt. Wohl dem, der Daten zu deuten weiß ;)

1 |
Lena
| 2015/10/31 20:55 | reply

Es wäre noch interessant zu sehen, welche Bereiche vom Thema her die erfolgreichsten sind. Allerdings wird das wohl etwas aufwändiger sein.

2 | | 2015/11/02 23:26 | reply

Ja, da wird dann Sprachverarbeitung fällig. :) mal sehen…

3 |
David Kriesel
| 2015/11/03 06:57 | reply

Interessant wäre auch die Betrachtung der Anteile der Poster am Gesamtaufkommen. Würde mich nicht wundern, wenn nur 1000 Personen 50% der Beiträge liefern.

4 |
kladtiator
| 2015/11/07 09:23 | reply



G O O