L’IA et les données, des inséparables!

Dans cet article, j’aborderai l’importance des données et de leur analyse pour concevoir une intelligence artificielle (IA) efficace et performante. Mais, tout d’abord, mettons-nous en contexte.

Un problème typique à résoudre pour une entreprise consiste à anticiper les besoins de ses clients. Prenons par exemple un assureur qui veut savoir quelles couvertures d’assurance seraient les plus avantageuses pour son client, en fonction de ses besoins. Plusieurs facteurs peuvent influencer le client dans le choix d’une assurance (mais aussi dans le choix d’un assureur!) : son âge, ses études, sa santé, sa situation financière actuelle et future, ses dettes, ses objectifs à court et à long terme, et j’en passe! Considérant qu’un assureur peut avoir un large éventail de clients, il peut devenir difficile pour lui de garder en tête tous ces paramètres spécifiques à chaque client. Dans ce genre de situation, une IA pourrait être conçue. Assistant l’assureur, elle pourrait rapidement cibler le type des clients et suggérer l’assurance qui leur convient le mieux.

 

L’intelligence artificielle

L’intelligence artificielle, c’est l’art de développer un système capable d’accomplir des tâches faites normalement par l’humain. Et comment s’y prend-on? Tout comme pour un enfant qui apprend par l’expérience de ses erreurs et de ses réussites, la machine « apprend » à partir des expériences qui lui permettront d’accomplir ce que l’on attend d’elle. Et toujours comme l’enfant qui a besoin d’une personne pour lui enseigner des tâches, l’IA a besoin d’aide pour apprendre. Au cours des dernières années, les méthodes d’apprentissage automatique (machine learning) ont prouvé leur efficacité pour « enseigner » à un système (ici l’IA) comment effectuer des tâches jusque là réservées aux humains. (Pour en savoir davantage sur l’apprentissage automatique, consultez l’article de notre blogue : Un guide non technique pour comprendre l’apprentissage automatique)

Et comment fournit-on de l’expérience à une machine? Grâce aux données (ou Data), qui constituent l’information qui permet de caractériser une situation, un phénomène, un élément, etc. Les données, sous toutes leurs formes, donnent de l’expérience à la machine qui lui permet de faire les corrélations voulues pour accomplir une tâche.

Si une IA utilise les caractéristiques des clients (l’âge, les objectifs, etc.), elle peut classifier celles-ci dans différents groupes. Par la suite, l’IA suggère un ou des types de couvertures qui dépendent de ce que les autres membres du groupe ont choisi. Une personne peut accomplir ce genre de tâche si les variables relatives au client et les produits qui y sont rattachés sont simples. Cependant, à plus grande échelle (pensez à ce qu’Amazon fait en ligne), l’homme a besoin de la machine. Le nombre de variables, de clients et de produits nécessitent alors une IA pour accomplir ces tâches efficacement.

La quantité et la fiabilité des données déterminent le niveau de précision qu’aura l’IA pour répondre au problème de l’entreprise. Généralement, plus grande est la quantité de données, meilleure sera l’IA pour faire des prédictions. La collecte, la distribution et la validation des données sont donc des enjeux importants dans la création de solutions impliquant l’IA.

Mais comment fait-on pour bien traiter les données afin qu’elles puissent être utiles dans notre IA?

Deux mots : Data Science

Décortiquons ce concept avant d’aller plus loin.

Qu’est-ce que la Data Science?

J’ai trouvé une définition qui me semble la plus rapprochée de ce que l’on veut démontrer ici.

La science des données (ou Data Science) est un domaine interdisciplinaire au sein duquel les méthodes scientifiques, les mathématiques, les statistiques et l’information se chevauchent dans le but d’extraire des connaissances et des idées à partir d’ensembles de données. Source : Wikipedia et simplystats

Pour l’expliquer simplement, la Data Science, c’est l’art de trouver et de choisir l’information cachée, c’est-à-dire les différentes associations et causes entre les caractéristiques du client et le fait qu’il possède tel ou tel type de couverture d’assurance. Pour ce faire, on se sert bien sûr d’outils mathématiques, statistiques et informatiques, mais également du savoir déjà acquis sur le contexte que l’on cherche à étudier. Par exemple, une association peut potentiellement exister entre la marque, l’année et le modèle du véhicule d’un client et sa décision de prendre l’assurance valeur à neuf. Cependant, où faut-il tracer la ligne? Une civic 1998? Une BMW 2010? Des modèles mathématiques peuvent nous aider à prédire ceci. L’enjeu que plusieurs compagnies vivent aujourd’hui, c’est celui de décider si cette tâche devrait être effectuée par une personne ou par une IA.

Le choix des données dans une IA

Mais certains vont me dire, à quoi cela sert-il de chercher à comprendre le contexte de fond en comble? Si on a déjà beaucoup de données, ne serait-il pas plus simple d’utiliser toutes ces données et de laisser, par exemple, un réseau de neurones s’entraîner par lui-même à trouver les différents liens pour accomplir la ou les tâches voulues?

Erreur.

En termes plus techniques, trop d’informations dans un modèle signifie l’augmentation de la variabilité, ce qui entraîne l’instabilité du modèle. Concrètement, quand il s’agit de prédire si un client va choisir une police d’assurance vie, s’il s’avère que l’âge est fortement corrélé avec le fait que ce client soit aux études, on se retrouve avec deux informations, ce qui n’est pas utile dans cette mesure. On n’aurait ici besoin que de l’âge (ou du fait d’être étudiant) pour prédire. Pourquoi faire avec beaucoup si on peut avoir les mêmes résultats avec moins? La collecte d’information s’en trouve minimalisée, et donc, l’entraînement de l’IA par apprentissage automatique est plus simple. Au final, on sauve temps et argent!

Guide pour faire de la Data Science

Je vous ai maintenant concocté un petit guide qui permet de résumer (brièvement) les principaux points de la recherche sur un ensemble de données.

Comprendre les besoins de l’entreprise : Comprendre les besoins permet une meilleure approche en termes d’analyse pour le Data scientist. Ainsi, celui-ci sait où chercher la meilleure information, qui permettra de répondre (ou d’avoir une réponse qui correspond le mieux) aux problèmes de l’entreprise.

Comprendre la structure des données : Avoir des données, c’est bien, mais il faut savoir ce qu’elles contiennent pour savoir si elles peuvent répondre aux besoins de l’entreprise. Comprendre l’implication de chacune des caractéristiques dans le système et comprendre les liens entre les différentes variables permet de mieux cibler ce que l’on cherche.

Préparer l’ensemble des données : Le nom le dit, c’est la préparation du data. Cela implique : nettoyage, transformation, filtrage et traitement. Cette étape est primordiale avant toute recherche d’information dans les données, puisque c’est celle qui permet de savoir si les conclusions obtenues lors des analyses seront exactes.

Modélisation et évaluation : Analyses statistiques au menu. On veut savoir si, premièrement, les hypothèses préétablies sont exactes et, deuxièmement, si l’information est suffisamment pertinente pour expliquer (ou prédire) la variable d’intérêt. C’est à cette étape qu’on détermine principalement la fameuse boîte noire, qui sert à la prédiction qui répondra au problème de l’entreprise.

Déploiement : Lorsque les hypothèses ont été validées et que le modèle final avec les bonnes entrées a été trouvé, l’apprentissage automatique ou le modèle statistique peut être utilisé sur des données en temps réel et être implanté dans la machine. Les tâches que celle-ci doit accomplir sont réparties de sorte à ce que tout se coordonne comme il se doit.

Avant de finir…

Ne jamais oublier l’importance de la Data science lorsqu’on veut concevoir une intelligence artificielle. L’expression “You are what you eat” prend tout son sens lorsqu’on parle de data et d’IA. L’intelligence artificielle devient ce qu’on lui donne en entrée (les données). Si les données ne sont pas traitées de la bonne façon, la machine ne fera pas ce que l’on veut.

J’espère que cela vous a permis de mieux comprendre l’importance des données et de leur traitement dans le domaine de l’IA et de l’apprentissage automatique. Dans mon prochain article, nous allons nous arrêter sur le processus d’identification d’un problème, sur la sélection et sur le nettoyage des données, en préparation pour l’apprentissage automatique et l’IA. Tout ça, en utilisant un ensemble réel de données! Abonnez-vous à notre blogue pour savoir quand il sera en ligne. 

En tant que jeune Data scientist, je m’intéresse beaucoup à la recherche scientifique, et surtout aux méthodes statistiques et mathématiques qui entourent ce domaine. Je serai heureux de lire vos commentaires et questions et d’en discuter davantage. Vous pouvez me suivre ou communiquer avec moi sur LinkedIn, Twitter ou directement par email.

Guide de survie pour travailler à distance en équipe

Comment la moitié de notre équipe a su travailler à distance pendant deux semaines tout en restant productive.


Le travail à distance ne nous est pas étranger.

En octobre dernier, passionné de randonnées en montagne, j’ai eu la chance de travailler à partir de Banff, en Alberta. (Vive les montagnes!)

Notre designer et maitre ultime du branding, Manon, a travaillé à distance pendant quatre mois l’année dernière. Elle a résumé son aventure dans cet article.

Cette année, nous avons décidé de pousser le concept encore plus loin. Huit d’entre nous ont posé pied à Puerto Rico pendant deux semaines, tout en réussissant à rester productifs et efficaces malgré les distractions et la chaleur. Voici le résumé de notre processus et de nos apprentissages en cours de route.

Continue reading “Guide de survie pour travailler à distance en équipe”

Un guide non technique pour comprendre l’apprentissage automatique

 

Dans la publication de la semaine dernière, nous avons discuté de la pertinence de l’apprentissage automatique (Machine Learning) pour votre entreprise. Dans le cadre de mes recherches, j’ai compris plus en profondeur ce qu’est l’apprentissage automatique et j’ai réalisé que la plupart des informations sur le sujet est technique et destinée aux développeurs ou aux analystes de données.

Une explication non technique m’a donc paru nécessaire.

Qu’est-ce que l’apprentissage automatique?

La définition la plus simple que j’ai rencontrée se lit comme suit :

L’apprentissage automatique est « […] la branche de l’intelligence artificielle (IA) qui explore les moyens d’amener les ordinateurs à améliorer leurs performances en fonction de leur expérience ». Source : Berkeley

Décomposons cette définition pour asseoir certaines fondations de l’apprentissage automatique et pour en améliorer notre connaissance.

Continue reading “Un guide non technique pour comprendre l’apprentissage automatique”

L’apprentissage automatique est-il adapté à votre entreprise?

La plupart des entreprises reconnaissent que l’apprentissage automatique (Machine Learning) peut leur apporter une valeur exceptionnelle. Cependant, plusieurs d’entre elles se posent des questions quant à l’intégration de celui-ci dans leur stratégie de données : comment, dans quel domaine et surtout à quel moment?

Aujourd’hui, nous allons explorer les questions que vous devriez vous poser afin de savoir si l’apprentissage automatique est adapté à votre entreprise.
Continue reading “L’apprentissage automatique est-il adapté à votre entreprise?”

2016: quand la vie vous donne des citrons…

Nous avons une confession à vous faire : Chez Arcbees, nous avons aimé 2016.

Oui, oui, vous avez bien lu, contrairement à tout le monde, qui souhaite que 2016 aille vite s’évanouir dans les méandres de l’oubli.

Voici nos 3 raisons pourquoi nous l’avons aimé et pourquoi on va sûrement encore plus aimer 2017.

Raison 1 : 2016 nous a tissé serré.

Comme toute entreprise, la conquête du monde n’est pas de tout repos. Cette aventure loin d’être reposante comporte son lot, de hauts et aussi de bas. Et comment vous dire…2016 a commencé sur les chapeaux de roue en nous envoyant pas mal de citrons.

Et le miracle « Beyoncé » (son album le plus récent s’appel Lemonade), comme aime l’appeler Manon, est arrivé.

De tous ces citrons, on a fait une super limonade.

Ces épreuves nous ont rapprochés en tant qu’entreprise, qu’équipe, et en tant qu’être humain autour de la solidarité, du partage, de l’écoute et surtout de la résilience.

Se rassembler pour mieux se relever les manches, se rassembler autour de valeurs communes, se rassembler autour d’une direction porteuse de croissance, voici les ingrédients secrets de notre limonade cuvée 2016.

Raison 2 : 2016 nous a fait grandir… et ce n’est pas fini.

Quand on fait une limonade, on apprend, c’est indéniable. Sur nous, sur les autres, mais surtout ensemble. Notre culture est devenue plus riche de moments, de traditions, de souvenirs partagés, transmis, implantés. Cette culture chère à nos coeurs est devenue notre base solide pour attaquer la deuxième phase de 2016 : l’expansion.

Nous avons construit et construisons chaque jour l’avenir d’Arcbees sans sacrifier ce qui fait de nous ce que nous sommes. Notre défi dans cette phase très excitante, c’est de protéger notre culture d’entreprise comme notre bien le plus précieux tout en la partageant au plus grand nombre pour qu’elle inspire tous les bâtisseurs qui veulent changer le monde.

Notre limonade et ses ingrédients secrets nous ont permis, non seulement de nous relever, mais aussi de grandir. Et vous n’avez encore rien vu.

Raison 3 : 2016 nous a montré le chemin de la conquête.

Ce qui est bien avec la limonade, c’est qu’elle challenge vos idées reçues et que son pétillant vous fait découvrir de nouveaux horizons. Chez Arcbees, nous ne faisons pas les choses à moitié. Nous avons pris le contrôle de notre destin et pris part à une aventure humaine qui définit le monde de demain.

Nous avons choisi ensemble notre chemin : l’intelligence artificielle.

Nous avons décidé de devenir l’acteur indispensable qui lie les différents membres de l’intelligence artificielle pour développer des partenariats uniques avec les entreprises d’ici.

Embaucher des talents extraordinaires, grandir pour dépasser les standards de l’industrie afin de se concentrer sur un seul et même but : voir grand avec nos clients pour créer quelque chose d’unique ensemble.

Incarner cet acteur de collaboration est une passerelle d’exception pour assembler les membres de ce milieu et construire le Québec d’aujourd’hui et des années à venir.

source

Raison 4: 2016 nous a donné «le feu sacré» pour 2017*

*oui, on se donne le droit de rajouter une petite raison, comme ça. Le monde appartient aux rebelles.

Tous ces défis qui nous attendent nous donnent le feu, au coeur, aux tripes et nous allons encore une fois donner le meilleur de nous-mêmes. Nous allons expérimenter, réussir et parfois avoir des petits ratés. Et si le doute nous assaille, nous allons retourner à ce qu’il y a de plus précieux : notre famille … et refaire de la limonade!

Merci à vous, nos clients, nos partenaires, nos amis, nos familles de nous soutenir dans cette aventure passionnante et prenante. Nous vous souhaitons, ensemble, une année 2017 palpitante, belle, intelligente et bienveillante.

Toute l’équipe d’Arcbees.

P.S. Ne jamais, jamais, sous estimer, une simple limonade.

Introduction aux systèmes de recommandation

Many receive advice, only the wise profit from it.” – Harper Lee

Les systèmes de recommandation sont pour beaucoup d’entre nous des entités mystérieuses qui semblent deviner nos pensées. Pensons simplement à Netflixqui nous suggère des films, ou encore à Amazon, qui croit connaître les produits que nous devrions acheter. Depuis leurs débuts, les outils de recommandation ont été améliorés et raffinés et ils ne cessent d’enrichir l’expérience utilisateur. Bien que plusieurs d’entre eux soient des ensembles très complexes, leur fondement et leurs racines demeurent très simples. Je me suis penché sur la question afin de démystifier pour vous ces étranges systèmes.

Qu’est-ce qu’un système de recommandation?

Un système de recommandation est une forme spécifique de filtrage de l’information qui a pour but de présenter à un utilisateur des éléments qui sont susceptibles de l’intéresser, et ce, en se basant sur ses préférences et son comportement. On tente donc de prédire votre appréciation face à un élément pour ainsi vous suggérer ce que vous serez le plus en mesure d’apprécier.

Comment créer un système de recommandation?   

Bien qu’il existe de nombreuses techniques pour mettre en place un système de recommandation, j’ai choisi ici de vous présenter les trois techniques les plus simples et les plus utilisées. Tout d’abord, le filtrage collaboratif, puis les systèmes basés sur le contenu et finalement les systèmes basés sur la connaissance. Je vous présente également le principal problème des systèmes de recommandation ainsi qu’une solution à ce problème. À la toute fin, un exemple d’implémentation complète vous attend.  

Filtrage collaboratif

L’une des premières techniques utilisées et qui demeure encore aujourd’hui parmi les plus simples et les plus efficaces est le filtrage collaboratif. Ce procédé en trois étapes commence par la collecte d’information sur les utilisateurs. Puis, on forme une matrice afin de calculer des associations. Finalement, nous sommes en mesure de faire une recommandation avec un niveau de confiance assez élevé. Cette recommandation se divise en deux grandes catégories : l’une se base sur les utilisateurs et l’autre sur les items qui composent l’environnement.

Filtrage collaboratif utilisateur

L’idée derrière le filtrage collaboratif utilisateur consiste à trouver des utilisateurs qui ont des goûts similaires à l’utilisateur cible. Plus concrètement, si Jean-Pierre et Jason ont évalué plusieurs films d’une manière similaire dans le passé, nous pouvons considérer ceux-ci comme des utilisateurs semblables et ainsi utiliser les cotes de Jean-Pierre pour prédire les cotes de Jason. Par exemple, si Jean-Pierre a beaucoup apprécié les films Return Of The Jedi et The Empire Strikes Back et que Jason a également aimé le film Return Of The Jedi, alors il serait judicieux de suggérer à Jason The Empire Strikes Back. Généralement, un nombre restreint d’utilisateurs semblables à Jason est suffisant pour prédire les évaluations de celui-ci.

 

dev-recommandation-filtrage-userDans un tableau où chaque ligne est un utilisateur et où chaque colonne représente un film, il suffit de trouver les similarités entre les lignes de la matrice pour repérer les utilisateurs similaires.

dev-recommandation-matrice
Il existe cependant certains problèmes associés à ce type d’implémentation.

– Les préférences des utilisateurs changent avec le temps. Cela peut donc générer de nombreuses suggestions inappropriées.

– Plus le nombre d’utilisateurs augmente, plus il sera long de générer des recommandations.

– Le filtrage par utilisateur est sensible au Shilling Attack, qui est une façon pour certaines personnes mal intentionnées de détourner le système et de faire en sorte que certains produits soient plus recommandés que d’autres, et ce, à leur avantage.

Filtrage collaboratif objets

Le processus est simple. On calcule la ressemblance de deux éléments en se basant sur les notes données par les utilisateurs. Retrouvons Jean-Pierre et Jason qui ont tous les deux apprécié les films The Return Of The Jedi et The Empire Strikes Back. Nous pouvons donc déduire que la majorité des utilisateurs qui apprécie le premier film risque également d’apprécier le second. Ainsi, il serait pertinent de suggérer The Empire Strikes Back à Larry, qui a adoré The Return Of The Jedi.

dev-recommandation-filtrage-objets

Pertinemment, la ressemblance est calculée en fonction des colonnes plutôt que les lignes, et ce, sur la même matrice utilisateur/films vue précédemment.

Le filtrage collaboratif objets (ou items) est souvent favorisé puisque celui-ci ne comporte aucun des inconvénients du filtrage utilisateur. D’abord, les items du système (ici des films) ne changent pas, donc les suggestions seront plus pertinentes. De plus, il y a souvent moins d’éléments que d’utilisateurs, ce qui diminue le temps de traitement. Finalement, il est beaucoup plus complexe de tricher avec ces systèmes.

Système basé sur le contenu

Dans les systèmes de recommandation basés sur le contenu, ce sont les attributs descriptifs des éléments qui sont utilisés pour formuler des recommandations. Le terme « contenu » fait référence à ces descriptions. Par exemple, en regardant l’historique d’écoute de Sophie, le système remarque que celle-ci semble apprécier le genre country. Il sera donc en mesure d’ajouter plus de titres du même genre à ses recommandations. Des systèmes beaucoup plus complexes sont en mesure de détecter les cohérences entre certains attributs, et ainsi, d’augmenter la qualité des suggestions. Notamment, le Music Genome Project catégorise chacune des chansons en 450 attributs différents; c’est de ce projet qu’est né le site d’écoute musicale Pandora.

Système basé sur la connaissance

Les systèmes de recommandation fondés sur la connaissance sont particulièrement utiles dans le cas d’articles qui sont rarement achetés. On parle ici de maisons, d’automobiles, de services financiers et même d’objets de luxe. Dans de tels cas, le processus de recommandation souffre souvent d’un manque d’évaluation des produits. Il n’utilise alors pas les évaluations des utilisateurs, mais sera plutôt effectué sur la base des similitudes entre les exigences des clients et des descriptions d’articles ou grâce à l’utilisation de contraintes spécifiant les exigences des utilisateurs. Cela rend ce type de système unique puisqu’il permet aux utilisateurs de spécifier explicitement ce qu’ils veulent. En ce qui concerne les contraintes, si applicables, elles sont le plus souvent implémentées par les experts du domaine. Par exemple, lorsque l’utilisateur spécifie clairement que le prix de la maison recherchée ne doit pas dépasser X, le système doit prendre en considération cette spécification.

Le problème de démarrage à froid

L’un des problèmes majeurs des systèmes de recommandation est que le nombre d’évaluations initialement disponibles est relativement faible. Que faire lorsqu’un nouvel utilisateur n’a pas encore noté de films, ou lorsqu’un nouveau film est ajouté au système? Dans de tels cas, il devient plus difficile d’appliquer les modèles traditionnels de filtrage collaboratif. Bien que les méthodes qui s’appuient sur le contenu et sur les connaissances soient plus robustes que les modèles collaboratifs, lorsqu’il s’agit de démarrage à froid, ces contenus ou connaissances pourraient ne pas toujours être disponibles. Par conséquent, un certain nombre de procédés spécifiques comme les systèmes hybrides ont été conçus. Ils visent à remédier au problème du démarrage à froid dans le contexte des systèmes de recommandation.

Les systèmes hybrides

Notons que les différents types de systèmes présentés ont tous des forces et des faiblesses et se basent sur différentes données pour générer des suggestions. Certains systèmes de recommandation, comme ceux qui s’appuient sur la connaissance, sont plus efficaces dans les environnements de démarrage à froid, où la quantité de données est limitée. D’autres systèmes de recommandation, comme les méthodes collaboratives, sont plus efficaces lorsque plusieurs données sont disponibles. Dans de nombreux cas, alors que les données sont très variées, nous avons la flexibilité d’utiliser différentes méthodes pour la même tâche. Nous pouvons donc combiner plusieurs techniques afin d’améliorer la qualité du système dans son ensemble. De nombreuses techniques de combinaisons ont été explorées, parmi lesquelles :

  • Pondéré : un poids différent donné aux recommandations de chaque technique utilisée afin de favoriser certaines d’entre elles.
  • Mixte : un seul ensemble de recommandations, sans préférences.
  • Augmenté : les suggestions d’un système sont utilisées comme entrée pour le suivant, et ainsi de suite jusqu’au dernier.
  • Commutation : choix d’une méthode au hasard.

L’une des utilisations les plus célèbres d’un système hybride est celle du Netflix Prize, de 2006 à 2009. Le but poursuivi était d’améliorer les suggestions de l’algorithme Cinematch de Netflix d’au moins 10 %. L’équipe Bellkor’s Pragmatix Chaos a remporté le prix d’un million de dollars avec sa technique composée de 107 algorithmes différents et a réussi à améliorer de 10.06% les suggestions de Cinematch.

Et l’intelligence artificielle dans tout ça?

Les systèmes de recommandation sont couramment utilisés en lien avec l’intelligence artificielle. Leur capacité à fournir un aperçu global, à prédire les événements et à mettre en évidence des corrélations contribue à expliquer leur utilisation en IA. Par ailleurs, les techniques de Machine Learning sont fréquemment utilisées pour créer les algorithmes de recommandation. Par exemple, chez Arcbees, nous avons construit un système de prédiction des préférences de films qui utilise un réseau de neurones et les données de IMDb. Les réseaux de neurones peuvent effectuer rapidement des tâches complexes et manipuler facilement des données massives. En fournissant une liste de films comme entrées et en comparant la sortie avec la note de l’utilisateur, le réseau peut apprendre par lui-même la règle permettant de prédire les évaluations futures d’un utilisateur spécifique.

Les trucs de l’expert

Tout au long de mes lectures, j’ai remarqué deux grands conseils qui reviennent toujours parmi ceux prodigués par les experts du domaine. Le premier consiste à faire reposer les recommandations sur les items que les utilisateurs paient. Lorsqu’un utilisateur est prêt à payer, on peut être certain que l’évaluation qu’il fournira sera beaucoup plus juste et fidèle. Deuxièmement, il est toujours préférable d’avoir un plus grand nombre d’algorithmes que de raffiner un seul algorithme. Le système de Netflix en est un bon exemple.

Implémentation d’un algorithme de filtrage collaboratif objets

Le code qui suit montre à quel point il est facile et rapide de mettre en place un système de recommandation par filtrage collaboratif item. Le langage utilisé est Python et j’utilise les librairies Pandas et Numpy qui sont parmi les plus populaires dans le domaine. Les données utilisées sont des évaluations de films et l’ensemble est disponible sur le site MovieLens.

Étape 1 : Trouver des films semblables à un film

  1. Lire les données
  2. Créer la matrice utilisateur X films
  3. Choisir un film et générer la valeur de similitude (corrélation) de tous les autres films avec le film choisi
  4. Enlever les films peu populaires et qui peuvent générer des recommandations inadéquates
  5. Extraire les films populaires et semblables au film cible

Étape 2 : Faire des recommandations à un utilisateur en s’appuyant sur toutes ses évaluations

  1. Générer la valeur de similarité entre chaque paire de film et en gardant seulement les plus populaires
  2. Générer la liste des suggestions pour chacun des films contenus dans la liste des évaluations de l’utilisateur cible (ici l’utilisateur numéro zéro)
  3. Regrouper les films identiques en additionnant leur score
  4. Conserver seulement les films qui n’ont pas encore été visionnés par l’utilisateur

Comment aller plus loin ?

Dans le cas présenté plus haut, la librairie Panda et notre simple processeur suffisaient pour pouvoir travailler sur un ensemble de données de MovieLens. Cependant, il se peut que ce ne soit pas optimal pour des ensembles plus gros, et donc, vous chercherez probablement à vous tourner vers Spark ou MapReduce pour rendre l’exécution plus rapide.

J’espère bien avoir réussi à vous faire voir qu’il n’y a rien de compliqué dans le fait de mettre en place un système de recommandation simple et efficace. N’hésitez pas à commenter et à poser vos questions. Vous pouvez aussi me contacter directement par email.

Connaissez-vous vraiment Arcbees?

Bien que l’entreprise de Québec fêtait ses six ans d’existence en octobre 2016, elle demeure encore, pour une grande majorité de gens, une entreprise quelque peu mystique, voire méconnue. En dépit du fait qu’il existe de nombreux joueurs dans le secteur des TI et du web, Arcbees tire très bien son épingle du jeu grâce entre autre à son expertise nichée et sa culture d’entreprise forte.

Un petit historique

Arcbees a été fondé en 2010 par Christian Goudreau (PDG actuel) et Philippe Beaudoin (ex-google et maintenant @ ElementAI.com). Ils ont alors créés GWT-Platform, un produit open-source aidant à accélérer la vitesse de développement de grosses applications web utilisant la technologie de Google (GWT). Arcbees a alors eu l’incroyable opportunité de présenter cet outil à la prestigieuse conférence mondiale Google I/O. Grâce à celle-ci, Arcbees s’est fait connaître partout dans le monde et est passé de 2 à 22 employés en quelques mois seulement!

Un modèle d’affaire évolutif

Au travers des années, le modèle d’affaire de l’entreprise s’est transformé, passant du support technique de ses produits open-source à une entreprise de services de développement web, mobile et logiciel. Arcbees est aujourd’hui reconnue pour la qualité de son expertise en développement, son approche structurante des données et sa capacité de résolution de problèmes avancés.

L’entreprise offre désormais des services tels que:

Stratégie

  • Diagnostique des systèmes d’informations et de communications;
  • Gouvernance des données;
  • Analyse d’affaires;
  • Stratégie de données;

Développement

  • Applications web & mobiles;
  • Génie logiciel;
  • Intégration de systèmes;
  • Systèmes d’informations et de communications;
  • Intégration d’intelligence artificielle;

Design

  • Design UX / UI;
  • Intégration web;
  • Stratégie de marque.

Arcbees aujourd’hui

Travaillant avec des entreprises au Canada et aux États-Unis, Arcbees aide ses clients à prendre le contrôle de leurs données et à gagner en productivité et en efficience. Qu’il s’agisse d’automatiser des processus, d’améliorer la gestion et la distribution des données, de construire des algorithmes ou d’exploiter le potentiel des technologies web, l’entreprise a une approche axée sur la résolution de problèmes. En débutant par des cas d’utilisation et en passant par la cartographie des technologies utilisées, l’expérience utilisateur recherché et les critères de performance pour ne nommer que ces quelques exemples, Arcbees propose une méthodologie éprouvée et efficace pour générer un maximum de valeur pour ses clients.

Avec Arcbees,prendre le contrôle de ses données, c’est exploiter la valeur de celles-ci en intégrant les bonnes technologies, de la bonne manière et en fonction des bons objectifs.

Arcbees est fier de pouvoir compter sur de merveilleux clients comme:

  • L’Aéroport International de Québec (YQB)
  • Celliers Intelligents et son application Alfred pour la gestion de cave à vins
  • Reso App, une application mobile pour réserver une table dans des restaurants
  • Navigo, consultation et création logicielle
  • Axis4media, affichage numérique sur écran transparent
  • Wikinet, solutions technologiques dans le secteur environnemental
  • Eye-Am, soins oculaires
  • Kronos Technologies, applications web destinées aux professionnels de la finance et de l’assurance

Intelligence artificielle

Arcbees met beaucoup d’efforts pour bâtir ce que nous considérons être l’évolution logique de notre expertise: l’intelligence artificielle et l’apprentissage automatique (machine learning). Ces technologies peuvent générer une valeur exceptionnelle pour les entreprises désireuses de maximiser l’exploitation de leurs données. Au-delà de l’automatisation de processus et l’analyse prédictive, les applications sont nombreuses et diversifiées. Par contre, il n’est pas toujours évident pour une entreprise de savoir par où commencer et comment cela peut se traduire dans sa réalité. Beaucoup d’éducation reste donc à faire sur l’utilisation concrète de ces technologies. Arcbees est alors un bon partenaire technologique pour aider à analyser et intégrer l’intelligence artificielle dans les activités de ses clients actuels et potentiels.

Arcbees a l’incroyable chance de pouvoir compter sur un très bon réseau de proches collaborateurs pour perfectionner ses connaissances et son approche dans ces technologies.

Une culture d’entreprise forte

Arcbees, c’est une équipe de passionnés cherchant constamment à apprendre et à s’améliorer. Résoudre des problèmes fait partie de l’ADN des gens qui travaillent chez Arcbees. Les échanges et la collaboration à l’intérieur de l’équipe ont comme effet de stimuler les gens sur la recherche des meilleures solutions possibles et force tout le monde à s’améliorer. Avec un style de gestion inspiré de l’holacratie, les conditions et l’atmosphère de travail chez Arcbees sont fort appréciés. À travers l’autonomie et la responsabilisation, les employés sont engagés et fiers de ce qu’ils font, autant individuellement qu’en équipe. Un excellent taux de rétention de ses employés constitue l’une des forces d’Arcbees, ce qui lui permet de continuellement perfectionner son expertise et repousser les limites, les siennes et celles de ses clients.

Suivez le blogue d’Arcbees pour en savoir plus sur l’intelligence artificielle et ses possibilités. Le prochain billet portera notamment sur les bonnes questions qu’une entreprise doit se poser quand vient le temps d’analyser l’intégration de l’intelligence artificielle dans sa stratégie de données.