Search as
recommendation
Avec les technologies de nos jours!
Bertrand
Dechoux
Jeudi
11 Juin
2015
Spark
User
Group
Bertrand Dechoux
@BertrandDechoux
FROM DATA TO SALES
Réseaux Bayésiens
Inspiré de faits réels
Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsar...
Recherche ou recommandation ?
Recherche ou recommandation ?
classification binaire ou système de tri
=> precision / recall / DCG …
factorisation de matri...
Il était une fois…
Hadoop
Lucene
1999
2005
Elastic
Search
Solr
2004
2010
1/3 : Stockage du Comportement
Application
Web
Historique
récent
temporaire
Historique
complet
permanent
Moteur
recherche
...
2/3 : Analyse en batch
Application
Web
Historique
récent
temporaire
Historique
complet
permanent
Moteur
recherche
full-tex...
3/3 : Reco full-text
Application
Web
Historique
récent
temporaire
Historique
complet
permanent
Moteur
recherche
full-text
...
Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsar...
ES : données
curl -XPUT 'http://localhost:9200/search/item/1' -d ‘{

"name" : “spark", "languages" : "scala java python” }...
ES : recherche
curl -XGET 'http://localhost:9200/search/item/_search?q=scala'
[{"_score":0.19178301, "_source":{
"name" : ...
ES : recommendation
{
"name" : “product1",
"description" : “a long description of this product",
"similar" : “product2 pro...
Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsar...
0.10 : Samsara
• “25 avril 2014 - Goodbye MapReduce”
• “11 avril 2015 - Samsara”
• inspiré de R, aidé par Scala
• cross-pl...
0.10 : spark-itemsimilarity
• nouvelle version utilisant Spark
• et DistributedRowMatrix
• supporte seulement LogLikelihoo...
0.10 : spark-itemsimilarity
Item
1
item
2
item
3
item
4
item
5
item
6 ...
user
1
user
2
user
3
user
4
user
5
user
6
...
0.10 : spark-itemsimilarity
mahout spark-itemsimilarity -i input -o output
2 paramètres à retenir :
• --omitStrength
• --m...
Ce que nous allons voir
• search vs recommandation
• reco full-text (ElasticSearch)
• 11 avril 2015 => Mahout 0.10 (samsar...
Backbone specs
• scalable (performance)
• cross-tech
• structuré
• cohérence
• sécurisé
Confluent : Kafka platform
• Kafka
• + REST server
• + Schema Registry (avro comme standard)
• + Camus
En savoir plus
Pat Ferrel : http://occamsmachete.com/ml/
http://confluent.io/
https://mahout.apache.org/users/algorithms/in...
Et toi, que fais tu?
Sur LinkedIn : https://goo.gl/1mi0Me
Prochain SlideShare
Chargement dans…5
×

June Spark meetup : search as recommandation

6 173 vues

Publié le

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

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
6 173
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4 266
Actions
Partages
0
Téléchargements
25
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

June Spark meetup : search as recommandation

  1. 1. Search as recommendation Avec les technologies de nos jours! Bertrand Dechoux Jeudi 11 Juin 2015 Spark User Group
  2. 2. Bertrand Dechoux @BertrandDechoux FROM DATA TO SALES Réseaux Bayésiens Inspiré de faits réels
  3. 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
  4. 4. Recherche ou recommandation ?
  5. 5. Recherche ou recommandation ? classification binaire ou système de tri => precision / recall / DCG … factorisation de matrices => minimisation des écarts mis au carré
  6. 6. Il était une fois… Hadoop Lucene 1999 2005 Elastic Search Solr 2004 2010
  7. 7. 1/3 : Stockage du Comportement Application Web Historique récent temporaire Historique complet permanent Moteur recherche full-text utilisateur $ ! Analyse de similarité
  8. 8. 2/3 : Analyse en batch Application Web Historique récent temporaire Historique complet permanent Moteur recherche full-text utilisateur Analyse de similarité $
  9. 9. 3/3 : Reco full-text Application Web Historique récent temporaire Historique complet permanent Moteur recherche full-text utilisateur $ ? Analyse de similarité
  10. 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
  11. 11. ES : données curl -XPUT 'http://localhost:9200/search/item/1' -d ‘{ "name" : “spark", "languages" : "scala java python” }’ curl -XPUT 'http://localhost:9200/search/item/2' -d ‘{ "name" : “gatling", "languages" : “scala" }’ curl -XPUT 'http://localhost:9200/search/item/3' -d ‘{ "name" : “scikit-learn“, "languages" : "python” }'
  12. 12. ES : recherche curl -XGET 'http://localhost:9200/search/item/_search?q=scala' [{"_score":0.19178301, "_source":{ "name" : "gatling", "languages" : "scala"}}, {"_score":0.15342641, "_source":{ "name" : "spark", "languages" : "scala java python" }}]
  13. 13. ES : recommendation { "name" : “product1", "description" : “a long description of this product", "similar" : “product2 product4 product7”, "category" : “categoryA” }
  14. 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. 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. 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
  17. 17. 0.10 : spark-itemsimilarity Item 1 item 2 item 3 item 4 item 5 item 6 ... user 1 user 2 user 3 user 4 user 5 user 6 ...
  18. 18. 0.10 : spark-itemsimilarity mahout spark-itemsimilarity -i input -o output 2 paramètres à retenir : • --omitStrength • --maxSimilaritiesPerItem
  19. 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
  20. 20. Backbone specs • scalable (performance) • cross-tech • structuré • cohérence • sécurisé
  21. 21. Confluent : Kafka platform • Kafka • + REST server • + Schema Registry (avro comme standard) • + Camus
  22. 22. En savoir plus Pat Ferrel : http://occamsmachete.com/ml/ http://confluent.io/ https://mahout.apache.org/users/algorithms/intro- cooccurrence-spark.html
  23. 23. Et toi, que fais tu? Sur LinkedIn : https://goo.gl/1mi0Me

×