Marc Balestreri
Back to The Signal

The Cold Start Problem

December 27, 2020 · 7 min read
AIMachine LearningStartupsPhilosophyProduct Management

There's a paradox at the heart of machine learning that nobody warns you about until you're already knee-deep in it.

To build a model that works, you need data. Lots of it. Historical patterns, labeled examples, the accumulated decisions of humans doing the thing you're trying to automate. But to get that data, you need a system running in production - which requires a model that already works.

This is called the cold start problem, and it's been haunting me for months.

The Paradox in Practice

I've been building an ML-powered system for automating trade claims - the process by which retailers bill consumer goods companies for promotional discounts. Think Walmart submitting millions of claims to Coca-Cola saying "we ran your buy-one-get-one promotion, now pay us back."

The machine learning angle is appealing: train a model on historical claims data, let it learn the patterns that human analysts use to match deductions to promotions, and automate 80% of the grunt work.

Simple enough in theory.

In practice, we trained our models on seed data from co-innovation partners - companies generous enough to share their historical claims so we could build something useful. The models learned beautifully. Accuracy climbed. Demos impressed.

Then we set up simulated production environments with new partners, imitating real-world conditions as closely as possible without actual go-live customers.

The patterns our model learned from Canadian retail claims didn't translate to European distribution networks. The edge cases multiplied. Accuracy that looked great on training data cratered when the data got messier, more varied, more real.

The model needed production data to learn. But we couldn't get production data without deploying a model that worked. Classic cold start.

Beyond Machine Learning

Here's what I've been ruminating on: the cold start problem isn't unique to ML. It's a universal phenomenon hiding under different names across every domain I've worked in.

Startups call it the traction paradox. You need customers to prove product-market fit. But you need product-market fit to convince customers to take a chance on you. Investors want to see growth before funding, but you need funding to generate growth. Every founder has felt this catch-22.

Careers call it the experience gap. Entry-level jobs require two years of experience. But you need the job to get the experience. The junior engineer can't get hired without a portfolio, can't build a portfolio without real projects, can't get real projects without being hired.

Enterprise software calls it validation. You can't prove the system works until customers use it in anger. But customers won't commit until you prove the system works. So you build elaborate simulations, co-innovation partnerships, sandboxed environments that approximate reality without ever quite being real.

The pattern is always the same: you need the output to create the input that creates the output.

The Seductive Trap of Simulation

The natural response to cold start is simulation. If you can't get real data, fake it. Build synthetic datasets. Create test environments. Model the production scenario as closely as possible.

We did this extensively. Our co-innovation partners helped us set up tenant environments with their actual data structures, their business rules, their edge cases. We connected test versions of their TPM systems, imported sample claims, ran simulations that felt increasingly production-like.

And yet.

Simulations optimize for the scenarios you anticipate. Production throws scenarios you never imagined. The gap between "simulated production" and "actual production" isn't a gap in data quality or system configuration - it's a gap in imagination. You can't model the unknown unknowns.

This is why demos always look better than reality. Demos are simulations. Controlled environments where you've anticipated every path. Production is where someone does the thing you never considered, with data that doesn't fit your schema, under conditions you didn't test.

The Hybrid Compromise

The pragmatic solution to cold start - at least in ML - is to not rely on ML alone.

We built a hybrid system. Rules-based logic handles the deterministic cases: exact matches on retailer codes, date ranges that align perfectly, amounts that reconcile to the penny. The ML model kicks in for fuzzy matching - partial information, format variations, the judgment calls where pattern recognition actually helps.

From an engineering aesthetics standpoint, this feels like admitting defeat. You wanted intelligent automation and you delivered a sophisticated if-then cascade with ML sprinkled on top.

From a practical standpoint, it works. The rules handle what rules can handle. The ML handles what requires learned judgment. The hybrid outperforms either pure approach.

There's a lesson here that extends beyond software: purity is overrated. The elegant solution that doesn't work is inferior to the ugly solution that does. Cold start doesn't require solving the paradox - it requires working around it pragmatically until you've accumulated enough momentum to solve it properly.

The Leap of Faith

But here's the uncomfortable truth: eventually, you have to jump.

No amount of simulation fully prepares you. No hybrid workaround permanently substitutes for real data, real customers, real production. At some point, you have to deploy the imperfect model, ship the untested product, take the job you're not quite qualified for.

The cold start problem doesn't get solved by waiting until conditions are perfect. It gets solved by accepting that the first iteration will be rough, the early data will be sparse, and improvement only comes from actual use.

I think about this with careers too. The junior engineer paralyzed by the experience gap has to ship something - a side project, an open source contribution, anything that demonstrates capability without waiting for permission. The startup stuck in the traction paradox has to find one customer willing to take a chance, then leverage that single data point into the next.

Cold start thaws through action, not preparation.

What This Year Taught Me

We hit general availability this month. The product exists. The models are running. We don't have true production customers yet - no live go-lives processing real money. But we're closer than simulation, further than demo, somewhere in the uncomfortable middle where the cold start is starting to warm.

The 60-hour weeks across three time zones, the UX pivots three months before launch, the rules-based logic rescuing our ML ambitions - none of it was elegant. All of it was necessary.

I came into this year thinking the hard part of building ML-powered software was the ML. The algorithms, the training, the technical sophistication. What I've learned is that the hard part is the cold start: getting from zero to enough data that the intelligence can actually emerge.

And that problem - the bootstrapping problem, the chicken-and-egg problem, the need-the-output-to-create-the-input problem - isn't technical. It's existential. It applies to every new venture, every career transition, every attempt to build something from nothing.

The only way out is through. You prepare as much as you can, acknowledge that preparation has limits, and then you leap before you're ready.

Because ready never comes. You build readiness by doing the thing you don't feel ready for.

Cold start is the beginning, not the obstacle.