mix-it (apr 2011) - intelligence collective avec apache mahout

43
Intelligence Collective avec Apache Mahout Classification, Regroupement, Recommandation

Upload: michael-figuiere

Post on 26-May-2015

3.473 views

Category:

Technology


1 download

TRANSCRIPT

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

Intelligence Collective avec Apache Mahout

Classification, Regroupement, Recommandation

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

Speaker

Michaël Figuière

@mfiguiere

blog.xebia.fr

Search Engines NoSQL

DistributedArchitectures

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

Intelligence Collective

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

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

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

Wikipedia

Le wiki agrège l’intelligence

collective des contributeurs

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

Google et le PageRank

PageRank agrège l’intelligence

collective des sites Web

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

La nature des données

Les données aléatoiressont par définition

imprévisibles !

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

La nature des données

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

comportent généralement selon des patterns reconnaissables !

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

Machine Learning

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

Machine Learning

Intelligence Artificielle

Machine Learning(Apprentissage Artificiel)

Le Machine Learning est un sous-ensemble de

l’Intelligence Artificielle

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

NoSQL, Recherche et Machine Learning

NoSQL, Machine Learning et Moteurs de Recherche

sont complémentairesMachineLearning

Moteurs deRechercheNoSQL

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

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

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

Recommandation - User based

Amazon suggère des articles

achetés par les clients similaires

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

Recommandation - Item based

Sur la page d’un article Amazon

suggère des articles

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

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

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

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, ...

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

Classification

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

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

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, ...

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

Clustering

Sujets tendances découverts par Google News

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

Clustering avec K-Means

AB

DE

F

C

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

Clustering avec K-Means

AB

DE

F

C

Centres de groupementplacés aléatoirement

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

Clustering avec K-Means

AB

C

DE

F

Les données sont rattachées au

centres le plus proche

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

Clustering avec K-Means

AB

DE

F

C

Les centres sont alors déplacés de

manière à réduire la somme des distances

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

Clustering avec K-Means

AB

DE

F

C

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

premier centre

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

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, ...

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

Apache Mahout

Page 27: Mix-IT (Apr 2011) - Intelligence Collective avec 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

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

Documentation

Cherche à rendre le Machine Learning accessible

au plus grand nombre

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

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);

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

Classification avec Mahout

Trainingalgorithm

Trainingexamples

New data

Model

Model Decision

Copy

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

Clustering avec Mahout

ClusteringalgorithmDocuments List of

clusters

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

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

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

Cas d’usage d’un moteur de recherche

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

Un moteur de recherche

Search

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

Un moteur de recherche

SearchMyCustomer

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

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

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

Pipeline d’indexation

Text Extractor

Lucene

PDF

PhoneCall

Analyzer

Analyzer

SearchIndex

Tika

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

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

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

Pipeline d’indexation avec Mahout

Text Extractor

Lucene

PDF

PhoneCall

Analyzer

Analyzer

SearchIndex

Tika

Classifier

Classifier

Mahout

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

Pipeline de requête

Query

Results

Analyzer

SearchIndex

Lucene

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

Pipeline de requête avec Mahout

Basé sur les recommandations de

Mahout

Query

Results

Analyzer

Analyzer

CustomScoring

SearchIndex

Lucene

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

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

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

Questions / Réponses

?@mfiguiere

blog.xebia.fr