All articles
Blog Priya Anand 7 min read

Beyond Collaborative Filtering: What Actually Works in DTC Personalization

Beyond Collaborative Filtering: What Actually Works in DTC Personalization

Collaborative filtering is the recommendation approach most people picture when they hear "personalization." If you bought X, others who bought X also bought Y, therefore we should show you Y. It is elegant, it scales, and for certain contexts it works very well. Netflix, Spotify, and Amazon built large parts of their recommendation infrastructure on it. The technique dates to the early 1990s and was commercialized through the 2000s. It is genuinely useful.

It is also a 1990s insight being applied to 2024 catalogs in ways that frequently do not match the problem DTC operators actually face. Understanding where it works and where it breaks down is the foundation for thinking clearly about what does work instead.

How Collaborative Filtering Actually Works

The core idea is user-item matrix factorization: you have a large matrix where rows are users and columns are items, with values representing some form of interaction signal (purchase, view, click, rating). You factorize this matrix to discover latent dimensions - abstract features that explain why certain users interact with certain items. Then you find users with similar latent profiles and recommend items that similar users interacted with but this user has not.

The approach has two hard requirements that often go unstated. First, you need enough interaction history per user to build a meaningful profile. Users with five or ten past purchases are largely invisible to the model - their history is too thin to place them reliably in the latent space. Second, you need enough interaction history per item. A product with two views has almost no information about who tends to buy it. The "similar users bought this" logic cannot fire when there are no similar users who have interacted with the item yet.

Both of these requirements are problems for most DTC mid-market catalogs. A typical 10,000 to 40,000 SKU DTC brand running 200,000 monthly sessions will have most of its catalog in the sparse zone. The purchase matrix is thin because purchase events are rare relative to the number of items, and because many shoppers have only one or two transactions in the database.

The DTC Context Is Different

The streaming and retail platforms where collaborative filtering established its track record have fundamentally different data economics than a DTC brand. Netflix has seen the same user watch hundreds of movies over years. Spotify has seen the same user play thousands of songs. Those dense histories make latent-factor models robust. The model has enough signal to triangulate where a user sits in preference space.

A DTC brand with 18 months of customer data will have a distribution that looks like this: a small cohort of repeat buyers with 5 or more transactions, a larger group with 2 to 4 transactions, and a long tail of one-time buyers and window-shoppers with a single session on record. Collaborative filtering works well for that first group. For the rest, it is essentially cold-starting every time they arrive.

There is also the catalog churn problem. DTC catalogs turn over meaningfully - new SKUs come in each season, old ones get discontinued, colorways change. Items introduced in the last 30 to 90 days have minimal interaction history by definition. Collaborative filtering cannot recommend them confidently because there is no interaction pattern yet to pattern-match against. A model that systematically underweights new inventory will bias toward older, established products - which is sometimes the wrong call for seasonal DTC businesses.

What the Research Shows About Hybrid Approaches

The academic recommendation systems literature from roughly 2017 onward has moved substantially away from pure matrix factorization and toward hybrid models that combine multiple signal types. The most practically useful findings for the e-commerce context involve two shifts.

First, session-based signals substantially outperform long-horizon history for in-session behavior prediction. A sequence model that tracks what items a shopper has viewed, in what order, during the current session can make better next-item predictions than a collaborative filter built on six months of purchase history - particularly for new visitors and for catalogs with high item churn. The intuition is that the current session is a strong signal about immediate intent, and that immediate intent is more relevant to the next recommendation than historical purchasing patterns.

Second, content-based signals from item attributes recover much of the cold-start problem. A new SKU with no purchase history but with attributes (category, material, price tier, color family, use case) can be recommended based on its similarity to items a shopper has already engaged with during the session. This is not as precise as a well-trained collaborative filter, but it is far better than random and meaningfully better than recency ranking.

Real-Time Re-Ranking Changes What Is Possible

One of the practical limitations of classic collaborative filtering in production is latency. Computing user-item scores for a large catalog in real time is expensive. The typical workaround is to precompute candidate sets (top-K items for each user) and cache them, with periodic refreshes. This means your recommendation set for a user is often 12 to 24 hours stale.

For a shopper who arrived five minutes ago and has been actively signaling preferences through their browse behavior, a 12-hour-stale precomputed set is a significant accuracy degradation. Real-time re-ranking - taking a candidate set and scoring it against the current session's signals at request time - closes most of that gap. The candidate generation can still use offline-computed embeddings; the re-ranking uses live session context. This hybrid architecture is where most production personalization systems have landed in recent years.

What This Means in Practice

For a DTC operator evaluating personalization approaches, the practical implication is that "do you use collaborative filtering?" is not the right question. The right questions are: How does the system handle new visitors with no history? How does it handle new products with no interaction data? What session signals does it use and how quickly does it incorporate them? What is the candidate generation architecture and what is the re-ranking architecture?

A system that is purely collaborative filtering will work well for your repeat buyer cohort and perform poorly for new visitors and new products. A system that ignores long-horizon purchase signals entirely in favor of pure session data will miss preference patterns that repeat buyers have established over time. The interesting implementations are the ones that blend both, with weighting that adjusts based on how much history is available.

The baseline to beat is usually recency-weighted bestseller ranking - showing the products that have been converting well recently, personalized toward the category and price tier the current session has signaled. That is a reasonable benchmark and harder to beat than it sounds. Any more sophisticated approach needs to demonstrate lift over that baseline in a controlled test before you commit to the infrastructure cost.

The algorithms matter, but so does the integration architecture, the signal pipeline, and the measurement framework. Collaborative filtering is a useful tool in the personalization toolkit. It is not the whole toolkit, and for mid-market DTC catalogs, it is rarely the most important tool in the set.