+ All Categories
Home > Technology > June Spark meetup : search as recommandation

June Spark meetup : search as recommandation

Date post: 04-Aug-2015
Category:
Upload: altic-sarl
View: 570 times
Download: 0 times
Share this document with a friend
Popular Tags:
23
Search as recommendation Avec les technologies de nos jours! Bertrand Dechoux Jeudi 11 Juin 2015 Spark User Group
Transcript
Page 1: June Spark meetup : search as recommandation

Search as recommendation

Avec les technologies de nos jours!

Bertrand Dechoux

Jeudi 11 Juin 2015

Spark User

Group

Page 2: June Spark meetup : search as recommandation

Bertrand Dechoux @BertrandDechoux

FROM DATA TO SALES

Réseaux Bayésiens

Inspiré de faits réels

Page 3: June Spark meetup : search as recommandation

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

Page 4: June Spark meetup : search as recommandation

Recherche ou recommandation ?

Page 5: June Spark meetup : search as recommandation

Recherche ou recommandation ?

classification binaire ou système de tri => precision / recall / DCG …

factorisation de matrices => minimisation des écarts mis au carré

Page 6: June Spark meetup : search as recommandation

Il était une fois…Hadoop

Lucene1999

2005

Elastic Search

Solr2004

2010

Page 7: June Spark meetup : search as recommandation

1/3 : Stockage du Comportement

Application Web

Historique récent

temporaire

Historique complet

permanent

Moteur recherche

full-text utilisateur

$ !

Analyse de similarité

Page 8: June Spark meetup : search as recommandation

2/3 : Analyse en batch

Application Web

Historique récent

temporaire

Historique complet

permanent

Moteur recherche

full-text utilisateur

Analyse de similarité

$

Page 9: June Spark meetup : search as recommandation

3/3 : Reco full-text

Application Web

Historique récent

temporaire

Historique complet

permanent

Moteur recherche

full-text utilisateur

$ ?

Analyse de similarité

Page 10: June Spark meetup : search as recommandation

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

Page 11: June Spark meetup : search as recommandation

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” }'

Page 12: June Spark meetup : search as recommandation

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" }}]

Page 13: June Spark meetup : search as recommandation

ES : recommendation

{ "name" : “product1", "description" : “a long description of this product", "similar" : “product2 product4 product7”, "category" : “categoryA”

}

Page 14: June Spark meetup : search as recommandation

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

Page 15: June Spark meetup : search as recommandation

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)

Page 16: June Spark meetup : search as recommandation

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

Page 17: June Spark meetup : search as recommandation

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

Page 18: June Spark meetup : search as recommandation

0.10 : spark-itemsimilarity

mahout spark-itemsimilarity -i input -o output

2 paramètres à retenir : • --omitStrength • --maxSimilaritiesPerItem

Page 19: June Spark meetup : search as recommandation

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

Page 20: June Spark meetup : search as recommandation

Backbone specs

• scalable (performance) • cross-tech • structuré • cohérence • sécurisé

Page 21: June Spark meetup : search as recommandation

Confluent : Kafka platform

• Kafka • + REST server • + Schema Registry (avro comme standard) • + Camus

Page 22: June Spark meetup : search as recommandation

En savoir plus

Pat Ferrel : http://occamsmachete.com/ml/

http://confluent.io/

https://mahout.apache.org/users/algorithms/intro-cooccurrence-spark.html

Page 23: June Spark meetup : search as recommandation

Et toi, que fais tu?

Sur LinkedIn : https://goo.gl/1mi0Me


Recommended