Learning Preference from Observed Rankings
Organizations: National Taiwan University
Abstract
Estimating consumer preferences is central to many problems in economics and marketing. This paper develops a flexible framework for learning individual preferences from partial ranking information by interpreting observed rankings as collections of pairwise comparisons with logistic choice probabilities. We model latent utility as the sum of interpretable product attributes, item fixed effects, and a low-rank user-item factor structure, enabling both interpretability and information sharing across consumers and items. We further correct for selection in which comparisons are observed: a comparison is recorded only if both items enter the consumer's consideration set, inducing exposure bias toward frequently encountered items. We model pair observability as the product of item-level observability propensities and estimate these propensities with a logistic model for the marginal probability that an item is observable. Preference parameters are then estimated by maximizing an inverse-probability-weighted (IPW), ridge-regularized log-likelihood that reweights observed comparisons toward a target comparison population. To scale computation, we propose a stochastic gradient descent (SGD) algorithm based on inverse-probability resampling, which draws comparisons in proportion to their IPW weights. In an application to transaction data from an online wine retailer, the method improves out-of-sample recommendation performance relative to a popularity-based benchmark, with particularly strong gains in predicting purchases of previously unconsumed products.
Figures & tables
| Average | SD | Min | Max | |
| A. Demographics | ||||
| Female | 0.428 | 0.495 | 0 | 1 |
| Age (years) | 39.93 | 11.09 | 18 | 83 |
| B. Purchase Behavior (Annualized) | ||||
| Spending (NTD) | 10,322 | 37,945 | 166 | 1,120,101 |
| Spending (USD) | 323 | 1,186 | 5.1 | 35,003 |
| Recall@K | Precision@K | |||||||
|---|---|---|---|---|---|---|---|---|
| Method | ||||||||
| Popularity Benchmark | 0.0124 | 0.0763 | 0.1241 | 0.1986 | 0.0299 | 0.0245 | 0.0199 | 0.0164 |
| Full Model | 0.0125 | 0.0908 | 0.1428 | 0.2140 | 0.0407 | 0.0297 | 0.0242 | 0.0188 |
| Observed Attribute Only | 0.0047 | 0.0380 | 0.0667 | 0.1109 | 0.0141 | 0.0127 | 0.0118 | 0.0103 |
| Factor Model Only | 0.0038 | 0.0343 | 0.0655 | 0.1110 | 0.0131 | 0.0110 | 0.0104 | 0.0092 |
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
| Original Grape Composition | Final Variety-Group Classification |
|---|---|
| Chardonnay 35%, Pinot Meunier 5%, Pinot Noir 65% | Champagne Blend |
| Pinot Noir 100% | Pinot Noir |
| Riesling 60%, Sémillon 40% | White wine |
| Chardonnay 100% | White wine |
| Cinsault / Grenache (proportions unknown) | Rosé wine |
| Pinot Noir / Poulsard (Ploussard) / Trousseau (proportions unknown) | Red wine |
| Wine Style | Core Varieties | Classification Rule | Notes |
|---|---|---|---|
| Bordeaux Blend White | Sauvignon Blanc, Sémillon, Muscadelle | At least two core varieties; direct match if labeled Bordeaux Blend and white | White Bordeaux-style blend |
| Pinot Noir Sparkling | Pinot Noir | Must include Pinot Noir; sparkling category | Single-variety sparkling |
| Chardonnay Sparkling | Chardonnay | Must include Chardonnay; sparkling category | Single-variety sparkling |
| Muscat d’Asti | Moscato Bianco | Must include Moscato Bianco | Sweet sparkling style |
| Prosecco | Glera | Must include Glera | Prosecco definition |
| Cabernet Sauvignon–Syrah Blend | Cabernet Sauvignon, Syrah | At least two core varieties | Syrah and Shiraz treated as equivalent |