Amazon Web Services vient de lancer son service Amazon Machine Learning qui permet aux utilisateurs d'utiliser des modèles prédictifs sur le cloud. Après Google avec Prediction API, et Microsoft avec Azure Machine Learning, Amazon est le dernier grand fournisseur de cloud à lancer un service similaire.
Le service fournit pour l'instant un modèle d'apprentissage similaire à ceux des applications apprenantes à grande échelle, tout comme la visualisation pour les données statistiques de base et la performance prédictive du modèle apprenant, mais a encore quelques limites en termes de flexibilité, d'import/export de données, ainsi qu'envers le support de l'ajustement automatique des paramètres du modèle.
Ces dernières années, plusieurs services et produits ont été lancés pour simplifier l'analyse de données. Quelques-uns se sont concentrés sur la simplicité, en masquant au maximum la complexité à l'utilisateur, tandis que d'autres ont proposé des boîtes à outils complètes d'analyse de données pour les spécialistes.
La dernière offre d'Amazon tombe dans la première catégorie. Il ne répond qu'à des problèmes de prédiction. L'algorithme d'apprentissage sous-jacent est inconnu, mais les fonctionnalités fournies sont très proches de vowpal wabbit, un algorithme véloce de machine learning développé par Jon Langford et basé sur l'algorithme stochastique du gradient. Cet algorithme, qui travaille en séquençant les données passées du modèle et en l'adaptant à l'observation des erreurs de prédiction, est par défaut difficilement parallélisable mais très efficace et circonscrit l'usage mémoire, et de plus est le moteur de nombreuses applications à grande échelle (par exemple le modèle de prédiction ad click de Google).
De plus, Amazon Machine Learning peut calculer les statistiques de base par fonctionnalité des données d'entrée, et représenter graphiquement la performance de prédiction du modèle travaillé. Ces deux fonctionnalités permettent à l'utilisateur de mieux comprendre le modèle prédictif apprenant. Enfin, le service propose quelques fonctionnalités simples de transformation de données comme l'extraction de fonctionnalités ou la transformation d'un texte en représentation n-gram, qui est souvent utilisée pour les données textuelles.
Il y a des limites. Les données doivent être hébergées sur le S3 d'Amazon ou sur une base Redshift, et il n'est pas possible d'importer ou exporter le modèle apprenant. Il n'est pas possible de tester et évaluer plusieurs variations de modèle en parallèle pour affiner les paramètres, bien que cela soit très pratique.
Une première analyse note aussi que la performance du système n'est pas au rendez-vous en le comparant à l'usage simple d'un outil comme vowpal wabbit qui tourne en local.
La Prediction API de Google, lancée en 2010, tombe dans la même catégorie. Elle ne gère que les problèmes de prédiction, et pas avec ceux plus complexes comme la recommandation, ou les méthodes d'apprentissage non-supervisé comme le clustering. L'interface ne vous laisse à peu près que télécharger vos données, faire tourner et évaluer un modèle, et utiliser un modèle sauvegardé pour faire des prédictions.
De l'autre côté, l'Azure Machine Learning de Microsoft a une interface plus riche et s'adresse à un public plus spécialisé. Il propose différents types d'algorithmes apprenants, laisse l'utilisateur construire des fonctions de transformation plus complexes et intègre même des R scripts. D'autres exemples sont PredictionIO ou GraphLab Create.
Apache Spark développe aussi une bibliothèque de machine learning à utiliser, par exemple avec databricks cloud, pour réaliser des analyses de données complexes et scalables dans le cloud.