Recherche full-text et recommandation, deux mondes à part? Nous verrons qu’il est possible de marier Lucene (Elastic Search/Solr) et filtrage collaboratif afin de produire un système de recommandation flexible et scalable. Cela passera par un aperçu des dernières sorties : la plateforme Confluent (Kafka) ainsi que Mahout 0.10 (avec Samsara).
3. Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsara)
• 25 février 2015 => Confluent 1.0
5. Recherche ou recommandation ?
classification binaire ou système de tri
=> precision / recall / DCG …
factorisation de matrices
=> minimisation des écarts mis au carré
6. Il était une fois…
Hadoop
Lucene
1999
2005
Elastic
Search
Solr
2004
2010
7. 1/3 : Stockage du Comportement
Application
Web
Historique
récent
temporaire
Historique
complet
permanent
Moteur
recherche
full-text
utilisateur
$ !
Analyse de
similarité
8. 2/3 : Analyse en batch
Application
Web
Historique
récent
temporaire
Historique
complet
permanent
Moteur
recherche
full-text
utilisateur
Analyse de
similarité
$
9. 3/3 : Reco full-text
Application
Web
Historique
récent
temporaire
Historique
complet
permanent
Moteur
recherche
full-text
utilisateur
$ ?
Analyse de
similarité
10. Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsara)
• 25 février 2015 => Confluent 1.0
13. ES : recommendation
{
"name" : “product1",
"description" : “a long description of this product",
"similar" : “product2 product4 product7”,
"category" : “categoryA”
}
14. Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsara)
• 25 février 2015 => Confluent 1.0
15. 0.10 : Samsara
• “25 avril 2014 - Goodbye MapReduce”
• “11 avril 2015 - Samsara”
• inspiré de R, aidé par Scala
• cross-platform (Spark, H2O, Flink?, Ignite?, …)
• “Hive pour math” (Dmitriy Lyubimov)
16. 0.10 : spark-itemsimilarity
• nouvelle version utilisant Spark
• et DistributedRowMatrix
• supporte seulement LogLikelihoodRatio (LLR)
• “Surprise and coincidence” (Ted Dunning)
• entrées et sorties en format text
19. Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsara)
• 25 février 2015 => Confluent 1.0
22. En savoir plus
Pat Ferrel : http://occamsmachete.com/ml/
http://confluent.io/
https://mahout.apache.org/users/algorithms/intro-
cooccurrence-spark.html
23. Et toi, que fais tu?
Sur LinkedIn : https://goo.gl/1mi0Me