Rahul Krishnan
Result

Two-Tower MLP reached NDCG@10 of 0.3342, up from 0.3051 for the baseline, with sub-100ms CPU inference

I developed the system on an Amazon Reviews 2023 Electronics sample of 41,909 users, 136,934 items, and 390,757 interactions. I compared collaborative filtering with metadata and SBERT text-based models before selecting a Two-Tower MLP.

My best model reached NDCG@10 of 0.3342 versus 0.3051 for the collaborative-filtering baseline, a 9.5% relative gain, with paired t-tests across five seeds. I used FAISS to retrieve candidates from item embeddings and the full MLP to rerank them using metadata and text features.

I bundled the inference assets in one checkpoint, reducing startup time from 30 to 45 seconds to 2 to 3 seconds. I deployed the FastAPI service on Azure Container Apps with sub-100ms CPU inference after warm start. The current model does not handle new users or items with no interaction history.

PyTorchSBERTFAISSAzure