1. Introduction
Nutrition plays a vital role in our health and well-being, and according to World Health Organization (WHO), a healthy diet can help prevent several chronic diseases, including diabetes, obesity, cancer, and cardiovascular diseases [
1]. In most cultures, it is also a joyful experience and an essential part of social life. In the past, recommender systems have proven their potential to deal with information overload, especially in the retail domain. In the health domain, recommender systems help people find new recipes to cook or support them in adopting healthier eating habits to prevent health complications [
2]. Some systems provide single meal recommendations that assist users in finding healthy meal ideas and new food variety.
Others [
3,
4] can help users manage diseases like diabetes by generating menus for larger periods, being able to consider daily nutritional requirements and the nutritional interaction between different meals.
However, there is still a need for systems to guide people on their food choices on a daily basis to help prevent diseases with a healthy diet. Moreover, food choice is complex, involving multiple factors. The validation of existing systems is often limited to nutritional aspects even though there are other important aspects for the acceptability of recommendations that should be considered. This work presents the validation of SousChef, a meal recommender system capable of creating personalized meal plans for multiple meals considering user preferences, restrictions, and nutritional needs to support the adoption of healthier eating habits. Since its initial development [
5,
6,
7], its flexibility has been improved to adapt to users’ eating habits, allowing them to personalize the number of meals. Unlike other approaches [
3,
4], the recommendations of SousChef are not focused on managing specific diseases, they aim at providing daily support towards their prevention through contextual personalization. The recommendations use recipes rather than independent food items, which allows for a more tasteful and culturally acceptable experience.
SousChef can be easily extended with additional criteria and constraints to select meals considering new users or food information. For the validation, extensive experiments and simulations were performed to evaluate whether SousChef’s recommendations are suitable considering different important criteria for food choice: nutrition, preferences and restrictions, and variability of the recommendations. Our experiments highlight the importance of the content used in the recommendations. Extensive and diverse content is necessary to be able to meet users’ expectations.
The rest of this paper is organized as follows.
Section 2 presents the related work.
Section 3 describes the SousChef meal recommender system, namely how meal recommendations and the algorithm were modelled.
Section 4 presents the validation of SousChef based on simulations, followed by
Section 5 with the discussion of the achieved results.
Section 6 draws the main conclusions and points out the future work.
2. Related Work
Meal recommender systems have the potential of improving health and quality of life by assisting health professionals and people in general planning meals to accomplish a balanced diet [
2]. We have looked at the different approaches for creating decision support systems for personalized nutrition, and we have organized them based on how they support people in their lives: (1) Single Meal Recommender Systems, which offer isolated suggestions, and (2) Menu Generation Systems, which offer full-fledged plans for multiple meals, for a single day, or even for an entire week.
2.1. Single Meal Recommender Systems
Single meal recommendation systems can help people choose recipes by creating personalized recommendations based on food preferences, healthiness, or a list of available ingredients. Although they are not intended to give full dietary advice as menu generation systems, they can have a positive impact on eating decisions. For instance, a study [
8] concluded that users tend to make healthier choices when a healthy tag is simply displayed together with the recommendations. These systems can also give support to dietitians’ decision-making on which food is suitable for which patients. A previously developed system [
9] explores how features such as age, gender, weight, disease, users’ nutritional needs, and food nutritional content can be used to create food recommendations. Besides health-related matters, systems may also help users with their day-to-day decisions. The authors in [
10] propose a solution to recommend recipes maximizing the number of ingredients from an input list. This allows users to find recipes that match their preferences or the ingredients they have available at home.
Recommender Systems from other domains create single recommendations based on users preferences, ranging from outfit recommendations [
11] to e-commerce to increase sales and improve user experience [
12]. Many factors can be taken into account to provide recommendations and increase accuracy, including sentimental analysis [
13] or fashion stereotypes [
14]. In the meal recommendation context, the parameters used to do the predictions can vary from looking at the ingredients of a recipe, the recipe’s illustrative images [
15], or food preferences using collaborative filtering [
16].
Single meal recommender systems may be used for helping users make healthier choices or simply have recommendations based on their preferences or available ingredients. However, these fall short in providing users with balanced and diverse dietary advice.
2.2. Menu Generation Systems
Unlike single meal recommender systems, menu generation systems create recommendations for multiple meals, comprising larger periods in the recommendations. Having extended control over the users’ diet, these systems can help them follow a more balanced and diverse diet. Just like single meal recommender systems, these systems can also consider users’ preferences and restrictions.
A system has been developed [
17] that can create daily meal plans that includes the food preferred by the user, not consumed recently, and satisfies the daily nutritional requirements. It implements a pre-filtering stage that uses AHPSort as a multi-criteria decision analysis tool for filtering out foods that are not appropriate to user’s characteristics and use features for each meal-such as previous frequency, previous last consumption, and preference value-to ensure the user’s preferences and diversity are met on the recommendations. Another example [
15] uses a neural network to predict users’ preferences on recipes based on three key factors: the users’ history, recipes’ list of ingredients, and descriptive images.
Some systems in this category implement health-aware methods, providing a meal plan based on the user’s disease needs/restrictions. In [
4], an integer programming algorithm was implemented to create meal recommendations that meet the daily nutrient requirements for diabetic persons, minimizing its cost. The solution developed in [
3] can recommend single, daily, or weekly meal plans, taking into account diabetics’ concerns on the plan estimation but also patient’s cultural, social, economic, and biological status, physical characteristics, and health concerns by using a Multi-Criteria Decision Making Approach (MCDM). Machine learning is also used in the development of meal recommender systems, as in [
18] where a TensorFlow neural network model is used to classify recipe images to determine whether they are recommendable given the characteristics of a diabetic patient. There is a trend of these systems to support people with diabetes because a balanced diet has a positive impact on their well-being, but these systems can also help manage other diseases such as thyroid disorders. A support system has been implemented [
19] using K-nearest neighbours and collaborative filtering models to suggest balanced diets for thyroid patients meeting their special nutrient requirements.
The approaches and the problems tackled by the different studies are diverse (
Table 1) and use private or hard to replicate datasets, which makes results harder to compare. The validation of the approaches often focuses on the nutritional suitability of the recommendations, disregarding other important food choice criteria.
In this study, we present our approach for the validation of a meal recommender system capable of providing personalized recommendations for multiple meals, considering multiple objectives, and using recipes in the recommendations. We have conducted lab validation of the recommender system with synthetic user profiles which considered different features relevant to a healthy diet.
4. Validation Study
Validation studies with end-users allow us to test the meal recommender system in a real-world environment. However, they can be expensive and take a very long time to carry out [
21,
22,
23], thus they cannot be carried out very often and are not appropriate for all stages of development.
The proposed recommender system has been validated according to other approaches from recommender systems in the food and other domains. Since public datasets from this domain are not available, we performed a lab validation of the recommender system by considering multiple factors impacting food choice, which should be reflected in a system of this kind.
The recipes used in the recommendations have been compiled by a nutritionist for the different meal divisions, considering an average 2000 kcal diet of the senior population [
5,
6,
7]. They were based on the Portuguese food composition database compiled by INSA [
24]. The recipes were created assuming 6 meals per day, including snacks. Each meal has been subdivided into multiple meal divisions according to
Table 2, which also shows the number of recipes per meal division. For this purpose, each recipe contains a list of food composition database ingredients and respective quantities that allow the calculation of the nutritional value of that meal. Each ingredient in the database is also described using the LanguaL thesaurus [
25] which enables, for instance, to know the type of ingredients in a recipe and consider this information in the heuristic functions.
The meal recommender system has been configured with heuristics to reflect users’ food preferences, convenience (e.g., reduce the number of ingredients to facilitate shopping and planning the same soup in consecutive meals), nutritional needs (e.g., favour recipes closer to user energy and macronutrient needs), and variety (e.g., do not serve the same side dish twice in a row). Restrictions have also been defined to remove recipes with any ingredient specified by the user, filter some non-matching recipe combinations, and enforce food restrictions like lactose intolerance, vegetarian, and vegan diets. A nutritionist was involved to inform the development of the system and its heuristics.
A test population of 100 profiles has been randomly generated [
17], consisting of their height (
cm), weight (74.24 ± 12.86
), birthdate (age
4.02 years), gender (60% female), number of meals per day (3: 30%, 4: 29%, 5: 18%, or 6: 23%), activity level (all set to the lowest level in the scale), and random recipe ratings (10 positive and 10 negative). The distributions of height and weight parameters were approximated to the senior Portuguese population [
26], the chosen activity level is the most common within this age group and reduces the number of confounding factors. The system allows users to configure the meals they usually have, and the number of meals is translated into meals according to the following priority: breakfast, lunch, dinner, afternoon snack, morning snack, and supper. The total energy requirement was estimated for each user [
27], resulting in
. The energy is distributed across the macronutrients as 55% carbohydrates, 20% for protein, and 25% for fat, following the 2015–2020 USA Dietary guideline [
28]. A different distribution could be used or one could be specified for each individual.
The meal recommender was then used to generate plans for each profile for three consecutive weeks including all selected meals. Different metrics were then calculated using the generated plans to validate the system according to different topics presented next: nutrition, food preferences and restrictions, and variability.
4.1. Nutrition
Nutrition support is an important motivation for the development of meal recommender systems. The nutrition suitability of the recommendations is also frequently validated in other approaches in the literature [
3,
4,
17]. Different factors need to be ensured for the continued use of the meal recommender system throughout multiple weeks. The most important factor is to meet the energy requirements and a healthy distribution of macronutrients. The Institute of Medicine (IOM) has developed a new approach for establishing recommended dietary allowances for macronutrients. The 2015–2020 Dietary Guideline recommends that carbohydrates comprise 45–65% of calories, fat 25–35% of calories, and protein 10–30% of calories [
28]. In this regard, we calculate different metrics to measure the nutritional suitability of the recommendations created by the system. The metrics we used were the average percentage deviation of energy and macronutrients between the meals planned for each day and the estimated daily nutritional requirements. The percentual deviations are
% for energy,
% for carbohydrates,
% for protein, and
% for fat. The fact that the standard deviations are high compared to the mean values led to looking for an explanation for the deviation. While doing this, we found a significant correlation between the deviations and the number of meals, represented in
Figure 3.
4.2. Food Preferences and Restrictions
Another important factor for the success of this kind of system is to meet user expectations regarding their personal food preferences and restrictions. To achieve sustained use and support meal planning on a daily basis, menu generation systems need to incorporate users’ preferences in their recommendations. To measure this effect, we calculated the prevalence of recipes that were liked and disliked by users in the meal plans. The number of liked and disliked recipes in each week plan was correspondingly and . Since users have different numbers of meals, and to facilitate comparison with different systems, we have also normalized this value dividing by the number of planned meal divisions for each week. The normalized value for the inclusion of liked and disliked recipes are correspondingly % and %.
To validate the consideration of food restrictions, we need to ensure that food not meeting user restrictions is excluded from recommendations. This validation is simple in the case of our system, since food restrictions are manually mapped to the ingredients and therefore recipes that need to be excluded. Therefore, we have used unit tests to ensure correct behaviour and they were not included in user profiles to reduce entropy in the analysis of the remaining factors.
4.3. Variability
Finally, variability or novelty is both an important aspect of a healthy diet and a recommender system. To encourage the sustained use of a meal planning assistance tool, different meals should be recommended throughout time to maintain users’ interest. To measure this effect, we have calculated the number of unique ingredients and recipes included in each week plan: ingredients and recipes. We have also normalized them by dividing by the number of meal divisions: for ingredients and for recipes. These are representative of the variability within a week plan, however, it is also important to ensure variability across different weeks. Therefore, we also calculated the number of overlapping ingredients and recipes between each consecutive week plans of each user: for ingredients and for recipes. Since users have different numbers of meals planned, these are the percentage of ingredients and recipes that overlap between two consequent weeks: % for ingredients and % for recipes.
Like [
17], we analysed the frequency of repetitions. We also analysed their relation to the number of meals (
Figure 4) and the number of recipes available for each meal division (
Figure 5).
5. Discussion
The meal recommender system has been tested using simulated user profiles from different perspectives. From a nutritional standpoint, the plans generated by the system were able to meet a low deviation from user needs when a high number of meals is selected. A lower number of meals requires concentrating the energy and macronutrient needs in a lower number of meal divisions. The recipes available in the system were created considering 6 meals, hence the higher deviations may be explained by the difference in energy content of the available recipes (which summarizes other macronutrients) and users’ estimated nutritional needs for each meal division (
Figure 6). This highlights the importance of the content used in the recommendations, besides the efficacy of the approach. The high-fat deviations are also a result of the recipes and the food available in the food composition database.
On the other hand, the results from the food preferences and restrictions tests suggest that food preferences are being reflected in the recommendations. Positively rated recipes are considerably more prevalent in the recommendations than negatively rated ones. Changing the weight of food preference related heuristics, or the inclusion of new ones, could also change the balance between food preferences and other criteria.
User profiles may also include restricted ingredients, recipes, and general restrictions (such as lactose intolerance). Extensive and diverse content is once more important to achieve suitable recommendations and avoid problems similar to
Figure 6. No restrictions were defined in the profiles to reduce entropy in the analysis of the remaining factors.
In regards to variability in the recommendations, there is still a margin for improvement in the system by including additional heuristics as well as more and increasingly diverse recipes. Nonetheless, in
Figure 4 one can see that more variability is achieved for a lower number of meals. This is because recipes are reused for different meal divisions, especially for fruit and snack dishes where recipes are more reused. This effect is illustrated in
Figure 5 which shows the variability that is achieved for different meal divisions and the number of meals. Variability is higher for a lower number of meals since fewer of these meal divisions with high recipe reuse are planned.
Figure 5 also shows a much higher variability for lunch and dinner’s main dish than for others. This is caused by specific heuristics and restrictions targeting these specific meal divisions, since they are more important from the user and nutritional perspectives. It also suggests that the inclusion of additional heuristics can increase the variability of the recommendations.
The diversity of the problem formulations in the literature, as well as the lack of public datasets, make a direct quantitative comparison difficult. We have provided both absolute and normalized numbers in our results to facilitate such comparisons in the future. While other approaches are also able to create meal recommendations for multiple meals considering nutrition, preferences, and restrictions, they often use ingredients in their recommendations. The presented system uses recipes instead to meet users’ expectations towards culturally acceptable and tasteful food choices in contrast to arbitrary combinations of ingredients. This also brings new challenges, especially concerning variability, as the ingredients composing each recipe need to be considered. Our study also highlights the importance of using extensive and diverse content in the development of meal recommender systems, which is often underestimated in the literature.
Moreover, previous approaches focus on supporting the management of specific diseases, whereas SousChef aims at providing daily support for their prevention. The abstraction of heuristic functions facilitates the extension of the recommender system to increase personalization considering new information about users and food. This allows its continuous improvement to increase convenience and adapt recommendations to users’ context, e.g., by considering recipe’s preparation time or difficulty in the recommendations to be in line with the user’s context such as the available time to cook, their expertise, or ultimately helping to manage specific diseases.
Finally, the validation of other approaches is often limited to nutritional aspects, while other factors are also decisive for the acceptability of recommendations. Our validation study considered not only the nutritional suitability of the recommendations, but also food preferences and restrictions, and variability of the recommendations, which may foster its sustained use. This methodology may be replicated to validate future systems.