glossary

Gravity 1.8 et deux heures d'avance : comment fonctionne le classement Hacker News ?

Taras Shynkarenko
Taras Shynkarenko
•Updated: •9 lecture min.
Gravity 1.8 et deux heures d'avance : comment fonctionne le classement Hacker News ?Gravity 1.8 et deux heures d'avance : comment fonctionne le classement Hacker News ?

TL;DR

9 lecture min.

Hacker News note une story de la page d'accueil selon ses points moins un, divisés par son âge en heures plus deux, élevé à la puissance 1.8, puis multiplie ce score par des facteurs de pénalité. La formule vient de news.arc, dans le code source Arc rendu public, et Y Combinator n'a jamais publié la version qui tourne sur le site en ligne. La couche de pénalités posée par-dessus n'est décrite que dans des commentaires de modérateurs, jamais dans une documentation.

Comment fonctionne le classement Hacker News ?

La réponse courte à la question de savoir comment fonctionne le classement Hacker News tient en une formule de décroissance : Hacker News divise les points d'une story par son âge élevé à une puissance fixe, si bien qu'une story glisse vers le bas de la page d'accueil à moins que de nouveaux upvotes n'arrivent plus vite que l'horloge ne tourne. Chaque chiffre de cet article provient de news.arc, le fichier source de la page d'accueil que Y Combinator a livré avec la version publique du langage Arc. Hacker News n'a jamais publié le code de classement qui tourne aujourd'hui sur le site en ligne, alors lisez ceci comme le dernier instantané public du mécanisme, pas comme une description de la production.

Quelle est la formule publiée du classement Hacker News ?

La version la plus répandue de la formule note une story selon ses points moins un, divisés par son âge en heures plus deux, élevé à la puissance 1,8.

score = (points - 1) / (age in hours + 2) ^ 1,8

Cette ligne simplifie frontpage-rank dans news.arc. Le même fichier fixe gravity* à 1,8, c'est l'exposant, et timebase* à 120 minutes, soit les deux heures ajoutées à l'âge. Le code source élève aussi le terme de score à la puissance 0,8 dès qu'une story dépasse un point, une étape que la version populaire en une ligne omet et qui aplatit la récompense des scores très élevés. Servez-vous de la simplification pour l'intuition et ouvrez news.arc quand la courbe exacte compte.

Un chronomètre sur un bureau illustre la vitesse à laquelle le score d'une story décroît avec le temps.

À quelle vitesse une story Hacker News perd-elle sa place ?

L'exposant 1,8 se cumule, donc le rang chute plus vite que la plupart des auteurs ne le prévoient. Prenez une story à 100 points, trois heures après sa soumission : (100 - 1) / (3 + 2) ^ 1,8 = 99 / 18,12 = 5,46. Une story plus récente avec 40 points au bout d'une heure obtient 39 / 7,22 = 5,40, ce qui place une story avec 60 points de moins à une erreur d'arrondi d'elle.

Âge(age + 2) ^ 1,8Score à 100 pointsPoints nécessaires pour égaler une story de 3 heures à 100 points
1 heure7,2213,7041
3 heures18,125,46100
6 heures42,232,34232
12 heures115,580,86633
24 heures352,400,281 927

La colonne de droite décide de la stratégie de lancement. Égaler une story de trois heures à 100 points demande 633 points à douze heures et 1 927 points à vingt-quatre. Soumettez quand le public que vous visez est éveillé, car aucun vote tardif ne rattrape l'avance du départ, la même arithmétique qui fait du meilleur moment pour publier sur Reddit une question de calendrier et non de contenu.

Pourquoi la formule retire-t-elle un point et ajoute-t-elle deux heures ?

Les deux constantes empêchent la courbe de casser à ses extrémités. Retirer un point écarte l'upvote de l'auteur lui-même, donc une story pour laquelle personne d'autre n'a voté obtient zéro et n'atteint jamais la page d'accueil sur le seul enthousiasme de son auteur. Ajouter deux heures à l'âge évite qu'une story toute neuve soit divisée par une valeur proche de zéro : à zéro minute, le dénominateur vaut 2 ^ 1,8 = 3,48 au lieu d'un multiplicateur arbitrairement grand, si bien que deux votes précoces ne peuvent pas dépasser une story installée.

Quelles pénalités Hacker News applique-t-il à une story ?

Les pénalités multiplient le score de décroissance vers le bas, et le code publié en contient quatre. news.arc fixe nourl-factor* à 0,4 pour un post texte sans lien, lightweight-factor* à 0,3 pour les posts que le fichier classe comme lightweight, dont les posts d'image et ceux d'une liste de domaines stockée dans lightweights*, et un 0,5 forfaitaire pour les types d'item autres que les stories et les sondages. Une quatrième, contro-factor, s'active dès qu'une story dépasse 20 commentaires et que son nombre de commentaires excède ses points, et multiplie le score par le carré du rapport points sur commentaires.

Au-delà de ce fichier, les modérateurs ont décrit d'autres pénalités dans des fils de commentaires Hacker News : un détecteur de flamewars qui rétrograde les fils où la dispute dépasse les votes, une pondération à la baisse par domaine et une intervention manuelle des modérateurs sur les stories jugées hors sujet. Cette couche n'est jamais apparue dans une documentation ni dans du code publié, et Y Combinator ne publie aucune liste des pénalités ni de leur ampleur. Quiconque cite un coefficient de pénalité précis pour le site en ligne cite un commentaire de modérateur ou une déduction tirée du rang observé, pas une spécification publiée.

Le code publié donne aussi un levier aux lecteurs. Un utilisateur au-dessus d'un seuil de karma peut signaler (flag) une story, et dès que les flags dépassent un seuil de suppression sur une story de moins de 10 points sans upvote d'un administrateur, le code la marque dead et la retire de la page d'accueil. Le vote coordonné est traité à part via un champ sockvotes que realscore soustrait avant le classement, la réponse du fichier source à l'astroturfing.

Facteurs de pénalité dans news.arc
Sans URL0.4x pour un post texte sans lien
Lightweight0.3x pour les posts image et les domaines listés
Autres types d'item0.5x pour tout ce qui n'est ni story ni sondage
Contro-factorÉlève au carré les points sur les commentaires au-delà de 20 commentaires
news.arc multiplie le score de décroissance d'une story par le facteur de pénalité applicable avant qu'elle n'atteigne la page d'accueil.

La formule publiée décrit-elle encore le site en ligne ?

Non. La publication d'Arc est la dernière version publique du code de classement, et Hacker News a modifié la page d'accueil depuis, d'une manière que les modérateurs n'ont décrite que dans des commentaires, notamment un second-chance pool qui réintroduit des soumissions plus anciennes et des passes de reclassement que les modérateurs déclenchent à la main. Rien n'oblige ces descriptions à être complètes ou à jour. Traitez la formule comme un modèle de la forme de la décroissance, puis vérifiez-la sur le site : suivez la position d'une story face à ses points et à son âge, et là où les deux divergent, une pénalité ou une action manuelle explique l'écart.

En quoi le classement Hacker News diffère-t-il de celui de Reddit ?

Hacker News fait tourner une seule page d'accueil mondiale à partir d'une seule formule, tandis que Reddit classe au sein de milliers de subreddits distincts, chacun avec ses options de tri et ses règles de modération. Une story Hacker News rivalise avec toutes les autres stories soumises ce jour-là, donc la fenêtre de deux heures porte presque tout le poids, et une story qui la manque n'a pas de seconde chance auprès d'un public de niche. Reddit répartit la même soumission entre plusieurs communautés, et son système de points alimente un total par utilisateur qui conditionne le droit de publier, présenté dans qu'est-ce que le karma Reddit.

La différence pratique tient au chemin de rattrapage. Sur Reddit, vous pouvez publier dans une communauté plus petite et mieux ciblée et vous y classer. Sur Hacker News, l'item compte comme doublon en cas de nouvelle soumission, donc la première soumission porte tout le résultat. Les chiffres d'items publiés et le comportement de l'API de la plateforme se trouvent dans statistiques Hacker News.

Une personne lisant sur un ordinateur portable dans un café illustre le suivi d'une discussion après la sortie d'une story de la page d'accueil.

RedReplier
RedReplier

Commencer

Reddit, X, Bluesky et HN

Alertes d'intention en temps réel

Réponses IA illimitées

Classé par intention d'achat

Comment suivre une story après sa sortie de la page d'accueil ?

Surveillez les commentaires, car la discussion survit au classement. Une story quitte la page d'accueil en quelques heures pendant que le fil en dessous continue d'attirer des réponses et des questions de prix qui n'apparaissent jamais dans un tableau de bord mesurant vos propres posts. RedReplier couvre cela via la surveillance de Hacker News, avec Reddit, X, Bluesky et Facebook au même endroit, classe ce qu'il trouve selon l'intention d'achat et explique avec l'IA pourquoi chaque mention a été signalée.

Réglez les mots-clés sur le nom de votre produit, vos concurrents et le problème que les gens décrivent avant de savoir que votre catégorie existe. Le même ensemble de mots-clés s'applique à toutes les plateformes que RedReplier surveille, documenté dans surveillance des réseaux sociaux.

Questions fréquentes

Qu'est-ce que la constante gravity dans l'algorithme de Hacker News ?

Gravity vaut 1,8 dans news.arc, stockée sous gravity*, et c'est l'exposant appliqué à l'âge d'une story au dénominateur. Élever l'âge à 1,8 plutôt qu'à 1,0 fait chuter le rang plus vite que de façon linéaire, si bien qu'une story de 24 heures est divisée par 352 au lieu de 26. Y Combinator n'a publié aucune valeur pour le site en ligne, donc 1,8 est le dernier chiffre publié et non un chiffre actuel confirmé.

Le nombre de commentaires influence-t-il le classement Hacker News ?

Dans le code publié, oui, et à la baisse. La fonction contro-factor s'applique dès qu'une story compte plus de 20 commentaires et que son nombre de commentaires dépasse ses points, et multiplie le score par le carré du rapport points sur commentaires. Les modérateurs ont décrit séparément un détecteur de flamewars dans des commentaires Hacker News, qui pousse dans le même sens sur les fils houleux.

Peut-on soumettre à nouveau une story qui n'a pas pris ?

Hacker News traite une nouvelle soumission de la même URL comme un doublon et redirige les votes vers l'item d'origine au lieu d'en créer un nouveau. Le terme d'âge de la formule continue donc de courir depuis la première soumission. Les modérateurs ont décrit un second-chance pool qui offre à certaines soumissions plus anciennes une nouvelle apparition en page d'accueil, mais aucun auteur ne contrôle l'entrée dans ce pool.

Pourquoi une story avec moins de points se classe-t-elle parfois plus haut ?

L'âge en est la raison dans la plupart des cas : au bout d'une heure, une story a besoin de 41 points pour égaler ce qu'une story de trois heures obtient avec 100. Les facteurs de pénalité sont l'autre raison, et ils sont invisibles de l'extérieur, puisque la page d'accueil affiche les points et l'âge mais jamais le multiplicateur qui leur est appliqué. Une story classée sous sa position arithmétique porte soit une pénalité du code source, soit une action de modération.

Voter pour sa propre soumission aide-t-il ?

Non, la formule retire un point avant la division, ce qui annule le vote de l'auteur. Le code source suit aussi un champ sockvotes que realscore soustrait du score brut, donc le vote coordonné réduit le nombre que le classement utilise réellement. Les flags d'utilisateurs au-dessus d'un seuil de karma peuvent tuer d'emblée une story à faible score.

Où lire le code source du classement Hacker News ?

Le fichier news.arc distribué avec la version publique d'Arc contient frontpage-rank, les constantes gravity* et timebase* et les facteurs de pénalité cités dans cet article, et le dépôt communautaire Anarki en conserve une copie. Ce fichier est le seul code de classement que Y Combinator a publié. La version qui tourne aujourd'hui sur Hacker News n'est pas publique, et l'entreprise ne s'est pas engagée à la publier.

Que se passe-t-il quand une story est flaguée sur Hacker News ?

Le code source publié permet à un utilisateur au-dessus d'un seuil de karma de flaguer une story. Une fois que les flags sur une story de moins de 10 points sans upvote d'admin dépassent un seuil d'élimination, le code la marque comme morte et la retire de la page d'accueil. Une story morte reste hors du classement, quel que soit le score qu'elle aurait eu autrement.

Qu'est-ce que le détecteur de flamewar de Hacker News ?

Des modérateurs ont décrit, dans des fils de commentaires et non dans une documentation, un détecteur de flamewar qui rétrograde les fils où la dispute dépasse les votes. Il se situe en dehors des quatre pénalités nommées dans news.arc et n'est jamais apparu dans le code publié. Il agit dans le même sens que le contro-factor, qui élève déjà au carré les points sur les commentaires dès qu'une story dépasse 20 commentaires avec plus de commentaires que de points.

Un post Hacker News sans lien est-il pénalisé ?

Un post texte sans lien porte un nourl-factor de 0.4 dans news.arc, ce qui réduit son score de décroissance à moins de la moitié de celui d'un post avec lien identique. Les posts image et les soumissions provenant de domaines de la liste lightweights* portent un lightweight-factor séparé de 0.3, et les types d'item autres que story et sondage portent une pénalité fixe de 0.5. Les trois multiplient le score après la décroissance liée à l'âge, en plus de ce que la formule a déjà produit.

Qu'est-ce que le second-chance pool de Hacker News ?

Des modérateurs ont décrit un second-chance pool qui réintroduit d'anciennes soumissions sur la page d'accueil, uniquement dans des fils de commentaires, jamais dans une documentation ni dans du code publié. News.arc, le seul code de classement que Y Combinator a publié, ne contient aucune fonction pour cela. Aucun auteur de soumission ne peut demander à y entrer, et les critères de sélection des stories n'ont jamais été rendus publics.

Nous voir plus souvent sur Google

Un clic définit RedReplier comme source préférée. Nos articles remontent alors dans vos À la une, en mode IA et dans les aperçus IA.

Avant de partir...

RedReplier

RedReplier

Repérez chaque acheteur qui cherche ce que vous vendez

RedReplier surveille Reddit, X, Bluesky et Hacker News en temps réel, classe chaque sujet selon l'intention d'achat et rédige votre réponse, pour que vous arriviez en premier.

Reddit, X, Bluesky et HN

Alertes d'intention en temps réel

Réponses IA illimitées

Classé par intention d'achat

Articles connexes