SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
The copyright of images belongs to their authors. Drop me a message at andrii@vozniuk.com to remove
Talk description: https://www.meetup.com/elasticsearch-switzerland/events/237184939/
MULTIPLE WAYS OF BUILDING A
RECOMMENDER SYSTEM WITH
ELASTICSEARCH
ANDRII VOZNIUK
REACT-EPFL
Elastic MeetupLausanne, March 2017
1
ANDRII VOZNIUK
https://about.me/vozniuk
RESEARCHER
Interaction Systems @ REACT-EPFL
SOFTWARE ENGINEER
Web, Data, Cloud
ENTREPRENEUR
Knowledge Sharing Systems
WHY RECOMMENDATIONS
• Increase engagement
• Address information overload
• Improve information findability
• Not aware of its existence
• Do not know particular keywords
• New content appearing
• Facilitate discovery of relevant content
• Not only search or tags
3
TYPES OF RECOMMENDERS
Content-based
4
Collaborative filtering
Hybrid approaches
recommend
interacts
similar
interacts
recommend
interacts
interacts
similar
A COLLABORATIVE KNOWLEDGE
SHARING ENVIRONMENT
graasp.net
GRAASP
5
A SOCIAL MEDIA PLATFORM
AN ADVANCED
CONTENT
MANAGEMENT
SYSTEM
GRAASP IS
A MEAN WEB APP
M MongoDB
E Express.js
A AngularJs
N Node.js
Front-end
mongoose
express
Server
Database
6
GRAASP DEMO
TWO TYPES OF
RECOMMENDATIONS
7
GRAASP
RECOMMENDATIONS
8
Contextual recommendations
Personalized
recommendations
In theory, can be
both at a time
HOWTO
CONTEXTUAL
RECOMMENDATIONS
IN GRAASP
9
GOALS
• Provide contextually relevant recommendations
• Should work for individual items and for spaces
(collections of items)
• Will allow the user to discover contextually relevant
content items or users
10
BRINGING DATA TO
ELASTICSEARCH
Front-end
mongoose
express
Server
Database
mongoosastic
mongoosastic
is a mongoose
plugin
updating ES on
mongoose events
11
ELASTICSEARCH
COMPUTING RELEVANCE
12
STEP 1.
Represent each content item using the document vector model
STEP 0.
Compute TF-IDF for each term in the vectors
STEP 2.
Use vector cosine similarity for scoring and ranking
ELASTICSEARCH
RELEVANCE, VISUALLY
13
Source: https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html
Query: happy hippopotamus
1. I am happy in summer.
2. After Christmas I’m a hippopotamus.
3. The happy hippopotamus helped Harry
Three documents
1.Document 1: (happy,____________)—[2,0]
2.Document 2: (	___	,hippopotamus)—[0,5]
3.Document 3: (happy,hippopotamus)—[2,5]
TFIDF
ELASTICSEARCH

MORE LIKE THIS (MLT)
QUERY
14
Source: More Like This Query https://www.elastic.co/guide/en/elasticsearch/reference/2.0/query-dsl-mlt-query.html
Text-based
Can be a combination of both
Document Id-based
“The MLT query simply extracts
the text from the input
document, analyzes it, usually
using the same analyzer at the
field, then selects the top K
terms with highest tf-idf to form a
disjunctive query of these
terms.”
ELASTICSEARCH

MORE LIKE THIS (MLT)
LIMITATIONS
15
Source: Lucene MoreLikeThis.java
• Earlier, in 2016 when the doc id is
supplied, the text content was
concatenated, the search was
done over all specified fields
• No way to boost individual fields.
Matching on title can be more
important than on content
• Now, the query is done field-by-
field. Cannot boost, or match
desc field with the content field.
• We wanted to do cross-field
matching with boosting
16
USING SEARCH
FOR RECOMMENDATIONS
Decided to concat
fields manually and
use the match query
+can boost fields
+can do cross-field
matching
+can do cross-type
matching
- slower
HOWTO
INTERACTIVE RECOMMENDER
WITH CONTENT AND ACTIONS
IN GRAASP
17
GOALS
• Recommendations matching the user interests
rather than the context
• The user should understand the recommender
model (interpretability)
• The user should be able to adjust the recommender
(interactive)
• In general, we wanted the user to understand and
control the recommendations when needed
18
PROPOSAL
RECOMMENDATION MODEL
Provide

Recommendations

Record

User-
Content

Interactions
Extract

Concepts

from the

Content Build

User

Interests

Profile
Interpretable
Interactive
19
CONCEPT IDENTIFICATION
PIPELINE
20
Extracted
Text
Content
Items on platform
Binary Text
File
.pdf .docx
Image
with text
.png .jpg .tiff
Image
Audio
Video
Content
Extraction
Plain Text File
Optical
Character
Recognition
Speech-To-
Text
Visual Image
Recognition
Visual Video
Recognition
Content
Analysis
Content and
Concepts
Indexing
Identified
Concepts
Indexed
Identified
Concepts
and
Text
Content
Recommender
System
Leptonica
Tesseract
Pdf Report
Powerpoint
Presentation
Image with
Text
Youtube
Video
Σw*UA
*DC
accessed
rated
commented
downloaded
Education
Educational psychology
Knowledge
Learning
Knowledge Management
Human-Computer Interaction
Interdisciplinarity
Academia
Systems thinking
Scientific method
Educational technology
Virtual learning environment
User
Identified Concepts (DC)
Identified User Concepts
(UC)
Tracked Activities (UA)
Education
Educational psychology
Knowledge
Learning
Knowledge Management
Systems thinking
Scientific method
Educational technology
Virtual learning environment
Learning
Knowledge Management
Human-Computer Interaction
Interdisciplinarity
Education
Educational psychology
Academia
21
PROPOSAL
INTERESTS PROFILE
IDENTIFIED USER
INTERESTS
22
23
USING SEARCH
FOR RECOMMENDATIONS
SUMMARY
24
DEMONSTRATED HOW TO USE ELASTICSEARCH FOR
• Contextual recommendations (relevant to the context)
• Personalized recommendations (relevant to the user)
• More LikeThis vs Common queries (e.g., match)
POSSIBLE EXTENSIONS
• Displaying highlights to explain the recommendations
• Using the Percolator to notify the user about new relevant
content as it gets uploaded
• Alternative ways of constructing the user profile
• Trying collaborative filtering, user-user similarity can be
implemented with Elasticsearch
QUESTIONS?
FEEDBACK?
andrii@vozniuk.com
25
about.me/vozniuk
LOOKING
WHAT
TO DO NEXT
TALK TO ME :)
pomolab.com

Mais conteúdo relacionado

Mais de Andrii Vozniuk

Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...
Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...
Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...
Andrii Vozniuk
 

Mais de Andrii Vozniuk (7)

Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...
Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...
Enhancing Social Media Platforms for Educational and Humanitarian Knowledge S...
 
TPC-DS performance evaluation for JAQL and PIG queries - Andrii Vozniuk, Serg...
TPC-DS performance evaluation for JAQL and PIG queries - Andrii Vozniuk, Serg...TPC-DS performance evaluation for JAQL and PIG queries - Andrii Vozniuk, Serg...
TPC-DS performance evaluation for JAQL and PIG queries - Andrii Vozniuk, Serg...
 
Graspeo: a Social Media Platform for Knowledge Management in NGOs - Andrii Vo...
Graspeo: a Social Media Platform for Knowledge Management in NGOs - Andrii Vo...Graspeo: a Social Media Platform for Knowledge Management in NGOs - Andrii Vo...
Graspeo: a Social Media Platform for Knowledge Management in NGOs - Andrii Vo...
 
AngeLA: Putting the teacher in control of student privacy in the online class...
AngeLA: Putting the teacher in control of student privacy in the online class...AngeLA: Putting the teacher in control of student privacy in the online class...
AngeLA: Putting the teacher in control of student privacy in the online class...
 
Scheduling in distributed systems - Andrii Vozniuk
Scheduling in distributed systems - Andrii VozniukScheduling in distributed systems - Andrii Vozniuk
Scheduling in distributed systems - Andrii Vozniuk
 
Cloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
Cloud infrastructure. Google File System and MapReduce - Andrii VozniukCloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
Cloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
 
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
Symbolic Reasoning and Concrete Execution - Andrii Vozniuk
 

Último

Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
amitlee9823
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
amitlee9823
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
MarinCaroMartnezBerg
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interaction
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
Capstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramCapstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics Program
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Multiple ways of building a recommender system with Elasticsearch - Elastic Meetup Switzerland - Andrii Vozniuk