Behind the scenes: Building a scalable and dynamic recommendation system
The focus on this article is not on the technical aspects, it serves as a narrative detailing a remarkable collaboration to build a flexible and sustainable solution to a significant problem.
Our recommendation cycle was truly a cycle that can take 15 days to 1 month to develop and launch an algorithm; we were discussing algorithms over countless meetings, deciding on one that might work — naturally by using tangible analytics. Then we were implementing the algorithm, launching to production, running an A/B test, learning from the outcomes and starting the cycle again — which seems to be not sustainable and dynamic enough for a culture characterized by “fast and high-quality delivery”, right?
After developing numerous algorithms and engaging in these discussions with a very powerful data science, tech and product teams, the discussion has transformed around one topic: “Every algorithm’s output is essentially a combination of multiple scores, you know that, right? so let’s deconstruct it!”
Special Thanks: Initiating this idea within a company requires curiosity, dedication and vision even though relevant information is published through many articles and books. I would like to extend special thanks to the originator of this idea, our data science manager, Hasan Burak Yel, for embodying all of these qualities and spreading them throughout our culture.
After starting the deconstruction idea, we’ve built a project proposal that focuses on our objectives: consuming the scores and having the ability to manipulate them as much and fast as we can. Which is the story of building the user-focused scoring system that enables us to find the harmony between user expectancies and company objectives: Ranking Service
To do that, we should consider our constants: We have users and we have items, products that we sell.
Step #1: Recommendation loses its significance unless it’s relevant, right? Then the relevancy here -let’s term them as scores- is either gonna be calculated by item to user, user to user or item to item.
Step #2: Relevance, but in the context of what? Harmony of company objectives and user expectancies determine the parameters of relevance. For example, a recommendation’s relevance might be based on the past purchase behavior, current user actions or the financial impact potential.
Step #3: Which one is the best? This is the core of our discussions. There exists no singular, absolute answer here, right? Then if we would like to find the best suited recommendations for our users aligned with company objectives, which can always be beaten by a better version, we will continuously test, learn and iterate.
Let’s turn these steps into a tangible solution:
- Store the meaningful scores within a database (most and least relevant scores)
- Integrate with a decision tool, one capable of combining the scores weighted criteria — which basically grants us the ability to generate infinite numbers of algorithms
- Build a service that would be a bridge between the app interface and the recommendations
- Integrate this service with an A/B tool
Here is the Ranking Service — This is a great playground to test score combinations, weights and app placements at any time and within minutes!
As a glimpse into the future, ML technologies to integrate with our decision engine, nearly real time recommendations by utilizing the clickstream data, building a zero-code recommendation management platform and much more are awaiting us to explore.
Our underlying obsessions persists:
- We would like to be able to comprehend our users’ expectancies and needs
- We would like to deliver their needs with the best quality
- We would like to be really fast doing these
As long as these obsessions continue to drive us, then we all know that this will just be the start of a true personalization journey!
Also special thanks to the team that builds this, Search & Recommendations Product & Tech & Data Science Teams for their great dedication and contribution:
Buğra Aker Yılmaz // Nafi Turgut // Hasan Burak Yel // Emre Erkek // Yunus Emre Karataş // Mert Ünsal // Rıdvan Nuri Göçmen // Emre Yüksel // Fatma Nur Dumlupınar