Quant Memo
Core

Blending Alpha Signals with Machine Learning

Combining ten weak, mostly-independent signals into one score can beat any of them alone — but only if the blend is built to resist the temptation to let a flexible model quietly re-fit noise across the very signals it's supposed to be averaging out.

Prerequisites: Combining Many Weak Signals, Overfitting the Cross-Section

Grinold and Kahn's fundamental law of active management makes a specific promise: information ratio grows with the square root of the number of independent bets. Ten weak, roughly independent signals, each barely better than a coin flip alone, can combine into a composite with meaningfully better risk-adjusted performance than any one of them. Machine learning offers an obvious way to do the combining — feed all ten signals as features into a model and let it learn the weights. The trouble is that the same flexibility that lets a model find a good combination also lets it find a combination that fits the specific historical noise in those ten signals, undoing the very diversification benefit the blend was supposed to capture.

Why blending isn't just "throw it at a model"

A simple average of standardised signals is itself a form of blending, and it is remarkably hard to beat, because equal weighting cannot overfit — there are no weights to tune. A linear regression of forward returns on the signals introduces a small number of parameters (one weight per signal) that can be estimated with reasonable confidence given enough independent time periods. A gradient-boosted tree or neural network given the same ten signals as inputs can, if not carefully controlled, learn a highly nonlinear combination that captures interaction effects real in-sample but spurious out-of-sample — the model equivalent of noticing that "signal 3 works great specifically when signal 7 is negative and it's a Tuesday in March."

The right question is not "which model blends best" but "how much flexibility does the blend actually need, given how many independent time periods are available to estimate it." With only a handful of genuinely independent signals and a modest number of independent periods (see Overfitting the Cross-Section), a simple weighted average or a lightly regularised linear model usually captures most of the achievable benefit, and a complex model mostly adds variance.

Blending signals with ML earns its complexity budget from the number of independent time periods, not the number of signals or stock-days. With few genuinely independent periods, equal weighting or a heavily regularised linear blend is often close to optimal, and a flexible model's extra capacity goes toward fitting noise.

A worked example

A desk has 8 signals, each individually weak (information coefficient around 0.02–0.03) but with pairwise correlations mostly below 0.2, tested over 6 years of monthly rebalances — 72 independent periods.

Equal-weight blend: standardise each signal to zero mean, unit variance cross-sectionally each month, average the eight. This has zero tunable parameters and, on held-out months using a purged walk-forward split, achieves an information coefficient of roughly 0.06 — close to the theoretical diversification benefit of combining eight weakly correlated signals.

Unconstrained gradient-boosted blend: feed the same eight signals into a tree ensemble with no regularisation, tuned by watching in-sample fit. In-sample IC looks like 0.11 — almost double the equal-weight number. On the same walk-forward holdout, IC drops to roughly 0.03, worse than the simple average, because the model spent its capacity fitting nonlinear interactions specific to a few of the 72 training months rather than the shared linear signal common to all of them.

A middle path — a linear regression with a modest L2 penalty, only 8 weights to estimate from 72 periods — lands close to the equal-weight result but with weights that reflect each signal's actual relative strength, which is usually the sensible target: enough flexibility to weight, not enough to warp.

Gradient descent
parameter →
position -0.623loss -0.141gradient -0.930converging

Watch how a model with too high a learning rate (analogous to too little regularisation, here) overshoots and chases every local wiggle in the loss surface rather than settling near the true minimum. That's the blend-overfitting failure mode in miniature: too much freedom to chase small, noisy improvements in-sample at the cost of the stable minimum that would generalise.

Before adding model complexity to a blend, benchmark against equal weighting on a proper walk-forward split. If the fancier model can't beat that benchmark out-of-sample, the honest conclusion is that the signals were already close to as combinable as they're going to get.

Where blending goes wrong in practice

The subtler failure isn't picking too flexible a model — it's letting correlated signals silently dominate an otherwise well-regularised blend. If three of the eight signals are all, underneath, different transforms of the same underlying momentum data, a regression will happily assign them collectively more combined weight than their genuine independent information warrants, because regularisation penalises weight size, not redundancy. Orthogonalising signals before blending, or clustering and de-duplicating first, addresses this directly rather than hoping the model figures it out.

An in-sample improvement from adding model complexity to a blend is not evidence the complexity was warranted — it is close to guaranteed by construction, since a more flexible model can always fit training data at least as well. The only informative number is the walk-forward, purged, out-of-sample comparison.

Related concepts

Practice in interviews

Further reading

  • Grinold & Kahn, Active Portfolio Management (ch. 9, combining signals)
  • Isichenko, Quantitative Portfolio Management (ch. 6)
ShareTwitterLinkedIn