Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout

Post on 26-May-2015

3.473 views 1 download

Tags:

Transcript of Mix-IT (Apr 2011) - Intelligence Collective avec Apache Mahout

Intelligence Collective avec Apache Mahout

Classification, Regroupement, Recommandation

Speaker

Michaël Figuière

@mfiguiere

blog.xebia.fr

Search Engines NoSQL

DistributedArchitectures

Intelligence Collective

En quelques mots

• L’ensemble des utilisateurs constitue une intelligence

• Rendu immédiatement accessible par l’avènement d’Internet

L’intelligence collective d’un groupe est supérieure à la meilleure intelligence individuelle de ce groupe

En facilitant l’agrégation des données

Wikipedia

Le wiki agrège l’intelligence

collective des contributeurs

Google et le PageRank

PageRank agrège l’intelligence

collective des sites Web

La nature des données

Les données aléatoiressont par définition

imprévisibles !

La nature des données

Les données générées par les utilisateurs se

comportent généralement selon des patterns reconnaissables !

Machine Learning

Machine Learning

Intelligence Artificielle

Machine Learning(Apprentissage Artificiel)

Le Machine Learning est un sous-ensemble de

l’Intelligence Artificielle

NoSQL, Recherche et Machine Learning

NoSQL, Machine Learning et Moteurs de Recherche

sont complémentairesMachineLearning

Moteurs deRechercheNoSQL

Principaux algorithmes de Machine Learning

• Recommandations

• Classification

• Clustering

Recommande des items à un utilisateur

Classifie automatiquement des documents en apprenant à partir d’un ensemble déjà classifié

Découvre automatiquement des groupements parmi un ensemble de documents

Recommandation - User based

Amazon suggère des articles

achetés par les clients similaires

Recommandation - Item based

Sur la page d’un article Amazon

suggère des articles

Similarités entre utilisateurs

A B D E FC

1 2

3

On constate ici que les utilisateurs 1 et

2 ont des goûts similaires

Exemples de cas d’usage de Recommandation

• Conseiller des items aux clients sur un site d’e-commerce

• Conseiller des fonctionnalités aux utilisateurs

• Filtrer et adapter le classement des résultats d’un moteur de recherche

Augmentation du chiffre d’affaire

La plupart des fonctionnalités sont méconnues

En se basant sur les clics des utilisateurs similaires, ...

Classification

Mails ‘classifiés’ en tant que spams par GMail

Exemples de cas d’usage de Classification

• Associer automatiquement des tags à des documents

• Extraire les documents suspicieux

Ensemble de tags définis manuellement ou depuis Wikipedia

Spams, documents corrompus, ...

Clustering

Sujets tendances découverts par Google News

Clustering avec K-Means

AB

DE

F

C

Clustering avec K-Means

AB

DE

F

C

Centres de groupementplacés aléatoirement

Clustering avec K-Means

AB

C

DE

F

Les données sont rattachées au

centres le plus proche

Clustering avec K-Means

AB

DE

F

C

Les centres sont alors déplacés de

manière à réduire la somme des distances

Clustering avec K-Means

AB

DE

F

C

La donnée ‘C’ se retrouve alors rattachée au

premier centre

Exemples de cas d’usage du Clustering

• Trouver les sujets principaux dans un ensemble de documents

• Découvrir des usages typiques des utilisateurs

News feeds, documents métiers, ...

Profilage des utilisateurs, ...

Apache Mahout

En quelques mots

• Implémentation d’algorithmes de Machine Learning en Java

• La plupart disponibles en version MapReduce

• Encore jeune, mais en croissance rapide

Collection d’algorithme en expansion

Utilisable avec de gros datasets

Démarré début 2009

Documentation

Cherche à rendre le Machine Learning accessible

au plus grand nombre

Exemple de Recommendation

DataModel model = new FileDataModel(new File("data.csv"));

UserSimilarity simil = new PearsonCorrelationSimilarity(model);

UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);

Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, simil);

List<RecommendedItem> recommendations = recommender.recommend(1, 1);

Classification avec Mahout

Trainingalgorithm

Trainingexamples

New data

Model

Model Decision

Copy

Clustering avec Mahout

ClusteringalgorithmDocuments List of

clusters

Evaluation de la précision

Données utilisées pour le training

Données utilisées pour évaluer la précision del’algorithme

Ensemble des données disponibles

Cas d’usage d’un moteur de recherche

Un moteur de recherche

Search

Un moteur de recherche

SearchMyCustomer

Un moteur de recherche

SearchMyCustomer

Non Disclosure Agreement 12 days ago... MyCustomer agrees not to disclose any part of ...

2010 Sales Report 1 month ago... MyCustomer: 12 M€ with 3 deals ...

Phone Call 2 days agoCustomer: MyCustomer Time: 9:55am Duration: 13minDescription: Invoice not received for order #2354E

Document

Document

Phone Call

Pipeline d’indexation

Text Extractor

Lucene

PDF

PhoneCall

Analyzer

Analyzer

SearchIndex

Tika

Un moteur de recherche plus complexe

SearchMyCustomer

2010 Sales Report 1 month ago... MyCustomer: 12 M€ with 3 deals ...

Phone Call 2 days agoCustomer: MyCustomer Time: 9:55am Duration: 13minDescription: Invoice not received for order #2354E

Document

Phone Call

Sales Juridic Accounting

Pipeline d’indexation avec Mahout

Text Extractor

Lucene

PDF

PhoneCall

Analyzer

Analyzer

SearchIndex

Tika

Classifier

Classifier

Mahout

Pipeline de requête

Query

Results

Analyzer

SearchIndex

Lucene

Pipeline de requête avec Mahout

Basé sur les recommandations de

Mahout

Query

Results

Analyzer

Analyzer

CustomScoring

SearchIndex

Lucene

Conclusion

• Le Machine Learning apporte des fonctionnalités à forte valeur ajoutée

• Mahout est en croissance rapide et devient un bon choix pour les applications

• Les équipes fonctionnelles ne sont pas familières de ces technologies

Amélioration des revenus, de la productivité, de l’adoption

Intégration facile aux applications métier

Une collaboration avec les équipes techniques est requise

Questions / Réponses

?@mfiguiere

blog.xebia.fr