Deploying a Multistage Multimodal Recommender System on Amazon Elastic Kubernetes Service
A summary of a Towards Data Science walkthrough of a four-stage multimodal recommender (Two-Tower retrieval, Bloom filter, DLRM ranking, reranking) deployed on Amazon EKS.
A summary of Mustapha Momoh's Towards Data Science article on deploying a multistage, multimodal recommender system on Amazon Elastic Kubernetes Service (EKS), with Bloom filters, feature caching and contextual recommendations.
The Four Stages
The system serves recommendations in four stages: a Two-Tower model generates candidate items (retrieval); a Bloom filter hides items the user recently interacted with (filtering); a DLRM ranker scores the remaining items using user, item and context features (ranking); and a final stage orders and samples from the scores to produce the recommendations (reranking).
Multimodal Features
The models combine tabular collaborative features with precomputed CLIP image embeddings and Sentence-BERT text embeddings. In retrieval, the pretrained embeddings feed the candidate tower alongside learned item features, and the dot product of the query and candidate tower outputs is the relevance score. In the DLRM ranker, they enter the dot-product interaction layer, whose outputs feed the top MLP.
The Infrastructure
- Amazon EKS runs the containerized workflows and scales compute with demand.
- Kubeflow Pipelines manages training and daily fine-tuning on Kubernetes.
- NVIDIA Merlin handles GPU-accelerated feature engineering, preprocessing and model training.
- Triton Inference Server hosts the multistage serving graph as a single ensemble model.
- FAISS provides approximate nearest neighbor search for candidate retrieval.
- Feast manages user and item features across training and serving.
- Amazon ElastiCache for Valkey (Redis) backs the online feature store, stores per-user Bloom filters and holds popularity counts.
- Amazon Athena with S3 and Glue backs the offline feature store.
Two Pipelines
The first pipeline builds preprocessing, trains the models from scratch, builds the approximate-nearest-neighbor index and deploys Triton and the models. The second runs daily fine-tuning, which updates the query tower and the ranker but does not regenerate the item embeddings.
The Data
The training data comes from a modified AWS Retail Demo Store interaction generator, scaled to 300,000 users and a catalog of 2,465 items that have images and descriptions. The dataset contains 13 million interactions over 14 days.
The article credits in-memory feature caching with a latency win; this summary does not quote a figure because none is given in the material it is based on.