Head-to-Head Residual Odds

A pairwise-history residual correction, reskinned as an NBA matchup tool.
Grounded in BridgeMem: Causal Dyadic Transition Residuals for Temporal Knowledge Graph Forecasting (arXiv:2609.29268). The paper's claim: generic temporal-knowledge-graph forecasters mostly summarize each entity's own history and miss pair-specific transition evidence β€” how the prior relations between this specific pair shift the odds of the next event between them. BridgeMem retrieves the pair's own past events, encodes their relations & time-lags into a likelihood-ratio residual, and adds it on top of a frozen backbone forecaster's log-scores β€” with a support-adaptive empirical-Bayes component that trusts exact counts when the pair's history is rich and backs off toward learned/global priors when it's sparse (reported MRR gains of 0.0028–0.0216 over 9 prior methods across 5 benchmarks). Below: the "backbone" is a power-rating win probability; the "residual" is a real recency-weighted log-odds adjustment computed live from the synthetic head-to-head timeline you generate.

1 Β· Matchup

β€”
Power rating: β€”
β€”
Power rating: β€”

2 Β· Head-to-head event history (this pair only)

oldest 0 games most recent β†’
Each bar is one past matchup between these two teams. Height = margin. Hover a bar for detail. Bars fade with age β€” recency-weighting in the math below mirrors that fade.

3 Β· Baseline vs. residual-adjusted win probability

baseline
Team A 50% Team B 50%
100%
support: β€”
Backbone P(A wins)
β€”
Raw H2H log-odds residual r
β€”
Empirical-Bayes shrinkage Ξ»
β€”
Applied correction (λ·r·trust)
β€”
Final P(A wins)
β€”
Games in this pair's history
β€”
// backbone (frozen general forecaster) p_base = Οƒ( (R_A βˆ’ R_B) / 400 Β· ln10 ) // pair-specific residual β€” recency-weighted log-odds over head-to-head games r = Ξ£_i w_i Β· sign(margin_i)_A Β· log(1 + |margin_i| / 12) , w_i = exp(βˆ’age_i / Ο„) // support-adaptive empirical-Bayes shrinkage (trust exact counts when abundant, back off when sparse) Ξ» = n / (n + k) n = Ξ£ w_i (effective sample size), k = 4 (prior strength) // gated blend β€” user trust slider Γ— adaptive fallback logit_final = logit(p_base) + trust Β· fallback_gate Β· Ξ» Β· r p_final = Οƒ(logit_final)