SlideShare a Scribd company logo
1 of 51
Download to read offline
Where Search Meets Machine Learning
Diana Hu @sdianahu — Data Science Lead, Verizon
Joaquin Delgado @joaquind — Director of Engineering, Verizon
Disclaimer
2
The content of this presentation are of the authors’
personal statements and does not officially represent their
employer’s view in anyway. Included content is especially
not intended to convey the views of OnCue or Verizon
01
Index
1.  Introduction
2.  Search and Information Retrieval
3.  ML problems as Search-based Systems
4.  ML Meets Search!
Introduction
Scaling learning systems is hard!
•  Millions of users, items
•  Billions of features
•  Imbalanced Datasets
•  Complex Distributed Systems
•  Many algorithms have not been tested at “Internet Scale”
Typical approaches
•  Distributed systems – Fault tolerance, Throughput vs.
latency
•  Parallelization Strategies – Hashing, trees
•  Processing – Map reduce variants, MPI, graph parallel
•  Databases – Key/Value Stores, NoSQL
Such a custom system requires TLC
Search and
Information Retrieval
Search
Search is about finding specific things that are either known
or assumed to exist, Discovery is about is about helping the
user encounter what he/she didn’t even know exists.
•  Focused on Search: Search Engines, Database Systems
•  Focused on Discovery: Recommender Systems, Advertising
Predicate Logic and Declarative Languages Rock!
Search stack
Matched Hits
Representation
Function
Similarity
Calculation
Matched HitsDocuments
Representation
Function
Input Query
Matched HitsMatched HitsRetrieved Documents
Online
Processing
Offline
Processing
(*)RelevanceFeedback
Query Representation
Doc Representation Index
*Metadata Engineering
(*) Optional
Relevance: Vector Space Model
Search Engines: the big hammer
•  Search engines are largely used to solve non-IR
search problems, because:
•  Widely Available
•  Fast and Scalable
•  Integrates well with existing data stores
But… Are we using the right tool?
•  Search Engines were originally designed for IR.
•  Complex non-IR search tasks sometimes require a two
phase approach
Phase1) Filter Phase 2) Rank
Finding commonalities
Relevance
aka Ranking
RecSys
Discovery
IRSearch
Advertising
ML problems as
Search-based Systems
Machine Learning
Machine Learning in particular supervised learning refer to
techniques used to learn how to classify or score previously
unseen objects based on a training dataset
Inference and Generalization are the Key!
Supervised learning pipeline
Learning systems’ stack
Visualization / UI
Retrieval
Ranking
Query Generation and
Contextual Pre-filtering
Model Building
Index Building
Data/Events Collections
Data Analytics
Contextual Post Filtering
OnlineOffline
Experimentation
Case study: Recommender Systems
•  Reduce information load by estimating relevance
•  Ranking (aka Relevance) Approaches:
•  Collaborative filtering
•  Content Based
•  Knowledge Based
•  Hybrid
•  Beyond rating prediction and ranking
•  Business filtering logic
•  Low latency and Scale
RecSys: Content based models
•  Rec Task: Given a user profile find the best matching items by their
attributes
•  Similarity calculation: based on keyword overlap between user/items
•  Neighborhood method (i.e. nearest neighbor)
•  Query-based retrieval (i.e Rocchio’s method)
•  Probabilistic methods (classical text classification)
•  Explicit decision models
•  Feature representation: based on content analysis
•  Vector space model
•  TF-IDF
•  Topic Modeling
RecSys: Collaborative Filtering
Matrix
Factorization
Rating
Dataset
User
Factors
Item
Factors
Re-Ranking
Model
Input Query
Online
Processing
Offline
Processing
Recommendations
RecSys: Collaborative Filtering
Matrix
Factorization
Rating
Dataset
User
Factors
Item
Factors
Re-Ranking
Model
Input Query
Online
Processing
Offline
Processing
Recommendations
ML Meets Search! ML Search
Remember the elephant?
Visualization / UI
Retrieval
Ranking
Query Generation and
Contextual Pre-filtering
Model Building
Index Building
Data/Events Collections
Data Analytics
Contextual Post Filtering
OnlineOffline
Experimentation
Simplifying the stack!
Visualization / UI
Query Generation and
Contextual Pre-filtering
Model Building
Index Building
Data/Events Collections
Data Analytics
OnlineOffline
Experimentation
Retrieval
Contextual Post Filtering
Ranking
Search stack
Matched Hits
Representation
Function
Similarity
Calculation
Matched HitsDocuments
Representation
Function
Input Query
Matched HitsMatched HitsRetrieved Documents
Online
Processing
Offline
Processing
(*)RelevanceFeedback
Query Representation
Doc Representation Index
*Metadata Engineering
(*) Optional
Simplifying the Search stack
Matched Hits
Representation
Function
Similarity
Calculation
Matched HitsDocuments
Representation
Function
Input Query
Matched HitsMatched HitsRetrieved Documents
Online
Processing
Offline
Processing
(*)RelevanceFeedback
Query Representation
Doc Representation Index
*Metadata Engineering
(*) Optional
Retrieval
Contextual Post Filtering
Ranking
ML-Scoring Plugin
Serialized
ML Model
ML-Scoring architecture
Lucene/Solr
Instances +
Labels
Instances
Index
ML
Scoring
Plugin
Serialized
ML Model
Online
Processing
Offline
Processing
Trainer
+
Indexer
ML-Scoring Options
•  Option A: Solr FunctionQuery
•  Pro: Model is just a query!
•  Cons: Limits expressiveness of models
•  Option B: Solr Custom Function Query
•  Pro: Loading any type of model (also PMML)
•  Cons: Memory limitations, also multiple model reloading
•  Option C: Lucene CustomScoreQuery
•  Pro: Can use PMML and tune how PMML gets loaded
•  Cons: No control on matches
•  Option D: Lucene Low level Custome Query
•  *Mahout vectors from Lucene text (only trains, so not an option)
Real-life Problem
•  Census database that contains documents with the following
fields:
1. Age: continuous; 2. Workclass: 8 values; 3. Fnlwgt: continuous.; 4.
Education: 16 values; 5. Education-num: continuous.; 6. Marital-status: 7
values; 7. Occupation: 14 values; 8. Relationship: 6 values; 9. Race: 5
values; 10. Sex: Male, Female; 11. Capital-gain: continuous.;12. Capital-
loss: continuous.; 13. Hours-per-week: continuous.; 14. Native-country:
41 values; 15. >50K Income: Yes, No.
•  Task is to predict whether a person makes more than 50k a
year based on their attributes
1) Learn from the (training) data
Naïve
Bayes
SVM
Logistic
Regression
Decision
Trees
Train with your favorite
ML Framework
Option A: Just a Solr Function Query
q=“sum(C,	
  
	
   	
  	
  	
  	
  	
  product(age,w1),	
  
	
   	
  	
  	
  	
  	
  product(Workclass,w2),	
  
	
   	
  	
  	
  	
  	
  product(Fnlwgt,	
  w3),	
  
	
   	
  	
  	
  	
  	
  product(Education,	
  w4),	
  
	
   	
  	
  	
  	
  	
  ….)”	
  
Serialized ML Model
as Query
Trainer
+
Indexer
Y_prediction = C + XB
May result in a crazy Solr functionQuery
See more at https://wiki.apache.org/solr/FunctionQuery
q=dismax&bf="ord(educaton-num)^0.5 recip(rord(age),1,1000,1000)^0.3"
What about models like this?
Option B: Custom Solr FuntionQuery
1.  Subclass org.apache.solr.search.ValueSourceParser.
public	
  class	
  MyValueSourceParser	
  extends	
  ValueSourceParser	
  {	
  
	
  public	
  void	
  init	
  (NamedList	
  namedList)	
  {	
  
	
  	
  	
  	
  	
  …	
  
	
  	
  }	
  
	
  	
  public	
  ValueSource	
  parse(FunctionQParser	
  fqp)	
  throws	
  ParseException	
  {	
  
	
  	
  	
  	
  	
  return	
  new	
  MyValueSource();	
  
	
  	
  }	
  
}
2.  In solrconfig.xml, register your new ValueSourceParser directly under the <config> tag
<valueSourceParser	
  name=“myfunc”	
  class=“com.custom.MyValueSourceParser”	
  />	
  
3.  Subclass org.apache.solr.search.ValueSource and instantiate it in
ValueSourceParser.parse()
Option C: Lucene CustomScoreQuery
2C) Serialize model with PMML
•  Can use JPMML library to read serialized model in Lucene
•  On Lucene will need to implement an extension with
JPMML-evaluator to take vectors as expected
3C) In Lucene:
•  Override CustomScoreQuery: load PMML
•  Create CustomScoreProvider: do model PMML data marshaling
•  Rescoring: PMML evaluation
Predictive Model Markup Language
•  Why use PMML
•  Allows users to build a model in one system
•  Export model and deploy it in a different environment for prediction
•  Fast iteration: from research to deployment to production
•  Model is a XML document with:
•  Header: description of model, and where it was generated
•  DataDictionary: defines fields used by model
•  Model: structure and parameters of model
•  http://dmg.org/pmml/v4-2-1/GeneralStructure.html
Example: Train in Spark to PMML
import	
  org.apache.spark.mllib.clustering.KMeans	
  	
  
import	
  org.apache.spark.mllib.linalg.Vectors	
  	
  	
  
	
  
//	
  Load	
  and	
  parse	
  the	
  data	
  	
  
val	
  data	
  =	
  sc.textFile("/path/to/file")	
  	
  	
  	
  
	
   	
  .map(s	
  =>	
  Vectors.dense(s.split(',').map(_.toDouble)))	
  	
  	
  
	
  	
  
//	
  Cluster	
  the	
  data	
  into	
  three	
  classes	
  using	
  KMeans	
  	
  
val	
  numIterations	
  =	
  20	
  	
  
val	
  numClusters	
  =	
  3	
  	
  
val	
  kmeansModel	
  =	
  KMeans.train(data,	
  numClusters,	
  numIterations)	
  	
  	
  
	
  	
  
//	
  Export	
  clustering	
  model	
  to	
  PMML	
  	
  
kmeansModel.toPMML("/path/to/kmeans.xml")	
  
PMML XML File
Overriding scores with
CustomScoreQuery
CustomScoreProvider CustomScoreQuery
Lucene Query
Find next
Match
Score
Rescore Doc
New Score
*Credit to Doug Turnbull’s
Hacking Lucene forCustom Search Results
Overriding scores with
CustomScoreQuery
•  Matching remains
•  Scoring overridden
CustomScoreProvider CustomScoreQuery
Lucene Query
Find next
Match
Score
Rescore Doc
New Score
*Credit to Doug Turnbull’s
Hacking Lucene forCustom Search Results
Implementing CustomScoreQuery
1.  Given normal Lucene Query, use a CustomScoreQuery to wrap it
TermQuery	
  q	
  =	
  New	
  TermQuery(term)	
  
MyCustomScoreQuery	
  mcsq	
  =	
  New	
  MyCustomScoreQuery(q)	
  
//Make	
  sure	
  query	
  has	
  all	
  fields	
  needed	
  by	
  PMML!
Implementing CustomScoreQuery
2.  Initialize PMML
PMML	
  pmml	
  =	
  ...;	
  
ModelEvaluatorFactory	
  modelEvaluatorFactory	
  =	
  	
  
	
   	
   	
   	
   	
  ModelEvaluatorFactory.newInstance();	
  
ModelEvaluator<?>	
  modelEvaluator	
  =	
  	
  
	
   	
   	
   	
   	
  modelEvaluatorFactory.newModelManager(pmml);	
  
Evaluator	
  evaluator	
  =	
  (Evaluator)modelEvaluator;	
  
	
   	
  	
  
Implementing CustomScoreQuery
2.  Rescore each doc with IndexReader and docID
public	
  float	
  customScore(int	
  doc,	
  float	
  subQueryScore,	
  float	
  
valSrcScores[])	
  throws	
  IOException	
  {	
  
//Lucene	
  reader	
  
IndexReader	
  r	
  =	
  context.reader();	
  
Terms	
  tv	
  =	
  r.getTermVector(doc,	
  _field);	
  
TermsEnum	
  tenum	
  =	
  null;	
  
tenum	
  =	
  tv.iterator(tenum);	
  	
  	
  	
  	
  
//convert	
  the	
  iterator	
  order	
  to	
  fields	
  needed	
  by	
  model	
  
TermsEnum	
  tenumPMML	
  =	
  tenum2PMML(tenum,	
  
	
   	
   	
   	
   	
   	
   	
   	
   	
   	
   	
  evaluator.getActiveFields());	
  
	
   	
  	
  
Implementing CustomScoreQuery
2.  Rescore each doc with IndexReader and docID
//Marshall	
  Data	
  into	
  PMML	
  
Map<FieldName,	
  FieldValue>	
  arguments	
  =	
  	
  
	
   	
   	
   	
   	
   	
   	
   	
  new	
  LinkedHashMap<FieldName,	
  FieldValue>();	
  
List<FieldName>	
  activeFields	
  =	
  evaluator.getActiveFields();	
  
for(FieldName	
  activeField	
  :	
  activeFields){	
  
	
   	
  //	
  The	
  raw	
  is	
  value	
  has	
  been	
  sorted	
  with	
  number	
  of	
  fields	
  needed	
  
	
   	
  Object	
  rawValue	
  =	
  tenumPMML.next;	
  
	
   	
  FieldValue	
  activeValue	
  =	
  evaluator.prepare(activeField,	
  rawValue);	
  
	
   	
  arguments.put(activeField,	
  activeValue);	
  
}	
  
	
  
	
  	
  
Implementing CustomScoreQuery
2.  Rescore each doc with IndexReader and docID
//Rescore	
  and	
  evaluate	
  with	
  PMML	
  
Map<FieldName,	
  ?>	
  results	
  =	
  evaluator.evaluate(arguments);	
  
FieldName	
  targetName	
  =	
  evaluator.getTargetField();	
  
Object	
  targetValue	
  =	
  results.get(targetName);	
  
return	
  (float)	
  targetValue;	
  
	
  	
  
Potential issues
•  Performance
•  If search space is very large
•  If model complexity explodes (i.e. kernel expansion)
•  Operations
•  Code is running on key infrastructure
•  Versioning
•  Binary Compatibility
Option D: Low Level Lucene
•  CustomScoreQuery or Custom FunctionScore can’t control
matches
•  If you want custom matches and scoring….
•  Implement:
•  Custom Query Class
•  Custom Weight Class
•  Custom Scorer Class
•  http://opensourceconnections.com/blog/2014/03/12/using-
customscorequery-for-custom-solrlucene-scoring/
Conclusion
•  Importance of the full picture – Learning systems from the
lenses of the whole elephant
•  Reducing the time from science to production is
complicated
•  Scalability is hard!
•  Why not have ML use Search in its core during online eval?
•  Solr and Lucene are a start to customize your learning system
We are Hiring!
Contact me at
diana.hu@verizon.com
@sdianahu
Q&A
O C T O B E R 1 3 - 1 6 , 2 0 1 6 • A U S T I N , T X
Where Search Meets ML: Using Search Systems for Machine Learning Problems

More Related Content

What's hot

The power of community: training a Transformer Language Model on a shoestring
The power of community: training a Transformer Language Model on a shoestringThe power of community: training a Transformer Language Model on a shoestring
The power of community: training a Transformer Language Model on a shoestringSujit Pal
 
Learning to Rank Presentation (v2) at LexisNexis Search Guild
Learning to Rank Presentation (v2) at LexisNexis Search GuildLearning to Rank Presentation (v2) at LexisNexis Search Guild
Learning to Rank Presentation (v2) at LexisNexis Search GuildSujit Pal
 
Apache Mahout 於電子商務的應用
Apache Mahout 於電子商務的應用Apache Mahout 於電子商務的應用
Apache Mahout 於電子商務的應用James Chen
 
Dice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank TalkDice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank TalkSimon Hughes
 
Apache Mahout Tutorial - Recommendation - 2013/2014
Apache Mahout Tutorial - Recommendation - 2013/2014 Apache Mahout Tutorial - Recommendation - 2013/2014
Apache Mahout Tutorial - Recommendation - 2013/2014 Cataldo Musto
 
Buidling large scale recommendation engine
Buidling large scale recommendation engineBuidling large scale recommendation engine
Buidling large scale recommendation engineKeeyong Han
 
Introduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache MahoutIntroduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache Mahoutsscdotopen
 
Evolving the Optimal Relevancy Ranking Model at Dice.com
Evolving the Optimal Relevancy Ranking Model at Dice.comEvolving the Optimal Relevancy Ranking Model at Dice.com
Evolving the Optimal Relevancy Ranking Model at Dice.comSimon Hughes
 
Text categorization with Lucene and Solr
Text categorization with Lucene and SolrText categorization with Lucene and Solr
Text categorization with Lucene and SolrTommaso Teofili
 
Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...
Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...
Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...Lucidworks
 
Jake Mannix, MLconf 2013
Jake Mannix, MLconf 2013Jake Mannix, MLconf 2013
Jake Mannix, MLconf 2013MLconf
 
SDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the whySDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the whyKorea Sdec
 
Vectors in Search - Towards More Semantic Matching
Vectors in Search - Towards More Semantic MatchingVectors in Search - Towards More Semantic Matching
Vectors in Search - Towards More Semantic MatchingSimon Hughes
 
Enhance discovery Solr and Mahout
Enhance discovery Solr and MahoutEnhance discovery Solr and Mahout
Enhance discovery Solr and Mahoutlucenerevolution
 
Reflected intelligence evolving self-learning data systems
Reflected intelligence  evolving self-learning data systemsReflected intelligence  evolving self-learning data systems
Reflected intelligence evolving self-learning data systemsTrey Grainger
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architectureLiang Xiang
 
Hands on Mahout!
Hands on Mahout!Hands on Mahout!
Hands on Mahout!OSCON Byrum
 

What's hot (20)

The power of community: training a Transformer Language Model on a shoestring
The power of community: training a Transformer Language Model on a shoestringThe power of community: training a Transformer Language Model on a shoestring
The power of community: training a Transformer Language Model on a shoestring
 
Learning to Rank Presentation (v2) at LexisNexis Search Guild
Learning to Rank Presentation (v2) at LexisNexis Search GuildLearning to Rank Presentation (v2) at LexisNexis Search Guild
Learning to Rank Presentation (v2) at LexisNexis Search Guild
 
Apache mahout
Apache mahoutApache mahout
Apache mahout
 
Apache Mahout 於電子商務的應用
Apache Mahout 於電子商務的應用Apache Mahout 於電子商務的應用
Apache Mahout 於電子商務的應用
 
Dice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank TalkDice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank Talk
 
Apache Mahout Tutorial - Recommendation - 2013/2014
Apache Mahout Tutorial - Recommendation - 2013/2014 Apache Mahout Tutorial - Recommendation - 2013/2014
Apache Mahout Tutorial - Recommendation - 2013/2014
 
Haystacks slides
Haystacks slidesHaystacks slides
Haystacks slides
 
Buidling large scale recommendation engine
Buidling large scale recommendation engineBuidling large scale recommendation engine
Buidling large scale recommendation engine
 
Introduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache MahoutIntroduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache Mahout
 
Evolving the Optimal Relevancy Ranking Model at Dice.com
Evolving the Optimal Relevancy Ranking Model at Dice.comEvolving the Optimal Relevancy Ranking Model at Dice.com
Evolving the Optimal Relevancy Ranking Model at Dice.com
 
Text categorization with Lucene and Solr
Text categorization with Lucene and SolrText categorization with Lucene and Solr
Text categorization with Lucene and Solr
 
Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...
Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...
Automatically Build Solr Synonyms List using Machine Learning - Chao Han, Luc...
 
Apache Mahout
Apache MahoutApache Mahout
Apache Mahout
 
Jake Mannix, MLconf 2013
Jake Mannix, MLconf 2013Jake Mannix, MLconf 2013
Jake Mannix, MLconf 2013
 
SDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the whySDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the why
 
Vectors in Search - Towards More Semantic Matching
Vectors in Search - Towards More Semantic MatchingVectors in Search - Towards More Semantic Matching
Vectors in Search - Towards More Semantic Matching
 
Enhance discovery Solr and Mahout
Enhance discovery Solr and MahoutEnhance discovery Solr and Mahout
Enhance discovery Solr and Mahout
 
Reflected intelligence evolving self-learning data systems
Reflected intelligence  evolving self-learning data systemsReflected intelligence  evolving self-learning data systems
Reflected intelligence evolving self-learning data systems
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architecture
 
Hands on Mahout!
Hands on Mahout!Hands on Mahout!
Hands on Mahout!
 

Viewers also liked

Seaside holiday in poland
Seaside holiday in polandSeaside holiday in poland
Seaside holiday in polandNicol Vrettou
 
Crowdfunding in Nederland 2014
Crowdfunding in Nederland 2014Crowdfunding in Nederland 2014
Crowdfunding in Nederland 2014Gijsbert Koren
 
Jasper 8 8 cultural revolution ppt
Jasper 8 8 cultural revolution pptJasper 8 8 cultural revolution ppt
Jasper 8 8 cultural revolution pptTheAuraKing
 
REHANA BACCHUS RESUME.
REHANA BACCHUS RESUME.REHANA BACCHUS RESUME.
REHANA BACCHUS RESUME.Rehana Bacchus
 
State of the Startup Community Address 2K16
State of the Startup Community Address 2K16State of the Startup Community Address 2K16
State of the Startup Community Address 2K16Hatch
 
Iii year b.tech i sem (r09) regular & supplementary nov 2012 results
Iii year b.tech i sem (r09) regular & supplementary nov 2012 resultsIii year b.tech i sem (r09) regular & supplementary nov 2012 results
Iii year b.tech i sem (r09) regular & supplementary nov 2012 resultsVARIGONDA GOPI
 
Nested Context Language (NCL)
Nested Context Language (NCL)Nested Context Language (NCL)
Nested Context Language (NCL)Luiz Araujo
 
Clonecierge experience pitch
Clonecierge experience pitchClonecierge experience pitch
Clonecierge experience pitchHatch
 
Multi-language Content Discovery Through Entity Driven Search
Multi-language Content Discovery Through Entity Driven SearchMulti-language Content Discovery Through Entity Driven Search
Multi-language Content Discovery Through Entity Driven SearchAlessandro Benedetti
 
Answers by Maya Emilova for the protection of doctoral thesis
Answers by Maya Emilova for the protection of doctoral thesisAnswers by Maya Emilova for the protection of doctoral thesis
Answers by Maya Emilova for the protection of doctoral thesisMMEEVV
 
KMS Library November 2013 Report
KMS Library November 2013 ReportKMS Library November 2013 Report
KMS Library November 2013 Reportkjcmetzger
 
The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_
The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_
The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_Kirsty Simpson
 
Northlanders 6 thor's daughter
Northlanders 6  thor's daughterNorthlanders 6  thor's daughter
Northlanders 6 thor's daughterLUIS NARBONA
 
Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...
Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...
Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...BizLibrary
 
First vengeance 02 (part 1)
First vengeance 02 (part 1)First vengeance 02 (part 1)
First vengeance 02 (part 1)LUIS NARBONA
 
True blood comic three
True blood comic threeTrue blood comic three
True blood comic threeLUIS NARBONA
 

Viewers also liked (20)

BiodataTps15
BiodataTps15BiodataTps15
BiodataTps15
 
Seaside holiday in poland
Seaside holiday in polandSeaside holiday in poland
Seaside holiday in poland
 
Crowdfunding in Nederland 2014
Crowdfunding in Nederland 2014Crowdfunding in Nederland 2014
Crowdfunding in Nederland 2014
 
Jasper 8 8 cultural revolution ppt
Jasper 8 8 cultural revolution pptJasper 8 8 cultural revolution ppt
Jasper 8 8 cultural revolution ppt
 
REHANA BACCHUS RESUME.
REHANA BACCHUS RESUME.REHANA BACCHUS RESUME.
REHANA BACCHUS RESUME.
 
State of the Startup Community Address 2K16
State of the Startup Community Address 2K16State of the Startup Community Address 2K16
State of the Startup Community Address 2K16
 
Iii year b.tech i sem (r09) regular & supplementary nov 2012 results
Iii year b.tech i sem (r09) regular & supplementary nov 2012 resultsIii year b.tech i sem (r09) regular & supplementary nov 2012 results
Iii year b.tech i sem (r09) regular & supplementary nov 2012 results
 
El medio ambiente 2
El medio ambiente 2El medio ambiente 2
El medio ambiente 2
 
Nested Context Language (NCL)
Nested Context Language (NCL)Nested Context Language (NCL)
Nested Context Language (NCL)
 
Soluciones a escenarios Reales
Soluciones a escenarios RealesSoluciones a escenarios Reales
Soluciones a escenarios Reales
 
Clonecierge experience pitch
Clonecierge experience pitchClonecierge experience pitch
Clonecierge experience pitch
 
Multi-language Content Discovery Through Entity Driven Search
Multi-language Content Discovery Through Entity Driven SearchMulti-language Content Discovery Through Entity Driven Search
Multi-language Content Discovery Through Entity Driven Search
 
Answers by Maya Emilova for the protection of doctoral thesis
Answers by Maya Emilova for the protection of doctoral thesisAnswers by Maya Emilova for the protection of doctoral thesis
Answers by Maya Emilova for the protection of doctoral thesis
 
KMS Library November 2013 Report
KMS Library November 2013 ReportKMS Library November 2013 Report
KMS Library November 2013 Report
 
The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_
The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_
The Upwardly mobile enterprise 2014_03_05_5616_Summary_Powerpoint_Deck_The_
 
Northlanders 6 thor's daughter
Northlanders 6  thor's daughterNorthlanders 6  thor's daughter
Northlanders 6 thor's daughter
 
Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...
Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...
Lessons Learned from the Top Four Cyber Security Breaches & How Your Company ...
 
First vengeance 02 (part 1)
First vengeance 02 (part 1)First vengeance 02 (part 1)
First vengeance 02 (part 1)
 
Iron man 2.0 5
Iron man 2.0 5Iron man 2.0 5
Iron man 2.0 5
 
True blood comic three
True blood comic threeTrue blood comic three
True blood comic three
 

Similar to Where Search Meets ML: Using Search Systems for Machine Learning Problems

RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
 RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning... RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...S. Diana Hu
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine LearningRahul Jain
 
Building High Available and Scalable Machine Learning Applications
Building High Available and Scalable Machine Learning ApplicationsBuilding High Available and Scalable Machine Learning Applications
Building High Available and Scalable Machine Learning ApplicationsYalçın Yenigün
 
Webinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewWebinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewLucidworks
 
ML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdf
ML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdfML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdf
ML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdfAvijitChaudhuri3
 
Large scale computing
Large scale computing Large scale computing
Large scale computing Bhupesh Bansal
 
A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...
A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...
A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...Ilkay Altintas, Ph.D.
 
Lec 1 integrating data science and data analytics in various research thrust
Lec 1 integrating data science and data analytics in various research thrustLec 1 integrating data science and data analytics in various research thrust
Lec 1 integrating data science and data analytics in various research thrustMenchita Falcutila Dumlao
 
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...Lucidworks
 
Building genomic data cyberinfrastructure with the online database software T...
Building genomic data cyberinfrastructure with the online database software T...Building genomic data cyberinfrastructure with the online database software T...
Building genomic data cyberinfrastructure with the online database software T...mestato
 
Database Systems - Lecture Week 1
Database Systems - Lecture Week 1Database Systems - Lecture Week 1
Database Systems - Lecture Week 1Dios Kurniawan
 
Three Tools for "Human-in-the-loop" Data Science
Three Tools for "Human-in-the-loop" Data ScienceThree Tools for "Human-in-the-loop" Data Science
Three Tools for "Human-in-the-loop" Data ScienceAditya Parameswaran
 
Preliminary committee presentation
Preliminary committee presentationPreliminary committee presentation
Preliminary committee presentationRichard Drake
 
Activity Monitoring Using Wearable Sensors and Smart Phone
Activity Monitoring Using Wearable Sensors and Smart PhoneActivity Monitoring Using Wearable Sensors and Smart Phone
Activity Monitoring Using Wearable Sensors and Smart PhoneDrAhmedZoha
 
Introduction to Mahout and Machine Learning
Introduction to Mahout and Machine LearningIntroduction to Mahout and Machine Learning
Introduction to Mahout and Machine LearningVarad Meru
 

Similar to Where Search Meets ML: Using Search Systems for Machine Learning Problems (20)

RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
 RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning... RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
Building High Available and Scalable Machine Learning Applications
Building High Available and Scalable Machine Learning ApplicationsBuilding High Available and Scalable Machine Learning Applications
Building High Available and Scalable Machine Learning Applications
 
Webinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewWebinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's New
 
ML.ppt
ML.pptML.ppt
ML.ppt
 
ML.ppt
ML.pptML.ppt
ML.ppt
 
ML.ppt
ML.pptML.ppt
ML.ppt
 
ML.ppt
ML.pptML.ppt
ML.ppt
 
ML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdf
ML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdfML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdf
ML.pptvdvdvdvdvdfvdfgvdsdgdsfgdfgdfgdfgdf
 
ML.ppt
ML.pptML.ppt
ML.ppt
 
Large scale computing
Large scale computing Large scale computing
Large scale computing
 
A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...
A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...
A Maturing Role of Workflows in the Presence of Heterogenous Computing Archit...
 
Lec 1 integrating data science and data analytics in various research thrust
Lec 1 integrating data science and data analytics in various research thrustLec 1 integrating data science and data analytics in various research thrust
Lec 1 integrating data science and data analytics in various research thrust
 
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
 
Building genomic data cyberinfrastructure with the online database software T...
Building genomic data cyberinfrastructure with the online database software T...Building genomic data cyberinfrastructure with the online database software T...
Building genomic data cyberinfrastructure with the online database software T...
 
Database Systems - Lecture Week 1
Database Systems - Lecture Week 1Database Systems - Lecture Week 1
Database Systems - Lecture Week 1
 
Three Tools for "Human-in-the-loop" Data Science
Three Tools for "Human-in-the-loop" Data ScienceThree Tools for "Human-in-the-loop" Data Science
Three Tools for "Human-in-the-loop" Data Science
 
Preliminary committee presentation
Preliminary committee presentationPreliminary committee presentation
Preliminary committee presentation
 
Activity Monitoring Using Wearable Sensors and Smart Phone
Activity Monitoring Using Wearable Sensors and Smart PhoneActivity Monitoring Using Wearable Sensors and Smart Phone
Activity Monitoring Using Wearable Sensors and Smart Phone
 
Introduction to Mahout and Machine Learning
Introduction to Mahout and Machine LearningIntroduction to Mahout and Machine Learning
Introduction to Mahout and Machine Learning
 

Recently uploaded

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Where Search Meets ML: Using Search Systems for Machine Learning Problems

  • 1. Where Search Meets Machine Learning Diana Hu @sdianahu — Data Science Lead, Verizon Joaquin Delgado @joaquind — Director of Engineering, Verizon
  • 2. Disclaimer 2 The content of this presentation are of the authors’ personal statements and does not officially represent their employer’s view in anyway. Included content is especially not intended to convey the views of OnCue or Verizon 01
  • 3. Index 1.  Introduction 2.  Search and Information Retrieval 3.  ML problems as Search-based Systems 4.  ML Meets Search!
  • 5. Scaling learning systems is hard! •  Millions of users, items •  Billions of features •  Imbalanced Datasets •  Complex Distributed Systems •  Many algorithms have not been tested at “Internet Scale”
  • 6. Typical approaches •  Distributed systems – Fault tolerance, Throughput vs. latency •  Parallelization Strategies – Hashing, trees •  Processing – Map reduce variants, MPI, graph parallel •  Databases – Key/Value Stores, NoSQL Such a custom system requires TLC
  • 8. Search Search is about finding specific things that are either known or assumed to exist, Discovery is about is about helping the user encounter what he/she didn’t even know exists. •  Focused on Search: Search Engines, Database Systems •  Focused on Discovery: Recommender Systems, Advertising Predicate Logic and Declarative Languages Rock!
  • 9. Search stack Matched Hits Representation Function Similarity Calculation Matched HitsDocuments Representation Function Input Query Matched HitsMatched HitsRetrieved Documents Online Processing Offline Processing (*)RelevanceFeedback Query Representation Doc Representation Index *Metadata Engineering (*) Optional
  • 11. Search Engines: the big hammer •  Search engines are largely used to solve non-IR search problems, because: •  Widely Available •  Fast and Scalable •  Integrates well with existing data stores
  • 12. But… Are we using the right tool? •  Search Engines were originally designed for IR. •  Complex non-IR search tasks sometimes require a two phase approach Phase1) Filter Phase 2) Rank
  • 15. Machine Learning Machine Learning in particular supervised learning refer to techniques used to learn how to classify or score previously unseen objects based on a training dataset Inference and Generalization are the Key!
  • 17. Learning systems’ stack Visualization / UI Retrieval Ranking Query Generation and Contextual Pre-filtering Model Building Index Building Data/Events Collections Data Analytics Contextual Post Filtering OnlineOffline Experimentation
  • 18. Case study: Recommender Systems •  Reduce information load by estimating relevance •  Ranking (aka Relevance) Approaches: •  Collaborative filtering •  Content Based •  Knowledge Based •  Hybrid •  Beyond rating prediction and ranking •  Business filtering logic •  Low latency and Scale
  • 19. RecSys: Content based models •  Rec Task: Given a user profile find the best matching items by their attributes •  Similarity calculation: based on keyword overlap between user/items •  Neighborhood method (i.e. nearest neighbor) •  Query-based retrieval (i.e Rocchio’s method) •  Probabilistic methods (classical text classification) •  Explicit decision models •  Feature representation: based on content analysis •  Vector space model •  TF-IDF •  Topic Modeling
  • 22. ML Meets Search! ML Search
  • 23. Remember the elephant? Visualization / UI Retrieval Ranking Query Generation and Contextual Pre-filtering Model Building Index Building Data/Events Collections Data Analytics Contextual Post Filtering OnlineOffline Experimentation
  • 24. Simplifying the stack! Visualization / UI Query Generation and Contextual Pre-filtering Model Building Index Building Data/Events Collections Data Analytics OnlineOffline Experimentation Retrieval Contextual Post Filtering Ranking
  • 25. Search stack Matched Hits Representation Function Similarity Calculation Matched HitsDocuments Representation Function Input Query Matched HitsMatched HitsRetrieved Documents Online Processing Offline Processing (*)RelevanceFeedback Query Representation Doc Representation Index *Metadata Engineering (*) Optional
  • 26. Simplifying the Search stack Matched Hits Representation Function Similarity Calculation Matched HitsDocuments Representation Function Input Query Matched HitsMatched HitsRetrieved Documents Online Processing Offline Processing (*)RelevanceFeedback Query Representation Doc Representation Index *Metadata Engineering (*) Optional Retrieval Contextual Post Filtering Ranking ML-Scoring Plugin Serialized ML Model
  • 28. ML-Scoring Options •  Option A: Solr FunctionQuery •  Pro: Model is just a query! •  Cons: Limits expressiveness of models •  Option B: Solr Custom Function Query •  Pro: Loading any type of model (also PMML) •  Cons: Memory limitations, also multiple model reloading •  Option C: Lucene CustomScoreQuery •  Pro: Can use PMML and tune how PMML gets loaded •  Cons: No control on matches •  Option D: Lucene Low level Custome Query •  *Mahout vectors from Lucene text (only trains, so not an option)
  • 29. Real-life Problem •  Census database that contains documents with the following fields: 1. Age: continuous; 2. Workclass: 8 values; 3. Fnlwgt: continuous.; 4. Education: 16 values; 5. Education-num: continuous.; 6. Marital-status: 7 values; 7. Occupation: 14 values; 8. Relationship: 6 values; 9. Race: 5 values; 10. Sex: Male, Female; 11. Capital-gain: continuous.;12. Capital- loss: continuous.; 13. Hours-per-week: continuous.; 14. Native-country: 41 values; 15. >50K Income: Yes, No. •  Task is to predict whether a person makes more than 50k a year based on their attributes
  • 30. 1) Learn from the (training) data Naïve Bayes SVM Logistic Regression Decision Trees Train with your favorite ML Framework
  • 31. Option A: Just a Solr Function Query q=“sum(C,              product(age,w1),              product(Workclass,w2),              product(Fnlwgt,  w3),              product(Education,  w4),              ….)”   Serialized ML Model as Query Trainer + Indexer Y_prediction = C + XB
  • 32. May result in a crazy Solr functionQuery See more at https://wiki.apache.org/solr/FunctionQuery q=dismax&bf="ord(educaton-num)^0.5 recip(rord(age),1,1000,1000)^0.3"
  • 33. What about models like this?
  • 34. Option B: Custom Solr FuntionQuery 1.  Subclass org.apache.solr.search.ValueSourceParser. public  class  MyValueSourceParser  extends  ValueSourceParser  {    public  void  init  (NamedList  namedList)  {            …      }      public  ValueSource  parse(FunctionQParser  fqp)  throws  ParseException  {            return  new  MyValueSource();      }   } 2.  In solrconfig.xml, register your new ValueSourceParser directly under the <config> tag <valueSourceParser  name=“myfunc”  class=“com.custom.MyValueSourceParser”  />   3.  Subclass org.apache.solr.search.ValueSource and instantiate it in ValueSourceParser.parse()
  • 35. Option C: Lucene CustomScoreQuery 2C) Serialize model with PMML •  Can use JPMML library to read serialized model in Lucene •  On Lucene will need to implement an extension with JPMML-evaluator to take vectors as expected 3C) In Lucene: •  Override CustomScoreQuery: load PMML •  Create CustomScoreProvider: do model PMML data marshaling •  Rescoring: PMML evaluation
  • 36. Predictive Model Markup Language •  Why use PMML •  Allows users to build a model in one system •  Export model and deploy it in a different environment for prediction •  Fast iteration: from research to deployment to production •  Model is a XML document with: •  Header: description of model, and where it was generated •  DataDictionary: defines fields used by model •  Model: structure and parameters of model •  http://dmg.org/pmml/v4-2-1/GeneralStructure.html
  • 37. Example: Train in Spark to PMML import  org.apache.spark.mllib.clustering.KMeans     import  org.apache.spark.mllib.linalg.Vectors         //  Load  and  parse  the  data     val  data  =  sc.textFile("/path/to/file")            .map(s  =>  Vectors.dense(s.split(',').map(_.toDouble)))           //  Cluster  the  data  into  three  classes  using  KMeans     val  numIterations  =  20     val  numClusters  =  3     val  kmeansModel  =  KMeans.train(data,  numClusters,  numIterations)           //  Export  clustering  model  to  PMML     kmeansModel.toPMML("/path/to/kmeans.xml")  
  • 39. Overriding scores with CustomScoreQuery CustomScoreProvider CustomScoreQuery Lucene Query Find next Match Score Rescore Doc New Score *Credit to Doug Turnbull’s Hacking Lucene forCustom Search Results
  • 40. Overriding scores with CustomScoreQuery •  Matching remains •  Scoring overridden CustomScoreProvider CustomScoreQuery Lucene Query Find next Match Score Rescore Doc New Score *Credit to Doug Turnbull’s Hacking Lucene forCustom Search Results
  • 41. Implementing CustomScoreQuery 1.  Given normal Lucene Query, use a CustomScoreQuery to wrap it TermQuery  q  =  New  TermQuery(term)   MyCustomScoreQuery  mcsq  =  New  MyCustomScoreQuery(q)   //Make  sure  query  has  all  fields  needed  by  PMML!
  • 42. Implementing CustomScoreQuery 2.  Initialize PMML PMML  pmml  =  ...;   ModelEvaluatorFactory  modelEvaluatorFactory  =              ModelEvaluatorFactory.newInstance();   ModelEvaluator<?>  modelEvaluator  =              modelEvaluatorFactory.newModelManager(pmml);   Evaluator  evaluator  =  (Evaluator)modelEvaluator;        
  • 43. Implementing CustomScoreQuery 2.  Rescore each doc with IndexReader and docID public  float  customScore(int  doc,  float  subQueryScore,  float   valSrcScores[])  throws  IOException  {   //Lucene  reader   IndexReader  r  =  context.reader();   Terms  tv  =  r.getTermVector(doc,  _field);   TermsEnum  tenum  =  null;   tenum  =  tv.iterator(tenum);           //convert  the  iterator  order  to  fields  needed  by  model   TermsEnum  tenumPMML  =  tenum2PMML(tenum,                        evaluator.getActiveFields());        
  • 44. Implementing CustomScoreQuery 2.  Rescore each doc with IndexReader and docID //Marshall  Data  into  PMML   Map<FieldName,  FieldValue>  arguments  =                    new  LinkedHashMap<FieldName,  FieldValue>();   List<FieldName>  activeFields  =  evaluator.getActiveFields();   for(FieldName  activeField  :  activeFields){      //  The  raw  is  value  has  been  sorted  with  number  of  fields  needed      Object  rawValue  =  tenumPMML.next;      FieldValue  activeValue  =  evaluator.prepare(activeField,  rawValue);      arguments.put(activeField,  activeValue);   }        
  • 45. Implementing CustomScoreQuery 2.  Rescore each doc with IndexReader and docID //Rescore  and  evaluate  with  PMML   Map<FieldName,  ?>  results  =  evaluator.evaluate(arguments);   FieldName  targetName  =  evaluator.getTargetField();   Object  targetValue  =  results.get(targetName);   return  (float)  targetValue;      
  • 46. Potential issues •  Performance •  If search space is very large •  If model complexity explodes (i.e. kernel expansion) •  Operations •  Code is running on key infrastructure •  Versioning •  Binary Compatibility
  • 47. Option D: Low Level Lucene •  CustomScoreQuery or Custom FunctionScore can’t control matches •  If you want custom matches and scoring…. •  Implement: •  Custom Query Class •  Custom Weight Class •  Custom Scorer Class •  http://opensourceconnections.com/blog/2014/03/12/using- customscorequery-for-custom-solrlucene-scoring/
  • 48. Conclusion •  Importance of the full picture – Learning systems from the lenses of the whole elephant •  Reducing the time from science to production is complicated •  Scalability is hard! •  Why not have ML use Search in its core during online eval? •  Solr and Lucene are a start to customize your learning system
  • 49. We are Hiring! Contact me at diana.hu@verizon.com @sdianahu Q&A
  • 50. O C T O B E R 1 3 - 1 6 , 2 0 1 6 • A U S T I N , T X