Deep Learning Recommendation Model (DLRM)
Facebook's production ranking models were, by 2019, mostly embedding tables — tens of gigabytes of them — with a comparatively small neural network on top. DLRM is the open reference implementation of that shape, published so that benchmarks would stop treating recommendation like image classification.
The architecture
DLRM splits its inputs in two. Dense features such as counts and prices pass through a bottom MLP. Sparse categorical features — user id, page id, item id — each index an embedding table and emerge as vectors of equal width. The model takes explicit pairwise dot products between those vectors, a second-order interaction borrowed from factorization machines rather than left to a generic network, concatenates them with the dense output and passes the result to a top MLP that emits a click probability.
Why it is mostly a systems problem
The interesting thing about DLRM is not its accuracy but its shape:
- Embedding tables hold almost all the parameters and are read by sparse lookup, so the model is memory-bandwidth bound, not compute bound.
- Training is split two ways at once: tables model-parallel across devices, MLPs data-parallel.
- Serving cost is dominated by lookups, which makes embedding width and hashing a systems decision as much as a modelling one.
Where you meet it
DLRM is the recommendation entry in MLPerf, trained on the Criteo Terabyte click logs, and the usual baseline that DeepFM and DCN are compared against. Its PyTorch implementation is public, and it is where people start when they are measuring recommendation hardware rather than recommendation quality.
The Deep Learning Recommendation Model (DLRM) is Meta's open reference architecture for click-through prediction: dense features through a bottom MLP, each sparse categorical feature through an embedding table, explicit pairwise dot products between the resulting vectors, then a top MLP. Its significance is practical — embedding tables hold almost all the parameters, so the model is memory-bound, and DLRM is the benchmark recommendation workload in MLPerf.
Most of what a big service knows about you is not a number it can do arithmetic with. It is identity: which account, which page, which product. Software handles that by keeping an enormous lookup table that stores a short list of learned numbers for every user and every item.
DLRM is a published blueprint from Meta showing how those lookup tables are combined with a small neural network to predict whether you will click something. Its real lesson is about size. The tables can run to tens of gigabytes, so building these systems is mostly a problem of moving data around fast enough — which is why DLRM is used as a standard test of recommendation hardware.