Skip to main content

Design an E-commerce Recommendation System

Design a recommendation system for an e-commerce platform like Amazon.

Requirements

Functional:

  • "Customers who bought this also bought"
  • Personalized homepage recommendations
  • "Frequently bought together" bundles
  • Search result personalization

Non-functional:

  • Real-time recommendations < 100ms
  • Handle 100M+ products
  • Support 100M+ users

Metrics

Offline

MetricDescription
Recall@KRelevant items in top K
NDCGRanking quality
Coverage% of catalog recommended
DiversityVariety of recommendations

Online

MetricDescription
CTRClick-through rate
ConversionPurchase rate
Revenue per sessionAverage order value
Cart additionsItems added to cart

Architecture

Loading diagram...

Candidate Generation

Collaborative Filtering

Item-based CF: Find items frequently purchased together. Build a co-purchase matrix tracking which items are bought in the same transaction, then retrieve the top-N most similar items based on co-purchase frequency.

Two-Tower Model

A neural network approach for candidate retrieval:

TowerArchitectureOutput
User towerDense(256) -> ReLU -> Dense(128)128-dim user embedding
Item towerDense(256) -> ReLU -> Dense(128)128-dim item embedding

Compute relevance as the dot product of user and item embeddings. Item embeddings can be pre-computed and indexed for fast retrieval.

Features

User Features

FeatureDescription
Purchase historyPast items bought
Browse historyItems viewed
Cart historyItems added to cart
Search queriesRecent searches
DemographicsAge, location
Price sensitivityAverage purchase price

Item Features

FeatureDescription
CategoryProduct category hierarchy
BrandBrand information
PriceCurrent price
RatingAverage review rating
Visual embeddingProduct image features
Text embeddingTitle/description
PopularitySales velocity

Context Features

FeatureDescription
Current pageHomepage, PDP, cart
Time of dayMorning, evening
DeviceMobile, desktop
SeasonHoliday, back-to-school

Ranking Model

A deep neural network to predict purchase probability:

LayerConfiguration
InputConcatenated user, item, and context features
Hidden 1Dense(256) -> ReLU -> Dropout(0.2)
Hidden 2Dense(128) -> ReLU
OutputDense(1) -> Sigmoid

The model predicts P(purchase | user, item, context).

Serving

Recommendation serving process:

  1. Candidate generation: Collect candidates from multiple sources (collaborative filtering, popular items, two-tower model)
  2. Feature retrieval: Fetch user features and item features for all candidates
  3. Scoring: Apply the ranking model to score each candidate
  4. Ranking: Sort candidates by predicted score in descending order
  5. Business rules: Filter for in-stock items, apply diversity constraints, insert sponsored items
  6. Return: Top N items after filtering

Cold Start

New Users

ApproachDescription
Popular itemsRecommend best-sellers
Category browsingUse current page context
Preference questionnaireQuick preference survey
Demographic-basedAge/location-based recommendations

New Items

ApproachDescription
Content-based similarityMatch to existing items
Category placementRecommend in relevant categories
New arrivals boostGive exposure to new items
A/B test exposureRandom exposure for data collection

Business Rules

After ML ranking, apply business logic:

RulePurpose
Category diversityPrevent recommendations from being dominated by one category
In-stock filterRemove items that are out of stock
Margin boostBoost higher-margin items when relevance is similar
Sponsored insertionInsert sponsored items at designated slots

The ML model does not have access to inventory or margin data. Business rules handle these constraints.

Reference

TopicDescription
Inventory constraintsML model ranks by relevance. Business rules filter unavailable items.
Margin optimizationBoost higher-margin items when relevance is similar.
Category diversityPrevent recommendations from being dominated by one category.
Sponsored productsInsert at designated slots without competing with organic recommendations.