ADR_020 Hybrid approach for recommendation component
Date: 10/29
accepted
Recommendation is one of the core components of the architecture used for recommending personalized diet plans as per eater health and interests. One way to implement such a component would be to have a professional nutritionist manually recommend plans for each eater. Another, more scalable approach, is using a Machine Learning system to generate the recommendations. It is also possible to use a hybrid approach of generating recommendations with the help of a nutritionist and the Machine Learning system.
The Machine Learning system will be composed of two sub-components, model training and model inference. The model training phase will be offline and use anonymized eater health/personal data along with previous order history and lab results/health tracker data. The model inference will also be an offline batch process (every day/week) that will take the existing inventory/subscription plans and rank them for each eater. The eater can then choose from the top 3 subscription plans.
We have decided to implement recommendation component as a hybrid of Machine Learning system and optional suggestions from professional nutritionist. In the current design, the recommendation won't be a real-time component.
Initially, we can start generating recommendations for the eaters with the help of a nutritionist, and then shift towards the more scalable and powerful Machine Learning approach as we collect more data and reach scale. In the current design, the recommendation and model inference process is not real-time and might need to evolve as per eater needs. In the future, we might consider moving to online model serving and provide real-time subscription plans to the eater as per their dynamic interests.