Comment les Data Scientists de VK rendent la publicité efficace

L'année dernière, nous avons accueilli Artem Popov, le chef d'équipe de l'équipe VK Performance Advertising. Nous partageons avec vous la transcription de l'émission et de l'enregistrement.








Je m'appelle Artem, je suis responsable de la publicité à la performance chez VK. Notre équipe est engagée dans le fait que, d'une part, rend la publicité sur VK plus efficace, plus rentable pour les annonceurs, plus intéressante pour les utilisateurs. C'est un grand objectif produit.



D'un autre côté, techniquement, nous sommes une équipe d'ingénieurs ML, des développeurs assez ordinaires qui passent beaucoup de temps sur des tâches liées à la science des données et au ML. Aujourd'hui j'ai envie de parler de ces deux sujets, car ils m'intéressent tous les deux, j'adore en parler. J'espère vivement que nous aurons une communication en direct; si quelqu'un regarde l'émission, ce sera plus intéressant si vous écrivez des questions.



Dans l'ensemble, je souhaite diviser notre conversation en deux blocs. Dans le premier, je parlerai des différentes tâches rencontrées dans la publicité à l'intersection avec la science des données. C'est pourquoi la publicité peut être un domaine intéressant pour un spécialiste du ML, pour un spécialiste de la science des données. D'autre part, je souhaite partager mon expérience de déménagement dans un projet d'ingénierie ML, ce que j'ai étudié pendant ces quatre années où je faisais du ML dans le cadre de l'histoire de l'ingénierie. Et parlez de ce que l'on trouve dans les grandes entreprises, mais dont on ne parle pas dans différents cours; quelles sont les compétences difficiles à acquérir lorsque vous étudiez la science des données ou le ML dans une université ou une formation en ligne. J'essaierai de consacrer une demi-heure à chaque sujet.



Tout d'abord, je parlerai de la publicité, des technologies publicitaires, de la publicité informatique en tant que domaine d'activités de recherche, scientifiques et d'ingénierie - c'est-à-dire un domaine de connaissances; quelles tâches y a-t-il et pourquoi est-ce amusant de les faire quand il y a de la PNL et d'autres choses à la mode, mais on ne parle pas souvent de publicité.



Le défi global est le suivant: nous avons un ensemble d'annonceurs. Il peut s'agir de n'importe quel utilisateur souhaitant promouvoir la connaissance de son produit, de son entreprise. Ils ont tous leurs propres objectifs différents. Quelqu'un veut simplement montrer son annonce au plus grand nombre de personnes possible; Par exemple, le «Coca-Cola» conventionnel a pour tâche de faire connaître à tout le monde sa marque, pour que chacun se souvienne qu'il existe une telle boisson, que c'est une nouvelle année, et qu'il n'y a pas d'autre alternative que cette boisson si vous allez au magasin. Un autre bon exemple est Fairy: combien d'autres détergents connaissez-vous en plus de lui? C'est toute la notoriété de la marque; les grands annonceurs se fixent un objectif: s'assurer que chacun a en tête la certitude qu'un certain produit existe.



Il y a d'autres objectifs. Par exemple, des objectifs de performance plus appliqués. C'est à ce moment que l'annonceur souhaite que vous suiviez l'annonce et que vous entrepreniez une action. Par exemple, ils sont allés sur le site et ont laissé une demande de prêt. Ou vous avez acheté quelque chose dans une boutique en ligne. Etc.

En général, la tâche de la publicité est d'amener de nouveaux utilisateurs dans une entreprise (ce que l'on appelle des prospects) et de faire en sorte que ces utilisateurs fassent quelque chose d'utile pour l'annonceur et apportent des bénéfices à son entreprise.



Nous avons une plate-forme - un endroit où nous vous permettons d'afficher des publicités. Dans le cas de VK, il s'agit d'une bande; dans le cas d'un autre site, cela pourrait être, par exemple, une bannière. Le but du site est de gagner de l'argent grâce à la publicité; il vend l'attention des utilisateurs contre de l'argent. Grâce à cela, VK reste un projet gratuit; d'autres modèles de monétisation pourraient être envisagés, mais le modèle publicitaire fonctionne bien pour un service similaire.



Les utilisateurs ne veulent généralement pas voir de publicités: ce n'est pas pour cela qu'ils sont venus au service. Mais il s'avère que le contrat publicitaire fonctionne exactement comme ceci: l'utilisateur paie avec son attention pour l'utilisation du service. Par conséquent, notre objectif en tant que réseau publicitaire est de nous assurer que les utilisateurs ne se fâchent pas, que la publicité ne les repousse pas ou ne les effraie pas.



Ce serait absolument magnifique si les publicités s'avéraient utiles pour l'utilisateur - c'est-à-dire que les entreprises et les publications promues se révélaient aussi intéressantes pour l'utilisateur que le contenu normal. C'est généralement parfait.



Nous avons trois forces: l'utilisateur, l'annonceur et le site. Nous devons établir une telle interaction entre eux afin que chacun d'eux remplisse ses objectifs. Imaginez: vous accédez au service VK, ouvrez le flux - et vous voyez l'endroit où nous insérons des publicités. De nombreux annonceurs postulent pour cette ressource et souhaitent voir exactement leurs annonces, mais comment choisir l'annonce qui doit être diffusée à un moment donné à chaque utilisateur?



La méthode standard activement utilisée dans la publicité est l'enchère en ligne. Vous avez peut-être vu différentes options d'enchères dans la vie réelle ou sur Ebay, par exemple: cela pourrait être une situation où tout le monde peut enchérir. Un utilisateur dit - je parie 10 roubles, un autre entre - parie 20, le troisième - 100, et ainsi de suite. Cependant, il n'est pas pratique de mener des enchères du type «qui a payé plus, a gagné» dans l'environnement Internet, c'est pourquoi des enchères fermées sont utilisées. Dans ce cas, chacun des participants fait un pari en silence. Au sens figuré, tous les morceaux de papier avec les paris sont mis dans un pot, puis quelqu'un vient, les démonte, trouve le morceau de papier avec le plus grand nombre et dit - vous avez gagné.



Disons qu'il y a deux annonceurs - par exemple Nike et Coca-Cola. L'un d'eux est prêt à payer 5 kopecks pour chaque affichage, et l'autre - 10. L'autre gagne, et le développement ultérieur de l'histoire dépend du type d'enchère. Il existe deux types principaux de publicité: les enchères au premier et au deuxième prix. Dans une enchère au premier prix, le gagnant paie le prix qu'il a indiqué. Par exemple, Coca-Cola dit: "Je paierai 10 kopecks", sans voir les offres des autres utilisateurs; la vente aux enchères dit - OK, 10 kopecks. Nike dit "5 kopecks", Coca-Cola gagne et paie 10 kopecks.



Cependant, il y a aussi une enchère au deuxième prix: dans ce cas, le gagnant doit payer exactement autant d'argent que nécessaire pour remporter toutes les autres enchères. Dans notre cas, un pas de 1 kopeck peut être utilisé, par exemple. Imaginez la situation: les mêmes Coca-Cola et Nike arrivent. Coca-Cola dit: "Je suis prêt à payer 100 roubles pour le spectacle", et Nike dit: "Je suis prêt à payer 1 kopeck." Et Coca-Cola sera très offensé d'apprendre qu'il aurait pu gagner en payant 2 kopecks au lieu de 100 roubles. L'enchère au deuxième prix est considérée comme plus équitable pour tous les participants.



Sur cette base, une certaine propriété est considérée comme très importante pour un annonceur: toujours proposer un prix maximum honnête aux enchères que vous êtes prêt à payer pour une impression. Cela est nécessaire pour construire toute stratégie de trading compétente.



Dans la vente aux enchères du premier prix, vous devez trouver une stratégie astucieuse, pensez - ici, tel ou tel annonceur peut énormément enchérir, mais dans les enchères du deuxième prix, ce n'est pas nécessaire. Chacun place le tarif qu'il est prêt à payer le maximum. Si vous gagnez, vous payez exactement le même montant ou moins; sinon, vous n'étiez pas prêt à payer plus. C'est une grande propriété de ce type d'enchères, qui est passée de la théorie à une utilisation généralisée dans les systèmes publicitaires.



Cependant, ce n’était pas le cas. Il semblerait, du point de vue de la théorie, que l'enchère au second prix soit très bonne, et ses propriétés lui permettent d'être très pratique. Mais en fait, lorsque nous sommes confrontés à de vrais systèmes, il s'avère que plusieurs facteurs garantissent la popularité des enchères au premier prix - pour une raison quelconque, les gens préfèrent les utiliser plutôt que les enchères au second prix. L’un des deux points principaux sur lesquels je veux dire est que l’enchère du deuxième prix n’est pas transparente. Autrement dit, lorsqu'une enchère publicitaire est organisée par une plate-forme dont vous ne savez rien - vous participez simplement en tant qu'annonceur - cela vous indique que votre enchère de (disons) 10 kopecks a gagné, et que vous devez payer le deuxième prix - que ce soit 9 kopecks. Ce deuxième prix est opaque; on ne sait pas d'où il vient. Généralement,le site peut facilement tromper l'annonceur en faisant des soi-disant faux paris. Il existe également des mécanismes équitables pour les offres supplémentaires - par exemple, le «prix inversé»: vous déclarez qu'une enchère particulière ne peut pas être vendue pour moins de 9 kopecks, et une telle offre honnête apparaît. Mais la transparence est très importante et son manque de transparence décourage les annonceurs. Lorsque vous ne savez pas ce qui se passe sous le capot d'un système publicitaire, vous devez à nouveau trouver des stratégies: vous ne pouvez pas simplement adopter et utiliser l'approche consistant à ne fixer que les prix que vous êtes prêt à payer.et son absence désactive les annonceurs. Lorsque vous ne savez pas ce qui se passe sous le capot d'un système publicitaire, vous devez à nouveau trouver des stratégies: vous ne pouvez pas simplement adopter et utiliser l'approche consistant à ne fixer que les prix que vous êtes prêt à payer.et son absence désactive les annonceurs. Lorsque vous ne savez pas ce qui se passe sous le capot d'un système publicitaire, vous devez à nouveau trouver des stratégies: vous ne pouvez pas simplement adopter et utiliser l'approche consistant à ne fixer que les prix que vous êtes prêt à payer.



Le deuxième point est que la deuxième vente aux enchères fonctionne bien dans un cadre idéal avec une seule enchère à la fois. Dans un vrai système publicitaire, des millions d'entre eux se produisent par seconde, de manière conventionnelle. Dans de telles conditions, il est déjà nécessaire de proposer des stratégies, et l'idée que l'annonceur a toujours une stratégie simple et prête à l'emploi pour un trading parfait lors d'une enchère s'effondre.



Je voudrais parler des moments qui surviennent dans le contexte des tâches de conception des enchères - comment vous pouvez les concevoir de manière plus intéressante, plus utile, etc. Je veux mentionner deux points. Premièrement, dans l'enchère, il semble que tout devrait se passer en fonction de la valeur maximale, du montant maximal d'argent que le réseau publicitaire gagnera en vendant de l'espace; cependant, en réalité, la valeur qui est vendue dans une enchère peut être exprimée de différentes manières pour le site - pas seulement dans le montant que l'annonceur est prêt à payer. Par exemple, il est très important pour nous que les utilisateurs ne soient pas exaspérés par notre publicité - il est souhaitable que cela leur soit utile. Dans le cadre de la conception d'une enchère, vous devez proposer des mesures supplémentaires pour le classement des annonces. Il s'avère un certain nombre de paramètres: le profit attendu, la probabilité d'une réaction négative de l'utilisateur, etc.



La deuxième variante du problème est une vente aux enchères «non gourmande». Dans ce cas, nous comprenons que nous, en tant que réseau publicitaire, pourrions gagner plus si nous ne vendions pas toujours des espaces publicitaires au gagnant, mais les distribuions entre tous les annonceurs de manière à maximiser tous leurs budgets publicitaires, tout en laissant quelques puis l'honnêteté dans la vente aux enchères. Autrement dit, si nous avons plusieurs annonceurs et que l'un d'eux est plus riche que les autres et achète constamment des enchères, alors peut-être ne devrions-nous pas toujours lui donner l'offre du gagnant. Un tel "problème de sac à dos" - peut-être vous souvenez-vous de ceux des cours sur la programmation ou les algorithmes de structure de données, si vous aviez une telle histoire. C'est une tâche très cool, c'est très intéressant de le faire, et il y a des articles scientifiques là-dessus.



En VK, nous arrivons juste à cette tâche; Nous avons beaucoup de tâches, et une autre grande partie des tâches de publicité est déjà plus proche du ML. Étant donné que nous devons atteindre différents objectifs des annonceurs, nous devons prédire avec quelle probabilité l'utilisateur entreprendra telle ou telle action afin d'utiliser ces connaissances pour élaborer la stratégie d'enchères pour l'enchère.



Autrement dit, l'annonceur dit: je veux autant d'achats que possible dans mon magasin, pour dépenser au mieux mon budget. En tant que plate-forme publicitaire, nous réfléchissons à la manière de mettre en valeur les utilisateurs les plus susceptibles d'acheter quelque chose dans le magasin. Un problème typique de ML se pose. Classification binaire: '1' - l'utilisateur a cliqué sur l'annonce et a fait quelque chose de bien (acheté), '0' - l'utilisateur a ignoré l'annonce. Sur la base de ce problème, nous devons construire une classification binaire, où, à la sortie, nous utilisons la probabilité d'un événement utile comme un morceau de calculs supplémentaires de l'offre que nous utiliserons lors de l'enchère. La tâche semble très banale en termes de ML - comme, prenez-la et faites-la. Mais dans la vraie vie, une telle tâche présente de nombreuses difficultés, et je vais vous en parler quelques-unes. Le principal estque la publicité est généralement un projet de grande envergure. Tant en termes de données qu'en termes de charge. Vous devez répondre très rapidement à une demande. La fenêtre est, disons, 100 millisecondes - et vous devez avoir le temps de répondre. Sur cette base, certaines restrictions nous sont imposées - en particulier, sur la façon dont - en ingénierie - les modèles que nous utilisons pour prédire la publicité peuvent fonctionner. Vous pouvez proposer beaucoup de choses intéressantes, créer des réseaux de neurones complexes qui, à travers plusieurs couches, mettent en évidence les interactions non linéaires entre les fonctionnalités, mais dans la vie, il est nécessaire que tout cela fonctionne très rapidement.que nous utilisons pour prédire les publicités. Vous pouvez proposer beaucoup de choses intéressantes, créer des réseaux de neurones complexes qui, à travers plusieurs couches, mettent en évidence les interactions non linéaires entre les fonctionnalités, mais dans la vie, il est nécessaire que tout cela fonctionne très rapidement.que nous utilisons pour prédire les publicités. Vous pouvez proposer beaucoup de choses intéressantes, créer des réseaux de neurones complexes qui, à travers plusieurs couches, mettent en évidence les interactions non linéaires entre les fonctionnalités, mais dans la vie, il est nécessaire que tout cela fonctionne très rapidement.



Il est formé sur de grandes quantités de données. La tâche est à grande échelle, avec des ensembles de données de téraoctets. Sur cette base, vous devez généralement faire des choses comme l'informatique distribuée, la formation des modèles distribués, réfléchir aux modèles à utiliser. La publicité utilise traditionnellement des modèles linéaires tels que les régressions logistiques ou l'augmentation de gradient; parfois ils passent à des choses plus cool comme des machines de factorisation. Autrement dit, le choix des modèles est large, mais généralement des modèles assez simples sont utilisés - en raison de la forte charge.



Autre point proche du ML: nous utilisons des données extrêmement déséquilibrées en termes de feedback. Il y a un 1 pour 10 000 zéros. Comment former des machines ML dans ces conditions est une bonne question. Vous devez utiliser différentes astuces; le principal est justement la formulation du problème: n'essayez pas de prédire s'il y aura un clic (achat) ou non, par exemple, mais utilisez des approches liées aux probabilités, lissez au maximum les données à faible cardinalité, etc. On peut penser à beaucoup, mais la difficulté est que les événements positifs se produisent rarement dans la tâche.



Lorsque vous cliquez sur une annonce et achetez quelque chose, vous ne le faites pas toujours tout de suite. Autrement dit, très souvent, les événements ciblés que les annonceurs souhaitent se dérouler avec un long délai. Cela peut être non seulement un achat - par exemple, il peut s'agir de s'inscrire dans le jeu et de faire passer un personnage au niveau 10, ou d'approuver une demande de prêt. Ce genre de chose peut arriver en quelques jours. Et, lorsque nous avons besoin de former des modèles, qui, selon l'annonce, devraient dire maintenant que l'utilisateur fera quelque chose, mais, en fait, nous recevons des commentaires positifs seulement quelques jours après que quelque chose s'est passé, et cela crée problèmes supplémentaires. Pour faire face à ces problèmes, plusieurs solutions différentes sont apparues dans la science et la pratique. Une complexité si drôle.



Autre point: lorsqu'un utilisateur voit des publicités pour certains produits, il peut entrer en contact avec eux à partir de différents canaux marketing. Par exemple, vous êtes sorti dans la rue - vous avez vu un panneau d'affichage "Taxi VKontakte"; a commencé à feuilleter le flux - il y a aussi une publicité pour "Taxi VKontakte", est allé à un autre service - et il y a aussi une publicité pour "Taxi VKontakte", du service de publicité Yandex ou Google. Vous dites - oui, je comprends déjà, mettez l'application. Et après cela, Yandex, VK, Google, le panneau d'affichage doit déterminer à qui la participation à ce processus - dans une action utile pour l'annonceur - est de combien de pour cent.



Ce processus est appelé «attribution» - la question de l'attribution de quel contact avec l'annonceur a tellement fortement influencé votre décision de prendre l'action ciblée. Habituellement, des modèles simples sont utilisés - par exemple, "l'attribution du dernier clic": la dernière annonce sur laquelle vous avez cliqué obtient tous les prix. Mais alors il s'avère qu'il n'est pas rentable de s'engager dans le premier "contact froid" - montrer des publicités à un utilisateur qui n'est pas familier avec le produit. Sur cette base, il existe de nombreux modèles ML différents (y compris) qui vous permettent de mieux répartir les bénéfices des impressions. Ils utilisent, entre autres, des puces de type attention, des choses plus intéressantes issues des réseaux de neurones. Tâche cool. Et son objectif, en fin de compte, est de mieux négocier aux enchères, plus correctement, plus correctement, etc.



Mieux vous comprendrez qui a influencé la décision d'achat finale, mieux vous comprendrez la quantité à livrer à un moment donné. En conséquence, l'ensemble de l'industrie s'oriente vers la réalisation que travailler avec une prédiction de la probabilité que vous achèterez quelque chose est moins efficace que de travailler avec une idée du degré d'influence sur la décision d'achat. Peut-être étiez-vous déjà prêt à acheter le jeu de société que vous avez visité. Mais la publicité en ligne commence à vous rattraper. Peut-être que cette publicité n'aurait pas existé si tout le monde avait décidé au départ que vous achèteriez ce jeu de toute façon, et une publicité supplémentaire n'est pas nécessaire - vous avez déjà pris votre décision. Je pense au terme «test d'incrémentalité» et cela a toujours à voir avec le domaine ML de «l'inférence causale». Autrement dit, nous passons de la tâche de prédire la probabilité d'effectuer une action cible à la prédiction de l'impact - c'est-à-dire,la différence de probabilité de ce que vous allez acheter après avoir vu l'annonce, moins ce que vous avez déjà acheté. C'est aussi une transition très cool, une transition vers une nouvelle idée de comment travailler, comment prédire certains événements.



En général, il existe de nombreuses tâches dans la publicité, et presque toutes découlent du désir initial d'accomplir la tâche de l'annonceur. L'objectif «Je veux autant d'achats dans ma boutique que possible» se transforme en une séquence d'enchères dans l'enchère, car tous les annonceurs sont coupés dans l'enchère pour les impressions. C'est une stratégie. Et nous devons faire la transition la plus cool entre l'objectif initial et la séquence de paris. Cela implique le désir de comprendre le comportement des utilisateurs, d'extraire des intérêts commerciaux, de cibler automatiquement les publicités, de collecter des créations - c'est à quoi ressemblent les publicités - etc.



Si quelqu'un souhaite en savoir plus à ce sujet, j'ai une conférence lors d'une réunion, où je parle en détail de ce qu'un scientifique des données fait dans la publicité, et pourquoi y travailler peut être intéressant. Cela s'est avéré être une découverte pour moi. Au départ, lorsque je suis entré dans l'industrie, j'ai pensé - enfin, la publicité, ce qui est intéressant. La première, la deuxième, la troisième année s'est écoulée - et j'ai réalisé combien de tâches intéressantes il y avait, et combien il est intéressant de le faire du point de vue d'un ingénieur.



Je vais maintenant passer au ML en production. Vous avez maintenant suivi des cours d'apprentissage automatique ou étudié à l'université. Vous êtes un grand spécialiste de Kegel, disons, et vous êtes génial en cliquant sur des tâches d'analyse de données dans une compétition. Vous arrivez dans une véritable entreprise où un grand produit est développé de manière itérative et cohérente. Et ici, une mise au rebut se produit. Il s'avère que vous n'avez tout simplement pas beaucoup de compétences que vous aimeriez posséder au moment de votre entrée dans l'industrie. Personne ne vous a appris cela ni expliqué comment cela fonctionne dans la réalité; quelles sont les difficultés de l'industrie, à quel point il est différent de résoudre les problèmes avec une formulation claire. Si dans le domaine de la programmation on en parle encore beaucoup, dans le domaine de la science des données cela ne suffit pas.



Quelles difficultés rencontrent les nouveaux arrivants dans les équipes produit qui travaillent depuis longtemps sur le même produit - par exemple, rendre la publicité VK efficace? Par «débutants», je veux dire moi-même, y compris; Je fais ça depuis quatre ans et je me sens toujours comme un noob. C'est une chose très complexe et intéressante à comprendre.

La première chose que je veux dire est le désir de commencer immédiatement une tâche existante avec une méthode progressive cool que l'on peut trouver dans la science; désir de créer un vaisseau spatial qui fera tout cool à la fois. Dans la vraie vie, dans le domaine du développement de produits, la science des données est un endroit où l'on peut très mal prédire quelle méthode fonctionnera à la fin. Il est très difficile de travailler avec les exigences du produit d'origine, car vous ne savez pas comment résoudre le problème.



Vous avez une formulation de tâches: par exemple, pour créer un système de modération automatique qui devrait résoudre certains problèmes initiaux. Vous pouvez exécuter et trouver un article de premier ordre, dans lequel la tâche est parfaitement résolue, enroulez les transformateurs. Ou vous pouvez faire une simple heuristique qui regardera combien de fois nous avons approuvé un annonceur donné auparavant, prendre une part de ce nombre, comparer avec 70%, par exemple, et dire: celui-ci a souvent été approuvé avant. Une telle chose peut immédiatement aider grandement une entreprise, apporter des informations utiles. Et un système complexe prend beaucoup de temps, et ce n'est pas un fait qu'il sera rentable. En science des données, il faut arriver très rapidement à cette idée: on travaille constamment sur le mode des hypothèses, on ne sait pas ce qui fonctionnera, et afin de réduire les risques et apporter de la valeur à l'utilisateur final et à l'entreprise le plus rapidement possible,vous devez gérer des tâches d'une solution simple à une solution complexe. Souvent - pour étudier, en commençant par l'heuristique, sans aucun ML - il se peut qu'il n'y ait pas de données pour cela. Cela peut perturber le scientifique des données qui s'intéresse à la rotation de modèles neuronaux. Mais sans cela, vous ne pouvez pas obtenir la base de référence initiale - une petite étape à partir de laquelle vous pouvez commencer. Vous pouvez faire pendant très longtemps ce qui ne fonctionnera pas du tout.



La chose la plus difficile et la plus inhabituelle dans le travail dans l'industrie est qu'après avoir fabriqué un modèle, l'avez mis en production, sa vie ne fait que commencer. Il doit être activement soutenu et modifié. Avec le modèle, pendant qu'elle vit, il y a une grande variété de changements. Premièrement, il y a une chose telle que la formation servant de biais.



D'une manière simple: si un modèle fonctionne en production sur certaines données ou sur un ensemble d'ensembles généraux de tâches que votre modèle doit résoudre - et qu'il a été formé sur d'autres données obtenues par d'autres moyens - alors des erreurs se produisent souvent à ce stade et le modèle commence à mal fonctionner. Dans l'idéal, vous devez créer un système dans lequel les modèles, pendant l'analyse et la préparation initiale, sont formés sur les mêmes données sur lesquelles ils travailleront en production.



Deuxièmement, à tout moment, une fonction, ou le modèle lui-même, peut commencer à fonctionner de manière incorrecte, insuffisante. Vous disposez d'un référentiel qui stocke les caractéristiques; quelque chose a changé, au lieu de zéros, null a commencé à s'écouler, au lieu de "-1", d'autres valeurs ont commencé à être renvoyées; ou quelqu'un a multiplié ces valeurs par 100 parce qu'il pensait qu'il s'agissait de pourcentages et non de fractions. Et votre modèle commence soudainement à mal fonctionner. Vous devez remarquer ces changements d'une manière ou d'une autre. La qualité la plus cool du modèle ML est l'erreur silencieuse; elle ne dira jamais que quelque chose a mal tourné - elle donnera toujours un résultat, en fonction de ce que vous lui avez donné. Garbage in, garbage out. Cela doit être surveillé d'une manière ou d'une autre. Sur cette base, il y a un grand nombre de choses qui doivent être suivies pendant que le modèle fonctionne en production. Vous devez construire un système de surveillance, surveiller,pour que la distribution des fonctionnalités ne change pas beaucoup, et ainsi de suite. Vous devez comprendre que le modèle peut donner le jeu complet à tout moment et vivre d'une manière ou d'une autre dans ces conditions. Et si ces résultats retiraient directement de l'argent à nos utilisateurs - enchérissant sur une enchère publicitaire, ou en négociant sur une bourse, ou autre? Il existe de nombreuses façons de le faire, mais il est important d'y penser d'abord.



Sur cette base, comment la vie d'un data scientist change-t-elle, qui entre dans un environnement où il est nécessaire de développer de manière itérative des modèles? Il me semble qu'il faut d'abord être un bon ingénieur et un bon chercheur ensuite. Parce que votre code et vos conclusions, les connaissances que vous obtenez lors de la recherche et de l'analyse, vos modèles - tout ce qui est le produit de votre travail de data scientist - ne seront pas utilisés 2 ou 10 fois. Beaucoup de gens examineront comment les expériences sont construites, comment les résultats sont obtenus, pourquoi, où, comment ce qui fonctionne et comment il est utilisé dans la production. Par conséquent, ce qui manque le plus aux personnes qui viennent de zéro dans l'industrie - par exemple, d'une université, emportées par le sujet de la science des données, ou des analystes ou du ML - sont des compétences en ingénierie. Tout d'abord, un data scientist est un sous-type de développeur.Il travaille également avec du code, il travaille également avec quelque chose qui fonctionne ensuite en production dans un environnement variable que les gens utilisent. Ils liront votre code. Vous devrez proposer des solutions efficaces, bien prises en charge et testables. C'est la partie qui manque à beaucoup de candidats. Par conséquent, si vous êtes un débutant en science des données, accordez une grande attention aux compétences des développeurs. Comment rédiger un code efficace, compréhensible et bien entretenu; des solutions d'ingénierie afin de construire efficacement des processus d'échange de données. Tout cela vous aidera grandement dans votre carrière.ce qui manque à un grand nombre de candidats. Par conséquent, si vous êtes un débutant en science des données, accordez une grande attention aux compétences des développeurs. Comment rédiger un code efficace, compréhensible et bien entretenu; des solutions d'ingénierie afin de construire efficacement des processus d'échange de données. Tout cela vous aidera grandement dans votre carrière.ce qui manque à un grand nombre de candidats. Par conséquent, si vous êtes une personne débutante en science des données, accordez une grande attention aux compétences des développeurs. Comment rédiger un code efficace, compréhensible et bien entretenu; des solutions d'ingénierie afin de construire efficacement des processus d'échange de données. Tout cela vous aidera grandement dans votre carrière.



Le deuxième conseil et la deuxième chose qui sépare les scientifiques des données de ceux qui travaillent dur est l'immersion dans le contexte du produit et dans la partie ingénierie de l'environnement de votre modèle. Disons que vous développez un modèle, et en tant que data scientist, il est facile pour vous de dire: «Mon travail est de développer le modèle, tout le reste est hors de ma responsabilité. J'enseigne des mannequins, c'est mon affaire. Le backend les intégrera, l'ingénieur de données préparera les données, le testeur les testera, le chef de produit décidera comment les utiliser. " Mais un grand nombre d'implications et de façons de rendre le modèle plus cool et plus précieux dépassent le processus de conception du modèle lui-même. Exemple: si vous classez les résultats de recherche, alors vous classez les documents provenant de l'extérieur; il y a une sorte de sélection des candidats. Si vous savez comment fonctionne cette sélection, vous pouvez facilement comprendreque le goulot d'étranglement dans le travail n'est pas que le modèle ne fonctionne pas bien, mais que des documents incorrects, inintéressants et incomplets sont soumis à l'entrée. D'un autre côté, si vous savez que dans votre produit, votre modèle peut, dans certaines circonstances, ne pas fonctionner comme vous le souhaiteriez, mais qu'il est très difficile d'améliorer ce fonctionnement, vous pouvez alors changer le produit pour le modèle. Nous pouvons dire: maintenant le produit est agencé différemment, maintenant ce n'est pas l'utilisateur qui appelle le modèle, mais le modèle appelle une sorte d'outil automatique qui coordonne plusieurs paramètres que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes plongé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.que le modèle ne fonctionne pas bien, mais que des documents incorrects, inintéressants et incomplets sont soumis pour saisie. D'un autre côté, si vous savez que dans votre produit, votre modèle peut, dans certaines circonstances, ne pas fonctionner comme vous le souhaiteriez, mais qu'il est très difficile d'améliorer ce fonctionnement, vous pouvez alors changer le produit pour le modèle. Nous pouvons dire: maintenant le produit est disposé différemment, maintenant ce n'est pas l'utilisateur qui appelle le modèle, mais le modèle appelle une sorte d'outil automatique qui coordonne plusieurs paramètres que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes immergé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.que le modèle ne fonctionne pas bien, mais que des documents incorrects, inintéressants et incomplets sont soumis pour saisie. D'un autre côté, si vous savez que dans votre produit, votre modèle peut, dans certaines circonstances, fonctionner différemment de ce que vous souhaiteriez, mais qu'il est très difficile d'améliorer ce fonctionnement, vous pouvez alors changer le produit pour le modèle. Nous pouvons dire: maintenant le produit est disposé différemment, maintenant ce n'est pas l'utilisateur qui appelle le modèle, mais le modèle appelle une sorte d'outil automatique qui coordonne plusieurs paramètres que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes immergé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.documents incomplets. D'un autre côté, si vous savez que dans votre produit, votre modèle peut, dans certaines circonstances, ne pas fonctionner comme vous le souhaiteriez, mais qu'il est très difficile d'améliorer ce fonctionnement, vous pouvez alors changer le produit pour le modèle. Nous pouvons dire: maintenant le produit est disposé différemment, maintenant ce n'est pas l'utilisateur qui appelle le modèle, mais le modèle appelle une sorte d'outil automatique qui coordonne plusieurs paramètres que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes plongé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.documents incomplets. D'un autre côté, si vous savez que dans votre produit, votre modèle peut, dans certaines circonstances, ne pas fonctionner comme vous le souhaiteriez, mais qu'il est très difficile d'améliorer ce fonctionnement, vous pouvez alors changer le produit pour le modèle. Nous pouvons dire: maintenant le produit est disposé différemment, maintenant ce n'est pas l'utilisateur qui appelle le modèle, mais le modèle appelle une sorte d'outil automatique qui coordonne plusieurs paramètres que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes immergé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.comme nous le souhaiterions, mais il est très difficile d'améliorer ce fonctionnement, vous pouvez alors changer le produit pour le modèle. Nous pouvons dire: maintenant le produit est disposé différemment, maintenant ce n'est pas l'utilisateur qui appelle le modèle, mais le modèle appelle une sorte d'outil automatique qui coordonne plusieurs paramètres que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes immergé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.comme nous le souhaiterions, mais il est très difficile d'améliorer ce fonctionnement, vous pouvez alors changer le produit pour le modèle. Nous pouvons dire: maintenant le produit est disposé différemment, maintenant ce n'est pas l'utilisateur qui appelle le modèle, mais le modèle appelle une sorte d'outil automatique qui coordonne plusieurs paramètres que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes plongé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes immergé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.que l'utilisateur ne peut pas suivre. L'idée est que vous pouvez changer le produit pour le modèle, et non l'inverse. Si vous êtes immergé dans ces domaines, en tant que data scientist et ingénieur ML, vous pouvez générer d'énormes bénéfices et avantages pour votre produit et vos utilisateurs.



Revenons à la question que le ML est le domaine de la spéculation. Nous ne savons jamais comment proposer un excellent produit, nous devons essayer différentes voies vers la solution finale. Par conséquent, vous devez créer le flux de travail un peu différemment. Souvent, les gens, en particulier les ingénieurs dans les premières périodes de développement de carrière, pensent que toutes sortes de puces de gestion - SCRUM, Agile - sont toutes des conneries et qu'elles ne fonctionnent pas. Cependant, ils ne fonctionnent souvent pas vraiment car ils sont utilisés dans le mauvais contexte. Par exemple, si jamais vous entrez dans une équipe de science des données SCRUM, ce sera difficile et douloureux pour vous. Tout à coup, il s'avère que la recherche est devenue difficile à prédire, et vous ne saurez pas comment vous en viendrez au résultat, mais ici - itérations de deux semaines, autre chose, en général, la gestion génère des déchets inutiles. Processus de travail,dans lequel vous travaillez devrait vous aider, pas nuire. Autrement dit, lorsque la science des données prend et applique des méthodes issues du développement de logiciels conventionnels, elle n'est pas toujours efficace.



Par conséquent, je veux dire séparément: si vous travaillez en tant que data scientist et que vous devez interagir avec différentes personnes - clients, collègues, coopérer au travail - alors il serait bon que vous vous occupiez de comprendre comment mieux construire un processus collaboratif, une activité d'équipe auto-organisée. Un bon moyen de comprendre comment faire cela est de vous rendre dans une communauté appelée LeanDS. Il a rassemblé des personnes intéressées à comprendre comment mieux construire les processus de travail sur les problèmes de ML dans un environnement de développement de produit. De là, vous pouvez apprendre beaucoup de choses intéressantes que les gens ont déjà imaginées et que différents spécialistes utilisent dans différentes entreprises. Et d'après ce que je conseillerais, tout d'abord, vous devez passer à une approche lorsque vous formulez toutes les tâches à travers des hypothèses de produits. Quand tu ne sais pasce qui apportera des résultats, mais vous le comprenez: je pense que telle ou telle chose aidera à promouvoir les tâches des utilisateurs telle ou telle chose, les métriques de pompage, et dans tel ou tel moment, cela peut être vérifié. De telles hypothèses sont beaucoup plus faciles à utiliser. Basé sur un flux de travail aussi incompréhensible, où il est très difficile de prédire combien de temps prendra votre tâche, quand vous arriverez au résultat, et de quelle manière, à mon avis, Kanban fonctionne très bien. Je ne vais pas en parler pendant longtemps, je recommande juste: essayez de regarder la communauté LeanDS. Découvrez leurs matériaux. Je pense que tous ceux qui travaillent dans la science des données et sont confrontés à des processus qui ont migré du développement conventionnel seront intéressés à comprendre ce qui peut être fait différemment et comment utiliser les processus à leur avantage.que telle ou telle chose aidera à promouvoir les tâches des utilisateurs, les métriques de pompage, et à tel ou tel moment, cela pourra être vérifié. De telles hypothèses sont beaucoup plus faciles à utiliser. Basé sur un flux de travail aussi incompréhensible, où il est très difficile de prédire combien de temps prendra votre tâche, quand vous arriverez au résultat, et de quelle manière, à mon avis, Kanban fonctionne très bien. Je ne vais pas en parler pendant longtemps, je vous conseille simplement: essayez de regarder la communauté LeanDS. Découvrez leurs matériaux. Je pense que tous ceux qui travaillent dans la science des données et sont confrontés à des processus qui ont migré du développement conventionnel seront intéressés à comprendre ce qui peut être fait différemment et comment utiliser les processus à leur avantage.que telle ou telle chose aidera à promouvoir les tâches des utilisateurs, les métriques de pompage, et à tel ou tel moment, il pourra être vérifié. De telles hypothèses sont beaucoup plus faciles à utiliser. Basé sur un flux de travail aussi incompréhensible, où il est très difficile de prédire combien de temps prendra votre tâche, quand vous arriverez au résultat, et de quelle manière, à mon avis, Kanban fonctionne très bien. Je ne vais pas en parler pendant longtemps, je vous conseille simplement: essayez de regarder la communauté LeanDS. Découvrez leurs matériaux. Je pense que tous ceux qui travaillent dans la science des données et sont confrontés à des processus qui ont migré du développement conventionnel seront intéressés à comprendre ce qui peut être fait différemment et comment utiliser les processus à leur avantage.De telles hypothèses sont beaucoup plus faciles à utiliser. Basé sur un flux de travail aussi incompréhensible, où il est très difficile de prédire combien de temps prendra votre tâche, quand vous arriverez au résultat, et de quelle manière, à mon avis, Kanban fonctionne très bien. Je ne vais pas en parler pendant longtemps, je vous conseille simplement: essayez de regarder la communauté LeanDS. Découvrez leurs matériaux. Je pense que tous ceux qui travaillent dans la science des données et sont confrontés à des processus qui ont migré du développement conventionnel seront intéressés à comprendre ce qui peut être fait différemment et comment utiliser les processus à leur avantage.De telles hypothèses sont beaucoup plus faciles à utiliser. Basé sur un flux de travail aussi incompréhensible, où il est très difficile de prédire combien de temps prendra votre tâche, quand vous arriverez au résultat et de quelle manière, à mon avis, Kanban fonctionne très bien. Je ne vais pas en parler pendant longtemps, je vous conseille simplement: essayez de regarder la communauté LeanDS. Découvrez leurs matériaux. Je pense que tous ceux qui travaillent dans la science des données et sont confrontés à des processus qui ont migré du développement conventionnel seront intéressés à comprendre ce qui peut être fait différemment et comment utiliser les processus à leur avantage.juste un conseil: essayez de regarder la communauté LeanDS. Découvrez leurs matériaux. Je pense que tous ceux qui travaillent dans la science des données et sont confrontés à des processus qui ont migré du développement conventionnel seront intéressés à comprendre ce qui peut être fait différemment et comment utiliser les processus à leur avantage.juste un conseil: essayez de regarder la communauté LeanDS. Découvrez leurs matériaux. Je pense que tous ceux qui travaillent dans la science des données et sont confrontés à des processus qui ont migré du développement conventionnel seront intéressés à comprendre ce qui peut être fait différemment et comment utiliser les processus à leur avantage.



En conséquence, je vais vous dire ce que les gars qui viennent faire des tâches de science des données au début de leur carrière manquent, et comment vous pouvez devenir plus cool en tant que spécialiste et augmenter les chances d'obtenir un emploi dans un endroit que vous aimez.



Premièrement, comme je l'ai déjà dit, les compétences en ingénierie sont très importantes pour un data scientist. Pas moins que des compétences liées au ML, à l'analyse de données, à la théorie des probabilités, etc. Tout d'abord, je vous souhaite d'être un ingénieur cool, et deuxièmement, un développeur. Deuxièmement, de nombreuses personnes n'ont pas la capacité de reformuler un problème commercial en un problème de science des données. C'est une compétence distincte. C'est une situation où vous devez comprendre exactement ce que le client attend de vous - appelons cela une personne qui veut que quelque chose fonctionne bien. Revenant à l'exemple de la modération automatique: que veut-il exactement? Après tout, la tâche d'auto-modération peut être définie de manière très différente, avec différentes choses spécifiques que nous souhaitons améliorer dans notre système. Sur la base des tâches, la tâche de science des données est formulée de différentes manières; en fonction du problème de la science des données, les métriques optimisées sont formulées de différentes manières,une méthode pour sélectionner un ensemble de données, évaluer la qualité, etc. Cette compétence est très précieuse pour tous les data scientists. Supposons qu'un client dise que ses modérateurs ne peuvent pas gérer le flux des tâches de traitement pour vérifier si l'annonce est bonne ou doit être bannie avec un sujet spécifique. Ensuite, vous découvrirez qu'il existe de nombreuses raisons différentes pour l'interdiction, et pendant la modération, vous devez les décrire clairement afin que l'annonceur puisse corriger l'annonce. Sur cette base, vous décidez que vous devez faire une sorte de classification multi-classes qui générera un texte expliquant la raison, et la tâche sera très difficile. Mais attendez - peut-être que le problème peut être reformulé d'une manière différente. Et il s'avère que vous pouvez vous concentrer non pas sur le rejet des annonces, mais sur le choix de la bonne annonce. Si l'annonce est bonne, vous pouvez simplement l'ignorer,si c'est mauvais, il peut être donné aux modérateurs en direct, et aucune explication ne doit être générée. Sur cette base, vous comprenez: si vous avez besoin de vous concentrer sur ce qui est bon, ce qui peut être ignoré, vous devez comprendre comment gérer cette entreprise - ce flux d'annonces qui traversera votre système. Vous l'avez compris: oui, en fonction de ce problème, je peux choisir ROC AUC comme métrique qui me convient, elle décrit bien la relation entre la précision du modèle et le nombre d'annonces qui passeront automatiquement par notre système. Etc. Autrement dit, sur la base de ce dialogue entre le client conditionnel et vous, en tant que spécialiste, vous pouvez grandement simplifier votre tâche, en ayant une bonne compréhension de la façon de reformuler une tâche commerciale en une tâche de science des données.vous comprenez: si vous avez besoin de vous concentrer sur ce qui est bon, ce qui peut être ignoré, vous devez comprendre comment gérer cette entreprise - ce flux d'annonces qui passera par votre système. Vous l'avez compris: oui, en fonction de ce problème, je peux choisir ROC AUC comme métrique qui me convient, elle décrit bien la relation entre la précision du modèle et le nombre d'annonces qui passeront automatiquement par notre système. Etc. Autrement dit, sur la base de ce dialogue entre le client conditionnel et vous, en tant que spécialiste, vous pouvez grandement simplifier votre tâche, en ayant une bonne compréhension de la façon de reformuler une tâche commerciale en une tâche de science des données.vous comprenez: si vous avez besoin de vous concentrer sur ce qui est bon, ce qui peut être ignoré, vous devez comprendre comment gérer cette entreprise - ce flux d'annonces qui passera par votre système. Vous l'avez compris: oui, en fonction de ce problème, je peux choisir ROC AUC comme métrique qui me convient, elle décrit bien la relation entre la précision du modèle et le nombre d'annonces qui passeront automatiquement par notre système. Etc. Autrement dit, sur la base de ce dialogue entre le client conditionnel et vous, en tant que spécialiste, vous pouvez grandement simplifier votre tâche, en ayant une bonne compréhension de la façon de reformuler une tâche commerciale en une tâche de science des données.Vous l'avez compris: oui, en fonction de cette tâche, je peux choisir ROC AUC comme métrique qui me convient, elle décrit bien la relation entre la précision du modèle et le nombre d'annonces qui passeront automatiquement par notre système. Etc. Autrement dit, sur la base de ce dialogue entre le client conditionnel et vous, en tant que spécialiste, vous pouvez grandement simplifier votre tâche, en ayant une bonne compréhension de la façon de reformuler une tâche commerciale en une tâche de science des données.Vous l'avez compris: oui, en fonction de cette tâche, je peux choisir ROC AUC comme métrique qui me convient, elle décrit bien la relation entre la précision du modèle et le nombre d'annonces qui passeront automatiquement par notre système. Etc. Autrement dit, sur la base de ce dialogue entre le client conditionnel et vous, en tant que spécialiste, vous pouvez grandement simplifier votre tâche, en ayant une bonne compréhension de la façon de reformuler une tâche commerciale en une tâche de science des données.comment reformuler un problème commercial en un problème de science des données.comment reformuler un problème commercial en un problème de science des données.



Je voudrais vous dire une dernière chose qui aide beaucoup. Il s'agit de comprendre quels signaux spécifiques sont transmis au modèle que vous développez sous la forme de fonctionnalités et comment il les traite. C'est une compétence qui appartient directement à la compétence de l'équipe de développement ML. Pour une raison quelconque, de nombreux candidats, d'après mon expérience, adhèrent à l'approche "ML va tout manger" - mettez tout dans un boost de gradient, et cela fera l'affaire. J'exagère, mais dans l'ensemble, c'est très cool de comprendre clairement que le signe que vous utilisez contient exactement les informations que vous avez transmises, et non les informations que vous avez prévu de transmettre.



Par exemple, supposons que vous décidiez qu'un bon indicateur de la réactivité d'un utilisateur à une annonce serait un taux de clics. Autrement dit, nous prenons le nombre d'annonces vues pendant tout le temps et le nombre de clics sur l'annonce, nous divisons l'une par l'autre et obtenons l'indicateur d'utilisateur. Dans un cas, il dit que l'utilisateur aime cliquer sur l'annonce, dans l'autre, il ne clique pas du tout. Et nous transmettons ce nombre à notre modèle - augmentation de gradient ou régression linéaire. Une réflexion peut alors surgir: le modèle n'a pas de moyen de distinguer les utilisateurs pour lesquels nous avons beaucoup de statistiques, de ceux qui sont peu nombreux. Une statistique peut ne pas signifier qu'un utilisateur clique toujours sur une annonce, mais qu'il n'a eu qu'une seule impression. La question se pose: comment présenter cette fonctionnalité de telle sorte que le modèle distingue une grande quantité de statistiques d'une petite? Première,ce qui vient à l'esprit est de mettre le nombre d'impressions d'annonces dans le modèle. Vous pouvez simplement indiquer le nombre d'impressions, mais la dépendance de notre confiance dans les statistiques sur le nombre d'impressions d'annonces d'un utilisateur n'est pas linéaire. Il s'avère que vous devez mettre non seulement des impressions, mais un carré ou un logarithme des impressions. Ensuite, il s'avère que si nous avons un modèle linéaire, ces deux fonctionnalités n'interagissent en aucune façon. Il ne sera pas possible de faire des schémas comme "si l'utilisateur a telle ou telle quantité de statistiques, alors on lui fait confiance pour tant, on utilise une fonctionnalité avec tel ou tel poids". La régression linéaire ne peut pas créer de telles connexions, mais le renforcement du gradient le peut. Ou vous pouvez reformuler la fonctionnalité. Au lieu de statistiques brutes, vous pouvez le lisser, utiliser des approches issues des transitions bayésiennes, ajouter des connaissances a priori sur la façon dont les utilisateurs cliquent en moyenne,et en utilisant une certaine formule pour les mélanger. Etc. Il s'avère qu'il est très important de comprendre quel signal spécifique vous transmettez en tant que signe.



Et deuxièmement, il est très important de savoir comment cette fonctionnalité sera utilisée dans le modèle. Dans la régression linéaire, il sera utilisé un à la fois, en boosting de gradient d'une manière différente, et s'il s'agit d'un réseau de neurones, il fonctionne avec un autre type de données et comment le contexte y fonctionne.

Vous n'avez pas besoin de savoir exactement comment fonctionne le modèle, mais vous avez besoin d'une compréhension intuitive de ce qui est possible et de ce qui ne l'est pas. C'est une compétence intéressante pour un spécialiste du ML. Si vous me demandez comment fonctionne un algorithme particulier dans le renforcement du gradient, il me sera difficile de l'expliquer en détail, mais sur mes doigts, je peux le faire. Et dans la plupart des situations pratiques, cela suffit pour utiliser efficacement l'outil.



Au final, je voudrais conseiller à tout le monde d'utiliser une telle approche itérative dans la vraie vie, dans les produits, quand on passe du simple au complexe. Vous commencez par des hypothèses simples qui sont rapidement testées, et vous arrivez lentement à ces articles scientifiques très complexes et intéressants. Et puis la ligne de base est prête, et vous pouvez déjà écrire un article pour KDD, par exemple.



Je veux aussi dire - peut-être qu'ils vont m'aider; J'ai deux performances lors de rencontres. La première est consacrée aux tâches de science des données qui peuvent être effectuées dans la publicité (et, en général, aux raisons pour lesquelles les spécialistes de la science des données peuvent être intéressés par les technologies publicitaires comme tremplin pour appliquer leurs compétences à des défis d'ingénierie intéressants). Et la seconde est une histoire sur les pièges dans lesquels nous sommes tombés en tant qu'équipe de développeurs ML du système, sur la façon dont nous en sommes sortis et comment vous n'êtes pas tombé dans les mêmes pièges que ceux dans lesquels nous sommes tombés en raison du manque d'expérience. Je voudrais partager cette expérience. Je pense qu'il y a beaucoup de choses utiles à découvrir ici.



Et pourtant - avant cela, j'ai parlé de la communauté LeanDS dédiée aux processus de science des données, à la gestion de projets de science des données en ML. Je vous conseille aussi fortement de regarder leurs matériaux, les gars font des choses très cool.



Avez-vous déjà construit un modèle complet d'entonnoir de vente?



En fait, nous ne l'avons pas fait. Mais ici, il est très important que l'annonceur externe configure tout très bien. Par conséquent, il est bon de gérer les entonnoirs de vente lorsque vous êtes un data scientist du côté d'un annonceur. Disons que vous travaillez pour une grande entreprise qui travaille avec un grand nombre de canaux marketing et que vous essayez de créer des analyses qui vous permettront de bien comprendre comment fonctionnent les différents canaux marketing, dans quelle mesure les entonnoirs de vente sont construits, etc. Pour nous, du côté de VK en tant que système pour les annonceurs, lorsque vous travaillez avec de telles choses, il est très important que l'annonceur ait tout bien configuré. Pour que les pixels publicitaires donnent toujours les informations correctes sur la façon dont l'utilisateur est entré sur le site, a ajouté quelque chose au panier et acheté. Et puis nous devons utiliser ces informations pourpour rendre les stratégies publicitaires meilleures et plus efficaces. Je veux faire ça; nous ne l'avons pratiquement pas fait, car la mise en place de tels systèmes est souvent difficile pour un annonceur. C'est probablement plus facile de le faire lorsque vous avez un contrôle total.



Et une telle question: comment connecter des entités (définir des attributs) lors de la construction d'un modèle?



Par exemple, visiteur du site -> client



Il est probablement bon de commencer à partir d'une activité utilisateur précédente. En général, cela se fait de différentes manières; Je peux vous en dire un qui est utilisé dans la construction de systèmes publicitaires, il s'appelle sosie. Vous avez peut-être entendu parler de lui. C'est une situation où nous disons: voici les utilisateurs qui ont visité notre site, et voici ceux qui ont acheté quelque chose. Voyons quels utilisateurs ressemblent le plus à ceux qui ont acheté quelque chose et moins à ceux qui n'ont rien fait. Lorsque nous formons un tel modèle, où «1» sont ceux qui ont acheté, «0» ceux qui n'ont rien fait et «0,5» sont ceux qui ont visité le site, nous pouvons apprendre à classer tous les utilisateurs de notre système par similitude avec un client potentiel. Nous pouvons utiliser ces connaissances dans notre modèle et indiquer au client quelles fonctionnalités,en termes de modèle, ils séparent les clients des visiteurs ordinaires.






All Articles