Preference Elicitation for Single Crossing
Domain
joint work with Neeldhara Misra (IIT Gandhinagar)
March 6, 2017
Appeared in IJCAI 2016
Motivation for Preference Elicitation
One often wants to learn how people like different items
I
Netflix would like to know which movies their users like
more
I
Zomato is interested in knowing which are popular
restaurants
I
Wikipedia would like to know quality of their articles using
user feedback
I
In any voting applications, one first have to know voters’
preferences
Motivation for Preference Elicitation
One often wants to learn how people like different items
I
Netflix would like to know which movies their users like
more
I
Zomato is interested in knowing which are popular
restaurants
I
Wikipedia would like to know quality of their articles using
user feedback
I
In any voting applications, one first have to know voters’
preferences
Preference elicitation is fundamental in many applications
General Setting: Preferences
I
Set C of alternatives. |C| = m
I
Set V of agents. |V| = n
I
Every agent has preference over C
Preference
single alternatives
subset of C
ranking over C
In this talk: Preferences are rankings over C
...
The Comparison Query Model
We often have a huge number of alternatives in applications
I
Movies in Netflix: tens of thousands
I
Restaurants listed in Zomato: thousands
I
Wikipedia pages: millions
The Comparison Query Model
We often have a huge number of alternatives in applications
I
Movies in Netflix: tens of thousands
I
Restaurants listed in Zomato: thousands
I
Wikipedia pages: millions
Users cannot provide their preferences over such a
large set §
The Comparison Query Model
We often have a huge number of alternatives in applications
I
Movies in Netflix: tens of thousands
I
Restaurants listed in Zomato: thousands
I
Wikipedia pages: millions
Users cannot provide their preferences over such a
large set §
Users can easily compare two given alternatives!
Goal: Learn preferences using comparisons only
Single crossing domain: Opinions about subsidy
· · · Voters · · ·
Low income
Wants subsidy
High income
Does not want subsidy
Single crossing domain: Opinions about subsidy
· · · Voters · · ·
Low income
Wants subsidy
High income
Does not want subsidy
∀(x, y) ∈ C × C ⇒ voters with x y are contiguous
Single crossing domain: Opinions about subsidy
· · · Voters · · ·
Low income
High income
Wants subsidy
Does not want subsidy
∀(x, y) ∈ C × C ⇒ voters with x y are contiguous
Properties
I
Always exists a Condorcet winner for odd number of voters
I
Many computational problems, Kemeny aggregation for
example, are tractable
Single crossing domain: Opinions about subsidy
· · · Voters · · ·
Low income
High income
Wants subsidy
Does not want subsidy
∀(x, y) ∈ C × C ⇒ voters with x y are contiguous
Properties
I
Always exists a Condorcet winner for odd number of voters
I
Many computational problems, Kemeny aggregation for
example, are tractable
Question: Does preference elicitation get easier?
Yes!
Summary of results
Query Complexity
Ordering
Known
Access model
Upper Bound
Lower Bound
Random
O(m2 log n)
Ω(m log m + m log n)
Sequential
single crossing order
O(mn + m2 )
Sequential any order
O(mn + m2 log n)
Sequential any order
O(mn +
Ω(m log m + mn)
m3 log m)
Unknown
Random
O(mn + m3 log m)
Ω(m log m + mn)
Random access
+
Known single crossing order
Algorithm
I
v1 , v2 , . . . , vn be a single crossing order
I
For every x, y ∈ C, find i such that x i y and y i+1 x
Query complexity: O(m2 log n)
Algorithm
I
v1 , v2 , . . . , vn be a single crossing order
I
For every x, y ∈ C, find i such that x i y and y i+1 x
Query complexity: O(m2 log n)
Lower Bound
I
Let C = {c1 , c2 , . . . , cm }, m even
I
Fix {c1 , c2 } {c3 , c4 } · · · {cm−1 , cm } for everyone
Algorithm
I
v1 , v2 , . . . , vn be a single crossing order
I
For every x, y ∈ C, find i such that x i y and y i+1 x
Query complexity: O(m2 log n)
Lower Bound
I
Let C = {c1 , c2 , . . . , cm }, m even
I
Fix {c1 , c2 } {c3 , c4 } · · · {cm−1 , cm } for everyone
I
Each {c2i , c2i+1 } needs to be queried log n times
I
Query complexity: Ω(m log n)
Sequential access in single
crossing order
Algorithm
Use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Elicit ith preference using insertion sort in (i − 1)th
preference order
Algorithm
Use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Elicit ith preference using insertion sort in (i − 1)th
preference order
Total number of comparisons
ith
Good cost
(x, y) good if
preference orders x, y
same as (i − 1)th
Bad cost
(x, y) bad if
(x, y) not good
Algorithm
Use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Elicit ith preference using insertion sort in (i − 1)th
preference order
Total number of comparisons
ith
Good cost
(x, y) good if
preference orders x, y
same as (i − 1)th
Bad cost
(x, y) bad if
(x, y) not good
Single crossing ⇒ 6 1 bad cost per pair of candidates
Algorithm
Use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Elicit ith preference using insertion sort in (i − 1)th
preference order
Total number of comparisons
ith
Good cost
(x, y) good if
preference orders x, y
same as (i − 1)th
Bad cost
(x, y) bad if
(x, y) not good
Single crossing ⇒ 6 1 bad cost per pair of candidates
Query Complexity: O mn +
m
2
Lower Bound
I
Let C = {c1 , c2 , . . . , cm }, m even
I
Fix c1 c2 · · · cm for everyone
I
Each {c2i , c2i+1 } needs to be queried for every agent times
I
Query complexity: Ω(mn + m log m)
Sequential access in any order
+
Known single crossing order
Algorithm
Again use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Maintain a set S of already elicited preferences
I
Elicit current preference using insertion sort in closest
known order
Algorithm
Again use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Maintain a set S of already elicited preferences
I
Elicit current preference using insertion sort in closest
known order
Total number of comparisons
Good cost
(x, y) good if
current preference orders x, y
same as baseline
Bad cost
(x, y) bad if
(x, y) not good
Algorithm
Again use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Maintain a set S of already elicited preferences
I
Elicit current preference using insertion sort in closest
known order
Total number of comparisons
Good cost
(x, y) good if
current preference orders x, y
same as baseline
Bad cost
(x, y) bad if
(x, y) not good
Single crossing ⇒ 6 log n bad cost per pair of candidates
Algorithm
Again use “insertion sort”
I
Elicit the first preference: O(m log m) comparisons
I
Maintain a set S of already elicited preferences
I
Elicit current preference using insertion sort in closest
known order
Total number of comparisons
Good cost
(x, y) good if
current preference orders x, y
same as baseline
Bad cost
(x, y) bad if
(x, y) not good
Single crossing ⇒ 6 log n bad cost per pair of candidates
Query Complexity: O mn +
m
2
log n
Sequential access in any order
+
Unknown single crossing order
Algorithm: any sequential + unknown single crossing
order
There can be at most
m
2
+ 1 distinct preference
Algorithm: any sequential + unknown single crossing
order
There can be at most
m
2
+ 1 distinct preference
Let S be single crossing of distinct preferences
Then there exists two alternatives x, y such that
exactly bS/2c prefers x over y
Algorithm: any sequential + unknown single crossing
order
There can be at most
m
2
+ 1 distinct preference
Let S be single crossing of distinct preferences
Then there exists two alternatives x, y such that
exactly bS/2c prefers x over y
Let S be single crossing of distinct preferences
It can be checked in O(log m + m) comparisons
whether a preference is in S
Algorithm: any sequential + unknown single crossing
order...
I
Elicit the first preference: O(m log m) comparisons
Algorithm: any sequential + unknown single crossing
order...
I
Elicit the first preference: O(m log m) comparisons
I
Maintain the set S of preferences found so far
Algorithm: any sequential + unknown single crossing
order...
I
Elicit the first preference: O(m log m) comparisons
I
Maintain the set S of preferences found so far
I
Check if ith preference is in S: O(m)
Algorithm: any sequential + unknown single crossing
order...
I
Elicit the first preference: O(m log m) comparisons
I
Maintain the set S of preferences found so far
I
Check if ith preference is in S: O(m)
I
If not then elicit: O(m log m)
Algorithm: any sequential + unknown single crossing
order...
I
Elicit the first preference: O(m log m) comparisons
I
Maintain the set S of preferences found so far
I
Check if ith preference is in S: O(m)
I
If not then elicit: O(m log m)
X This can happen O
m
2
times
Algorithm: any sequential + unknown single crossing
order...
I
Elicit the first preference: O(m log m) comparisons
I
Maintain the set S of preferences found so far
I
Check if ith preference is in S: O(m)
I
If not then elicit: O(m log m)
X This can happen O
m
2
times
Total number of comparisons:
O(mn + m3 log m)
Conclusions
Summary
I
Optimal algorithm for preference elicitation for various
realistic scenarios
Conclusions
Summary
I
Optimal algorithm for preference elicitation for various
realistic scenarios
Future work
I
Find exact query complexity for preference elicitation when
random access is given and a single crossing order is known
I
How query complexity gets affected in the presence of k
outliers
Thank You!
© Copyright 2026 Paperzz