Vincent Maladiere

314

Au delà de la prédiction

Vincent Maladiere

Pousser les Limites de l'IA

C'est le travail sur ces sujets qui a permis toute ces avancées des LLMs
Suivre IFTTD =>

Le D.E.V. de la semaine est Vincent Maladiere, co-founder @ Probabl. Vincent et Bruno explorent le rôle des modèles prédictifs dans l'analyse des données et leur aptitude à dévoiler la causalité, avec un focus sur l'intelligence artificielle. Ils discutent également des avancées dans Scikit-Learn et de la nécessité de repérer les liens causaux dépassant une simple corrélation. Certains défis évoqués sont le biais de sélection, l'analyse de survie et les complications liées aux données manquantes. Le duo conclut en réitérant que, malgré les progrès des modèles de langage, ils devraient compléter, plutôt que remplacer, les méthodes traditionnelles. Vincent termine en soulignant l'importance de l'apprentissage continu.

Chapitrages

00:00:53 : Introduction à la Prédiction et Causalité

00:01:34 : Présentation de Vincent

00:03:16 : Concepts Mathématiques et Philosophiques

00:03:27 : Découverte de Scikit-Learn

00:06:38 : Évolution de Scikit-Learn vers l'Industrie

00:07:45 : Signaux, Causalité et Modèles

00:11:30 : Prédiction vs Causalité

00:15:48 : Exemples de Causalité dans Divers Domaines

00:20:11 : Évaluation de Tests A/B et Causalité

00:28:52 : Automatisation des Décisions Basées sur des Modèles

00:30:53 : Projet ROAS et Prédiction

00:33:11 : Importance des Cohortes dans l'Analyse

00:35:03 : La Notion de Survie en Statistiques

00:43:12 : Feature Engineering et Causalité

00:47:36 : L'Impact des LLM sur la Prédiction

00:52:53 : Mélange de Techniques Traditionnelles et Modernes

00:55:44 : Recommandations de Contenus

00:56:29 : Conclusion et Remerciements

Cet épisode n'a pas encore été compilé !
Un épisode est généralement refactoré 3 ans après sa diffusion !

Un peu de patience ...
Pas d'extraits disponible :(
Bruno:
Les modèles prédictifs sont au cœur de nombreux projets data. Prédire si un client va acheter, churner ou cliquer, c'est utile, mais est-ce vraiment suffisant ? La prédiction ne dit pas pourquoi un événement se produit, ni comment nos actions peuvent l'influencer. Et quand il s'agit de comprendre quand cela arrivera, les choses se compliquent encore davantage. Et ce n'est pas simplement de l'IA, c'est de l'IA qui pense plus loin. Mais alors, comment passer de la simple prédiction à la compréhension des causes ? Faut-il jouer les deux vins pour prédire quand un événement se produira ? Et surtout, si nous pouvons déterminer toutes les causes et tous les effets, notre libre arbitre existe-t-il vraiment encore ? Pour répondre à ces questions de cause, je ne reçois pas le mérovingien, mais il s'y connaît. En effet, Vincent, bonjour. Bonjour. Alors Vincent, est-ce que tu pourrais te présenter pour les quelques personnes qui ne te connaîtraient peut-être pas ?

Vincent:
Oui, je suis ingénie de recherche chez Probable. Probable, c'est la spin-out de l'INRIA, donc l'INERA qui est le Labo National d'Informatique de l'équipe de Scikit-Learn et on vise à, développer un modèle commercial au-dessus de l'open source et ce que je fais moi en particulier c'est beaucoup d'open source déjà donc de dev autour de Scikit-Learn et des librairies Connex comme Scrub et Hazardous et je fais aussi pas mal de recherches donc en ce qu'on appelle l'analyse de survie qui est un domaine spécifique en fait du domaine de la prédiction, mais je fais aussi, je travaille aussi de mon côté pas mal sur des systèmes agentiques, des choses avec de l'IA plus proche des LLM et le point commun de pas mal de, beaucoup d'éléments de ce domaine là c'est la causalité parce qu'on s'intéresse par exemple quand on a un prompt à quel est le, résultat qu'on peut attendre sur l'output de l'élème mais aussi de manière plus classique dans la survie, généralement quand on a ou dans le biomédical ou ce genre de domaine quand on pose une question, on va souvent poser une question causale, c'est à dire que si j'ai un médicament et que je veux être capable de déterminer quel est l'effet de ce médicament sur une population ou une sous-population, je veux pas simplement de l'association, je veux vraiment de l'accusation je veux vraiment être capable de déterminer que oui, non, ce médicament a contribué à tant en termes d'une métrique qui m'intéresse ou un effet qui m'intéresse, typiquement la réduction du mal de tête ou peut-être même l'amélioration du nombre d'années de vie en bonne santé ce genre de choses.

Bruno:
Donc, il s'agit d'aller au-delà de la corrélation aussi, c'est un peu ça ?

Vincent:
Exactement, c'est ça. On veut aller au-delà de l'association et d'aller vraiment vers la causation, qui est en fait l'effet fondamental qui nous intéresse, mais qui est également beaucoup plus dur à obtenir parce que ça repose sur beaucoup d'hypothèses.

Bruno:
OK. On va être amené à creuser un peu tous ces différents sujets parce qu'il y a des concepts mathématiques presque philosophiques qui sont intéressants à creuser. Avant, tu nous parles de Psych-It-Learn, qui n'est peut-être pas forcément un projet connu de tout le monde tu peux nous en donner un peu dans les grandes lignes.

Vincent:
L'objectif avec plaisir alors pour les data scientists qui nous écoutent je pense que beaucoup auront déjà connaissance du projet, pour les autres c'est assez simple c'est un projet qui a aujourd'hui peut-être environ peut-être même 15 ans en fait j'avoue je suis même plus sûr de la date c'est un projet qui est né à l'INRIA si je ne me trompe pas qui a notamment été porté par Gaël Varocco qui est le boss de l'équipe dans laquelle je travaille toujours aujourd'hui, qui à la base sont des chercheurs qui s'intéressent sur le cerveau il s'intéresse à des méthodes, variationnelles, des méthodes pour observer, débruiter des signaux donc là on revient un peu sur le traitement du signal des signaux du cerveau qui soient des imageries IRM ou alors des imageries avec des capteurs qui vont générer des signaux électriques quand on les place sur le crâne, et l'idée de ça c'est d'être capable de, trouver de la corrélation, d'abord c'était de la corrélation et donc de prédire des signaux qui sont très bruités d'arriver à prédire des choses comme. Un signal qui va manquer, est-ce qu'on arrive à le reconstruire à partir d'autres signaux ? Ou est-ce qu'on arrive à améliorer la pixelisation d'une image IRM par exemple ? C'est ce genre de choses. Et déterminer des zones d'intérêt, des régions d'intérêt du cerveau qui vont être activées en fonction d'une impulsion. Donc ça peut redonner de la mobilité par exemple, des gens qui sont handicapés, qui ont un problème de mobilité on peut se rendre compte qu'en fait il y a cette zone-là qui est paralysée dans le cerveau. Et on arrive à identifier en fait justement en débruitant du signal et en analysant des coefficients dans le signal avec des techniques statistiques on arrive à, pas comprendre c'est un grand mot, mais identifier certaines zones et certains effets sur le cerveau, donc ça c'est vraiment comment dire, la jeunesse de ça Hitler, la jeunesse de tout ça, c'est l'arrivée de Python, donc autour de 2007, 2005, quand c'est vraiment devenu populaire face à R, face à MATLAB pour ceux qui faisaient des stats, donc l'arrivée de Python a mené la danse, on avait SciPy qui vient des Etats-Unis, qui vient de Berkeley, qui a été développé par des gens comme justement Gaël Varroho et Travis Olifant qui sont des gens qui ont vraiment développé Cet écosystème scientifique Qui est en fait Une suite de calculateurs En C++ Et un peu en fortant Qui sont bindés à Python Donc c'est ce qui est vraiment La base de tout Vraiment en calcul scientifique Python c'est SciPy Et dans SciPy Il y avait, Des objets un peu spéciaux Qui s'appellent des SVM Et qui étaient Qui sont un peu Les arrières grands-parents Des neural networks, Un SVM, c'est un neural network à une seule layer, tout petit. Avec... il n'y avait même pas de backprop. C'était vraiment très très simple. Et ce truc-là, à l'époque, c'était un peu le state of the art en termes de prédiction. Avec ça, on arrivait à prédire les signaux du cerveau, on arrivait à prédire pas mal de choses de régions d'intérêt qui intéressaient l'équipe de recherche. Et c'était vraiment initialement un projet de chercheur. Donc Scikit Learn, c'était vraiment un module dans SciPy qui s'appelait Scikit, avec un S à la fin. Le module est devenu beaucoup trop gros, ils ont été obligés de le séparer, ça a donné pas un fork, mais une nouvelle librairie. qu'ils ont ensuite appelé Secitline. Et dedans, s'est retrouvée une collection de modèles qui était hyper utile à la recherche. Et que tout le monde avait tendance à réimplémenter à la main. Donc tout le monde réimplémentait sa logistique régression, le faisait en R et puis dimper les résultats sur la CSV et puis repartait sur du biton. Donc ce n'était pas du tout idéal comme flow. Et ils se sont dit, comment est-ce qu'on améliorait ce flow-là pour la recherche avant tout ? Et à un moment, il y a eu une espèce de singularité qui a fait que le monde de la recherche a percolé vers le monde plus start-up plus industrie plus tech et on est arrivé à un moment où en fait, il y a plus moins que 20% des utilisateurs qui font vraiment de la recherche en labo ou en université et 80% qui font de la prod, et ce truc là n'était pas du tout le cas et ils n'avaient pas du tout anticipé ça initialement et donc ça a donné tout un tas de nouvelles contraintes tout un tas de on va dire une nouvelle direction au projet qui d'un coup devait être beaucoup plus production ready et moins. Et méthodologique aussi et moins on va dire niche à essayer de réimplémenter les derniers papiers de telles techniques à essayer d'avoir le plus de features possible. L'idée, c'était plutôt de se concentrer sur un set de baseline et un set de modèles qui avaient prouvé leur valeur, qui avaient montré qu'ils étaient solides théoriquement et qu'on savait bien les implémenter, et après de rajouter tout un tas d'ops, c'est-à-dire de tooling, de méthodologie, de trucs un peu pratiques, pour arriver à avoir un ensemble de techniques cohérentes. C'est-à-dire des choses qui ne vont pas être des modèles, mais des choses qui vont être comment est-ce qu'on sélectionne de la donnée, comment est-ce qu'on cross-vail des choses, qu'on fait du bootstrap, tout ça. Et donc, c'est vraiment ça qui a donné Sacket Learn.

Bruno:
Tu as du coup parlé de tout cet aspect de signaux dans le cerveau et de réussir à analyser ces choses-là. C'est aujourd'hui une libre qui est utilisée exclusivement pour ce genre d'application ou ça s'est ouvert à d'autres...

Vincent:
Et justement, ça a complètement dépassé ce cadre-là. D'ailleurs, même l'équipe en question qui s'appelle Mind, qui est à l'INRIA, qui s'intéresse au cerveau, utilise plus vraiment Sacket Learn. C'est-à-dire que Sacket Learn, c'est devenu des... C'est toujours des modèles, baseline, les gens adorent se comparer à SecondEarn parce que c'est facile d'utiliser SecondEarn et c'est aussi facile de nos jours de battre SecondEarn mais ce qui est génial avec SecondEarn c'est que ça s'utilise en deux secondes, c'est un import et tout le monde a compris comment l'API marchait, il y a un design qui est commun, en fait l'API tout le monde a en tête le feed predict, c'est vraiment l'espèce de design qui ensuite a été presque transformé en un espèce de standard un peu implicite dans l'écosystème, mais ce qui est génial c'est qu'effectivement on peut se benchmarker avec et on peut très facilement développer, avec d'autres techniques, mais avec du Pythorch, aujourd'hui du deep learning, développer des techniques qui vont faire beaucoup mieux que ce que fait Scikit-learn, parce que c'est pas du tout la même... Il n'y a pas la même profondeur d'apprentissage. Et aujourd'hui, les gens qui font du cerveau vont plutôt utiliser des transformers ou des choses autour des architectures les plus modernes. Mais c'est vrai que c'est intéressant l'évolution techno et l'évolution d'algorithme qu'il y a eu en 10 ans.

Bruno:
Donc, si j'ai bien compris, c'est une librairie Python qui te permet de faire de la prédiction de signal en fonction d'un tout ensemble de signal, donc soit un signal à venir, soit d'un signal perdu, dans un ensemble de signaux.

Vincent:
Exactement, et par signaux, en fait, je veux vraiment donner la version la plus générique. Un signal, pour nous, c'est un tableau Excel. C'est une matrice 2D, ça peut être n'importe quoi. Il n'y a pas forcément un rapport avec l'audio ou avec les time series, ça peut vraiment être l'analyse du churn, par exemple. C'est pour ça que toutes les équipes de data science, en tout cas beaucoup, dans des boîtes tech, qui ne font pas forcément de la recherche, qui ne font pas forcément l'étude du cerveau, à un moment ou à un autre vont utiliser des choses qui sont proches de l'écosystème de Sakitland, alors maintenant il y a de plus en plus de projets agentiques et de plus en plus de projets qui vont utiliser des LLM et des choses comme ça mais il y a aussi tout un tas de projets qui vont utiliser de l'IA qu'on appelle classique ou traditionnelle ou shallow, peu profonde, qui continuent à entraîner des modèles eux-mêmes souvent des modèles d'arbres, des modèles autour de XGBoost l'IGBM qui sont des modèles proches de ce que fait Sakitland, pour faire alors eux ils vont entraîner leur modèle from scratch et c'est possible parce que c'est des modèles qui sont pas hyper coûteux en termes d'apprentissage c'était pas des modèles qui demandent beaucoup de ressources en termes de calcul, contrairement à FineTune justement et LLM qui va être beaucoup plus, mais qui ne va pas s'utiliser du tout dans les mêmes conditions et pour les mêmes choses. Donc c'est vrai qu'effectivement, l'idée, c'est de faire du supervisé ou du non-supervisé, c'est-à-dire prédire un signal ou prédire des clusters, mais la donnée d'entrée, elle a une forme, elle a une tronche vraiment de spreadsheet en 2D.

Bruno:
Donc c'est un flux d'informations, en fait, quel que soit le type d'informations.

Vincent:
Exactement. Chaque ligne est un sample, et un sample, ça peut être n'importe quoi. Ça peut être une transaction, ça peut être un client, ça peut être une seconde d'analyse d'un signal du cerveau, ça peut être vraiment on peut le décliner sous plein de formes et d'ailleurs justement le cerveau il avait pas un problème mais il y avait beaucoup de pré-processing et c'est quelque chose qu'on fait vachement encore aujourd'hui dans le sens où les images qui viennent du cerveau c'est des images énormes elles sont souvent en 4D parce que c'est des mobilisations 3D prises dans le temps, il y a toute une question de comment est-ce qu'on transforme ça en quelque chose qui est 2D et qui est facile à apprendre parce que beaucoup de techniques statistiques et de choses classiques marche vraiment sur, encore une fois, quelque chose qui est 2D, qui est plat. Pas quelque chose qui va être dynamique en 3D. Il y a toute une question de comment est-ce que je vais essayer de concaténer ou de merger toutes ces layers ensemble pour arriver à quelque chose de plus simple.

Bruno:
Ce qui m'étonne, c'est que tu nous parles de prédiction d'un signal alors que tu es venu sur ce podcast pour nous parler de causalité. Je ne vais pas dire l'opposé de la prédiction mais quand même la prédiction veut déterminer ce qui se passe après alors que la causalité veut déterminer ce qui s'est passé avant au final.

Vincent:
Alors c'est hyper intéressant en fait ce qui est rigolo c'est que pour comprendre la causalité t'as besoin de comprendre la prédiction en fait c'est que beaucoup d'algos de prédiction, pardon de causalité justement se basent sur des techniques prédictives parce que au fond ça marche quasiment pas de la même façon mais dans les faits dans le code se ressemble et ce qui va être intéressant c'est, tu peux utiliser alors tu peux utiliser des algos prédictifs ou des statistiques Sous-titrage ST' 501, Pas uniquement pour faire de la prédiction, tu peux l'utiliser pour comprendre quels sont les poids d'un phénomène qui t'arrive dessus. Par exemple, je peux faire une régression très simple sur les poids de mon portefeuille. J'ai un portefeuille avec, imaginons, différentes actions, différents indices. Et à la fin, je veux voir quels sont les indices que je dois équilibrer pour avoir le meilleur portefeuille. Alors c'est pas exactement c'est équilibré, mais c'est proche. Donc je vais faire une régression sur ce genre de choses ou une optimisation, et à la fin je vais avoir une série de poids mais en fait ce qui va m'intéresser c'est vraiment les poids eux-mêmes, c'est les coefficients, c'est à dire combien de fois combien d'unités je dois attribuer à tel truc et combien d'unités je dois attribuer à telle autre. Métrique ou valeur si on parle de portefeuille et ça va pas être tant la prédiction qui va m'intéresser, la prédiction ici ça sera plutôt une métrique de combien ça me rapportera mais là c'est vraiment les coefficients, et du coup ce qui est intéressant c'est que j'ai utilisé un dataset donc de la donnée du passé pour en tirer une information qui sont les poids, c'est à dire les coefficients de ma régression quoi c'est à dire si c'est une régression en 2D ça serait juste la pente et, l'offset quoi donc ça serait ça mes poids ici en fait et ce qui est intéressant c'est que je peux avoir quelque chose qui soit descriptif donc qui utilise des stats ou ça qui vient de faire du descriptif c'est à dire analyser donc la donnée du passé pas forcément du prédictif et du prédictif qui va être justement prédire un signal futur prédire un signal à partir de nouvelles données qu'on a acquises mais dont on n'a pas encore le label, exemple, pour une fois si je fais des time series je veux déterminer quels sont les features les plus importantes de cette time series là je vais avoir des saisonnalités je vais avoir des trends, je vais avoir pas mal d'artefacts dans ma série, dans ma série temporelle je veux déterminer quels sont les artefacts les plus importants ça je peux le faire avec n'importe quelle technique de régression, relativement simplement, il y en a beaucoup mais je peux aussi vouloir prédire dans 10 jours quelle sera ma quantité quelle est ma quantité d'intérêt, mon volume de vente le risque ou ce que je veux et ce truc là utilisera la même chose mais avec de la nouvelle donnée dont on connait pas encore le label parce que le label étant la quantité qui t'intéresse. Pareil, imagine je dois prédire une quantité d'électricité qu'il va me falloir pour une usine je connais le planning de mon usine à l'avance je sais quelles machines vont être activées à l'avance je sais aussi, ça ce serait mes features je sais aussi grâce à par exemple RTE la quantité d'électricité que j'ai consommé à tel jour telle date, si on est aujourd'hui donc mercredi je connais à l'avance pendant la semaine prochaine tout le planning de toutes mes machines et je veux prédire la quantité d'électricité ce que je peux faire c'est utiliser donc un modèle sexpern ou un modèle de stats pour analyser à partir des signaux que j'avais avant, les coefficients qui vont être attribués à chaque machine combien est-ce que chaque machine produit. Consomme de l'électricité en fonction de paramètres extérieurs, la météo tu vois même si les employés sont en grève, pas mal de quantités différentes que je vais ajouter comme feature et le but de ça c'est ensuite de prédire quelle sera la quantité d'électricité dont j'ai besoin dans la semaine qui suit et les jours suivants en fait et la semaine suivante je récupérerai cette information pour de vrai parce que RTE me dira effectivement combien j'ai consommé et c'est ça mon label en fait donc c'est ce truc que j'ai prédit je vais le superposer à la réalité et ça va me donner une espèce d'erreur online ça va me dire est-ce que sur ma prédiction j'ai été loin ou proche de ma target et ça après je l'intègre sur mon dataset d'entraînement et ce que je veux faire ensuite c'est minimiser cette erreur offline c'est-à-dire sans faire une prédiction qui va être jouée je veux être sûr que offline c'est ça, en entraînement, mon algorithme arrive effectivement à minimiser cette distance, quelle qu'elle soit ça peut être n'importe quelle métrie entre les deux c'est ça vraiment la grande idée du truc. On acquiert on a de la donnée labellisée si possible dans le passé et on sait qu'on va en acquérir à nouveau mais pas aujourd'hui parce que sinon on aurait pas besoin d'algorithme, et on construit ce signal prédictif qu'on va ensuite comparer à la réalité si t'as pas le feedback c'est très dur si le feedback est très loin, si t'attends un an avant d'en avoir c'est très dur mais des fois c'est ce qui arrive et donc la causalité va s'intéresser à, pas uniquement l'association entre les poids, parce que là imagine ce que j'aurai là c'est de la causalité entre les différentes machines chaque machine va consommer une certaine quantité d'électricité, je vais étudier éventuellement la même corrélation qu'il y a entre chaque machine, ce qui là va vraiment m'intéresser ça serait, déterminer par exemple un delta, déterminer une différence si j'active ou pas une machine, alors là mon exemple commence à être bizarre mais imaginons que je m'amuse à éteindre et allumer des machines ce que je vais vouloir savoir c'est quelle est la quantité effective d'électricité que consomme effectivement cette machine. En arrivant à extraire à l'isoler de tout le reste c'est à dire de toutes les autres machines, de la météo ou alors si je peux pas le faire, si je peux pas l'isoler de la météo, il va falloir que cette prédiction elle soit conditionnée par la météo, c'est-à-dire quand il fait beau, combien d'électricité consomme effectivement cette machine ? C'est-à-dire quel est l'impact causal de cette machine sur ma target en fait ? Et en fait ça on va le retrouver dans plein de domaines différents, et en particulier dans l'étude, par exemple dans la médecine, l'étude de l'efficacité d'un médicament. Donc on va dire, si je prends une population et que je lui donne ce médicament, quelle va être l'amélioration, ça va être l'effect, le treatment effect après le médicament, sur une population versus un placebo. Et en fait ce qui va m'intéresser c'est la différence entre les deux, c'est à dire les gens à qui j'ai pas donné le médicament, quel est leur effet moyen. L'effet du groupe moyen, c'est-à-dire, je sais pas, c'est la réduction de mal de tête, quel est leur niveau d'intensité de mal de tête, versus ceux qui ont eu le médicament, quel est leur niveau d'intensité de mal de tête, et on fait la différence entre les deux moyennes, et on arrive à un effet causal. On arrive à une quantité qu'on estime être causal. Et la difficulté de ça, c'est qu'on a des biais de sélection. C'est-à-dire qu'il se peut que t'aies mal choisi tes groupes, et qu'en fait t'aies mis des gens en très bonne santé dans le groupe A, et des gens en très bonne santé dans le groupe B, et en gros t'as pas maîtrisé t'as pas maîtrisé les facteurs t'as pas maîtrisé la cause de ce qui a entraîné le mal de tête c'est à dire qu'il y a d'autres effets que simplement le médicament qui jouent ici qui sont leurs conditions de santé etc et un dernier domaine dans lequel on retrouve ça. Où il y a de la causalité mais les gens s'en soucient pas trop parce que ça marche bien c'est des choses qui vont être dans le numérique l'A-B testing dès que t'as une campagne marketing et que t'arrives à parfaitement randomiser, qui va sur la pub A et qui va sur la pub B en fait c'est génial parce que tu n'as plus ces problèmes, de randomisation qu'on avait justement avant dans l'étude de médecine où t'as peut-être mal samplé, là tu sais que si la personne se retrouve dans le groupe A versus le groupe B, c'est du pur hasard et c'est super parce que dans ce cas là, tout ce que t'as à faire pour mesurer la quantité causale qui est à quel point ma pub me rapporte effectivement de l'argent ou à quel point ma conversion augmente j'ai juste à faire la moyenne de A moins la moyenne de B quoi, Parce que je sais que la seule chose qui a permis de conduire une personne, un individu, vers A ou B, c'est la chance. J'ai juste, au hasard, attribué, fait mon routing. Alors, il peut y avoir des biais qui s'ajoutent, il peut y avoir des problèmes qui s'ajoutent. Si par exemple, aller sur B, parfois il y a une erreur, le network n'est pas bon, pour X raisons, la personne n'arrive pas vraiment à expérimenter B, parce qu'il y a un problème technique, ou parce que, je sais pas, malheureusement, ça introduit une latence et la personne n'aime pas ça.

Bruno:
Tu as plus de bugs sur la version B que sur la version A.

Vincent:
Voilà, exactement. Et que du coup, pour une raison qui n'est pas celle que tu veux étudier, la personne ne répond pas à l'étude. Ou la personne introduit un biais énorme, tu vois. Donc, tu peux quand même, malgré tout, avoir des problèmes de causalité là-dessus. Mais dans un monde idéal, sur ton A-B testing, les deux versions sont comparables et tu étudies vraiment une seule chose. C'est-à-dire, si je change la couleur du bouton, A versus B, est-ce que j'ai un lift ou pas dans toutes les gens qui cliquent dessus et ce qui est génial c'est que comme c'est random tu peux effectivement, t'as pas de problème.

Bruno:
Alors je crois avoir à peu près compris donc si je comprends bien cette notion de causalité.

Vincent:
C'est.

Bruno:
Pour réussir donc si je prends mon réseau de neurones dans mon LLM traditionnel c'est pour réussir à comprendre en fait, en gros l'impact de chaque neurone que ça aura sur la décision finale pour pouvoir du coup jouer de manière plus fine sur la décision finale.

Vincent:
Alors là t'es micro parce que là t'es vraiment au niveau de comprendre l'intérieur d'une black box qui est un réseau neuron là ce que je te décrivais c'était plutôt macro c'était on trouve un moyen d'estimer une quantité moyenne qui va être groupe A versus groupe B on trouve un moyen d'estimer cette quantité donc ça peut être un truc aussi simple que faire la moyenne mais parfois c'est beaucoup plus dur en fait donc il te faut un modèle qui estime cette quantité là et si les conditions sont réunies c'est hyper simple d'avoir l'effet causal plutôt que l'effet associatif les conditions réunies c'est avant tout l'hypothèse d'avoir vraiment, comme je disais au début, une randomification, qui part dans le groupe A ou le groupe B, et si t'arrives à avoir ça, tu résumes tout avec une simple différence si tu n'arrives pas à avoir ça tu dois utiliser des modèles qui sont beaucoup plus compliqués, qui vont travailler sur ce qu'on appelle de la donnée observationnelle, c'est à dire la donnée où on a conscience qu'il y a des biais, et on essaie de débiaiser tout ça en introduisant des hypothèses, en disant par exemple, si les gens ont acheté autant de glace que de stocks à ce moment là. D'action, c'est peut-être parce qu'il faisait chaud et que c'était l'été, pas parce qu'il y avait un autre effet causal bizarre, ou un autre effet observé bizarre c'est vraiment parce qu'il y avait ce qu'on appelle le cofondeur, donc ce qui va expliquer ah min j'ai plus vraiment l'analogie je crois pas que ça la glace et le stocks ce qui va expliquer ok, Pourquoi est-ce que deux choses arrivent ? Ça sera une troisième cause qu'on n'avait pas observée initialement, qui ne faisait pas partie du dataset. Et si tu n'as pas observé cette troisième cause, cette cause véritable, en fait, ton étude tombe à l'eau parce que tu ne peux pas déterminer l'effet de cette cause sur le reste. C'est-à-dire que ce qui dure avec l'invalence causale, c'est que si tu n'es pas dans une situation où les choses sont parfaitement random, tu dois observer cette quantité qui te permet de débiaiser et de comprendre, de conditionner dans quel cas tu pars à gauche versus à droite. Donc ce qui est dur c'est que tu dois récupérer toute la donnée.

Bruno:
Et alors ce que je trouve d'autant plus un peu perturbant dans tout ça c'est que si je comprends bien cette notion de causalité elle pourrait essayer de te permettre de mieux prédire.

Vincent:
Elle te permet de à la fois mieux prédire mais surtout mieux comprendre c'est à dire que si je fais une campagne marketing et que j'ai déterminé que effectivement, bouton A marche mieux que bouton B, c'est intéressant parce que je vais pouvoir mettre bouton A en prod et c'est ça vraiment qui m'intéresse le plus à ce niveau là c'est certes faire de la prédiction mais ça je peux quand même le faire avec du prédictif classique là ça sera vraiment avoir.

Bruno:
Une conclusion et avoir une forme de certitude si je reprends ce cas de la BTS qui est peut-être, plus commun en fait pour la majorité de l'audience de ce podcast parce que je pense qu'il y en a beaucoup qui font de la BTS, en fait c'est des manières de te dire que certes aujourd'hui quand tu fais un AB test avec une plateforme qui existe, standard de service il te met à 50-50 de ta population sur tes deux versions mais qu'il y a peut-être d'autres paramètres, que tu ne perçois pas qui influent sur le résultat de ton test donc ça te permet en fait de rééquilibrer les résultats exactement au-delà de la taille de la population mais de en fait d'extraire des, enfin ou aussi de retirer de ton résultat des personnes qui sont ou de les pondérer peut-être c'est.

Vincent:
Plutôt de la pondération en général si tu vas dire effectivement une personne ou un groupe de personnes qui est imaginons la crypto des gens qui sont hyper bullish sur la crypto versus des gens qui sont moins bullish si tu fais une étude où tu détermines, est-ce que est-ce que, L'appli A a mieux tradé que l'appli B Si tous les gens qui sont très bullish Sont allés sur l'appli A, Ils ont forcément investi beaucoup plus et pris beaucoup plus de risques Et du coup si t'as que des gens bearish sur l'appli B Le problème c'est qu'effectivement ils ont moins investi Ils ont moins pris de risques Du coup les résultats sont plus vraiment comparables Donc ce que tu veux à ce moment là c'est arriver à être sûr Qu'il y ait des deux catégories de gens qui sont allés vers l'appli A Et l'appli B Pour que ce soit un minimum comparable Et surtout une personne qui est rare C'est à dire une personne qui serait bearish Et qui est allée dans l'appli A tu veux la waiter vachement plus tu veux lui donner beaucoup plus d'importance parce qu'elle est très rare dans une mer de gens qui est très bullish, la personne bériche a un signal qui est rare donc elle effectivement tu veux la compenser vers le haut, tu veux l'augmenter en fait tu veux augmenter la taille de cette valeur là.

Bruno:
Donc du coup grâce à cette notion de causalité tu peux la réorienter vers le bon le bon groupe dans le cadre de la B-Test non.

Vincent:
Justement tu veux pas la réorienter, tu veux la laisser là où elle est parce que de toute façon c'est ce que t'as observé donc tu peux pas le changer en fait, on parle vraiment de données qu'on a observées déjà donc en fait comme elle est déjà là tu veux juste prendre en compte le fait que on sait que c'est une personne qui est bériche et qui se retrouve dans un groupe où en fait elle est en minorité et donc il faut, multiplier son effet par beaucoup, par un divisé par le nombre de gens qui l'entourent ok.

Bruno:
J'entends, dans ce que t'as évoqué aussi sur si je reprends ton exemple t'as une bouteille d'eau il y a un verre d'eau si jamais tu veux.

Vincent:
Te...

Bruno:
Dans cet exemple que t'avais sur cette usine qui veut prédire sa consommation électrique, tu parlais du fait que tu vas prédire ta consommation en fonction d'un ensemble de paramètres qu'après tu vas comparer ça à la réalité ? Dans quelle mesure c'est pas juste du réentraînement d'un modèle versus une.

Vincent:
En fait tu poses une question légèrement différente c'est à dire que quand tu utilises du pur prédictif et que tu t'intéresses pas à la causalité tu dis juste ok en fonction des machines qui sont allumées quelle est en moyenne après je peux calculer une erreur mais quelle est en moyenne. L'énergie qui va être consommée demain, après demain par heure etc donc tu dis voilà je veux juste une quantité quand tu poses une question causale tu te dis, qu'est-ce qui cause cette quantité vraiment, qu'est-ce qui joue sur cette quantité donc c'est à dire que si je m'amuse à éteindre une machine, de combien je peux espérer cette quantité baisser, c'est vraiment ça qui va m'intéresser en fait, c'est vraiment le what if donc si j'ai, donc là j'ai observé mes machines qui sont activées dans le temps, qu'est-ce qui se serait passé si en fait cette machine avait été éteinte et en fait c'est dur, tu peux pas vraiment savoir parce que tu seras jamais exactement dans les mêmes conditions, t'as jamais le compteur factuel en fait, tu sais pas exactement donc ce que tu veux c'est récupérer dans le passé des échantillons qui étaient proches et arriver à dire ok, là on a des situations qui sont comparables, on a un état par exemple de météo qui est comparable où j'avais la machine allumée versus la machine éteinte et dans ce cas là je peux à peu près comparer je peux à peu près dire ok, la moyenne dans cette situation là c'était tant, la moyenne dans l'autre situation c'était tant, comme on est sur une situation qui est comparable parce que j'ai bien fait mon travail j'ai toutes mes hypothèses qui sont bien je peux faire une différence ou quelque chose qui est proche d'une différence et j'ai l'effet et je peux voir effectivement machine 2 quand elle est allumée ça me met 50 gigawatts, et quand elle est éteinte effectivement j'ai que 40 gigawatts donc en fait en effet elle consomme 10 gigawatts et ce qui est dur c'est d'arriver à faire ça justement d'arriver à isoler grâce à ton modèle des quantités qui sont comparables pour arriver à quelque chose qui est aussi simple qu'une différence, donc c'est vraiment le what if en fait ce qui se change c'est le what if.

Bruno:
Autant sur cet exemple de la b-test je comprends comment est-ce que tu peux, entre guillemets de manière dynamique utiliser les trucs, c'est-à-dire que du coup tu vas appliquer toutes ces pondérations pour ajuster le résultat de ton score et donc prendre ta décision, si je prends le cas de l'usine en fait j'ai du mal à, j'ai du mal à voir comment est-ce que tu peux exploiter ça et j'ai envie de dire de manière programmatique, c'est-à-dire que pour moi ce que tu décris là, au final, moi de ma perception c'est plus entre quelqu'un ou un système qui va expliquer à quelqu'un ben voilà en fait à ta machine qui consomme plus quand il pleut et moins quand il fait beau donc peut-être qu'envisage de l'éteindre quand tu vois qu'il va pleuvoir mais que du coup c'est une explication, Et j'y vois pas un usage entre guillemets dynamique.

Vincent:
Ouais, tout à fait. En fait, t'as vraiment cette dimension descriptive que t'as complètement expliqué, qui est effectivement, t'as le point de vue de l'analyste qui essaie de comprendre, qui essaie d'en tirer des conclusions et des choses qui vont être, de l'ordre de, effectivement, cette machine elle consomme temps, ou cette campagne elle marche mieux quand il y a tel bouton. Et effectivement, la question c'est est-ce qu'on peut automatiser ce genre de choses ? Et pour moi la réponse est oui, parce qu'une fois que t'as déterminé que cette machine elle consomme temps, dans ce genre de conditions, tu peux dynamiquement par exemple l'activer tu prends une décision qui serait automatique ou alors tu pourrais simplement l'exclure de ton analyse quelle.

Bruno:
Est la différence du coup avec un réentraînement de ton modèle.

Vincent:
Le réentraînement il va il va consommer de la donnée qui est plus récente que l'état d'avant, par exemple si j'ai entraîné un modèle il y a deux mois et que j'ai eu de la donnée depuis deux mois j'ai un gap de deux mois dans mon apprentissage et donc si ma série, si ma donnée est parfaitement stationnaire et que ça ne varie pas trop je ne vais pas avoir de problème mais si ce qui est le cas de pas mal de choses j'ai une trend qui évolue où je vais avoir des saisonnalités qui sont importantes j'ai tout intérêt à réentraîner parce que sinon ma prédiction pour le coup, sera assez fausse parce que je me baserai sur de la connaissance passée sans avoir pris en compte l'évolution du coup j'ai besoin de réentraîner pour prendre en compte, l'historique qui arrivait entre les deux et alors du coup je ne me rappelle plus de ta question J'ai.

Bruno:
Réalisé juste après l'avoir posé qu'il y a aussi une distinction c'est qu'en fait, si on reprend cet exemple de ton usine et de sa consommation électrique c'est que t'as un modèle qui va prédire ta consommation électrique, là où la causalité te permet de dire, de choisir de manière dynamique les machines que t'allumes ou pas donc c'est pas juste de prédire c'est de choisir Exactement.

Vincent:
Ça te permet de Exactement, il y en a un qui répond la question en moyenne combien ça va consommer et l'autre qui va dire pourquoi ça consomme tant par élément pourquoi telle machine euh, Combien consomme vraiment telle machine ? Combien consomme le fait qu'il fasse beau ? C'est toujours le what if. C'est toujours, à partir de ce que j'ai observé avant, je ne peux pas reproduire ce qui ne s'est pas passé, mais je peux trouver des exemples qui sont proches et essayer de les comparer.

Bruno:
Ok. Alors, je vais voir si j'ai...

Vincent:
Tout ça clarifie un peu.

Bruno:
Non, non, mais parce que je pense avoir un peu mieux compris. Et en fait, depuis le début de notre conversation, il y a un projet qui pop. Donc en ce moment moi je travaille chez les Furets et ils ont mis en place un projet qui s'appelle ROS pour Return on Ad Spent, pour ceux qui connaissent pas en fait ce qui est intéressant c'est qu'aujourd'hui tu peux aller voir Google et tu peux lui dire, voilà à quoi ressemble ma population de gens qui achètent chez moi et comme ça tu m'envoies des gens qui ont plutôt tendance à acheter chez moi mais là le projet ROS en fait c'est que tu vas plus loin c'est que toi c'est que nous chez les Furets on est capable de prédire, si quelqu'un va convertir et si oui où il va convertir et donc de pouvoir prédire combien est-ce que nous, il va nous rapporter et donc de modifier l'enchaire qu'on va mettre, auprès de Google en disant du coup nous sur telle personne on est prêt à enchérir à tel prix et sur telle personne on est prêt à enchérir plutôt plus bas parce qu'on sait qu'il y a moins de chances qui nous rapportent. C'est ça du coup un peu ce que t'as expliqué ou pas tout à fait ?

Vincent:
Là t'es vraiment sur un truc plus classique de prédictif. Là t'es vraiment sur classifier oui non est-ce que cette personne va convertir et si la proba est élevée. Il y a aussi cette notion d'estimer.

Bruno:
Le montant sur lequel nous on va enchérir parce qu'on sait qu'il a plus de chances de convertir.

Vincent:
Sur tel.

Bruno:
Type d'endroit Versus un autre qui a plus.

Vincent:
De temps de.

Bruno:
Convertir A tel endroit.

Vincent:
En fait il y a vraiment deux façons de le voir La première c'est la façon la plus simple où tu dis, Moi il n'y a pas vraiment de traitement J'ajuste pas grand chose Je suis pas en train d'ajuster une variable Je suis en train de juste J'ai des campagnes qui tournent J'ai des gens qui vont, Je vais avoir des hits Donc des gens qui s'intéressent ou qui cliquent Je vais avoir des clics ou même des conversions Et je veux à chaque fois sur mon funnel prédire l'étape d'après Et si par exemple je suis à l'état, du hit donc c'est à dire les gens qui ont vu quelle est la proba qui clique c'est ça je crois le R.O.S non ? Le return non c'est les gens qui ont fait l'ensemble du funnel en fait ouais c'est les gens qui convertissent jusqu'au bout à partir de peut-être du clic du coup à partir de quelle étape.

Bruno:
C'est à partir du moment où t'arrives sur le site.

Vincent:
Jusqu'au moment ok d'accord à partir de la visite ok bon bah au moment t'as une visite ça te fait un point et tu dois prédire oui non est-ce que cette personne va convertir jusqu'au bout en fonction des infos que t'as réussi à récolter ou ce genre de truc.

Bruno:
Mais c'est là où le projet est intéressant c'est que c'est pas uniquement aller sur est-ce qu'il va aller jusqu'au bout parce qu'en fait nous c'est des tunnels où t'as plein de branches possibles.

Vincent:
C'est où il va aller sur quelle branche il va terminer.

Bruno:
Parce que du coup en fonction de la branche c'est pas le même revenu en fait pour l'entreprise derrière et donc en fonction de la.

Vincent:
Branche sur laquelle tu détermines qui va aller en fonction d'un ensemble de critères tu.

Bruno:
Sais que tu vas te capable d'encherer plus ou moins.

Vincent:
Pour moi c'est toujours la prédiction pour moi t'es toujours dans le paradigme de même si j'ai 18 portes au lieu de une je vais quand même prédire pour chaque porte qu'il y a la proba qui passe dans la porte, Là où ça deviendrait de la causalité, c'est si t'étais en train d'ajuster un truc en temps réel. Ou pas en temps réel, mais il y a une quantité que t'essaies d'ajuster, qui est le traitement. Et le traitement, ça pourrait être. Peut-être la couleur du site. Imagine, j'ai quatre backgrounds différents, et je veux savoir en fonction du background que je mets, celui qui va le plus ou moins attirer l'œil ou être agréable, est-ce que, on va simplifier, j'ai qu'une porte, j'ai la conversion finale, est-ce que, en fonction Si je mets ce background là Est-ce que je vais avoir quelqu'un qui Convertit mieux Et ça c'est la question fondamentale de Qu'est-ce qui marche mieux en fait Et une fois que tu sais ce qui marche mieux Du coup tu implémentes ce qui marche mieux, Il y en a un où tu t'intéresses pas tant que ça Ou pourquoi Où tu dis juste ok j'admets j'ai des gens qui m'arrivent dessus, Ce que je veux c'est prédire Où est-ce qu'ils vont aller pour derrière mesurer une quantité Estimer une quantité Et après j'ai une notion de je veux améliorer ce qui se passe et je peux jouer sur des différentes variables je peux changer des trucs et je veux savoir quand je change une variable la couleur du site, comment est-ce que je peux le réaiguiller en fonction quel est le delta sur ma proba en fait, dans ce cas là tu vas faire un delta, un changement sur ton sur ta variable, sur ton traitement la couleur du site et tu mesures un delta sur ta target ton output qui est la proba de convertir et tu pourrais avoir des probas de convertir sur chacune de tes différentes sorties possibles ok.

Bruno:
Passionnant tu nous as parlé aussi d'un autre sujet au tout début que je trouve aussi intéressant à creuser tu nous as parlé de la survie, pareil on a déjà pas mal fait un gros dilemme sur la causalité je pense avoir à peu près compris le truc alors c'est bon mais du coup je serais intéressé de creuser aussi sur cette notion de survie et ce que ça ça veut dire la.

Vincent:
Survie c'est un peu plus niche ça vient vraiment du monde des biostatisticiens ça vient du biomédical, ça vient du monde des gens qui. Travaillent avec des patients ou font des études sur des cohortes de patients et c'est déterminé quel est alors c'était un peu triste à la base c'est déterminer combien de temps il leur reste à vivre ou quelle est la probabilité qui leur arrive, tu vois, un événement comme la mort ou autre événement négatif dans le temps, donc en fait, pour résumer, c'est une forme de régression sur, l'espérance de vie de chaque personne mais le problème c'est qu'il te manque de la donnée en général, le problème c'est que cette régression là sur une cohorte par exemple de gens qui ont le cancer, qui a duré 10 ans, heureusement tout le monde n'est pas mort, donc il y a des gens mais l'étude est finie donc en fait t'as eu 10 ans de données où t'as vu des gens tu vois avec certains états certains ont succombé, d'autres non et certains ont même déménagé, changé de ville et t'as pas pu les suivre donc ils sont sortis de l'étude sans que t'aies pu savoir quel était leur état et le problème c'est que tu ne sais pas à quel moment ils vont mourir du cancer ils meurent tous du cancer un jour parce qu'ils sont dans cette cohorte là et le problème du coup c'est que tu ne peux pas, juste faire la moyenne comme imagine si t'as observé que 10% de gens qui, succombe au cancer dans ta fenêtre de temps tu peux pas dire ok je prends juste les gens qui sont morts, je fais la moyenne dessus et ça me donne l'espérance de vie ça marche pas parce que du coup t'as extrêmement biaisé ton analyse parce que t'as oublié 90% des gens qui ont survécu et qui du coup ont une espérance de vie beaucoup plus haute que ceux qui sont morts, donc en fait là c'est un nouveau problème. Tout à l'heure avec la causalité on avait parlé d'un problème qui est je maîtrise pas toutes les causes, j'ai besoin d'arriver dans une forme de framework où les différents scénarios sont comparables parce que j'ai pas un billet de sélection ? Là j'ai un autre problème qui est un peu différent, qui est, je fais de la prédiction, je n'ai pas besoin de comprendre pourquoi, même si les deux domaines sont quand même liés, mais je ne fais que de la prédiction, juste prédire une quantité qui est combien de temps il leur reste à vivre en bonne santé, etc. Mais le problème que j'ai, c'est que j'ai des trous dans mon dataset, je n'ai pas observé mon label à certains moments, et en fonction de la quantité de trous que j'ai, à quel point je n'ai pas observé mon label, ça va être de plus en plus dur de prédire avec les techniques classiques. Si j'ai quasiment observé tout le monde bon même si j'ai une omission de une ou deux personnes c'est peut-être pas très grave il faut faire ma régression s'il m'en manque plus de 50% ça devient horrible je peux pas avoir un estimé correct donc je suis obligé d'utiliser des techniques qui prennent ça en compte et qui vont étudier, ce qu'on appelle le time to event c'est à dire le temps que entre le moment où un patient rentre dans une étude il est inclus dans une étude et le moment où on a l'événement d'intérêt qui peut être encore une fois négatif comme positif ça peut être simplement sortir de là en bonne santé lié à un événement, genre une greffe. Est-ce que quelle est la proba dans le temps que la personne atteigne cet événement ou pas, on reprend un exemple sur le cancer ce qui va vraiment m'intéresser à la fin c'est d'avoir des courbes de probabilité que l'événement arrive, c'est vraiment ça que je veux en fait c'est à dire sur un patient qui rentre dans l'étude, au début on admet qu'il a, une proba de survivre à 100% s'il est rentré dans l'étude sans avoir l'événement, alors il a survécu au moins les 10 premières secondes il était dans l'étude donc il a un taux de survie à 100% la question c'est quelle est sa survie le lendemain, le surlendemain dans 6 mois et en fait ça ça fait une courbe qui est monotone qui ne fait que décroître jusqu'au moment où soit elle a atteint 0 cette courbe soit il y a un phénomène de saturation parce qu'on n'a pas observé tout le monde dans l'étude et en fait on sait que dans 4 ans t'as 30% de chance de survivre mais on n'est pas capable d'extrapoler d'aller plus loin que ça parce qu'on n'a observé personne qui a eu l'événement après cette période, vu la taille de notre étude. Donc en fait ce qui est intéressant c'est, je veux faire de la régression, mais il me manque de l'info et alors on va revenir sur quelque chose qui va peut-être plus parler aux gens qui écoutent qui est par exemple l'étude du churn. Sur une boîte qui marche bien, on peut espérer que tous les utilisateurs ne sont pas partis donc on peut espérer qu'il y a encore des utilisateurs qui soient là mais j'ai quand même envie d'étudier quels sont les groupes qui ont tendance à partir le plus j'ai quand même envie de voir, en fonction de l'utilisation de mon app ou de l'utilisation de mon service ou des reviews que j'ai sur Google. Quelle est la proba que les individus similaires à celui-là partent dans le temps on va dire par exemple j'ai 95% de taux de rétention je vais analyser le 5% de gens qui sont partis, Et comment je fais ça ? Ce qui est dur c'est que je peux pas uniquement dire Je regarde que ceux qui sont partis et j'oublie le reste Parce que dans ce cas là je biaise énormément de trucs C'est à dire que Je vais dire ah ok La moyenne, Si je prends juste eux et que je dis Je calcule le temps entre le sign up et le moment où ils sont partis, Et je dis ah en fait les gens restent en moyenne Un an et demi C'est pas vrai parce qu'il y en a plein qui sont peut-être là depuis 4 ans Et qui sont jamais partis Et si je fais juste. Cette sélection là et que je moyenne Je vais tout biaiser vers le bas, je vais sous-estimer vraiment énormément la quantité de temps que les gens restent sur mon app donc je peux pas faire ça ce que je dois faire c'est dire que tous les gens qui sont encore avec moi aujourd'hui ils ont survécu c'est des survivants, ils ont pas eu l'événement d'intérêt l'événement d'intérêt c'est le churn ils ont survécu au churn tous ces gens j'utilise des modèles spécialisés qui vont prendre en compte qui vont dire que quand j'observe un churn je l'observe à une certaine date je l'observe à 30 jours, 4 ans après avoir sign up et j'observe l'événement, il est parti, et ensuite une fois que j'ai fait cette étude là, la question c'est comment est-ce que j'applique ça aux gens qui sont encore là donc en fait comme j'ai appris, le modèle a appris en fonction de plein de paramètres et de l'utilisation et de toutes les données que je vais passer, tous les features que je vais passer, comme il a appris justement cette distribution de probabilités, je vais être capable pour chaque personne qui est encore là de prédire ok, quelle est la proba que cette personne sort de l'étude dans deux jours, dans trois jours dans quatre jours, dans cinq jours, enfin pardon pas sort de l'étude, que la personne churne demain, après demain etc et c'est ça qui est hyper intéressant, c'est d'avoir cette courbe où tu vas pouvoir mesurer la proba que cet individu churn et si tu moyennes les individus, tu vas pouvoir même avoir les courbes sur les groupes de gens similaires tous les gens qui sont de cette cohorte, je vais voir la proba de churn de cette cohorte et je vais être capable de voir ça.

Bruno:
Donc t'as une probabilité qui est adaptée à chaque individu de ta cohorte je.

Vincent:
Vais avoir une courbe de probabilité que la personne parte pour chaque individu de ma cohorte donc tous les individus qui sont encore en vie je vais pouvoir estimer cette courbe Et cette courbe va aussi loin que va mon jeu de données Si j'ai 10 ans de données, je vais avoir 10 ans de cours Grossièrement.

Bruno:
Ah non, t'es pas capable d'extrapoler quoi qu'il arrive au-delà de...

Vincent:
Si t'as une boîte qui a qu'un mois d'existence, tu vas pas pouvoir dire je pense que dans dix ans, les gens ils en sont là. En fait, c'est une étude de choses comparables aussi. Donc tu peux pas vraiment extrapoler. Mais après, si t'as des comparatifs, si t'as des boîtes qui sont similaires et qui ont un peu le même schéma que toi, qui font un service qui est proche ou qui ont un NPS qui est proche ou des paramètres qui sont proches, tu peux dire bon je récupère la dataset si je l'ai je fais la même chose ou alors, j'ai moi même je connais les paramètres je sais à quel point on va dire, l'attrition évolue et j'essaie de reproduire ça j'essaie d'introduire une distribution que je connais avec des paramètres que je connais, pour simuler en fait le fait qu'il me manque des trucs pour extrapoler justement mais ça te demande de connaître ce phénomène par un autre moyen soit t'as eu accès à notre dataset qui est pas le tien parce que du coup t'as vécu comme moi ou alors t'es allé voir sur Gatner à quel point l'attrition arrive dans le temps et t'essaies de coller ça avec ce que t'as observé mais globalement c'est sûr qu'il vaut mieux, avoir un peu de données derrière soi pour être sûr d'avoir quelque chose qui colle à ton business.

Bruno:
Dans quelle mesure est-ce qu'il faut que tu tu définisses toi-même les dimensions qui sont entre guillemets étudiées c'est à dire que là sur le cas du churn si on prend je sais pas, est-ce que tu dois pas manuellement entre guillemets choisir de faire ces cohortes par le nombre de factures, le montant des factures je sais pas, l'ancienneté le type de téléphone acheté ou je ne sais.

Vincent:
Quoi ça c'est le travail des data scientists et des machine learning engineers qui travaillent dans les boîtes c'est d'arriver à faire ce que tous les data scientists adorent qui est le feature engineering c'est à dire à partir de ma database qui peut être colossal, comment est-ce que j'extrais les features qui sont intéressantes pour pas genre tout joindre pour pas avoir un espèce de truc complètement intractable comment je sélectionne, je curate ma donnée comment je l'enrichis et je la filtre pour avoir quelque chose qui à la fin peut me permettre de prédire un truc, donc d'avoir mon signal les features que tu vas choisir donc effectivement l'ancienneté, le nombre de clics qu'il y a eu le taux d'utilisation de l'app sur plein de choses différentes, c'est vraiment le rôle de la personne de l'expert data du data scientist de créer ces features là et ensuite d'appliquer le modèle dessus et d'être sûr que ces features, soient correctes tu vas être sûr qu'elles ont bien été mesurées dans la base de données que tu vois leur calcul n'est pas faux qu'il n'y ait pas eu de problème quand tu as fait un group buy ou un filtre, donc il y a ce problème là et après il y a le problème de maintenir ce système dans le temps où tu vas être sûr que, t'es pas une colonne d'un coup il n'y a que des nannes parce que la table elle était complètement dépréciée que c'est pas la chose tu vas être sûr que tout ce truc là soit maintenu c'est vraiment un système vivant en fait Comme une app classique Et dans...

Bruno:
Quelle mesure cette notion-là te permet pas justement de déceler une notion de causalité ? Parce qu'au final, si t'arrives à avoir ces cohortes de tiers avec une convité élevée, tu peux comprendre le pourquoi.

Vincent:
Exactement. C'est là où les deux sont liés. C'est qu'en fait, tout à l'heure, je disais que la causalité, au fond, c'est un delta. Tu peux le voir comme un delta sur des quantités prédites ou sur des quantités tout court. Et là, du coup, ce qui est intéressant, c'est qu'en survie, ce qu'on va prédire, c'est des probas de survie. C'est la proba de pas avoir l'événement ou à l'inverse la proba de l'avoir et du coup ce qui va t'intéresser c'est si je change un paramètre, si j'augmente le prix de mon site ou si j'augmente le prix de mon service etc, quelle est l'influence sur la proba que les gens restent et c'est là où les deux se rejoignent et ça donne un truc magique c'est que ce qui va t'intéresser c'est à plein d'horizons différents, si j'augmente le prix du sign up, est-ce que ça change, la proba de rester à 10 ans 10 ans c'est peut-être un peu long mais à un mois, deux mois, trois mois, quatre mois et peut-être ce que je vais observer c'est qu'il y a des gens qui ne vont pas du tout apprécier sur les premiers mois, donc il va y avoir les gens qui étaient un peu limite, qui n'étaient pas hyper chauds pour payer si j'augmente un peu la, facture, je suis sûr de les perdre mais j'ai peut-être une base qui est suffisamment solide qui fait que une fois que les premiers sont partis, a priori ça ne bouge plus trop après et que je vais avoir, ce que pas mal de gens dans les banques ou en marketing aiment bien étudier c'est un espèce d'effet d'élasticité du prix, c'est à quel point je peux monter le prix ou à quel point je peux jouer sur le prix et voir la courbe d'adoption et voir à quel point celle-là change c'est à dire que peut-être que, à un extrême si j'ai un prix qui est trop bas, mon adoption va être faible parce que les gens vont se méfier et t'es trop loin du prix psychologique tu.

Bruno:
Te dis bizarre.

Vincent:
Et si j'augmente ça vers quelque chose qui se rapproche du prix psychologique je vais atteindre un espèce de palier, où je vais pouvoir monter ce truc là et monter ce prix jusqu'à un moment où je vais avoir une cassure parce que là ce sera trop ce sera pas ok de payer un prix aussi élevé et je vais perdre tout le monde donc c'est un truc hyper intéressant en causalité qui est cette espèce d'élasticité où tu vas en fonction de ton traitement qui est le prix ici tu t'amuses à calculer la trajectoire de la variable d'intérêt qui est l'adoption.

Bruno:
Super intéressant tu nous as du coup donné beaucoup d'exemples dans le monde de la finance sur le portefeuille sur l'analyse de tests médicaux et toutes ces.

Vincent:
Cohortes.

Bruno:
Groupes témoins et autres ? Ce qui me laisse à penser que ce sont des technos ou des outils ou des méthodes qui sont un peu plus anciennes. Tu nous évoquais tout à l'heure que Psykit avait plus de 10 ans, plus quasiment 15 ans. Comment est-ce que tu perçois le monde des LLM aujourd'hui qui sont entre guillemets juste sur de la prédiction, et qui ont le devant de la scène aujourd'hui avec toute cette hype qu'il y a autour de ces technos-là, alors que vous faites des choses qui sont, qui ont un usage depuis plus longtemps et à des niveaux parfois plus importants ouais.

Vincent:
C'est une super question c'est la question que tous les gens autour de moi se posent en ce moment, c'est effectivement notre place dans un monde où. Ce qu'on fait a moins l'AEP que l'LM mais je pense qu'il y a vraiment la place pour tout le monde c'est à dire que déjà l'LM c'est vraiment juste l'évolution de ce qu'il y avait avant c'est à dire que c'est des technos qui sont très proches de ce qu'on avait avant mais juste qui ont été portés à un niveau de scale qui est infini avec un niveau de données qui est colossal on parle de tout internet, un niveau de poids aussi du modèle qui est colossal, c'est des trucs qui tiennent plus sur des gros serveurs c'est énorme c'est juste la trajectoire. Heureuse de ce qu'on a voulu avant c'est vrai que c'est un petit peu peut-être ingrat de dire maintenant que c'est là c'était mieux avant c'est juste notre travail qui a permis d'aller vers ça moi j'ai pas trop participé personnellement, Mais tous, la communauté des gens qui font de l'IA, en fait, au fond, c'est logique d'être arrivé là. C'est à force d'améliorer les performances, à force d'améliorer les architectures et d'aller vers quelque chose de plus en plus scalable qu'on arrive à ça. Donc quelque part, c'était assez logique d'arriver là si c'était possible d'y arriver. D'une certaine façon. Et après, de manière plus, comment est-ce qu'on utilise ça et la place de ce plat là-dedans, je trouve que c'est assez complémentaire. C'est-à-dire qu'avec Sacklearn, tu ne peux pas parler à Sacklearn. Tu ne peux pas... Toujours pas le faire, d'ailleurs. Tu peux pas lui poser des questions sur le monde, sur aller comprendre quelque chose si t'as pas compris sur Stack Overflow ou sur Wikipédia. T'auras pas cette génération de très haute dimension. En fait, on fait pas... Les modèles classiques et les modèles de stats font de la discrimination, font de la prédiction, mais ils font pas de la génération. On peut pas générer des images avec ces clés-là, on peut pas gérer du texte avec ces clés-là, alors faut vraiment y aller. C'est pas du tout fait pour. Du coup, pour moi, c'est extrêmement complémentaire. C'est vraiment une nouvelle techno, et des use case qui explosent et là où c'est hyper intéressant aussi c'est que tout ce qu'on faisait jusqu'ici c'était vraiment adressé à des spécialistes même si on a vraiment baissé la barre et qu'on a essayé de démocratiser ça au mieux, avant qu'on existe avant ce qu'on appelait le machine learning c'était vraiment des stats, des statistiques et il n'y a que les statisticiens qui a priori faisaient des statistiques maintenant ça s'est un peu démocratisé avec le machine learning il y a 10 ans, il y a des gens qui n'étaient pas forcément hyper bons en stats qui pourraient arriver à peu près à comprendre les modèles de base les utiliser pour leur use case et avoir quelque chose qui était utile mais ça restait des gens qui savaient bien programmer des gens qui avaient un peu compris les concepts etc, et qui avaient un certain niveau et maintenant on fait en fait l'IA c'est devenu du B2C quoi et c'est génial c'est à dire que d'un coup t'es une explosion parce que la terre entière peut parler avec Chad GPT tout le monde adore générer des images sur Me Journey et en fait, ce qui est génial c'est qu'avec cette scale là tu t'adresses plus uniquement aux spécialistes mais à un portefeuille enfin, quantité de gens qui est phénoménale quoi Avec effectivement les enjeux, tous les problèmes que ça peut poser, mais aussi tous les trucs géniaux qui vont arriver sur, enfin moi je suis assez, perso, assez bullish là-dessus, sur des choses comme l'éducation, des choses comme l'accès à la connaissance, l'accès à des experts dans différents domaines, etc. Scouter l'internet ou scouter Twitter sans la toxicité de la plateforme juste récupérer l'info telle qu'elle te va je suis assez honnêtement assez optimiste et je ne sais pas si on discute de ça ou pas mais il y a clairement deux, comment dire deux groupes ou deux religions qui sont un peu en train d'arriver c'est les gens qui sont très maximalistes sur l'IA justement et donc les gens qui sont plutôt de la Silicon Valley et qui pensent que la générale intelligente est en train d'arriver donc l'AGI est en train d'arriver et justement les gens qui sont plutôt, en Europe en général et qui disent tout ça c'est de la hype et rien vaut à une bonne vieille régression linéaire on est super content avec ça et je pense la vérité est un peu entre les deux ce qu'on arrive à avoir avec, CGP, certes il y a des hallucinations certes il y a des problèmes, mais c'est déjà quelque chose de complètement incroyable la première fois que j'ai utilisé ça, moi-même j'hallucinais de la qualité de la réponse et à quel point c'était pertinent c'était presque surréaliste, donc c'est vrai qu'il y a un peu une guerre de religion qui est en train de monter sur les dernières grosses conférences en Eurips à Vancouver l'été dernier, tu sentais vraiment qu'il y avait deux camps tu sentais vraiment qu'il y avait des gens qui étaient plus côté stats et d'autres qui étaient côté G&I et qu'on commence à avoir deux teams qui se parlent moins.

Bruno:
C'est.

Vincent:
Un peu dommage donc la question c'est comment est-ce qu'on réunit tout le monde et comment est-ce qu'on détruit les barrières entre les chercheurs.

Bruno:
T'évoquais que le grand boom des LLM actuels c'est notamment parce qu'ils arrivent à avoir des data sets d'entraînement colossaux à multiplier les layers le nombre de paramètres de manière assez fat. Si on imaginait que dans tous ces domaines que tu as évoqués, de la causalité de la survie avec ces kit-là en est-ce, vous arriviez à avoir aussi ces effets d'échelle de passer puissance on va dire à 1 million ? Est-ce que ça veut dire que vous seriez en mesure de trouver la cause de tous les effets ?

Vincent:
C'est hyper intéressant comme question. En fait, tu peux vraiment mélanger les deux. C'est-à-dire que tu peux utiliser des modèles qui sont surpuissants pour analyser du texte. Et en fait, si... Alors vraiment, je trouve un exemple perché, alors je n'en ai pas sous la main, mais tu pourrais faire de la survie à partir de corpus et de livres entiers parce que tu les as donné un modèle de type LLM. Et que le LM, cette fois il t'a pas sorti du texte il t'a pas généré du texte, il t'a vectorisé l'information, il t'a sorti un vecteur et donc un vecteur c'est quoi ? C'est juste une liste ou un array de nombres, de chiffres et toi, ce vecteur là c'est typiquement ce qui t'intéresse quand tu fais du classic ML c'est à dire que t'as besoin si tu t'analyses de l'image, du texte, des graphes ou des trucs assez complexes, t'as besoin d'une façon ou d'une autre de le vectoriser, c'est à dire d'arriver à le représenter sous une forme de vecteur c'est à dire de, si j'en mets plusieurs des vecteurs ça me donne une matrice en 2D et ça me permet d'avoir de l'information qui a été extrêmement compressée mais à partir de biais intelligents, c'est à dire de LLM ou de réseaux qui ont compris le signal justement. Et derrière je peux utiliser des modèles beaucoup plus simples, en fait une fois que j'ai fait toute cette partie très dure dont on parlait tout à l'heure qui est le feature engineering, si je fais ce feature engineering automatiquement à partir d'un LLM ou d'un gros modèle de deep learning qui a été entraîné sur des trucs colossaux, derrière je peux utiliser le résultat de ce truc, donc cette forme de vecteur, avec des modèles vachement plus simples et ça s'applique comme avant, c'est à dire je peux Il faut continuer à faire de la causalité sur des livres, de la survie sur des livres, de la survie sur de l'image, il y a des gens qui font ça justement. Il y a des gens qui font pas mal de survie sur des images pulmonaires. Ils vont dire, ok, j'ai plein de radios, des poumons, et je veux savoir, en fonction de la taille de l'Odème ou de la taille du corps observé, si c'est une tumeur, un truc comme ça. Quel est le temps moyen que la personne va avoir avant d'avoir le niveau 2 de la maladie par exemple. Et ça c'est galère parce que ta donnée d'entrée c'est des images, tu peux pas directement shooter ça sur un modèle linéaire très simple. Tu vas être obligé d'avoir un gros modèle, un truc de deep learning qui va le pré-processer, et d'ailleurs qui peut lui-même en fait faire cette partie-là de la prédiction. C'est-à-dire qu'il fait non seulement le feature engineering tout seul, mais finalement il peut aussi remplacer ce qu'on appelle l'estimateur à la fin, donc le classifier, il peut aussi le faire lui-même. C'est à dire que tu peux soit réutiliser un truc qui a déjà été entraîné et le réentraîner toi-même le fine tune toi-même sur la petite partie à la fin qui t'intéresse, soit tu dis juste bon je pense qu'il a été entraîné tout simplement correctement j'enlève la tête, j'enlève, la dernière couche qui me permet d'avoir la classification je récupère les vecteurs directs je travaille directement avec le vecteur, je vais couper la tête et je fais ma passe et je récupère des vecteurs et ensuite je vais entraîner quelque chose de beaucoup plus léger qui va s'entraîner sur mon ordi pour quasiment gratos et là dessus je vais pouvoir faire ce qu'on faisait avant, l'inférence causale ma prédiction etc tu peux vraiment, mixer ça en fait, c'est ça qui est génial tu peux mixer les très gros modèles avec des trucs très légers si t'as pas les moyens de réentraîner le gros truc ou si t'as pas envie de t'embêter avec quelque chose de si gros en production Ok.

Bruno:
Canon merci beaucoup pour toute cette discussion et tout ce que tu nous as appris, aujourd'hui, j'aurais deux dernières questions pour toi qui sont les questions rituelles du podcast la première c'est est-ce qu'il y a un contenu que tu souhaiterais partager avec l'ensemble des auditeuristes.

Vincent:
Il y a plein de trucs que j'ai envie de partager, je suis en train de me re-retaper la série Silicon Valley.

Bruno:
Je ne peux que recommander.

Vincent:
Mais je pense que quelqu'un d'autre l'a recommandé déjà.

Bruno:
Je crois qu'elle a déjà été recommandée mais qu'une seule fois, il y a des trucs qui ont été recommandés plusieurs fois mais je crois que celui-là n'a été recommandé qu'une seule fois.

Vincent:
Foncez si vous ne l'avez pas déjà vu c'est un miracle cette série.

Bruno:
Très bien, et dernière question qui est la plus importante de ce podcast tu es plutôt espace ou tabulation ?

Vincent:
Je suis pré-commite pré-commite ? Je le laisse faire pour moi.

Bruno:
Non je vous entends je suis tab Très bien merci beaucoup Vincent. Et merci à tous d'avoir assisté à cet épisode voilà j'espère que vous avez appris plein de choses n'hésitez pas à nous faire un petit débrief de ce que vous avez retenu de la causalité et de la survie en tout cas j'espère que ce podcast sera amené à survivre le plus longtemps possible et ça peut passer. Aussi grâce à vous n'hésitez pas à aller checker le Tipeee du podcast à mettre un commentaire 5 étoiles sur votre application de podcast préférée ou si vous regardez ça sur YouTube à mettre un petit pouce en l'air, bref, à partager aussi ce podcast autour de vous moi de mon côté je vous souhaite une très bonne fin de semaine je vous donne rendez-vous la semaine prochaine et d'ici là codez bien.

Recrutez les meilleurs développeurs grâce à Indeed !

"Trouver des développeurs compétents et passionnés, comme les auditeurs d’If This Then Dev, peut être un vrai défi. Avec Indeed, connectez-vous rapidement avec des candidats qualifiés qui sauront s’épanouir dans votre entreprise. Profitez dès maintenant d’un crédit de 100 euros pour sponsoriser votre offre d’emploi : go.indeed.com/IFTTD."