SlideShare a Scribd company logo
1 of 24
Download to read offline
Art and Science come together
when mastering Relevance Ranking
Tom Burgmans
01
2
01
Our purpose: Wolters Kluwer provides information, software, and services to
legal, business, tax, accounting, finance, audit, risk, compliance, and healthcare professionals
Employees: 19,000 Employees with operations in over 40 countries
Revenue: € 4.3 billion (2016)
Tom Burgmans
Search Specialist
tom.burgmans@wolterskluwer.com
Agenda
•  Create a customizable scoring algorithm
•  Best practice examples of tuning elements of this algorithm
01
01
6
01
Ingredients for baking a relevance cake
Understand of what relevance means
Prepare the content
Control the scoring algorithm
A process & culture in the organization to structurally improve relevance
Domain experts
Judgement lists
User behavioral data
Entity detection
Classification
Vocabulary management
Construct the query
Single field / multi-field search
Term-centric vs field-centric
Grammar parsing
(External) query processing
Re-shape and tune the scoring algorithm:
• Customized similarity
• Function queries
Understand the EXPLAIN feedback:
• Querylog tool
Prepare the Solr configuration
How to tokenize
Balance recall vs precision via the analyzers
Feature modeling
Institutionalize engineering of relevance through the organization
Measure expectation vs reality via a diff with Golden Answers
Automated relevance tests
Work iterative
01
Score (ClassicSimilarity) =
Multiplicative function query *
Multiplicative function query *
Multiplicative function query *
coord(q,d) *
queryNorm(q) *
(
Additive function query +
Additive function query +
Additive function query +
∑(for each term)
(
TermBoost(t) *
FieldBoost(d) *
TF(t in d) *
IDF(t)2 *
Norm(t,d) *
Payload(t)
)
)
Score (BM25Similarity) =
Multiplicative function query *
Multiplicative function query *
Multiplicative function query *
(
Additive function query +
Additive function query +
Additive function query +
∑(for each term)
(
TermBoost(t) *
FieldBoost(d) *
TF(t in d, Norm) *
IDF(t)2 *
Payload(t)
)
)
>= Solr 6.0< Solr 6.0
​1/
√ 𝑠𝑢𝑚𝑂𝑓
𝑆𝑞𝑢𝑎𝑟𝑒𝑑
𝑊𝑒𝑖𝑔ℎ𝑡𝑠 
​
𝑜𝑣𝑒𝑟
𝑙𝑎𝑝/
𝑀𝑎𝑥
𝑂𝑣𝑒
𝑟𝑙𝑎𝑝 
√⁠​ 𝑓 𝑟𝑒𝑞/
(1+ 𝑑𝑖𝑠𝑡
𝑎𝑛𝑐𝑒)  
​1+  ln⁠(​
𝑛𝑢𝑚𝐷𝑜
𝑐𝑠/
𝑑𝑜𝑐𝐹𝑟𝑒
​
≈ 𝑖𝑛𝑑𝑒𝑥𝑏𝑜
​​ 𝑓 𝑟𝑒𝑞/
(1+ 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒) 
∗( 𝑘1+1)  /​ 𝑓 𝑟𝑒𝑞/
​ln(​
𝑛𝑢𝑚𝐷𝑜𝑐𝑠
− 𝑑𝑜𝑐𝐹𝑟𝑒𝑞
+0.5/
𝑑𝑜𝑐𝐹𝑟𝑒𝑞
+0.5 )⁠ 
​≈⁠​1/​
𝑛𝑢𝑚
𝑇𝑒𝑟𝑚
01
Create your own customizable Similarity class
MySimilarityFactory.java
MySimilarity.java
Make jar
Reference jar from solrconfig.xml
Extends SchemaSimilarityFactory
Creates MySimilarity instance. Passes parameters from schema
Extends BM25Similarity
Customizations to the algorithm happens here
Add on bottom schema.xml
<similarity class="solr.SchemaSimilarityFactory“ />
Add inside fieldType definition
<fieldType ...>
<analyzer > ... </analyzer>
<similarity class="com.mycompany.MySimilarityFactory">
<str name="tuneIDF">1.0</str> <!-- IDF -->
<str name="tuneSloppyFreq">0</str> <!-- slop -->
<str name="tunePayload">3</str> <!-- payloads -->
<str name="k1">1.5</str> <!-- TF -->
<str name="b">1.0</str> <!-- TF -->
</similarity>
</fieldType>
Delegate similarity to per-field setting
Set tuning parameters
TF
Classic TF = √⁠ 𝒇 𝒓𝒆𝒒 =​ 𝒇 𝒓𝒆𝒒↑ 𝟎.𝟓 
ClassicSimilarity.java
public float tf(float freq) {
return (float)Math.sqrt(freq);
}
Classic TF =
tunable ​ 𝒇 𝒓𝒆𝒒↑𝒕𝒖𝒏𝒆𝑻𝑭 
𝟎  ← 𝒕𝒖𝒏𝒆𝑻
public float tf(float freq) {
return (float)Math.pow(freq,tuneTF);
}
MySimilarity.java
Tune in the schema
01
𝟎  ← 𝒌 𝟏  →  >𝟎
𝟎  ← 𝒃  →𝟏
BM25 TF =​ 𝒇 𝒓𝒆𝒒∗( 𝒌 𝟏+𝟏)  /𝒇𝒓𝒆𝒒+(𝒌 𝟏∗( 𝟏− 𝒃+ 𝒃
L=​≈ 𝑓𝑖𝑒𝑙𝑑𝐿𝑒𝑛𝑔𝑡ℎ/
tunable
Tune term-frequency saturation
Tune sensitivity saturation
towards field length
TF
𝟎  ← 𝒌 𝟏 𝒂  →  >𝟎
BM25 TF = ​ 𝒇 𝒓𝒆𝒒∗( 𝒌 𝟏 𝒂+𝟏)  /𝒇𝒓𝒆𝒒+(𝒌 𝟏 𝒃∗( 𝟏− 𝒃+ 𝒃∗ 𝑳))
L=​≈ 𝑓𝑖𝑒𝑙𝑑𝐿𝑒𝑛𝑔𝑡ℎ/𝑎𝑣𝑔𝐹𝑖𝑒
Tune TF impact
independent from saturation
better tunable
𝟎  ← 𝒌 𝟏 𝒃  →  >𝟎
Tune term-frequency saturation
independent from TF impact
TF
01
​ 𝒍 𝒏⁠(​
𝒏𝒖𝒎𝑫𝒐𝒄𝒔/
( 𝒅𝒐𝒄𝑭𝒓𝒆𝒒
+𝟏) )+𝟏 
Classic IDF =
BM25 IDF =
​ 𝒍 𝒏⁠(​ 𝒏 𝒖𝒎𝑫𝒐𝒄𝒔  
− 𝒅𝒐𝒄𝑭𝒓𝒆𝒒
+𝟎.𝟓/
​ 𝒍 𝒏⁠(​ 𝒏 𝒖𝒎𝑫𝒐𝒄𝒔/( 𝒅𝒐𝒄𝑭𝒓𝒆𝒒+𝟏Classic IDF =
BM25 IDF =
tunable
​ 𝒍 𝒏⁠(​ 𝒏 𝒖𝒎𝑫𝒐𝒄𝒔  − 𝒅𝒐𝒄𝑭𝒓𝒆𝒒+𝟎tunable
𝟎  ← 𝒕𝒖𝒏𝒆𝑰𝑫
https://www.desmos.com/calculator/wfpvne0z1c
IDF
In this example: numDocs = 100
01
• Tune the impact of queryNorm and coord (in case of ClassicSimilarity)
Or just set them to a hard 1, like I did
• Tune the impact of distance on TF
In case of a phrase + slop query
• Tune the curve & mapping of Payloads
This is a hard 1 by default
• Tune the 255 entries in the Norm byte
Small range for small fields, big range for big fields => higher precision for each case
Other items you might want to make tunable via MySimilarity
01
Score (ClassicSimilarity) =
Multiplicative function query *
Multiplicative function query *
Multiplicative function query *
coord(q,d) *
queryNorm(q) *
(
Additive function query +
Additive function query +
Additive function query +
∑(for each term)
(
TermBoost(t) *
FieldBoost(d) *
TF(t in d) *
IDF(t)2 *
Norm(t,d) *
Payload(t)
)
)
Score (BM25Similarity) =
Multiplicative function query *
Multiplicative function query *
Multiplicative function query *
(
Additive function query +
Additive function query +
Additive function query +
∑(for each term)
(
TermBoost(t) *
FieldBoost(d) *
TF(t in d, Norm) *
IDF(t)2 *
Payload(t)
)
)
>= Solr 6.0< Solr 6.0
i.e.
Ratings
Pagerank
Profitability
Popularity
Document type
Page views
Geo-distance
Freshness
i.e.
Implicit proximity
Exact title match
Shingle match
Author name in author field
Extending
the terms score
Amplifying
the terms score
01
Function queries: index time boost
<field	
  name="docboost"	
  type="int"	
  indexed="false"	
  stored="false"	
  docValues="true"	
  />	
  
<add>	
  
	
  <doc>	
  
	
  	
  	
  <field	
  name="id">id1</field>	
  
	
  	
  	
  <field	
  name="body">Life	
  is	
  like	
  riding	
  a	
  bicycle.</field>	
  
	
  	
  	
  <field	
  name="docboost">2</field>	
  
	
  </doc>	
  
	
  <doc>	
  
	
  	
  	
  <field	
  name="id">id2</field>	
  
	
  	
  	
  <field	
  name="body">To	
  keep	
  your	
  balance,	
  you	
  must	
  keep	
  moving.</field>	
  
	
  	
  	
  <field	
  name="docboost">5</field>	
  
	
  </doc>	
  
</add>	
  
q=*:*&boost=field(docboost)	
  
q=*:*&bf=field(docboost)	
  
additive
multiplicative
doctype	
   docboost	
  
Archived	
   0	
  
Form	
   1	
  
Pending-­‐legisla?on	
   2	
  
Case-­‐law	
   3	
  
Ruling	
   4	
  
Annota?on	
   5	
  
News	
   6	
  
Prac?ce-­‐aid	
   7	
  
Regula?on	
   8	
  
Law	
   9	
  
Explana?ons	
   10	
  
domain
expert
Tuning multiplicative boost?
tuneBoost = 0
Scale up or down by summing?
boost=sum(field(docboost),$tuneBoost)
Tuning additive boost
bf=product(field(docboost),$tuneBoost)
nope
bigger effect?
tuneBoost: -5 ß 0
Scale up or down by multiplying
smaller effect
tuneBoost: 0 à 5
but not consistently…
tuneBoost = 1
smaller effect
tuneBoost: 1 à 0.2
bigger effect
tuneBoost: 1 à 5
Relative difference between multiplicative boost values
docboost	
  
0	
  
1	
  
2	
  
3	
  
4	
  
5	
  
6	
  
7	
  
8	
  
9	
  
10	
  
infinite
100%
differenc
e
50%
33%
25%
20%
17%
14%
12%
11%
docboost	
   ‘translated
’
0	
   1	
  
1	
   2	
  
2	
   4	
  
3	
   8	
  
4	
   16	
  
5	
   32	
  
6	
   64	
  
7	
   128	
  
8	
   256	
  
9	
   512	
  
10	
   1024	
  
docboost	
   ‘translated
’ & tuned
0	
   1,00	
  
1	
   1,15	
  
2	
   1,32	
  
3	
   1,52	
  
4	
   1,74	
  
5	
   2,00	
  
6	
   2,30	
  
7	
   2,64	
  
8	
   3,03	
  
9	
   3,48	
  
10	
   4,00	
  
100%
100%
differenc
e
100%
100%
100%
100%
100%
100%
100%
100%
​2↑( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡) 
01
15%
15%
differenc
e
15%
15%
15%
15%
15%
15%
15%
15%
​2↑( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠
𝒕𝒖𝒏
𝒆𝑩
𝒐𝒐𝒔
𝒕
01
Tuning multiplicative boost
tuneBoost = 0.2
bigger effectsmaller effect
tuneBoost: 0.2 à 0 tuneBoost: 0.2 à 0.4
boost=pow(2,product(field(docboost),$tuneBoost)))
boost =​2↑( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡  ∗ 𝒕𝒖𝒏𝒆𝑩𝒐𝒐𝒔𝒕) 
01
docid	
   docboost 	
  
doc0	
   0	
  
doc1	
   1	
  
doc2	
   2	
  
doc3	
   3	
  
doc4	
   4	
  
doc5	
   6	
  
doc6	
   8	
  
doc7	
   9	
  
doc8	
   99	
  
doc9	
   999	
  
doc10	
   9.999	
  
doc11	
   99.999	
  
doc12	
   999.999	
  
Index time boost with extreme values tamed and tunable
‘translated’ 	
  
1	
  
1,07	
  
1,12	
  
1,15	
  
1,17	
  
1,21	
  
1,25	
  
1,27	
  
1,59	
  
2,00	
  
2,51	
  
3,16	
  
3,98	
   boost=pow(field(docboost),$tuneBoost)
​( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡
+1)↑𝒕𝒖𝒏𝒆𝑩𝒐𝒐𝒔𝒕 
tuneBoost = 0.1
01
docid	
   docboost 	
  ‘translated’ 	
  
doc0	
   0	
   1	
  
doc1	
   1	
   1,07	
  
doc2	
   2	
   1,12	
  
doc3	
   3	
   1,15	
  
doc4	
   4	
   1,17	
  
doc5	
   6	
   1,21	
  
doc6	
   8	
   1,25	
  
doc7	
   9	
   1,27	
  
doc8	
   99	
   1,59	
  
doc9	
   999	
   2,00	
  
doc10	
   9.999	
   2,51	
  
doc11	
   99.999	
   3,16	
  
doc12	
   999.999	
   3,98	
   boost=pow(field(docboost),$tuneBoost)
​( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡
+1)↑𝒕𝒖𝒏𝒆𝑩𝒐𝒐𝒔𝒕 
Index time boost with extreme values tamed and tunable
smaller effect
bigger effect
tuneBoos
t = 0.14
tuneBoost = 0.1
tuneBoos
t = 0.05
26%
26%
26%
26%
26%
01
Score (ClassicSimilarity) =
Multiplicative function query *
Multiplicative function query *
Multiplicative function query *
coord(q,d) *
queryNorm(q) *
(
Additive function query +
Additive function query +
Additive function query +
∑(for each term)
(
TermBoost(t) *
FieldBoost(d) *
TF(t in d) *
IDF(t)2 *
Norm(t,d) *
Payload(t)
)
)
Score (BM25Similarity) =
Multiplicative function query *
Multiplicative function query *
Multiplicative function query *
(
Additive function query +
Additive function query +
Additive function query +
∑(for each term)
(
TermBoost(t) *
FieldBoost(d) *
TF(t in d, Norm) *
IDF(t)2 *
Payload(t)
)
)
>= Solr 6.0< Solr 6.0
​1/
√ 𝑠𝑢𝑚𝑂𝑓𝑆
𝑞𝑢𝑎𝑟𝑒𝑑𝑊𝑒
𝑖𝑔ℎ𝑡𝑠   OR 1
​
𝑜𝑣𝑒𝑟𝑙
𝑎𝑝/
𝑀𝑎𝑥𝑂
𝑣𝑒𝑟𝑙𝑎
𝑝 OR 1
​(​ 𝑓 𝑟𝑒𝑞/
1+ 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒∗
𝒕𝒖𝒏𝒆𝑫𝒊𝒔𝒕𝒂𝒏
𝒄𝒆 )↑𝒕𝒖𝒏𝒆𝑻𝑭 
​1+  ln⁠(​
𝑛𝑢𝑚𝐷𝑜𝑐𝑠/
𝑑𝑜𝑐𝐹𝑟𝑒𝑞
+1 )∗ 𝒕𝒖𝒏𝒆𝑰
​≈⁠​1/​
𝑛𝑢𝑚𝑇𝑒𝑟𝑚𝑠
​​ 𝑓 𝑟𝑒𝑞/
(1+ 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒∗ 𝒕𝒖𝒏𝒆𝑫𝒊𝒔𝒕𝒂
𝒏𝒄𝒆) ∗( 𝒌 𝟏 𝒂+1)  /​ 𝑓 𝑟𝑒𝑞/
​ln(​ 𝑛 𝑢𝑚𝐷𝑜𝑐𝑠
− 𝑑𝑜𝑐𝐹𝑟𝑒𝑞+0.5/
𝑑𝑜𝑐𝐹𝑟𝑒𝑞+0.5 )⁠  
∗ 𝒕𝒖𝒏𝒆𝑰𝑫𝑭
+1− 𝒕𝒖𝒏𝒆𝑰𝑫𝑭 
​≈⁠​1/​
𝑛𝑢𝑚
𝑇𝑒𝑟
𝑚𝑠↑
𝒕𝒖𝒏𝒆    
𝑵𝒐𝒓𝒎  
𝒃𝒚𝒕𝒆  
𝒑𝒐𝒑𝒖
𝒍𝒂𝒕𝒊𝒐
𝒏
​
2↑( 𝑑𝑜𝑐𝑏𝑜
𝑜𝑠𝑡  ∗  
𝒕𝒖𝒏𝒆𝑩𝒐𝒐
𝒔𝒕) 
​( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡
+1)↑𝒕𝒖𝒏𝒆𝑩
𝒐𝒐𝒔𝒕 
𝑑𝑜𝑐𝑏𝑜𝑜𝑠
𝑡  
∗ 𝒕𝒖𝒏𝒆𝑩
𝒐𝒐𝒔𝒕
01
After a certain high level of technical skill is achieved,
science and art tend to coalesce in esthetics, plasticity,
and form.
The greatest scientists are artists as well.
Albert Einstein
01
One more thing…
Expected soon:
Preview?
contact
tom.burgmans@wolterskluwer.com
Thank You!
Queries?

More Related Content

What's hot

SQL on everything, in memory
SQL on everything, in memorySQL on everything, in memory
SQL on everything, in memoryJulian Hyde
 
Building Applications with DynamoDB
Building Applications with DynamoDBBuilding Applications with DynamoDB
Building Applications with DynamoDBAmazon Web Services
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Stamatis Zampetakis
 
Spark Schema For Free with David Szakallas
 Spark Schema For Free with David Szakallas Spark Schema For Free with David Szakallas
Spark Schema For Free with David SzakallasDatabricks
 
Spark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. JyotiskaSpark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. JyotiskaSigmoid
 
Drill / SQL / Optiq
Drill / SQL / OptiqDrill / SQL / Optiq
Drill / SQL / OptiqJulian Hyde
 
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...Lucidworks
 
Importing Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowImporting Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowNeo4j
 
Advanced data access with Dapper
Advanced data access with DapperAdvanced data access with Dapper
Advanced data access with DapperDavid Paquette
 
Salesforce Summer 14 Release
Salesforce Summer 14 ReleaseSalesforce Summer 14 Release
Salesforce Summer 14 ReleaseJyothylakshmy P.U
 
AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...
AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...
AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...Amazon Web Services
 
How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...DataWorks Summit/Hadoop Summit
 
Extending Cassandra with Doradus OLAP for High Performance Analytics
Extending Cassandra with Doradus OLAP for High Performance AnalyticsExtending Cassandra with Doradus OLAP for High Performance Analytics
Extending Cassandra with Doradus OLAP for High Performance Analyticsrandyguck
 
SFDC Advanced Apex
SFDC Advanced Apex SFDC Advanced Apex
SFDC Advanced Apex Sujit Kumar
 
Spark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted MalaskaSpark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted MalaskaSpark Summit
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojureelliando dias
 
Time Series Analysis for Network Secruity
Time Series Analysis for Network SecruityTime Series Analysis for Network Secruity
Time Series Analysis for Network Secruitymrphilroth
 

What's hot (20)

SQL on everything, in memory
SQL on everything, in memorySQL on everything, in memory
SQL on everything, in memory
 
Building Applications with DynamoDB
Building Applications with DynamoDBBuilding Applications with DynamoDB
Building Applications with DynamoDB
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21
 
Spark Schema For Free with David Szakallas
 Spark Schema For Free with David Szakallas Spark Schema For Free with David Szakallas
Spark Schema For Free with David Szakallas
 
Spark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. JyotiskaSpark Dataframe - Mr. Jyotiska
Spark Dataframe - Mr. Jyotiska
 
Drill / SQL / Optiq
Drill / SQL / OptiqDrill / SQL / Optiq
Drill / SQL / Optiq
 
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
 
Importing Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowImporting Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflow
 
Advanced data access with Dapper
Advanced data access with DapperAdvanced data access with Dapper
Advanced data access with Dapper
 
Salesforce Summer 14 Release
Salesforce Summer 14 ReleaseSalesforce Summer 14 Release
Salesforce Summer 14 Release
 
R meetup talk
R meetup talkR meetup talk
R meetup talk
 
2310 b 10
2310 b 102310 b 10
2310 b 10
 
AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...
AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...
AWS Webcast - Optimize your database for the cloud with DynamoDB – A Deep Div...
 
How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...
 
Extending Cassandra with Doradus OLAP for High Performance Analytics
Extending Cassandra with Doradus OLAP for High Performance AnalyticsExtending Cassandra with Doradus OLAP for High Performance Analytics
Extending Cassandra with Doradus OLAP for High Performance Analytics
 
SFDC Advanced Apex
SFDC Advanced Apex SFDC Advanced Apex
SFDC Advanced Apex
 
Spark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted MalaskaSpark Summit EU talk by Ted Malaska
Spark Summit EU talk by Ted Malaska
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojure
 
Time Series Analysis for Network Secruity
Time Series Analysis for Network SecruityTime Series Analysis for Network Secruity
Time Series Analysis for Network Secruity
 
Influxdb and time series data
Influxdb and time series dataInfluxdb and time series data
Influxdb and time series data
 

Similar to Art and Science Come Together When Mastering Relevance Ranking - Tom Burgmans, Wolters Kluwer

Optimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex PlansOptimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex PlansDatabricks
 
IBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql FeaturesIBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql FeaturesKeshav Murthy
 
Advanced Query Parsing Techniques
Advanced Query Parsing TechniquesAdvanced Query Parsing Techniques
Advanced Query Parsing TechniquesSearch Technologies
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeWim Godden
 
Query optimization
Query optimizationQuery optimization
Query optimizationdixitdavey
 
Advanced query parsing techniques
Advanced query parsing techniquesAdvanced query parsing techniques
Advanced query parsing techniqueslucenerevolution
 
C programming Workshop
C programming WorkshopC programming Workshop
C programming Workshopneosphere
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1MariaDB plc
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1MariaDB plc
 
Introduction to-mongo db-execution-plan-optimizer-final
Introduction to-mongo db-execution-plan-optimizer-finalIntroduction to-mongo db-execution-plan-optimizer-final
Introduction to-mongo db-execution-plan-optimizer-finalM Malai
 
Introduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizerIntroduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizerMydbops
 
The Ring programming language version 1.6 book - Part 9 of 189
The Ring programming language version 1.6 book - Part 9 of 189The Ring programming language version 1.6 book - Part 9 of 189
The Ring programming language version 1.6 book - Part 9 of 189Mahmoud Samir Fayed
 
Bis 311 final examination answers
Bis 311 final examination answersBis 311 final examination answers
Bis 311 final examination answersRandalHoffman
 
Building a real time big data analytics platform with solr
Building a real time big data analytics platform with solrBuilding a real time big data analytics platform with solr
Building a real time big data analytics platform with solrTrey Grainger
 
Building a real time, big data analytics platform with solr
Building a real time, big data analytics platform with solrBuilding a real time, big data analytics platform with solr
Building a real time, big data analytics platform with solrlucenerevolution
 
How to optimize background processes - when Sylius meets Blackfire
How to optimize background processes - when Sylius meets BlackfireHow to optimize background processes - when Sylius meets Blackfire
How to optimize background processes - when Sylius meets BlackfireŁukasz Chruściel
 

Similar to Art and Science Come Together When Mastering Relevance Ranking - Tom Burgmans, Wolters Kluwer (20)

Optimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex PlansOptimizing the Catalyst Optimizer for Complex Plans
Optimizing the Catalyst Optimizer for Complex Plans
 
IBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql FeaturesIBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql Features
 
Advanced Query Parsing Techniques
Advanced Query Parsing TechniquesAdvanced Query Parsing Techniques
Advanced Query Parsing Techniques
 
Xgboost
XgboostXgboost
Xgboost
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
 
Querying solr
Querying solrQuerying solr
Querying solr
 
Query optimization
Query optimizationQuery optimization
Query optimization
 
Advanced Relevancy Ranking
Advanced Relevancy RankingAdvanced Relevancy Ranking
Advanced Relevancy Ranking
 
Advanced query parsing techniques
Advanced query parsing techniquesAdvanced query parsing techniques
Advanced query parsing techniques
 
C programming Workshop
C programming WorkshopC programming Workshop
C programming Workshop
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
 
Introduction to-mongo db-execution-plan-optimizer-final
Introduction to-mongo db-execution-plan-optimizer-finalIntroduction to-mongo db-execution-plan-optimizer-final
Introduction to-mongo db-execution-plan-optimizer-final
 
Introduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizerIntroduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizer
 
The Ring programming language version 1.6 book - Part 9 of 189
The Ring programming language version 1.6 book - Part 9 of 189The Ring programming language version 1.6 book - Part 9 of 189
The Ring programming language version 1.6 book - Part 9 of 189
 
Quality Python Homework Help
Quality Python Homework HelpQuality Python Homework Help
Quality Python Homework Help
 
Bis 311 final examination answers
Bis 311 final examination answersBis 311 final examination answers
Bis 311 final examination answers
 
Building a real time big data analytics platform with solr
Building a real time big data analytics platform with solrBuilding a real time big data analytics platform with solr
Building a real time big data analytics platform with solr
 
Building a real time, big data analytics platform with solr
Building a real time, big data analytics platform with solrBuilding a real time, big data analytics platform with solr
Building a real time, big data analytics platform with solr
 
How to optimize background processes - when Sylius meets Blackfire
How to optimize background processes - when Sylius meets BlackfireHow to optimize background processes - when Sylius meets Blackfire
How to optimize background processes - when Sylius meets Blackfire
 

More from Lucidworks

Search is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce StrategySearch is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce StrategyLucidworks
 
Drive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in SalesforceDrive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in SalesforceLucidworks
 
How Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant ProductsHow Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant ProductsLucidworks
 
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product DiscoveryLucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product DiscoveryLucidworks
 
Connected Experiences Are Personalized Experiences
Connected Experiences Are Personalized ExperiencesConnected Experiences Are Personalized Experiences
Connected Experiences Are Personalized ExperiencesLucidworks
 
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Lucidworks
 
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...Lucidworks
 
Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020Lucidworks
 
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...Lucidworks
 
AI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and RosetteAI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and RosetteLucidworks
 
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual MomentThe Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual MomentLucidworks
 
Webinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - EuropeWebinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - EuropeLucidworks
 
Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19Lucidworks
 
Applying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 ResearchApplying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 ResearchLucidworks
 
Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1Lucidworks
 
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce StrategyWebinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce StrategyLucidworks
 
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...Lucidworks
 
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision IntelligenceApply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision IntelligenceLucidworks
 
Webinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise SearchWebinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise SearchLucidworks
 
Why Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and BeyondWhy Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and BeyondLucidworks
 

More from Lucidworks (20)

Search is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce StrategySearch is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce Strategy
 
Drive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in SalesforceDrive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in Salesforce
 
How Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant ProductsHow Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant Products
 
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product DiscoveryLucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
 
Connected Experiences Are Personalized Experiences
Connected Experiences Are Personalized ExperiencesConnected Experiences Are Personalized Experiences
Connected Experiences Are Personalized Experiences
 
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
 
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
 
Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020
 
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
 
AI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and RosetteAI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and Rosette
 
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual MomentThe Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
 
Webinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - EuropeWebinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - Europe
 
Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19
 
Applying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 ResearchApplying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 Research
 
Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1
 
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce StrategyWebinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
 
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
 
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision IntelligenceApply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
 
Webinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise SearchWebinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise Search
 
Why Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and BeyondWhy Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and Beyond
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Art and Science Come Together When Mastering Relevance Ranking - Tom Burgmans, Wolters Kluwer

  • 1. Art and Science come together when mastering Relevance Ranking Tom Burgmans
  • 2. 01 2 01 Our purpose: Wolters Kluwer provides information, software, and services to legal, business, tax, accounting, finance, audit, risk, compliance, and healthcare professionals Employees: 19,000 Employees with operations in over 40 countries Revenue: € 4.3 billion (2016) Tom Burgmans Search Specialist tom.burgmans@wolterskluwer.com
  • 3. Agenda •  Create a customizable scoring algorithm •  Best practice examples of tuning elements of this algorithm
  • 4. 01
  • 5. 01
  • 6. 6 01 Ingredients for baking a relevance cake Understand of what relevance means Prepare the content Control the scoring algorithm A process & culture in the organization to structurally improve relevance Domain experts Judgement lists User behavioral data Entity detection Classification Vocabulary management Construct the query Single field / multi-field search Term-centric vs field-centric Grammar parsing (External) query processing Re-shape and tune the scoring algorithm: • Customized similarity • Function queries Understand the EXPLAIN feedback: • Querylog tool Prepare the Solr configuration How to tokenize Balance recall vs precision via the analyzers Feature modeling Institutionalize engineering of relevance through the organization Measure expectation vs reality via a diff with Golden Answers Automated relevance tests Work iterative
  • 7. 01 Score (ClassicSimilarity) = Multiplicative function query * Multiplicative function query * Multiplicative function query * coord(q,d) * queryNorm(q) * ( Additive function query + Additive function query + Additive function query + ∑(for each term) ( TermBoost(t) * FieldBoost(d) * TF(t in d) * IDF(t)2 * Norm(t,d) * Payload(t) ) ) Score (BM25Similarity) = Multiplicative function query * Multiplicative function query * Multiplicative function query * ( Additive function query + Additive function query + Additive function query + ∑(for each term) ( TermBoost(t) * FieldBoost(d) * TF(t in d, Norm) * IDF(t)2 * Payload(t) ) ) >= Solr 6.0< Solr 6.0 ​1/ √ 𝑠𝑢𝑚𝑂𝑓 𝑆𝑞𝑢𝑎𝑟𝑒𝑑 𝑊𝑒𝑖𝑔ℎ𝑡𝑠  ​ 𝑜𝑣𝑒𝑟 𝑙𝑎𝑝/ 𝑀𝑎𝑥 𝑂𝑣𝑒 𝑟𝑙𝑎𝑝  √⁠​ 𝑓 𝑟𝑒𝑞/ (1+ 𝑑𝑖𝑠𝑡 𝑎𝑛𝑐𝑒)   ​1+  ln⁠(​ 𝑛𝑢𝑚𝐷𝑜 𝑐𝑠/ 𝑑𝑜𝑐𝐹𝑟𝑒 ​ ≈ 𝑖𝑛𝑑𝑒𝑥𝑏𝑜 ​​ 𝑓 𝑟𝑒𝑞/ (1+ 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒)  ∗( 𝑘1+1)  /​ 𝑓 𝑟𝑒𝑞/ ​ln(​ 𝑛𝑢𝑚𝐷𝑜𝑐𝑠 − 𝑑𝑜𝑐𝐹𝑟𝑒𝑞 +0.5/ 𝑑𝑜𝑐𝐹𝑟𝑒𝑞 +0.5 )⁠  ​≈⁠​1/​ 𝑛𝑢𝑚 𝑇𝑒𝑟𝑚
  • 8. 01 Create your own customizable Similarity class MySimilarityFactory.java MySimilarity.java Make jar Reference jar from solrconfig.xml Extends SchemaSimilarityFactory Creates MySimilarity instance. Passes parameters from schema Extends BM25Similarity Customizations to the algorithm happens here Add on bottom schema.xml <similarity class="solr.SchemaSimilarityFactory“ /> Add inside fieldType definition <fieldType ...> <analyzer > ... </analyzer> <similarity class="com.mycompany.MySimilarityFactory"> <str name="tuneIDF">1.0</str> <!-- IDF --> <str name="tuneSloppyFreq">0</str> <!-- slop --> <str name="tunePayload">3</str> <!-- payloads --> <str name="k1">1.5</str> <!-- TF --> <str name="b">1.0</str> <!-- TF --> </similarity> </fieldType> Delegate similarity to per-field setting Set tuning parameters
  • 9. TF Classic TF = √⁠ 𝒇 𝒓𝒆𝒒 =​ 𝒇 𝒓𝒆𝒒↑ 𝟎.𝟓  ClassicSimilarity.java public float tf(float freq) { return (float)Math.sqrt(freq); } Classic TF = tunable ​ 𝒇 𝒓𝒆𝒒↑𝒕𝒖𝒏𝒆𝑻𝑭  𝟎  ← 𝒕𝒖𝒏𝒆𝑻 public float tf(float freq) { return (float)Math.pow(freq,tuneTF); } MySimilarity.java Tune in the schema
  • 10. 01 𝟎  ← 𝒌 𝟏  →  >𝟎 𝟎  ← 𝒃  →𝟏 BM25 TF =​ 𝒇 𝒓𝒆𝒒∗( 𝒌 𝟏+𝟏)  /𝒇𝒓𝒆𝒒+(𝒌 𝟏∗( 𝟏− 𝒃+ 𝒃 L=​≈ 𝑓𝑖𝑒𝑙𝑑𝐿𝑒𝑛𝑔𝑡ℎ/ tunable Tune term-frequency saturation Tune sensitivity saturation towards field length TF
  • 11. 𝟎  ← 𝒌 𝟏 𝒂  →  >𝟎 BM25 TF = ​ 𝒇 𝒓𝒆𝒒∗( 𝒌 𝟏 𝒂+𝟏)  /𝒇𝒓𝒆𝒒+(𝒌 𝟏 𝒃∗( 𝟏− 𝒃+ 𝒃∗ 𝑳)) L=​≈ 𝑓𝑖𝑒𝑙𝑑𝐿𝑒𝑛𝑔𝑡ℎ/𝑎𝑣𝑔𝐹𝑖𝑒 Tune TF impact independent from saturation better tunable 𝟎  ← 𝒌 𝟏 𝒃  →  >𝟎 Tune term-frequency saturation independent from TF impact TF
  • 12. 01 ​ 𝒍 𝒏⁠(​ 𝒏𝒖𝒎𝑫𝒐𝒄𝒔/ ( 𝒅𝒐𝒄𝑭𝒓𝒆𝒒 +𝟏) )+𝟏  Classic IDF = BM25 IDF = ​ 𝒍 𝒏⁠(​ 𝒏 𝒖𝒎𝑫𝒐𝒄𝒔   − 𝒅𝒐𝒄𝑭𝒓𝒆𝒒 +𝟎.𝟓/ ​ 𝒍 𝒏⁠(​ 𝒏 𝒖𝒎𝑫𝒐𝒄𝒔/( 𝒅𝒐𝒄𝑭𝒓𝒆𝒒+𝟏Classic IDF = BM25 IDF = tunable ​ 𝒍 𝒏⁠(​ 𝒏 𝒖𝒎𝑫𝒐𝒄𝒔  − 𝒅𝒐𝒄𝑭𝒓𝒆𝒒+𝟎tunable 𝟎  ← 𝒕𝒖𝒏𝒆𝑰𝑫 https://www.desmos.com/calculator/wfpvne0z1c IDF In this example: numDocs = 100
  • 13. 01 • Tune the impact of queryNorm and coord (in case of ClassicSimilarity) Or just set them to a hard 1, like I did • Tune the impact of distance on TF In case of a phrase + slop query • Tune the curve & mapping of Payloads This is a hard 1 by default • Tune the 255 entries in the Norm byte Small range for small fields, big range for big fields => higher precision for each case Other items you might want to make tunable via MySimilarity
  • 14. 01 Score (ClassicSimilarity) = Multiplicative function query * Multiplicative function query * Multiplicative function query * coord(q,d) * queryNorm(q) * ( Additive function query + Additive function query + Additive function query + ∑(for each term) ( TermBoost(t) * FieldBoost(d) * TF(t in d) * IDF(t)2 * Norm(t,d) * Payload(t) ) ) Score (BM25Similarity) = Multiplicative function query * Multiplicative function query * Multiplicative function query * ( Additive function query + Additive function query + Additive function query + ∑(for each term) ( TermBoost(t) * FieldBoost(d) * TF(t in d, Norm) * IDF(t)2 * Payload(t) ) ) >= Solr 6.0< Solr 6.0 i.e. Ratings Pagerank Profitability Popularity Document type Page views Geo-distance Freshness i.e. Implicit proximity Exact title match Shingle match Author name in author field Extending the terms score Amplifying the terms score
  • 15. 01 Function queries: index time boost <field  name="docboost"  type="int"  indexed="false"  stored="false"  docValues="true"  />   <add>    <doc>        <field  name="id">id1</field>        <field  name="body">Life  is  like  riding  a  bicycle.</field>        <field  name="docboost">2</field>    </doc>    <doc>        <field  name="id">id2</field>        <field  name="body">To  keep  your  balance,  you  must  keep  moving.</field>        <field  name="docboost">5</field>    </doc>   </add>   q=*:*&boost=field(docboost)   q=*:*&bf=field(docboost)   additive multiplicative doctype   docboost   Archived   0   Form   1   Pending-­‐legisla?on   2   Case-­‐law   3   Ruling   4   Annota?on   5   News   6   Prac?ce-­‐aid   7   Regula?on   8   Law   9   Explana?ons   10   domain expert
  • 16. Tuning multiplicative boost? tuneBoost = 0 Scale up or down by summing? boost=sum(field(docboost),$tuneBoost) Tuning additive boost bf=product(field(docboost),$tuneBoost) nope bigger effect? tuneBoost: -5 ß 0 Scale up or down by multiplying smaller effect tuneBoost: 0 à 5 but not consistently… tuneBoost = 1 smaller effect tuneBoost: 1 à 0.2 bigger effect tuneBoost: 1 à 5
  • 17. Relative difference between multiplicative boost values docboost   0   1   2   3   4   5   6   7   8   9   10   infinite 100% differenc e 50% 33% 25% 20% 17% 14% 12% 11% docboost   ‘translated ’ 0   1   1   2   2   4   3   8   4   16   5   32   6   64   7   128   8   256   9   512   10   1024   docboost   ‘translated ’ & tuned 0   1,00   1   1,15   2   1,32   3   1,52   4   1,74   5   2,00   6   2,30   7   2,64   8   3,03   9   3,48   10   4,00   100% 100% differenc e 100% 100% 100% 100% 100% 100% 100% 100% ​2↑( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡)  01 15% 15% differenc e 15% 15% 15% 15% 15% 15% 15% 15% ​2↑( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠 𝒕𝒖𝒏 𝒆𝑩 𝒐𝒐𝒔 𝒕
  • 18. 01 Tuning multiplicative boost tuneBoost = 0.2 bigger effectsmaller effect tuneBoost: 0.2 à 0 tuneBoost: 0.2 à 0.4 boost=pow(2,product(field(docboost),$tuneBoost))) boost =​2↑( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡  ∗ 𝒕𝒖𝒏𝒆𝑩𝒐𝒐𝒔𝒕) 
  • 19. 01 docid   docboost   doc0   0   doc1   1   doc2   2   doc3   3   doc4   4   doc5   6   doc6   8   doc7   9   doc8   99   doc9   999   doc10   9.999   doc11   99.999   doc12   999.999   Index time boost with extreme values tamed and tunable ‘translated’   1   1,07   1,12   1,15   1,17   1,21   1,25   1,27   1,59   2,00   2,51   3,16   3,98   boost=pow(field(docboost),$tuneBoost) ​( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡 +1)↑𝒕𝒖𝒏𝒆𝑩𝒐𝒐𝒔𝒕  tuneBoost = 0.1
  • 20. 01 docid   docboost  ‘translated’   doc0   0   1   doc1   1   1,07   doc2   2   1,12   doc3   3   1,15   doc4   4   1,17   doc5   6   1,21   doc6   8   1,25   doc7   9   1,27   doc8   99   1,59   doc9   999   2,00   doc10   9.999   2,51   doc11   99.999   3,16   doc12   999.999   3,98   boost=pow(field(docboost),$tuneBoost) ​( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡 +1)↑𝒕𝒖𝒏𝒆𝑩𝒐𝒐𝒔𝒕  Index time boost with extreme values tamed and tunable smaller effect bigger effect tuneBoos t = 0.14 tuneBoost = 0.1 tuneBoos t = 0.05 26% 26% 26% 26% 26%
  • 21. 01 Score (ClassicSimilarity) = Multiplicative function query * Multiplicative function query * Multiplicative function query * coord(q,d) * queryNorm(q) * ( Additive function query + Additive function query + Additive function query + ∑(for each term) ( TermBoost(t) * FieldBoost(d) * TF(t in d) * IDF(t)2 * Norm(t,d) * Payload(t) ) ) Score (BM25Similarity) = Multiplicative function query * Multiplicative function query * Multiplicative function query * ( Additive function query + Additive function query + Additive function query + ∑(for each term) ( TermBoost(t) * FieldBoost(d) * TF(t in d, Norm) * IDF(t)2 * Payload(t) ) ) >= Solr 6.0< Solr 6.0 ​1/ √ 𝑠𝑢𝑚𝑂𝑓𝑆 𝑞𝑢𝑎𝑟𝑒𝑑𝑊𝑒 𝑖𝑔ℎ𝑡𝑠   OR 1 ​ 𝑜𝑣𝑒𝑟𝑙 𝑎𝑝/ 𝑀𝑎𝑥𝑂 𝑣𝑒𝑟𝑙𝑎 𝑝 OR 1 ​(​ 𝑓 𝑟𝑒𝑞/ 1+ 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒∗ 𝒕𝒖𝒏𝒆𝑫𝒊𝒔𝒕𝒂𝒏 𝒄𝒆 )↑𝒕𝒖𝒏𝒆𝑻𝑭  ​1+  ln⁠(​ 𝑛𝑢𝑚𝐷𝑜𝑐𝑠/ 𝑑𝑜𝑐𝐹𝑟𝑒𝑞 +1 )∗ 𝒕𝒖𝒏𝒆𝑰 ​≈⁠​1/​ 𝑛𝑢𝑚𝑇𝑒𝑟𝑚𝑠 ​​ 𝑓 𝑟𝑒𝑞/ (1+ 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒∗ 𝒕𝒖𝒏𝒆𝑫𝒊𝒔𝒕𝒂 𝒏𝒄𝒆) ∗( 𝒌 𝟏 𝒂+1)  /​ 𝑓 𝑟𝑒𝑞/ ​ln(​ 𝑛 𝑢𝑚𝐷𝑜𝑐𝑠 − 𝑑𝑜𝑐𝐹𝑟𝑒𝑞+0.5/ 𝑑𝑜𝑐𝐹𝑟𝑒𝑞+0.5 )⁠   ∗ 𝒕𝒖𝒏𝒆𝑰𝑫𝑭 +1− 𝒕𝒖𝒏𝒆𝑰𝑫𝑭  ​≈⁠​1/​ 𝑛𝑢𝑚 𝑇𝑒𝑟 𝑚𝑠↑ 𝒕𝒖𝒏𝒆     𝑵𝒐𝒓𝒎   𝒃𝒚𝒕𝒆   𝒑𝒐𝒑𝒖 𝒍𝒂𝒕𝒊𝒐 𝒏 ​ 2↑( 𝑑𝑜𝑐𝑏𝑜 𝑜𝑠𝑡  ∗   𝒕𝒖𝒏𝒆𝑩𝒐𝒐 𝒔𝒕)  ​( 𝑑𝑜𝑐𝑏𝑜𝑜𝑠𝑡 +1)↑𝒕𝒖𝒏𝒆𝑩 𝒐𝒐𝒔𝒕  𝑑𝑜𝑐𝑏𝑜𝑜𝑠 𝑡   ∗ 𝒕𝒖𝒏𝒆𝑩 𝒐𝒐𝒔𝒕
  • 22. 01 After a certain high level of technical skill is achieved, science and art tend to coalesce in esthetics, plasticity, and form. The greatest scientists are artists as well. Albert Einstein
  • 23. 01 One more thing… Expected soon: Preview? contact tom.burgmans@wolterskluwer.com