lundi 12 octobre 2015

[Super] stages ingénieur


L'équipe AB Tasty, gagnant du concours d'innovation
à E-commerce Paris 2015
Je suis à la recherche de stagiaires ingénieur(e)s pour travailler avec moi dans la startup AB Tasty. Nous y faisons du test A/B (c'est quoi le test AB?), mais pas seulement!
Nous inventons des algorithmes et services qui permettent à nos clients (e-commerçant, et média, principalement) de tirer meilleur profit de leur site web.


Voyez cette vidéo où les outils d'AB Tasty permettent de prouver que Clara Morgane est une bonne égérie pour vendre de la lingerie.

Je cherche 2 types de profils différents :
  • Des étudiants intéressés par les techno' web (back ou front office)
  • Des étudiants intéressés par l'algorithmique, l'analyse de données, le machine-learning, la visualisation. C'est une super opportunité de se faire une première expérience en data-science (une des spécialités les plus demandées actuellement!).
AB Tasty est une startup en hypercroissance, la moyenne d'âge est très jeune (je suis très largement le plus âgé ;) ) et l'ambiance y est super (voyez notre compte Facebook). Nous sommes dans le quartier du "Silicon Sentier" là où il y a le plus de startup à Paris.

Il s'agit bien sur de stages payés, d'une durée d'au moins 6 mois (selon profil et en phase avec l'usage des rémunération de stages niveau ingénieur).

Si cela vous intéresse vous pouvez me contacter directement par mail ("prénom.nom@gmail.com") via Twitter : @hwassner, ou linkedIN.

Je ne peux pas dévoiler ici les sujets sur lesquels nous allons travailler, mais nous pourront bien sur discuter de cela en "live" en entretien. J'ai plein d'idées à tester et de problématiques à creuser, le choix précis de votre sujet se fera selon votre profil et ce qui vous intéresse.

lundi 5 octobre 2015

Les entreprises sont elles si attachées à leur données ?

La donnée l'or noir du 21ieme siècle ? Oui et non. Oui bien sur car avec les données et les moyens récent d'analyse on peut prédire des tas de choses et en produire de la valeur. C'est d'ailleurs la raison pour laquelle ces entreprises (et toutes les autres) ont longtemps été contre tout partage de données.
Les entreprises étaient frileuses a le faire, même quand il y avait beaucoup a y gagner, et qu'elles se protégeaient via des "Non Disclosure Agreement" (NDA).


Mais alors comment se fait-il que de plus en plus de grosses entreprises (Yahoo, Netflix, microsoft, SNCF, ...) distribuent maintenant des données gratuitement ? Cela se fait principalement dans le contexte des compétitions de machine learning via des sites comme Kaggle, pour faire des hackathons, ou via l'open Data. Les sujets sont de la recommandation de produits en fonction du visiteur pour des site de e-commerce, ou du choix de publicité à montrer à un visiteur de site média, etc... Il y a des tas de sujets et de problématique business différentes.

Il y a du changement dans l'air...

Pourquoi le font elles maintenant, alors qu'il n'y a même pas 5 ans il était inimaginable de pouvoir accéder à de telles données ? Parfois, même la signature d'un NDA était insuffisante à les rassurer.
Qu'est ce qui a changé? Pourquoi partagent-elle ces données maintenant ?

Selon moi il y a plusieurs raisons à cela, tout d'abord le manque de profils  en data science :
  • Vu la difficulté d'embauche des "data scientist", ces compétitions sont un moyen d'avoir des algorithmes de machine learning sans avoir à embaucher des data scientists.
  • Ces compétitions sont un moyen pour ces entreprise d'être exposé à de nouvelles idées, et d'entrer en contact privilégié avec des data scientist, à but d'embauche.
Mais ce n'est pas la raison la plus intéressante...
Une autre raison, finalement assez simple : ces données n'ont (finalement) que peu de valeur ! Et il semblerait que les dirigeant commencent a le comprendre.
  • Tout d'abord parce C'est des données ultra spécifiques,
  • et aussi parce que c'est un ensemble de données statiques.
Mais alors...

Les données ne sont plus "le pétrole du 21 siècle" ?

Si, mais maintenant on délimite bien mieux où se situe exactement la valeur, et finalement la valeur n'est pas dans la donnée, mais dans la capacité de la collecter et de l'analyser !
Car fondamentalement, on possède la valeur quand on possède toute la chaîne de traitement :

       Collecte --> Stockage --> Analyse --> Vente

Comprenant cela, diffuser uniquement les données ne constitue pas un risque car la donné seule n'est pas valorisable. Typiquement, si je sais quelle publicité afficher à quel visiteur ne me rapporte rien si je ne possède pas une régie de pub... D'ailleurs même si je possède une régie de pub, je ne dispose pas des mêmes publicités a afficher que celle qui sont dans le lot de donnée mis à disposition.
De même savoir que tel visiteur d'un site d'e-commerce préférera tel produit dans un catalogue n'a plus de valeur si la visite est terminée. La plupart des données partagées correspondent à des situations éphémères.

Même si on essaye de se mettre dans une situation où il y a des acteurs disposant de la capacité de collecter des données et de la valoriser, là non plus on se rend compte que le risque est faible. Tout simplement parce que les données sont périssables! On se rend compte de plus en plus, que ces modèles prédictifs ne sont pas stables dans le temps, il est nécessaire de les mettre à jour fréquemment. Que ce soit les préférence de films, musiques, produits, et même les profils d'internautes, cela évolue, et finalement assez rapidement.

Par conséquent, ni les données, ni même les modèles n'ont réellement de valeur en soit, si on ne dispose pas de toute la chaîne. Par conséquent ceux qui possède cette chaîne peuvent mettre des données à disposition sans prendre de gros risques. Cela leur permet d'améliorer leur processus et donc leur gains.

Finalement c'est ceux qui sont à la collecte de la donnée, quand elle est encore "fraîche", qui sont le mieux placés pour la valoriser. L'analyse n'est qu'une étape, qui est plus ou moins compliquée à mettre en oeuvre et qui coûte plus ou moins chère, mais elle n'a aucune valeur si elle est séparée de la collecte.

Conclusion : attention aux méfaits de l'outsourcing

Cette tendance d'ouverture des données, et de compétitions ouvertes est une réponse au manque de data-scientist. Cela montre surtout une évolution des mentalités des entreprises, ce qui est une bonne chose. J'espère seulement que cela n'ira pas jusqu'à l'externalisation des data-scientists, comme il y a eu une vague d'outsourcing pour l'informatique via les SS2I (avec tout les problèmes que cela amène coté employeur et employé).

Autre point négatif, cette vision d'ouverture via la compétition est extrêmement normative (dans sens négatif). L'intérêt d'avoir des data-scientists n'est pas tant de répondre à des questions fermées de concours mais plutôt de créer de nouvelles opportunités que le business classique ne pas percevoir.


lundi 31 août 2015

MongoDB c'est bien , mais ...


Depuis quelques temps j'utilise mongoDB, une base de donnés NoSQL pour un projet personnel. Je ne suis pas un expert en BD mais je voulais quand même partager mon avis sur cet outil, dans l'espoir d'en apprendre certainement un peu plus encore via des retours de lecteurs...

Pourquoi mongoDB?

Tout d'abord je tiens a préciser que même si j'adore manipuler des concepts abstraits, j'ai en général une approche très pragmatique des choses. Le choix de mongoDB pour mon projet c'est donc fait sur ces critères, c'est tout :
  • C'est du NoSQL (et je voulais voir l'intérêt du NoSQL)
  • C'est un projet "mature"
J'avoue n'avoir pas fait plus d'étude de marché que ça, car de toutes façon je pense que c'est en utilisant une techno' qu'on se rend vraiment compte de ses qualités et défauts...

Pour faire quoi ?

Sans rentrer dans les détails de mon projets, je collecte des données sur Twitter. Voici quelques éléments pour se faire une idée de l'ordre de grandeur des données, collectées en 3 semaines :
  • 5,4 Millions de Tweets
  • 770 milliers de profils Twitter (ainsi que leur liste d'abonnements, c'est à dire de quelques centaines à quelques milliers d'identifiants de comptes pour chaque profil.)
Ça tourne sur un serveur de chez Online sous Ubuntu. (~16€/mois, cliquez sur le lien pour voir les spécifications du serveur.)

Les "plus" de mongoDB

Voici ce que j'ai apprécié dans l'utilisation de mongoBD:
  • C'est un projet mature , ce qui veux dire qu'on trouve plein de "driver" (moyen de se connecter à la base pour y mettre ou récupérer des données.). J'ai même trouvé un driver en Lua,  ;) c'est dire ....
    On trouve aussi un tas d'aide sur stack overflow, ou ailleur.
    En plus d'utiliser une BD locale, j'utilise aussi les services de mongoLab (DBaaS), qui sont franchement bien, et l'équipe support est géniale (ils m'ont super bien aidé!!).
  • C'est souple on peut tout modifier en cours de route, et les collections de données peuvent stocker des éléments hétérogènes. C'est une base sans schéma, cela veux dire qu'on est pas obligé de déclarer à l'avance le format des données. On peut stocker des nombre, des chaînes de caractères, et des tableau pouvant eux aussi contenir des éléments de ce type. Vous pouvez composer ces types à l'infini pour stocker vos données. Bref ce que vous mettez dans un JSON se transpose directement en mongoDB. C'est très simple , et puissant à la fois.
    C'est très appréciable quand on fait de la recherche et qu'on ne peut pas tout prévoir à l'avance.
  •  

Mais il y a aussi des "moins"

Tout n'est pas rose, et j'ai aussi bien galéré sur certains points:
  • Il n'y a pas, a proprement parler, de tri-aléatoire.Il peut être assez courant, quand on manipule beaucoup de donnes, de ne parfois qu'en prendre une petite partie, aléatoirement, on appelle cela de l'échantillonnage... Et bien bizarrement mongoDB ne fait pas cela! Même simplement demander à la BD de "trier" aléatoirement les données extraites grâce à une requête, ça n'existe pas. Cette dernière opération peut etre faite ailleur, mais cela oblige alors de d'abord charger toutes les données pour les mélanger ensuite: ce n'est pas très efficace...
  • Il n'y a pas de moyen simple de contrôler la mémoire (RAM) que consomme mongoDB. Dans la pratique ça peut etre assez gênant. J'aurai bien aimé pouvoir limiter la RAM utilisé, en acceptant bien sur une baise de performance. Ce qui fait que en pratique, il est conseillé de dédier entièrement un serveur à mongoDB. Sinon les autres applications risquent d'être "à l'étroit"...
  • Certaines opérations ne se font pas , et sans message d'erreur!
    Certaines fonctionnalité ne marchent pas, ... comme dans toutes les techno', mais il aurait été appréciable surtout pour une base de données, d'avoir un message d'erreur indiquant que l'opération n'a pas été faite.
  • Il y parfois des choix difficilement explicable. Voici un exemple...
    Il y a moyen de filtrer une requête par son type de donné (nombre , chaîne de caractère, etc...), c'est très utile puisque c'est une base sans schéma par conséquent un même champ peut parfois contenir un nombre ou une chaîne de caractère.  Par contre pour les tableaux (pouvant eux aussi contenir des éléments hétérogènes), la logique est telle qu'il est impossible de savoir si le type d'un champs est un tableau ou pas !! Par contre on peut savoir si le tableau contient un nombre ou une chaîne de caractère...
Tout ceci est une vue personnelle issue d'une expérience spécifique sur mon projet.

Voilà, en espérant que ces informations vous soit utiles dans le choix de la BD que vous utiliserez pour vos projets. N'hésitez pas à commenter si vous voulez partager votre experience avec mongoDB ou d'autres types de bases de données.


mardi 4 août 2015

Statistique bayésiennes

Dans les écoles d'ingénieur on apprend naturellement des bases de statistiques, car c'est une science très utile dont on trouve des applications un peu partout...

Bien sur, comme pour tout ce qui est enseigné à l'école, on se concentre sur les techniques et méthodes qui sont éprouvées (et donc parfois un peu anciennes...). Ainsi quand il s'agit d'aborder la thématique des tests statistiques : ce qui permet de savoir si deux groupes de données A & B sont homogènes ou non, on utilise le test du Chi². Ce test n'est pourtant pas toujours le plus adapté à la situation...

C'est ce qu'explique cette courte vidéo (en français) :


The statistical innovation Clever Stats explained in details by Chief Data Scientist Hubert Wassner from AB Tasty on Vimeo.
Most testing solutions rely on statistical methods that take a frequentist approach to significance testing, such as the Student’s t-test and the Z test. While these methods have proved themselves valuable, and are viable in sectors such as pharmaceuticals and agriculture, they are not well-suited to the constantly changing online world.

Using these methods requires a strict methodology known as fixed horizon statistics, in which a sample size must first be defined, and in which no conclusion may be made before this size is reached. These constraints are no longer relevant to a world in which data and information constantly flows, and are accessible in real time.

Typiquement on veux savoir si un nouveau médicament (B)  est meilleur que l'ancien (A), ou si une phrase est plus vendeuse qu'une autre sur une page produit d'un site de e-commerce. On fait alors ce qu'on appelle un test A/B et on utilise un test statistique sur les données produites. Cependant le test du Chi², s'il est simple à mettre en oeuvre et rapide à s'exécuter, n'est pas exempt de défaut... Le plus important étant qu'il faut fixer à l'avance le nombre d'échantillons à tester. Tant que ce nombre n'est pas atteint le calcul du Chi² n'est pas valide ! (mais le calcul est réalisable). Ce qui fait que bon nombre de gens font des erreurs car ils utilisent ces valeurs pour faire des décisions...

Grâce au développement rapide de la puissance des ordinateurs, et à la large diffusion de librairies de statistique, il est possible maintenant d'aborder le problème du test statistique avec la vision de Thomas Bayes (d'où le nom des statistiques bayésiennes). Cela apporte principalement deux fonctionnalités très intéressantes :
  • Le test bayésien produit des informations statistique valide à tout instant.
    Il n'est donc pas nécessaire de prévoir le nombre d'échantillons à tester par avance, c'est au fur et a mesure de l'arrivée des données que l'on peut produire une information statistique pour aider à la décision.
  • Par construction ce test peu intégrer une connaissance a-priori. Par exemple, on peu spécifier que l'on connaît des informations sur le groupe A (ce qui est souvent le cas puisque c'est en général la version originale déjà exploitée.) Cela permet alors d'avoir des informations statistique utilisable bien plus tôt, et donc de pouvoir prendre des décision plus rapidement. Là où le test du Chi² sera plus 'lent', ne pouvant pas intégrer ces informations a-priori.
Par conséquent, le test bayésien est nettement plus adapté au contexte d'expérimentations sur le web, même si il est un peu plus compliquer à coder, et s'il nécessite un peu plus de temps calcul.

lundi 13 avril 2015

"Data Science" et marché de l'attention


Introduction : Quand l'information était "rare" (avant internet), cette information était chère, la distribuer était un modèle économique efficace.
Aujourd'hui L'information est partout, gratuite, et directement disponible grâce aux moteurs de recherche. Ce qui fait que la valeur de l'information est en chute libre. La valeur c'est progressivement déplacé de l'information vers l'attention. Car dans cette profusion d'information, ce qui est devenu rare , donc cher : c'est l'attention des gens. En effet, le fait que votre produit soit connu ne suffit pas à le faire vendre (l'information n'a plus de valeur), ce qui donnera la chance à votre produit, c'est l'attention que vous arriverez à faire naître dans l'esprit de vos (futur) clients. Cette attention est d'autant plus difficile à obtenir dans un monde où l'information est partout, diluant l'attention.
Ce changement de paradigme créé de nouvelles compétences, de nouveaux métier...

La révolution numérique

 

La révolution numérique à changé la chaîne de valeur, c'est maintenant une évidence pour tout le monde. L'exemple le plus flagrant est la chute des "maisons de disques à l'ancienne". Il s'agissait certainement de l'exemple le plus clair de la valeur de l'information : on achetait un support sur lequel il y avait une information (une chanson). Les producteurs gagnaient beaucoup d'argent car cette information n'était pas si difficile à produire, et elle se vendait facilement, longtemps, pour un bon prix.

Avec le développement technique du numérique, les supports ont permis la copie à l'identique, à des coûts presque nuls. Le développement du web social et du "peer to peer" à permis de mettre les gens en contact direct. Bref en quelques années il n'y avait plus aucune nécessité d'avoir des producteurs. Leur activité de distribution était techniquement dépassé. Le modèle basé sur la rareté des produits et outils de production est obsolète. C'est la chute des fameuses "majors"...

La révolution s'étend...

 

Pour exactement les mêmes raisons d'autres industries vont devoir s'adapter : le cinéma, la télé, les journaux, et maintenant le commerce. Tout simplement par ce que le "numérique" offre des atouts de rupture, que les acteurs historiques ne savent pas identifier et utiliser.

Lors de ces mutations, l'information a perdu de sa valeur, et continue à en perdre.

Le web et surtout son modèle basé sur la publicité a fait chuter le marché des journaux, de la musique, des logiciels. Cette tendance est maintenant bien installée.

Dans un environnement où tout est disponible, moins cher que ça ne l'a jamais été, et parfois même gratuit, où se situe la valeur ?

La valeur de l'attention 

 

Dans un monde de profusion, il faut attirer le client qui va acheter un bien. Pour ce but les entreprises utilisent des moyens totalement différents :
  • Le plus visible de ces moyens sont les "youtubers", les "community managers", des blogueurs "star", ou des stars "à l'ancienne". C'est à dire des gens dont c'est le métier de générer de l'attention. Cette capacité leur vient d'une connexion déjà établie avec un public. C'est un moyen ancien, mais les acteurs sont relativement nouveaux, car les canaux de l'attention sont nouveaux. La télé et le cinémas sont en perte de vitesse, au profit du web, des réseaux sociaux ou des plateformes vidéo. Ces nouvelles stars sont des youtubeurs, ou des twittos. Le lien avec le public est plus direct et donc ressentit comme plus honnête. Le contenu est potentiellement moins politiquement correct et peut donc faire peur aux marques. Bien souvent ces "stars" sont jeunes voir très jeunes, à l'instar des média qui les portent. C'est un des moyen trouvés par les marques pour obtenir de l'attention, en fait les marques achètent une partie de l'attention générée.
  • L'autre moyen , bien plus discret, sont les algorithmes de recommandation, et donc des "data scientists" qui les créent. Ces algorithmes visent à identifier au mieux ce qui attirera votre attention. Ils servent à choisir les articles que vous verrez parmi les milliers de posts de vos contacts sur les réseaux sociaux. Ils choisissent aussi les pub que vous voyez sur les sites d'actualité, typiquement ce que fait CRITEO, le fleuron français du web. Cela est fait en fonction du contenu de la page que vous lisez, et de votre profil.
    À la différence du point précédent, ces algorithmes ne créent pas réellement de l'attention mais exploitent au mieux une attention déjà existante.

 

 Conclusion 

 

Je pense ne pas me tromper en disant que plus de la moitié des data scientists
travaillent dans le marché de l'attention : la pub, ou l'optimisation de site web (comment retenir l'attention des visiteurs d'un site web.)
Une des questions centrale de ces métiers est : comment choisir la bonne pub (ou produit,service) pour chaque visiteur (en fonction de ce qu'on sait sur lui).
L'objectif étant d'obtenir son attention; qu'il clic sur l'annonce ou qu'il "s'engage" envers une marque.

Le salaire des data scientist s'envole, comme pour les youtubeurs/youtubeuses "star". Ces deux populations sont totalement distinctes quand à leur compétences mais elles intéressent les entreprises pour la même ressource : l'attention qu'elles manipulent.

jeudi 19 mars 2015

Wanted DataScientist

 Compétences du data scientist
Introduction : il y a une augmentation de la demande sur les profils "data scientist", l'essor des projets "big data" n'explique pas tout... Voici les autres raisons.

Il y a peu de profils:
  • Comme le montre ce le schéma illustrant cet article (pris à cette adresse), c'est des ingénieurs ou docteurs en informatique maîtrisant beaucoup de domaines ( math, + statistiques , + BDD + calcul scientifique). Alliant à la fois des savoirs théoriques et du savoir-faire pratique. Un certain nombre de ces profils, les plus académiques sont mal appréciés par les entreprises car ils ont du mal à se faire comprendre du reste de l'équipe technique et manquent parfois de culture d'entreprise ainsi que de culture business...
  • Ce n'est pas un domaine uniforme, il y a des sous spécialités, en fonction du type de données analysées. (analyse d'image/signal/sons, analyse ou production de langage naturel, banque/finance, etc...). Il y a beaucoup de profils différents et difficilement interchangeables.
L'augmentation de la demande de ces profils est récente. Elle découle, en partie, de l'explosion récente de la production de données (avec le web moderne). Le nombre actuel de tels profils (disponible) est donc naturellement faible. On ne devient pas "data scientist" du jour au lendemain...
Les décideurs ont souvent une idée trop simpliste des besoins en data scientist. Typiquement, ils en ont une image pyramidale où plein de données convergent vers un unique super algorithme qui produit un résultat utilisable dans un contexte business. Donc avec cette vision simpliste, ils imaginent qu'un seul data scientist, au sommet de la pyramide, peut suffire. La réalité est substantiellement différente. Dans un projet impliquant de l'analyse de données ou de l'apprentissage (machine learning) ces compétences sont nécessaire à plusieurs endroits :
  • Là où c'est évident : dans le cœur du big data, pour la construction des modèles de prédiction, c'est à dire au somment de la pyramide qu'on évoquait précédemment. C'est la situation la plus simple, quand toutes les données utilisées par le système sont structurées. Par structuré on entend des données numériques, avec un sens facilement intégrable dans une analyse. Typiquement, une valeur en euro, un pourcentage, une catégorie, etc... Cependant les situations les plus simples sont rarement les plus fréquentes.
  • Là ou c'est moins évident : bien souvent les données que l'on veux exploiter dans un modèle de prédiction sont des données dites "non-structurées". Par exemple des messages de réseaux sociaux, ou une image, un son, une mesure d'un capteur, etc... Ce type de données ne peuvent pas être utilisée directement dans un modèle de prédiction. Il faut donc souvent un ou plusieurs sous-projets de machine learning (au niveau de la base de la pyramide) pour pouvoir transformer ces données non-structurées en données structurées. On peut alors les utiliser dans un modèle de prédiction (au sommet de la pyramide). Par exemple pour utiliser des tweets dans une analyse il faut d'abord faire de la sémantique pour s'assurer le message parle bien du sujet qui nous intéresse. C'est déjà, en soit, un problème de machine learning complexe. Ensuite il faut mesurer si le message est positif neutre ou négatif, et ça c'est encore un autre un projet de machine learning...
    Le besoin en data scientist existe au sommet de la pyramide, mais aussi à la base, et souvent à plusieurs endroits d'un projet !
En résumé : les data scientist sont des profils rares, et les projets modernes d'analyse de données en nécessitent plus que ce qu'en pense les décideurs (car les décideurs sont souvent des profils non technique).

La cerise sur le gâteaux, c'est des profils compliqués à embaucher car en général il n'y a pas la compétence en interne, et donc personne n'est vraiment capable d'évaluer la qualité d'un profil "data scientist".

Conclusion le virage "data" est difficile à prendre pour les entreprise. Pour celles qui réussissent le retour sur investissement est largement présent, au détriment de celles qui ne l'ont pas tenté ou qui l'on raté...

mercredi 7 janvier 2015

Interview

J'ai été interviewé pour le site JobInTree. Il m'a été demandé de décrire ce qu'est le job de "data scientist". C'est un exercice intéressant de réflexion sur son métier et sa carrière. J'espère avoir été à la hauteur, vous trouverez l'article ici.