Deep Crossing: The Dawn of Deep Learning in Recommender Systems
Discover Deep Crossing model that pioneered deep learning for CTR prediction. Learn its four-layer architecture — Embedding, Stacking, Residual Units, and Scoring — and why it was a revolutionary milestone.
Hi, continuing our recommender systems journey, today we take a pivotal step forward. In the last post, we saw how FM and FFM solved the sparsity and complexity problems of feature crossing — but they remained fundamentally constrained to second-order interactions. What if three features interact? What if five? What if the true signal requires deep, hierarchical combinations that pairwise models cannot express?
Theoretically, FM can be extended to third-order or even higher-order feature crossing. But due to combinatorial explosion, the number of parameters and training complexity become prohibitive — making higher-order FM variants impractical for real-world engineering.
This is where deep learning enters the picture. With their nearly unlimited capacity for hierarchical feature combination, neural networks naturally became the next frontier for recommendation models. And the model that opened this door was Microsoft’s Deep Crossing — one of the first complete, end-to-end deep learning architectures for CTR prediction.
Deep Crossing was developed at Microsoft for a high-stakes industrial problem: predicting click-through rates on search ads in the Bing search engine. When a user types a search query, Bing returns both organic search results and sponsored advertisements. Maximizing ad click probability — and accurately predicting it — is central to the search engine’s revenue model.
The features used in this scenario are diverse, spanning three categories:
Category
Features
Encoding
Categorical (one-hot/multi-hot)
Query, Ad Keyword, Ad Title, Landing Page, Match Type
One-hot or multi-hot encoding → sparse high-dimensional vectors
Numerical
Historical CTR, Predicted CTR (from another model)
Extracted into sub-features: numerical fields (budget) and categorical fields (campaign ID)
Categorical features — like the user’s search query, the advertiser’s keyword, the ad title, and the landing page URL — are encoded as one-hot or multi-hot vectors. These are enormous and extremely sparse: a query vocabulary can contain millions of unique terms, but each sample activates only a handful.
Numerical features — like an ad’s historical click-through rate or a CTR estimate from another model — are continuous values that can be directly fed into the network.
Feature groups — like “Campaign” or “Impression samples” — are not single features but composite entities. For example, a campaign contains a budget (numerical) and a campaign ID (categorical), each requiring different treatment.
Once all features are encoded into vector representations, Deep Crossing processes them through four architectural layers to produce the final CTR prediction.
Before diving into the architecture, let’s frame the three problems that Deep Crossing must solve internally — these are the same challenges that any deep learning recommendation model faces:
Sparse feature densification: Categorical features encoded via one-hot are too sparse for direct neural network training. The model must convert these sparse vectors into compact, dense representations.
Automatic feature crossing: Unlike FM/FFM, which are limited to second-order interactions, the model should learn arbitrary-order feature combinations — including third-order, fourth-order, and beyond — without manual specification.
Optimization target fitting: The output layer must produce a well-calibrated probability that aligns with the training objective (binary classification for CTR).
Deep Crossing addresses each challenge with a dedicated architectural component, forming a clean four-layer pipeline.
As shown in the diagram below, Deep Crossing consists of four layers stacked from bottom to top: Embedding, Stacking, Multiple Residual Units, and Scoring.
The Embedding layer converts sparse categorical features into denseembedding vectors.
KEY INSIGHT:
the Embedding layer can be viewed mathematically as a fully connected layer without bias whose input is one-hot encoded (although in practice it is implemented as an embedding lookup rather than an actual matrix multiplication.)
the original input feature vectors are sparse, while the converted embedding vectors are dense
the embedding vectors have far fewer dimensions than the feature vectors
Not all features go into the Embedding layer — some numerical features may skip the Embedding layer and go directly into the Stacking layer.
The function of the Stacking layer is simple: it concatenates different embedding vectors and numerical features to form a new feature vector containing all features. It is also commonly referred to as the Concatenate layer.
Multiple Residual Units Layer is the heart of Deep Crossing.
The Stacking layer’s output is fed into a Multi-Layer Perceptron (MLP), but rather than a standard neural network built from plain perceptrons, Deep Crossing implements this MLP as a multilayer residual network of stacked residual units.
Why Residual Connections?
In a standard deep neural network, as more layers are added, two problems emerge:
Vanishing gradients: During backpropagation, gradients shrink exponentially as they propagate backward through layers, making early layers nearly impossible to train
Degradation problem: Counterintuitively, adding more layers can actually increase training error — a deeper network performs worse than a shallower one, even though the deeper network could theoretically learn the identity mapping by setting the added layers to identity
Residual connections largely alleviate these optimization difficulties by introducing skip connections:
graph LR
classDef plain fill:none,stroke:none;
Xi["x<sup>i</sup>"]:::plain
W0["w<sub>0</sub>, b<sub>0</sub>"]
W1["w<sub>1</sub>, b<sub>1</sub>"]
Sum((+))
Xo["x<sup>o</sup>"]:::plain
Xi --> W0
Xi --> Sum
W0 -- "ReLU" --> W1
W1 --> Sum
Sum -- "ReLU" --> Xo
Mathematically, a single residual unit computes:
xout=ReLU(F(xin)+xin)(3-1)
Where F(⋅) is the residual function.
The shortcut path adds the input directly back to the residual branch. Rather than directly approximating the mapping H(x), the residual branch learns the residual functionF(x)=H(x)−x.
KEY INSIGHT: Fitting the residualF(x)=H(x)−x is easier than fitting H(x), for the following reasons:
“Doing nothing” is very easy — to pass x through unchanged (“identity”), the residual unit can learn a residual function close to zero, far simpler than a MLP layer learning to copy its input x
gradients get a shortcut — the chain rule gives the following term, so the +1 carries the gradient back even when ∂x∂F(x)→0. This is ResNet’s trick for depth — and why Deep Crossing builds its MLP from residual units:
∂x∂E=∂H∂E(∂x∂F(x)+1)
Stacking these residual units enables arbitrary-order feature interactions to be learned, allowing the model to capture much richer nonlinear feature combinations.
The final layer converts the deeply crossed feature representation into a click probability.
For binary classification problems (such as CTR prediction), the scoring layer often uses a fully connected output layer followed by a sigmoid activation, which is mathematically equivalent to logistic regression.
FM had already represented sparse features as latent vectors (later commonly interpreted as embeddings).
MLP was decades old
residual connections were popularized by ResNet
The revolution of Deep Crossing was not a new mechanism but a relocation of labor: the feature engineering that data scientists once did by hand - crafting crosses, guessing which interactions matter - was moved off the human and onto the gradient. Raw features enter, a probability leaves, and everything in between is learned.
Unlike earlier neural-network approaches that relied primarily on dense engineered inputs, Deep Crossing demonstrated that heterogeneous sparse industrial features could be learned directly in an end-to-end framework.
FM and FFM answer “which features interact?” by listing them - second-order pairs, and higher orders only at a combinatorial cost that makes the extension impractical.
Deep Crossing asks a different question: “how many times should features recombine?” - and answers it with depth, not enumeration. Each residual unit mixes the full feature vector and composes it one level higher, so arbitrary-order interactions emerge from stacking layers rather than from a growing list of terms.
This is what the name encodes: a “deep crossover” controlled by network depth. The phrase is a bridge to the FM worldview - it tells that audience “this is your crossing, only deeper” - even though mechanically a residual MLP mixes and transforms rather than listing discrete crosses. Discrete enumeration gives way to continuous composition.
Deep Crossing was more than a single model — it was a proof of concept that end-to-end deep learning could scale to industrial recommender systems.
Key Takeaways:
First complete deep CTR model: Deep Crossing was one of the first complete end-to-end deep learning architectures for industrial CTR prediction — from feature encoding to embedding to deep network training, all trained end-to-end.
The four-layer architecture: Embedding (sparse → dense), Stacking (concatenation), Multiple Residual Units (deep feature crossing), and Scoring (probability output) form a clean, modular pipeline that remains the conceptual template for modern recommendation models.
Residual connections enable depth: By using residual units instead of plain fully connected layers, Deep Crossing could train deeper networks while mitigating the vanishing-gradient problem, enabling richer feature crossing than shallow alternatives.
The “Embedding + MLP” paradigm: This design pattern — sparse features → embeddings → neural network → prediction — has become one of the dominant design patterns of deep learning recommendation systems. Modern architectures like DeepFM, DCN, and DIN are all variations on this theme.
End-to-end feature learning: Deep Crossing demonstrated that neural networks could largely replace manual feature crossing, learning feature interactions automatically from data — a principle that has only grown more important as models have become larger and datasets more complex.
While Deep Crossing itself may appear simple by today’s standards, its historical significance cannot be overstated. It proved that deep learning belonged in recommender systems — and the field has never looked back.