← Work / MotoVault
Academic project 2024

MotoVault

Semantic product recommendation engine using SBERT embeddings and cosine similarity — finds relevant bikes from natural language queries.

MotoVault — main interface

Overview

The problem

Standard e-commerce search relies on exact keyword matching, so a query like "fast bike" returns nothing against a listing titled "high performance motorcycle" — relevant products get missed simply because the wording doesn't line up.

What it is

Standard e-commerce search is keyword matching — if you search "fast bike" and the listing says "high performance motorcycle," you get nothing. MotoVault uses SBERT embeddings to understand the semantic meaning of both the query and the product descriptions, then ranks results by cosine similarity. The result is a recommendation engine that surfaces relevant products even when the exact words don't match.

My role & approach

Solo academic project — I built the full recommendation pipeline myself, from embedding the product catalogue with SBERT to implementing the cosine similarity ranking and integrating it into the e-commerce flow.

The all-MiniLM-L6-v2 model was chosen for its balance of embedding quality and inference speed — important for a product recommendation use case where latency matters. Product descriptions are embedded at index time and stored, so queries only need a single forward pass at runtime. Cosine similarity was used over dot product because it's length-normalised, which matters when product descriptions vary significantly in length.

"Relevant products surface even when the exact words don't match."

Stack

Python SBERT all-MiniLM-L6-v2 Cosine Similarity scikit-learn

Impact

Next project

FloraNepal

A hotspot for plant sellers to showcase their products and for buyers to discover and purchase them — built with a clean, modern UI.