Bulle ouvre son jeu de données et invite chercheurs, étudiants, ingénieurs et associations à proposer une métrique d'évaluation et un algorithme de recommandation à la fois performants, équitables et non clivants.
Les algorithmes de recommandation des grandes plateformes restent des boîtes noires dont les effets, addiction, polarisation, invisibilisation des petits créateurs, sont aujourd'hui documentés. Bulle a fait le choix inverse : un algorithme entièrement public, calculé à partir d'une formule simple et auditable.
Ce défi prolonge cette logique. Plutôt que d'améliorer notre algorithme en interne, nous ouvrons les données et invitons la communauté à proposer mieux. La proposition retenue par Bulle fera l'objet d'une collaboration plus poussée pour mener à bien l'implémentation effective de l'algorithme au sein de la plateforme.
Ces principes définissent ce qu'est, pour Bulle, un bon algorithme. Votre métrique d'évaluation et votre algorithme doivent répondre objectivement à ces critères.
Hors abonnements et centres d'intérêt, l'algorithme recommande les mêmes contenus à tout le monde. Pas de bulle de filtre, pas de personnalisation comportementale.
Partages, republications, quiz, watchtime sont les meilleurs signaux de qualité. L'algorithme s'appuie dessus, mais en proportion des vues, jamais en valeur absolue.
Aucun bonus à choquer ou provoquer. Les contenus générant beaucoup de rejets ou de "je n'aime pas" sont pénalisés, même s'ils génèrent des vues.
Un créateur récent ou peu suivi doit pouvoir émerger. L'algorithme alterne les créateurs (round-robin) plutôt que de saturer le feed avec les plus visibles.
Les publications du jour ont la priorité. L'algorithme rend visible l'actualité fraîche tant qu'elle est pertinente, sans figer le feed sur d'anciens succès.
Publier en masse ou faire du clickbait ne doit pas payer. Les signaux sont normalisés par les vues, donc la quantité ne compense jamais une mauvaise qualité.
Une publication perd de l'importance avec le temps, sans pour autant disparaître brutalement. Pas de shadow ban implicite.
L'algorithme doit pouvoir réévaluer une publication sur la base de ses vues récentes, pas seulement sur l'historique cumulé. Une publication mal partie peut remonter.
L'algorithme retenu doit être expliquable en quelques formules, et auditable par n'importe qui. Pas de modèle opaque entraîné sur des données utilisateurs.
Un fichier CSV unique, agrégé par jour, contenant l'ensemble des publications recommandées (y compris à zéro vue, pour permettre l'évaluation des stratégies de round-robin).
| Colonne | Type | Description |
|---|---|---|
| publication_id | uuid | Identifiant anonymisé (uuid stable) de la publication. |
| creator_id | uuid | Identifiant anonymisé (uuid stable) du créateur. Utile pour le round-robin et l'équité. |
| creator_status | texte | Statut du créateur : semipro ou pro. |
| published_at | datetime | Date et heure de publication, arrondie à l'heure pile (UTC). |
| date | date | Date du jour évalué (jour de la recommandation). |
| category_name | texte | Catégorie principale (ex. Nature et environnement). |
| subcategory_name | texte | Sous-catégorie (ex. Sensibilisation écologique). |
| type | texte | Format : video, carrousel (image ou mixte image/vidéo), message (texte). |
| total_views | entier | Nombre cumulé de vues à la date évaluée (peut être 0). |
| prop_bookmarks | réel ∈ [0,1] | Sauvegardes ÷ vues. |
| prop_shares | réel ∈ [0,1] | Partages ÷ vues. |
| prop_reposts | réel ∈ [0,1] | Republications ÷ vues. |
| prop_quiz | réel ∈ [0,1] | Quiz validés ÷ vues. |
| prop_love | réel ∈ [0,1] | Réactions « j'adore » ÷ vues. |
| prop_like | réel ∈ [0,1] | Réactions « j'aime » ÷ vues. |
| prop_dislike | réel ∈ [0,1] | Réactions « je n'aime pas » ÷ vues. |
| prop_reject | réel ∈ [0,1] | Rejets explicites ÷ vues. |
Effet poule et œuf. Les proportions reflètent les vues obtenues sous l'algorithme actuel. Une publication peu mise en avant a pu être moins vue. Travaillez systématiquement en proportions, jamais en valeurs absolues, et gardez en tête que les publications à très faible nombre de vues peuvent être bruitées.
Le téléchargement nécessite un compte Bulle. Cette restriction permet de garder une traçabilité des accès au jeu de données et de limiter les usages abusifs. Seules les personnes ayant légitimement obtenu le dataset par cette page pourront soumettre leurs travaux pour évaluation.
Une soumission complète tient en deux fichiers : un document de description et le CSV de classement produit par votre algorithme.
Un document d'une page A4 maximum, en police 12, expliquant : la métrique d'évaluation que vous proposez, l'algorithme correspondant, et les formules associées. Les formules doivent être simples, explicites, et s'appuyer directement sur les variables du tableau (proportions, dates, statut, etc.).
Le résultat de votre algorithme appliqué au dataset, sous la forme d'un fichier submission.csv avec trois colonnes : date, publication_id, rank. Une ligne par couple présent dans le dataset, rangs uniques sans trous, à partir de 1.
# submission.csv, trois colonnes, en-tête obligatoire date,publication_id,rank 2026-04-24,3f4b2490-8aad-5949-9fdc-e40e4566e5d3,1 2026-04-24,...,2 2026-04-25,...,1 # Une ligne par couple (date, publication_id) présent dans le dataset.
Comment soumettre. Compressez les deux fichiers (PDF + CSV) dans un fichier .zip et envoyez-le par email à contact@shabon.fr avec en objet « Défi Algorithme Bulle », avant le 1er juin 2026 à 23h59 (heure de Paris). Une seule soumission par participant ou équipe. En cas de soumissions multiples, seule la dernière reçue est retenue.
Une page dédiée sera mise en ligne pour mettre en avant les classements effectivement soumis, avec affichage des publications proposées pour chaque jour donné. Les participants pourront ainsi visualiser et comparer leurs algorithmes respectifs.
Cette page sera annoncée publiquement après la date limite de soumission.
Bulle est un projet à mission, porté par SHABON. La récompense de ce défi est avant tout une reconnaissance publique du travail accompli.
La proposition retenue fera l'objet d'un article public sur le blog de Bulle, présentant la méthode, l'auteur et la démarche.
Particuliers, étudiants, équipes, laboratoires, associations, entreprises. Une seule restriction : le code et la méthode doivent pouvoir être expliqués publiquement.
La proposition retenue par Bulle fera l'objet d'une collaboration plus poussée avec l'équipe pour mener à bien l'implémentation effective de l'algorithme au sein de la plateforme.
Si la solution est intégrée à Bulle, son auteur est crédité publiquement sur la page algorithme.
À titre indicatif, voici quelques pistes auxquelles nous avons pensé. Elles ne sont ni imposées, ni définitives : votre travail consiste justement à proposer mieux, ou à les combiner différemment.
On combine les huit signaux d'engagement avec des poids reflétant ce que Bulle valorise. Les pondérations actuelles de Bulle privilégient la réflexion (quiz) et le partage volontaire au-dessus du simple "j'aime", et pénalisent les signaux négatifs.
Les pondérations exactes restent à votre discrétion. L'objectif est qu'elles reflètent objectivement les principes énoncés plus haut.
Plutôt qu'une demi-vie courte qui éteint vite les contenus, une exponentielle simple D(t) = exp(−t / τ) avec une constante de temps τ à calibrer permet une décroissance plus progressive. À titre indicatif, τ ≈ 14 à 30 jours laisse à un contenu de qualité le temps d'être découvert sans figer le feed.
La constante τ est à calibrer en fonction du rythme éditorial cible. Une valeur trop petite éteint l'information ancienne, une valeur trop grande sature le feed avec d'anciens contenus.
Pour éviter qu'un même créateur sature le top du classement, on peut appliquer un facteur décroissant à chaque répétition : la valeur d'une publication est divisée par 1 plus le nombre de publications du même créateur déjà classées au-dessus.
Une fois la valeur de chaque publication estimée, on évalue le classement global d'un jour donné via un nDCG (gain cumulé escompté normalisé). L'idée : récompenser fortement les bonnes décisions en haut du classement, beaucoup moins en bas. Le score final se moyenne sur l'ensemble des jours évalués.
D'autres agrégations sont envisageables (somme pondérée, Spearman, MAP…). À vous de justifier votre choix.
Important. Ces formules ne sont qu'un point de départ. Le défi consiste précisément à proposer une métrique d'évaluation publique qui réponde objectivement aux principes énoncés plus haut, ainsi qu'un algorithme concret qui s'y conforme. Vous pouvez reprendre ces pistes, les adapter, ou en proposer d'entièrement nouvelles.