Go to content

AgrégationChimie

Kickstarter, trending et modèles prédictifs

Introduction

Avec l'avènement du participatif dans les jeux de société, les projets Kickstarter forment maintenant une partie importante du marché. C'est ainsi que les records s'enchaînent et que certaines campagnes lèvent des montant inhabituels pour le monde du jeu de société.

Et il s'en crée de nouveaux tous les jours. Face à cette explosion, est rapidement venu deux types de préoccupations :

  • Les préoccupations du backer : le jeu va-t-il être financé ? si oui, à quel niveau (pour savoir combien de SG il peut espérer)
  • Les préoccupations de l'initiateur du projet : le jeu va-t-il être financé ? Comment faire pour maximiser le total ? Quels sont les leviers sur lesquels je peux jouer ?

L'intérêt de la prédiction et sa teneur

Ici, je m'intéresse plutôt à la prédiction du montant final. C'est en effet le Saint-Graal du prévisionniste kickstarter. Avant toute autre chose, il faut bien comprendre de quoi on parle.

On peut envisager trois modes de prévision :

  • Un modèle prédictif basé sur des données passées. Dans le cas de kickstarter, quel que soit le degré de raffinement du modèle, il est voué à avoir un taux d'échec non nul. En effet, le futur recèle toujours une part d'imprévu, et ici, elle est non négligeable : le monde du crowdfunding joue sur des effets de leviers qui sont majoritairement contrôlés par des données difficilement quantifiables : bad/bon buzz, review dithyrambique ou non, problèmes soulevés en cours de campagne (dice-gate, sleeve-gate et consorts), add-on à forte "valeur ajoutée", article à forte lecture.
  • Un modèle décisionnel. Qui se base non seulement sur des données passées mais aussi sur des possibilités d'action pour faire évoluer les choses (ie un créateur qui décide de placer ses SG et Add-on à des périodes précises). Ici, dans l'idéal, on a accès à plus de données que de simples données passées, donc on aura de meilleurs prédictions (mais encore une fois, ces prédictions ne tiennent pas en compte toutes les sources d'aléa).
  • Des modèles descriptifs : qui permettent de mettre en relation différentes données. Ici, il s'agit juste d'analyser des campagnes passées pour voir quels ont été les paramètres importants pour l'évolution de la campagne. C'est ici plutôt utile pour raffiner les modèles prédictifs et décisionnels. Et en particulier, affiner le poids à accorder à chaque paramètre.

Bien évidemment, chaque modèle, bien qu'avec des objectifs et méthodes différents, est à priori lié aux autres.

Personnellement, ce qui m'intéresse dans la prédiction est l'aspect "pari sportif" : c'est un jeu et il y a suffisamment de paramètres pour être sûr qu'un unique modèle n'arrive jamais à tout expliquer. Je vois ça plus comme un jeu qui est tellement subtil qu'on aura jamais la réponse ultime (i.e l'algorithme qui donne la bonne prédiction du début la fin de la campagne).

Les différents modèles

Pour expliquer les modèles, j'ai utilisé les articles suivants :

Comme notations, on va utiliser :

Mi (t)

Pour l'ensemble des points correspondant au total des fonds recueillis à des instants t pour le projet i. Pour simplifier les comparaisons, je pense qu'il est mieux de normaliser le montant recueilli par rapport au seuil de participation et la durée par rapport à la durée de la campagne. Cela implique que 0t1 et qu'au moment où le projet atteint son seuil de financement : Mi (t)=1 .

Pour chaque projet, le seuil de financement est noté Gi

Modèle de type « trending »

Ici, c'est le plus simple : on fait une extrapolation linéaire en se basant sur la moyenne du total récolté.

  1. Calculer la moyenne de fonds collectés par unités de temps :
    M = M(t) t
  2. Faire l'extrapolation pour déterminer le montant final :
    M(t=1)=M(t)+(1-t) M

Points positifs de la méthode :

  • L'extrême simplicité de la méthode.
  • Marche relativement bien dans le « ventre mou » :après le rush initial des 3-4 premiers jours et pour prédire ce qui se passe avant les dernières 48 heure.

Points négatifs de la méthode :

  • Très peu fiable, surtout à deux moments : au début et à la fin.
    Au début, en général, les gens se ruent sur le projet au début, ce qui entraîne une forte surestimation du montant final au début.
    De même, à la fin, il y a un rush 48 h avant la fin. Du coup, sur la fin, en général, il y a une sous-estimation du total. Cependant, la sous-estimation est moins importante que la surestimation car en fin de campagne, on a moyenné sur une plus grande période qui inclue le ventre mou.
  • Ignore totalement tout les effets non linéaires (ajouts d'add-on, effet des stretch goals, etc.)

Paramétrisation et algorithmique de la méthode

  • On peut tenter de modifier en découpant la campagne en trois zones : rush initial, ventre mou et rush final avec des poids relatifs pour ces différentes parties. Même si ça reste simpliste, ça reste facile à implémenter.

Modèles basés sur une distance

L'idée qui se cache derrière étant de dire qu'un projet qui a une courbe similaire à un autre aura un résultat proche. Pour cela : on compare les données temporelles pour avoir une distance. À partir de cette distance, on en déduit les projets les plus similaires, ce qui permet de dire que le résultat final sera le résultat pour chaque projet avec un poids associé. Ensuite, on prédit que le résultat est le barycentre des résultats les plus proches pondérés par cette distance.

  1. Calculer la distance entre chaque projet, dans l'article de Etter, on prend une simple distance quadratique. :
    dij (t')= t=0 t' ( Mi (t)- Mj (t))2
  2. Une fois cette distance calculée entre le projet i (celui qui nous intéresse) et l'ensemble des autres projets, on se ramène à un ensemble restreint de k projets qui correspondent aux projets ayant une distance minimale.

  3. Ensuite, on pondère la probabilité en fonction de la distance pour en sortir le résultat attendu :

    Mi (t=1)= Gi 1 j=1 k dij (t') j=1 k dij (t') Mj (t=1)

Points positifs de la méthode :

  • La simplicité conceptuelle : cette démarche simple permet d'avoir une vision directe des paramètres pris en compte.

Points négatifs de la méthode :

  • La nécessité d'avoir des points temporels les plus rapprochés possibles pour pouvoir faire des comparaisons fiables aux temps courts. Cela affectant fortement le coût de la méthode
  • Le coût de l'algorithme qui croit linéairement avec le nombre de points temporels ainsi que le nombre de projets auxquels on compare.
  • Le faible nombre de paramètres pris en compte : on ne prend que la courbe du total en fonction du temps.

Paramétrisation et algorithmique de la méthode

  • Quel type de distance est la meilleure (linéaire, quadratique, cubique ?)
  • Comment définir la valeur de k ? (nombre de projets similaires) : est-ce que l'on se base sur un seuil (qui à priori est sûrement une fonction de t') où est-ce que l'on se base sur un nombre de plus proches voisins (démarche adoptée par Etter : ils ont déterminé que la valeur k = 25 était optimale).
  • À la fin de la campagne, il peut être intéressant de se réduire à une distance sur un intervalle de temps plus court (ie pas toute la campagne) pour se concentrer sur les similarités dans le ventre mou tout en laissant de côté le rush initial qui peut être différent.
  • Se pose également le problème de la normalisation du montant : par rapport au seuil de financement ou par rapport au montant récolté à l'instant t. En effet, on peut avoir des campagnes avec la même dynamique mais pas le même montant récolté.

Modèles comparatif statique

Ici, le but est plutôt de voir des similarité basée sur des paramètres fixés initialement pour avoir une idée de ce qui peut se passer avec très peu de points de la série Mi (t) (au tout début de la campagne). Ici, le principe est similaire à celui donné dans les méthodes basées sur la distance, mais cette fois, la distance est calculée en fonction de la durée du projet, du seuil de financement et de la catégorie.

Modèles basés sur une probabilité de transition (chaîne de Markov)

Ici, l'idée est un peu différente : on cherche à calculer la probabilité de passer d'un montant à un autre à chaque pas de temps. Pour cela, l'algorithme peu légèrement différer en fonction des paramètres auxquels on veut donner de l'importance.
  1. On découpe chaque série de point Mi(t) en NT points uniformément répartis. On a donc la valeur de Mi(t) pour toutes les valeurs de t entre 0 et 1 définies par :
    tj = j NT -1    0j NT -1
  2. On découpe en NM différentes classes la distribution des montants à un instant donné (ou sur l'ensemble de la campagne).
  3. On construit la matrice P de dimension NM × NM de probabilité de passer d'une classe de montant à une autre (ie, le nombre de projets qui ont pu passer d'un montant compris entre 5 et 6 000 € à un instant tj à un montant entre 6 000 et 7 000 € à un instant tj+1 par exemple). Sur chaque ligne la probabilité doit être normée à 1 donc :
    j=1 NM Pi,j =1
  4. Ensuite, on calcule le produit de la matrice ainsi obtenue par la ligne (0,...,1,...,0) où le 1 correspond à la classe correspondante au montant recueilli à l'instant tj. Chaque multiplication par la matrice P permet de passer de tj à tj+1. On fait donc la multiplication pour arriver jusqu'à t=1.

Points positifs de la méthode :

  • La matrice P est à priori indépendante du temps et peut être stockée, cela permet de réduire le problème à un simple calcul de produit de matrice, ce qui est rapide (coût en NM2×NT).

Points négatifs de la méthode :

  • La définition des classes de montant : Etter choisit des classes uniformes en terme de montant, je pense qu'il faut mieux des classes de tailles équivalentes pour éviter de donner trop de poids aux projets "extrêmes".
  • La matrice P dépend de l'ensemble des projets choisis pour "éduquer" l'algorithme. Dans l'idéal, il faudrait utiliser un nombre plus restreint de projets de référence qui soient semblable au projet considéré.
  • On ne prend pas en compte le fait que la matrice P puisse dépendre de la valeur de temps choisie. (i.e. avoir une matrice Pj pour chaque valeur de tj)

Paramétrisation et algorithmique de la méthode

  • Le choix de la répartition des classes de montant (cf ci-dessus).
  • Rendre P dépendant d'une classe de projets similaires à celui considéré (cf ci-dessus).
  • Le nombre de classes NM à considérer. (Etter a choisi NM = 30)
  • Le pas de temps contrôlé par NT à considérer. De plus, pour les campagnes, il y a généralement un rush dans les deux dernier jours. Cependant, la valeur de tj annonçant le départ du rush varie en fonction de la durée du projet.

Les modèles sociaux

Ici, on utilise Twitter et autre pour prendre en compte la probabilité de succès. Pour moi, ça commence à devenir trop poussé car cela nécessite des données non réductibles à kickstarter.

Les différents outils passés et actuels

  • Il fut un temps, il existait kickspy qui faisait des modèles évolués à base de machine learning. Mais le système a fermé pour des raisons encore mal connues. L'algorithme de kickspy était basé sur la similarité entre projets pour prédire ce qui se passe en sortie. L'algorithme combine différentes techniques présentées ici.
  • Maintenant, il n'y a plus que kicktraq qui soit vraiment utilisé. Il donne le trending et un modèle prédictif dont on ne sait pas grand chose.
  • Il existe aussi sidekick qui utilise aussi des données liées aux réseaux sociaux pour prédire si le projet va être financé ou non. Il ont un taux de réussite annoncé de 76 % au bout de 4h de campagne. Leurs données.
  • Kickback qui donnait accès à des données sur des sujets passés.
  • Un peu plus loin du trending et des modèles : Kickended, un site qui recense des projets n'ayant pas récolté le moindre dollar (ou euro) ! Autrement dit, ce qu'il ne faut surtout pas faire !

De la lecture

  1. The Untold Story Behind Kickstarter Stats
Go to top
Go up