1 Introduction

According to the prediction of the World Health OrganizationFootnote 1, the quantity of overweight adults all over the world has reached an alarming number with 2.3 billions by 2015. More significantly, overweight and obesity also cause many chronic diseases (Robertson 2004). An appropriate dietary intake is considered as an important factor to improve overall well-being. Although most people are aware of the importance of healthy eating habits, they usually tend to neglect appropriate behaviors because of busy lifestyles and/or unwillingness to spend cognitive effort on food preparation. Those problems prevent users from a healthy food consumption (Van Pinxteren et al. 2011). Hence, recommender systems are investigated as an effective solution in order to help users to change their eating behavior and to aim for healthier food choices.

However, food and diet are complex domains bringing many challenges for recommendation technologies. For making recommendations, thousands of food items/ingredients have to be collected. Besides, because foods/ingredients are usually combined with each other in a recipe instead of being consumed separately, this exponentially increases the complexity of a recommender system (Freyne and Berkovsky 2010). Furthermore, food recommender systems not only recommend food suiting users’ preferences, but also suggest healthy food choices, keep track of eating behavior, understand health problems, and persuade to change user behavior.

While many existing recommender systems mainly target individuals, there is a remarkable increase of recommender systems which generate suggestions for groups. Some early systems were developed in a variety of domains, such as, group web page recommendation (Lieberman et al. 1999), tour packages for groups of tourists (Ardissono et al. 2003), music tracks and playlists for large groups of many listeners (Crossen et al. 2002), movies and TV programs for friends and family (O’Connor et al. 2001; Yu et al. 2006). Group scenarios are especially popular in the food domain in which a group of family members, friends or colleagues wants to make a party or simply have a meal together. However, the complexity significantly increases when food recommender systems need to take into account the preferences of all group members and strategies for achieving the consensus within group members.

In this paper, we summarize existing research related to food/recipe recommender systems which give recommendations on the basis of considering the users’ preferences as well as their nutritional needs. In this context, we also discuss scenarios for applying group recommender systems in the healthy food domain. An overview of some research related to the application of recommender systems in the healthy food domain is provided in Table 1.

Table 1 A summary of state-of-the-art of recommender systems in the healthy food domain (CF: Collaborative filtering recommender systems, CB: Content-based recommender systems)

The contributions of this paper are the following. First, we provide a short overview of recommendation approaches for individuals. Second, we discuss group decision making issues which have an impact on the development of group recommendation technologies. Third, on the basis of categorizing food recommender systems, we analyze how well those systems can help individuals or groups to choose healthy food which best fits their preferences and health situations. Finally, we point out some challenges of food recommender systems with regard to user information, recommendation algorithms, changing eating behaviors, explanations provision, and group decision making as topics for future work.

The remainder of this paper is organized as follows. In Section 2, we provide an overview of basic recommendation techniques for individuals and groups. In Section 3, we summarize existing studies on food recommender systems for single users and categorize them according to different criteria, such as preferences, nutritional needs, health problems, and eating behaviors of users. Besides, in this section we also discuss some research related to food recommender systems in group scenarios. Research challenges for food recommender systems are discussed in Section 4. The paper is concluded with Section 5.

2 Recommender systems

Due to heavy information overloads triggered by the Internet, extracting/finding valuable information becomes increasingly difficult. In this context, recommender systems became an effective tool to extract useful information and deliver it in an efficient way. A recommender system predicts the preferences of users for unrated items and recommends new items to users. Along with the benefits of recommender systems, developing new recommendation approaches and including them in different fields rise extremely. The following subsections present an overview of recommendation techniques for individuals and groups.

2.1 Recommendation techniques for individuals

According to Burke et al. (2011) and Burke (2000), a recommender system can be defined as follows: “Any system that guides a user in a personalized way to interesting or useful objects in a large space of possible options or that produces such objects as output”. Recommender systems are intensively applied for the purpose of recommending products and services (e.g., movies, books, digital cameras, and financial services) which best meet users’ needs and preferences. Recently, in the healthy food domain, recommender systems have been discovered as a potential solution to help users to cope with the vast amount of available data related to foods/recipes. Many different techniques have been proposed for making personalized recommendations and these will be discussed in the followings.

Collaborative filtering recommender systems (CF)

CF became one of the most researched techniques of recommender systems. The basic idea of CF is to use the wisdom of the crowd for making recommendations. First of all, a user rates some given items in an implicit or explicit fashion. Then, the recommender identifies the nearest neighbors whose tastes are similar to those of a given user and recommends items that the nearest neighbors have liked (Ekstrand et al. 2011). CF is usually implemented on the basis of the following approaches: user-based (Asanov 2011), item-based (Sarwar et al. 2001), model-based approaches (Koren et al. 2009), and matrix factorization (Bokde et al. 2015).

Content-based recommender systems (CB)

These systems can make a personalized recommendation by exploiting information about available item descriptions (e.g., genre and director of movies) and user profiles describing what the users like. The main task of a CB system is to analyze the information regarding user preferences and item descriptions consumed by the user, and then recommend items based on this information. Research in this area primarily focused on recommending items with textual content, such as web-pages (Pazzani et al. 1996), books (Mooney and Roy 2000), and documents (Lang 1995). There are different approaches applied to make recommendations to users, such as Information Retrieval (Balabanović and Shoham 1997) or Machine Learning algorithms (Mooney and Roy 2000).

Knowledge-based recommender systems (KBS)

KBS are recognized as a solution for tackling some problems generated by classical approaches (e.g., ramp-up problems (Burke 2000)). Moreover, these systems are especially useful in domains where the number of available item ratings is very low (e.g., apartments, financial services) or when users want to define their requirements explicitly (e.g., “the color of the car should be white”). There are two main approaches for developing knowledge-based recommender systems: case-based recommendation (Bridge et al. 2005) and constraint-based recommendation (Felfernig and Burke 2008). In addition, critiquing-based recommendation is considered as a variant of case-based recommendation. This approach uses users’ preferences to recommend specific items, and then elicits users’ feedback in the form of critiques for the purpose of improving the recommendation accuracy (Burke 2000). There are four basic steps in a knowledge-based recommendation setting:

  • Requirement specification: Users can interact with a recommender system for specifying their requirements.

  • Repair of inconsistent requirements: If the recommender can not find a solution, it suggests a set of repair actions, i.e., it proposes alternatives to user requirements ensuring the identification of a recommendation (Felfernig et al. 2011).

  • Presentation of results: A set of alternatives is delivered to the user. These are usually presented as a ranked list according to the item utility for the user (Felfernig et al. 2006).

  • Explanation: For each presented alternative, the user can activate a corresponding explanation to understand why a specific item has been recommended (Felfernig et al. 2006).

Hybrid recommender systems (HRS)

HRS are based on the combination of the above mentioned techniques. According to Ricci et al. (2010): “A hybrid system combining techniques A and B tries to use the advantages of A to fix the disadvantages of B”. For instance, CF methods have to face the new-item problem. Whereas, CB approaches can tackle this problem because the prediction for new items is usually based on available descriptions of these items. Burke (2002) presents some hybrid approaches which combine both CF and CB, including weighted, switching, mixed, feature combination, cascade, feature augmentation, and meta-level.

2.2 Recommendation techniques for groups

Research on recommender systems as discussed in Section 2.1 only focuses on recommending items to individual users. However, in reality, there is a high probability of situations where recommender systems should support a group of users. For instance, a tourist package for a group of friends or a Christmas party destination for all colleagues in a company. In such situations, Group Recommender Systems (Masthoff 2011) are considered as an optimal solution. In this subsection, we present an overview of some basic aspects of group-based recommendation.

Aggregation strategies

The main problem that group recommender systems need to solve is how to aggregate preferences based on information about the interests of each individual. Masthoff (2011) presented many different strategies for merging individual user profiles into a group profile. These strategies can be also used for combining individual recommendations into group recommendations. Mostly used aggregation strategies for group recommendations are least misery (O’Connor et al. 2001), average (Ardissono et al. 2003), and multiplicative (Masthoff 2004).

Group formation

In group recommendation scenarios, group creation and group maintenance are important steps that should be addressed. Groups can be built intentionally by an explicit definition from the users (Smith et al. 1998) or unintentionally by an automatic identification from the system (McCarthy and Anagnost 1998). Within a group, roles of group members can be conferred differently according to their importance level within the group (Cantador and Castells 2012; Berkovsky and Freyne 2010). For instance, in a holiday planning scenario of a family, parents have more influence on choosing a tourism destination than children.

Group recommendation approaches

Group recommendations are mostly determined by using an aggregated model or an aggregated prediction (Jameson and Smyth 2007).

  • Aggregated model generates predictions for a group on the basis of aggregating individual user preferences into a group profile. The group recommendation process can be executed in three steps: First, users with similar preferences will be classified in subgroups. Next, the available items will be ranked based on each subgroup preference. Finally, related items in subgroups are merged to get the ranking for the whole group. This approach was applied in some well-known systems, e.g., musicfx (McCarthy and Anagnost 1998) and intrigue (Ardissono et al. 2003) for the purpose of supporting a group of users to choose suitable alternatives.

  • Aggregated prediction firstly computes the recommendation for each group member and then computes the intersection of individual recommendations to get the common recommendations for whole the group. For instance, polylens (O’Connor et al. 2001) generates a ranked list of movies for each group member by using a classic CF approach. After that, the individual ranked lists are merged according to the least misery strategy, i.e., group’s happiness is the minimum of the individual members’ happiness scores.

Group decision making

After forming groups, discovering some constraints within a group is an important phase which facilitates a recommender to make group recommendations. For instance, in the scenario of recommending recipes to a group of family members, because of the seafood allergy of one family member, recipes including shrimp or sea-crab might not be recommended to the whole group. In addition, in group recommender systems, sometimes, knowing the preferences of other group members will have an impact on the decisions of other users. travel decision forum (Jameson 2004) provides an interaction environment which allows members to optionally view (or copy) the preferences already specified by other group members. The preference visibility helps users to save time and minimize conflicts generated in the decision making process (Jameson 2004). However, in some decision scenarios, the insight to individual preferences of all group members can deteriorate the quality of the decision outcome (Stettinger et al. 2015). This issue was known as an anchoring effect (Adomavicius et al. 2011; Felfernig 2014) which is responsible for decisions biased by a shown reference value. In the context of group decision scenarios, the anchoring effect can be controlled by not completely disclosing the preferences of other group members in early stages of the decision process (Felfernig et al. 2012). In choicla (Stettinger et al. 2015), a user can solely see the summary of all given ratings of other group members for a specific alternative after giving his/her rating. Seeing the summarized rating prevents all users from statistical inferences, which can influence on the quality of decision processes.

Until now, group recommendations are still a novel area compared to research on individual recommendations (Masthoff 2011). There are still open issues on group decision making which need to be resolved in the future research, such as bundle recommendations, intelligent user interface design, group aggregation strategies for cold-start problems (Masthoff 2011), consensus achievement within group members, and counteracting decision biases in group decision processes (Felfernig et al. 2014a).

3 Food recommender systems

Where should we go for lunch?” or “What should we eat for dinner?” are usual questions we have to answer very frequently. While many recommender systems only tried to match users’ preferences to music, movie, or book domains, recently they also have been applied in the food domain in order to give reliable answers to the above questions. For instance, RecipeKey Footnote 2 is a food recommender system that filters recipes on the basis of considering favorite ingredients, existing food allergies, and item descriptions (e.g., meal type, cuisine, preparation time, etc.) chosen by users.

In relation to the food consumption these days, it is noticeable that there has been an increase of lifestyle-related illnesses, such as diabetes and obesity, which are the cause of many chronic diseases (Robertson 2004). This problem can be improved by applying appropriate dietary (Knowler et al. 2002). In this context, food recommender systems are also investigated as a potential means to aid people nourish themselves more healthily (Elsweiler et al. 2015). It makes sense to utilize food recommender systems as a part of a strategy for changing eating behaviour of users. In this case, food recommender systems not only learn users’ preferences for ingredients and food styles, but also select healthy food by taking into account health problems, nutritional needs, and previous eating behaviors.

As mentioned in Mika (2011), there are two types of food recommender systems. The first type (type 1) recommends healthier recipes or food items which are most similar to the ones the user liked in the past. The second type of recommender system (type 2) only recommends to users those items which have been identified beforehand by health care providers. In addition, in this section, we also discuss two other types of food recommender systems (type 3 and type 4) which consider other scenarios when making recommendations. Type 3 generates recommendations on the basis of considering both above criteria for the purpose of balancing between the food users like and the food users should consume. All these types of recommender systems are primarily designed for individual users. Type 4 represents group recommendations in which food items are consumed by groups of users rather than by individuals. These four types of food recommender systems will be made more explicit and will be discussed in more detail in the following subsections.

3.1 Type 1: Considering user preferences

In the healthy food domain, learning user tastes is recognized as a crucial pre-requisite step in order to suggest dishes that users will like. All research discussed in this subsection aims for recommending food items or menus to individual users on the basis of exploring user tastes. Most of them use popular recommendation techniques (Freyne and Berkovsky 2010; Svensson et al. 2000; El-Dosuky et al. 2012), and/or combine with different techniques in order to improve the quality of recommendation (Elahi et al. 2015; Kuo et al. 2012) (see Table 1).

First of all, we present a food recommender system (El-Dosuky et al. 2012) with a simple scenario which only recommends individual food items to users. The authors use TF-IDF (Term Frequency-Inverse Document Frequency) term extraction method for creating the user profile and apply some computations for identifying the similarity between a recipe and the user profile. In addition, healthy and standard food databases, which have been extracted from the United States Department of AgricultureFootnote 3 (USDA), are incorporated into the knowledge base. The knowledge base is a domain ontology consisting of classes, relationships, and instances of classes. For getting a recommendation, each user manually rates the food items of a specific category (e.g., fruits, vegetables, meat, etc.) as relevant or non-relevant for his/her interest. After that, the recommender will compute the similarity between the food items and the previously computed user profile. If the similarity value is higher than a predefined threshold, the food item is recommended, otherwise it gets ignored.

In another research, Freyne et al. (Freyne and Berkovsky 2010) use a CB algorithm to predict the rating value for a target recipe on the basis of exploiting the information of corresponding ingredients included in this recipe. The prediction process includes the following steps:

  • Break down an unrated target recipe r t into ingredients i n g r 1, i n g r 2, ..., i n g r n .

  • Assign the rating value for each ingredient in the target recipe r t according to (1) as shown below. Particularly, the rating value of the user u a for a specific ingredient i n g r i in the target recipe r t (i.e., rat(u a , i n g r i )) is calculated by using rating values of the user u a for all other recipes r l which contain the ingredient i n g r i (i.e., rat(u a , r l )). The value l mentioned in (1) is the number of recipes containing i n g r i .

    $$\begin{array}{@{}rcl@{}} \text{rat }(u_{a}, ingr_{i}) = \frac{{\sum}_{l\;s.t\; ingr_{i} \;\in \; r_{l}} rat(u_{a}, r_{l})}{l} \end{array} $$
  • Predict the rating value of the user u a for the target recipe r t (i.e., pred(u a , r t )) based on the average of all the rating values of all ingredients i n g r 1, ..., i n g r j included in this recipe (see (2)).

    $$\begin{array}{@{}rcl@{}} \text{ pred }(u_{a}, r_{t}) = \frac{{\sum}_{j \; \in \; r_{t}} rat(u_{a}, ingr_{j})}{j} \end{array} $$

Recipes with a high predicted rating value will be recommended to user u a . An illustration for predicting a rating value for a target recipe is presented in the following example:

Let us assume that r e c i p e 1 is a recipe which has not been rated by user u a . It includes 3 ingredients, i.e., i n g r 1, i n g r 2, and i n g r 3. i n g r 1 is included in r e c i p e 4 and r e c i p e 2, i n g r 2 is included in r e c i p e 3, and i n g r 3 is included in r e c i p e 2 and r e c i p e 3. Rating values of user u a for r e c i p e 2, r e c i p e 3, and r e c i p e 4 are respectively 4, 2, and 5 (see Fig. 1).

Fig. 1
figure 1

Predicting the rating value for a target recipe by using a CB algorithm proposed by Freyne and Berkovsky (2010)

According to (1), rating values for ingredients of r e c i p e 1 will be evaluated as follows:

$$\begin{array}{@{}rcl@{}} \text{rat }(u_{a},ingr_{1}) &=& \frac{rat(u_{a}, recipe_{4}) + rat(u_{a}, recipe_{2})}{2} = \frac{5 + 4}{2} = 4.5\\ \text{rat }(u_{a},ingr_{2}) &=& rat(u_{a}, recipe_{3}) = 2\\ \text{rat }(u_{a},ingr_{3}) &=& \frac{rat(u_{a}, recipe_{2}) + rat(u_{a}, recipe_{3})}{2} = \frac{4+2}{2} = 3\\ \end{array} $$

Prediction value of r e c i p e 1 for user u a is calculated by applying (2) as follows:

$$\begin{array}{@{}rcl@{}} \text{pred }(u_{a},recipe_{1}) &=&\frac{rat(u_{a}, ingr_{1}) + rat(u_{a}, ingr_{2}) + rat(u_{a}, ingr_{3})}{3} = \frac{4.5 + 2 + 3}{3} \\ &=& 3.166 \end{array} $$

Recently, some new approaches have been included to food recommender systems, such as using labels for different clusters of users (Svensson et al. 2000), active learning algorithms, and matrix factorization (Elahi et al. 2015). Particularly, in Svensson et al. (2000), the authors design an on-line food shop for the purpose of suggesting kinds of food that should be purchased by users. Based on recipes which users have chosen before, user groups are labeled and named according to their content, for instance, “Meat lovers”, “Vegetarians”, “Spice lovers”, etc. The recommended recipes are determined on the basis of three different characteristics chosen by users: user groups, food categories (e.g., fish, oriental, Italian, red meat, chicken), and ingredients (e.g., rice, spaghetti, curry, tomatoes). Users select recipes from the recommendation list and put them into a shopping basket. Then, all ingredients of chosen recipes are automatically added to the list of items which is delivered to a user’s doorstep. In addition, in order to enhance the social interaction for recipes, some additional features (e.g., the average rating value or comments from other users) are added into each recommended recipe.

Elahi et al. (2015) propose a food recommender system by using an active learning algorithm and matrix factorization. This research provides users with a complete human-computer interaction for the purpose of collecting long-term user preferences in terms of recipe ratings and tags. In addition, when requesting recommendations, users are required to provide short-term preferences referring to ingredients which they want to cook or to include in the meal. Then, the system utilizes both types of user preferences to make recommendations. The long-term preferences are exploited by a Matrix Factorization rating prediction model designed to consider both user tags and ratings. Each user and each recipe are modeled by vectors that represent their latent features. The rating value of a user for a specific item is estimated by computing the inner product of the user and item vectors. With short-term preferences, the system filters recipes according to the current user preferences. The recipes with highest rating values are recommended to the user.

While most of existing research in the food domain only focuses on making recommendations on food items or recipes, there is a need for users to plan menus with the combination of many recipes into complete meals. With this idea, Kuo et al. (2012) propose an intelligent menu planning mechanism which suggests a set of recipes by using a graph-based algorithm. First, an undirected recipe graph is constructed, where each node is a recipe possessing a set of ingredients, each edge represents the relationship between two recipes, and edge weight represents the distance between two recipes (see Fig. 2). The weight of each edge connecting two different recipes describes the cost of a menu which includes these two recipes. The lower the weight the higher the probability two recipes co-occur in a menu. For instance, in Fig. 3, the recipe “Italian Bread” has co-occurrence relationship with five recipes, i.e., “Tiramisu”, “Lasagne”, “Mozzarella, Tomato, and Basil Salad”, “Caesar Salad”, and “Stuffed Shells”. Among these five recipes, “Tiramisu” has the highest co-occurrence relationship with “Italian Bread” since the weight of their edge is lowest (i.e., 0.11). Whereas, “Stuffed Shells” has the lowest relationship with “Italian Bread” because the weight of their edge is highest (i.e., 0.5).

Fig. 2
figure 2

An example of recipe graph G for menu planning (Kuo et al. 2012). “Tomato, flour, basil” (ingredients shown with black borders) are query ingredients. The recommended menu plan is a set of recipes {“Mozzarella, Tomato and Basil Salad”, “Lasagna”, “Italian Bread”} (nodes shown with black frames) which the total menu cost is minimal (i.e., 0.23)

Fig. 3
figure 3

Reference values for nutritional intake. Bonn. 2. Edition, 1. Volume (2015) published by German Nutrition Association, Austrian Nutrition Association, and Swiss Nutrition Association

In addition, the cost of a menu is also defined as a weighted sum of edges of the minimum spanning tree on the induced sub-graph. From that, a menu plan is created by choosing a set of recipes which contains all query ingredients (i.e., ingredients requested by users) and the menu cost is minimal. For instance, in Fig. 2, with query ingredients {tomato, flour, basil}, we can find many different sets of recipes, for instance, {“Mozzarella, Tomato and Basil Salad”, “Lasagna”, “Italian Bread”}, {“Mozzarella, Tomato and Basil”, “Lasagne”, “Almond cake”}, {“Mozzarella, Tomato and Basil”,“Italian Bread”, “Spinach Salad”}, etc. However, the first set {“Mozzarella, Tomato and Basil Salad”, “Lasagna”, “Italian Bread”} will be recommended to users because its total menu cost is minimal (i.e., 0.23).

3.2 Type 2: Considering nutritional needs of users

Nowadays, unhealthy eating habits and imbalanced nutrition increase possibilities of people having obesity and other dietary-related conditions such as diabetes, hypertension, etc. As a treatment or preventive measure, nutritionists or dietitians usually recommend regular exercises and design individualized meal plans for their patients. Unfortunately, these nutrition experts are overloaded with too many patients to manually tailor an individualized meal plan for each user. That is where food recommender systems can be used as an intelligent nutrition consultation system. In this subsection, we provide a discussion of recommender systems that takes into account nutritional needs (see Table 1).

First, we discuss a simple recommendation scenario showing how menu items can be recommended to users on the basis of considering their nutritional needs as well as health problems. In this context, a user enters some personal information (e.g., age, gender, occupation, physical activities, health problem, etc.). This information is the basis for selecting food items which best fit the user’s nutritional needs. The following example will be an illustration of this scenario.

In a menu recommender system, we assume that there are 5 menus with corresponding information, e.g, ingredients, calories, fat (see Table 2). A user u a enters the following information: Age: 52, Gender: male, Occupation: office worker, Physical activity: walking (10 minutes/day), Health problem: cardiovascular. For recommending appropriate menus to user u a , the following steps should be performed:

  • Step 1: An energy table from DACHFootnote 4 (see Fig. 3) is used to estimate the amount of calories (in kcal) which the user u a should get per day. The amount of calories intake per day for each person is estimated according to age, gender and PAL (Physical Activity Level) value. PAL value is categorized into 3 types: + PAL = 1.4: Is used for people who have exclusively sedentary lifestyles (such as office workers, precision mechanics) with very little or no strenuous leisure activity. + PAL = 1.6: Is used for people who have sedentary lifestyles, but an additional energy is required for long-time walking and standing activities, such as laboratory assistants, students, production line workers. + PAL = 1.8: Is used for people who have extensive lifestyles, for instance, sellers, waiters, mechanics, artisans. In this example, user u a is an office worker with very little physical activity (only 10 minutes/day for walking), that means his PAL value belongs to the first type. By looking up information regarding age, gender and physical activity from Fig. 3, we can find the daily calories intake for u a is 2200 kcal.

  • Step 2: Filtering menus with the amount of calories smaller or equal 2200 kcal/day.

  • Step 3: Ranking filtered menus in the ascending order of fat (since u a has heart disease, less fatty menus will be shown to him first).

In Table 2, we can see that m e n u 4 will not be added to the recommendation list because its calories is more than 2200 kcal. The list of recommended menus is ranked in the ascending order of fat (see Table 3).

Table 2 A list of available menus with corresponding information
Table 3 A list of recommended menus to user u a

For the purpose of improving health conditions of users, Ueta et al. (2011) propose a goal-oriented recipe recommendation in order to provide a list of dishes that contains the right type of nutrient to treat users’ health problems. To do that, first of all, a user enters her health problem in natural language, for instance, “I want to cure my acne”. Next, the system analyzes the user’s request and identifies the keywords describing the health problem (e.g., acne). The noun is pushed into the co-occurence database to search the nutrient co-occuring mostly with it. For instance, by searching the noun acne in the co-occurence database, pantothenic acid is found as a nutrient component which can be used for curing acne because it co-occurs with “acne” more often than any other nutrients. Finally, the nutrients identified in the previous step are used to find dishes which are closest to those nutrients in a food database. This food database includes two sub-databases, ingredient nutrient database and nutritional information database for recipes. The ingredient nutrient database contains information about the nutritional value of each ingredient. The nutritional information database includes recipe types and the amount of nutrients contained in each recipe. The ingredients in each recipe are identified and then their nutritional elements are calculated using the ingredient nutrient database. When recommending recipes for users, the system also considers the daily nutrient intake of users. These requirements vary according to age and gender of users.

In a research related to dealing with malnutrition for the elderly, Aberg (2006) proposes a menu-planning tool which is required to take into account the following user-related information:

  • Dietary restrictions, such as allergic ingredients.

  • Nutritional values, such as the amount of fat or protein contained in a recipe.

  • Preparation time of a meal.

  • Preparation difficulty of a meal.

  • Cost of necessary ingredients for a meal.

  • The availability of ingredients for a meal.

  • The variety of meals in terms of used ingredients and meal category.

  • User food preferences, i.e., rating of a user for a certain recipe.

To be able to consider all these requirements, the author apply a hybrid design on the basis of combining CF, CB, and constraint-based recommendation. CF recommendation uses the ratings to predict the user’s feedback on unrated recipes. With the CB approach, the author uses XML-based mark-up language to represent the needed information for the recipes in the database. A constraint-based recommendation approach represented as a constraint satisfaction problem is used to construct optimal meal plans. A constraint satisfaction problem is modeled with two different approaches: parameter-based approach and recipe-based approach. However, the author did not mention in detail the recipe-based approach. Therefore, in this paper, we solely discuss the parameter-based approach and the details of this approach is presented in Table 4. A prototype is developed to offer a meal-plan recommendation to users in a certain time period. Users can switch between the top-5 meal plans and give ratings on recommended recipes or create special settings for a meal.

Table 4 The constraint satisfaction problem modeled with a parameter-based approach (Aberg 2006)

For demonstration purposes, we propose an example of a constraint-satisfaction problem, which is similar to a parameter-based approach (Aberg 2006) to suggest a recipe on the basis of taking into account user’s preferences. In this example, we assume that variables are used for representing the parameters of a recipe, such as time, cost, energy, protein, allergies, disease, where: time (in minutes) is the preparation time of a recipe, cost (in euro) is the cost of a recipe, energy (in kcal) is the nutritional value of a recipe, protein (in %) is the percentage of protein contained in a recipe, allergies represents a set of allergic ingredients of users, and disease represents health problems of users. Each variable has corresponding domain definition, for instance, dom(time) = [1..60]. In addition, a knowledge base CKB (Constraint Knowledge Base) includes constraints used for describing the knowledge base. For instance, t i m e < 60 denotes the fact that preparation time of a recipe should be lower than 60 minutes. PREF is the set of user preferences, which should be consistent with CKB such that a corresponding solution can be identified.

  • V = {time, cost, ingredients, energy, protein, allergies, diseases}

  • D = {dom(time) = [1..60], dom(cost) = [1..100], dom(energy) = [1..3000], dom(protein) = [1..100], dom(allergies) = [ m i l k,e g g,p e a n u t,s e a f o o d,w h e a t], dom(diseases) = [ d i a b e t e s, c a r d i o v a s c u l a r, p a r k i n s o n, d i g e s t i o n, a l z h e i m e r,o s t e o a r t h r i t i s,o s t e o p o r o s i s], dom(ingredients) = [ v e g e t a b l e s, s h r i m p, s e ac r a b, f i s h, p o r k, b e e f, c h i c k e n,s p i c e s, b u t t e r, c h e e s e, f r u i t s] }

  • CKB = { c 1 : t i m e < 60, c 2 : c o s t < 100, c 3 : e n e r g y < 3000, c 4 : p r o t e i n < 35%, c 5 : d i s e a s e = c a r d i o v a s c u l a rp r o t e i n < 30, c 6 : a l l e r g i e s = s e a f o o di n g r e d i e n t ss e ac r a b }

  • PREF = { p r e f 1 : t i m e < 30,p r e f 2 : c o s t < 50, p r e f 3 : e n e r g y = 2200,p r e f 4 : p r o t e i n = 25%, p r e f 5 : a l l e r g i e s = s e a f o o d,p r e f 6 : d i s e a s e = c a r d i o v a s c u l a r}

On the basis of the constraint satisfaction problem as specified above, one solution can be determined for users: { t i m e = 25,c o s t = 40,i n g r e d i e n t s = {v e g e t a b l e s,c h i c k e n,s p i c e s,f r u i t s},e n e r g y = 2200,p r o t e i n = 25%}.

3.3 Type 3: Balancing between user preferences and nutritional needs of users

Considering either user preferences or nutritional needs in an isolated fashion sometimes leads to sub-optimal recommendations of food items. For instance, if recommenders only take into account user preferences then bad eating habits would also be encouraged. On the contrary, if only nutritional needs are considered then proposed food items sometimes will not be attractive to users. Therefore, considering both, user preferences and nutritional needs seems to provide the best solution since users receive more relevant recommendations, they become more interested and increasingly engaged in using them.

We now discuss a simple recommendation scenario showing how a food recommender system can suggest menu items on the basis of considering both user preferences and nutritional needs. In this example, we assume the existence of a menu table as shown in Table 2. A user u a provides personal information as follows: Age: 52, Gender: male, Occupation: office worker, Physical activity: walking (10 minutes/day), Health problem: cardiovascular, Favorite ingredients: tomato. In this scenario, the recommender system considers both ingredients preferred by the user u a and further user-related information (e.g., age, gender, occupation, physical activity, and health problem). The list of recommended menus is created by performing the following steps:

  • Step 1: Estimating the daily amount of calories for user u a by looking up the energy table shown in Fig. 3. The user u a is an office worker and has very little physical activity per day (only 10 minutes/day for walking), hence the nutrient intake of the user u a is 2200 kcal.

  • Step 2: Filtering menus from Table 2 which contain lower or equal 2200 kcal of calories, and include favourite ingredient “tomato”.

  • Step 3: Ranking filtered menus in the ascending order of fat (because u a has vascular disease, less fatty menus will be shown to him first).

After accomplishing these steps, there are two menus, i.e., m e n u 3 and m e n u 5 will be recommended to user u a (see Table 5).

Table 5 A list of menus recommended to user u a on the basis of considering his favorite ingredient (i.e., tomato) and his nutritional needs

Also for the purpose of balancing users’ preferences and nutritional needs, Elsweiler et al. (2015) propose two approaches to integrate nutritional aspects into recommendations.

  • The first approach figures out trade-offs between giving the user some foods she really likes and some foods which are really healthy to her. This approach is implemented by using the following steps. First, a prediction algorithm estimates the top recipes for the user, i.e., a set of recipes with predicted probability above a certain threshold. Next, the amount of calories and fat per gram for each recipe in the chosen set is calculated. Finally, meals with less fat or calories per gram will be chosen for the final recommendation.

  • In the second approach, instead of recommending individual meals, this approach proposes complete meal plans, which are generated not only based on the users’ food preferences but also conform to daily nutritional guidelines (Harvey and Elsweiler 2015). For making recommendations, the user provides information regarding his/her preferences by rating a number of recipes in the system on a 5-star rating scale. In addition, the “Recommender” also takes into account additional users’ personal information, such as height, weight, age, daily activity level, and goal (lose, gain, or maintain weight) in order to calculate the nutritional needs. The nutritional requirements of users are calculated by using an updated version of the Harris Benedict equation (Roza and Shizgal 1984). After that, the “Recommender” predicts ratings for unrated recipes and sends a ranked list of recipes with high ratings (e.g., 4 or 5 stars) to the “Planner”. The “Planner” takes top-n recipes from the ranked list of recipes and splits them into two separated sets: one for breakfasts and one for main meals. A full search is performed to find all combinations of these recipes in the sequence {Breakfast, Main meal, Main meal} which meets the target nutritional needs. For instance, {Muesli Breakfast Muffins, Catalan Chickpeas, Chicken Cacciatore} (Harvey and Elsweiler 2015) represents a complete menu recommended to users, where Muesli Breakfast Muffins is for breakfast, Catalan Chickpeas for lunch, and Chicken Cacciatore for dinner. Combinations with the same recipes can not be repeated, for instance, { r 1,r 2,r 3} and {r 1,r 3,r 2} are considered as only one menu plan.

Although two of the above proposed approaches are helpful for supporting the trade-off between users’ preferences and healthy foods, the suitability of combining separate ingredients into a complete meal should be considered in more detail to make an appealing meal plan (Elsweiler et al. 2015).

3.4 Type 4: Food recommender systems for groups

As mentioned above, in many real-world scenarios, recipe and food consumption are good examples of a group activity, for instance, a birthday party with friends, daily meals with family members (Elahi et al. 2014). In these scenarios, recommendations should be tailored to the entire group in order to assure the maximum satisfaction of each member and the group as a whole.

CF is one of the most widely used recommendation techniques and also applied in many group recommender systems (McCarthy et al. 2006; O’Connor et al. 2001). In the food domain, Berkovsky and Freyne (2010) investigate the applicability of two CF recommendation strategies for the purpose of discovering which strategy is most relevant when making CF recommendations for a group. The authors discuss two group-based recommendation strategies as the following:

  • Aggregated models strategy. First, this strategy computes a rating r a t(f a ,r i ) for a family f a and recipe r i by aggregating the individual ratings r a t(u x ,r i ) of family members u x f a who rated recipe r i according to their relative weight ω(u x ,f a ) (see (3)). The authors add weights into the rating calculation process for the purpose of allowing some users in a family to have more influence on the group decision than others. For instance, parents have more influence on the group decision than children, therefore weights assigned for parents are higher than the children’s ones. The details of weighting models will be presented in the next paragraph.

    $$\begin{array}{@{}rcl@{}} rat(f_{a}, r_{i}) = \frac{{\sum}_{x\in f_{a}}\omega(u_{x}, f_{a})rat(u_{x}, r_{i})}{{\sum}_{x\in f_{a}}\omega(u_{x}, f_{a})} \end{array} $$

    After that, CF is applied to the family model. Particularly, a prediction p r e d(f a ,r i ) for the whole family f a and unrated recipe r i is generated by computing similarity degree s i m(f a ,f b ) between the family f a and all other families f b F, and then aggregating all family’s ratings r a t(f b ,r i ) for recipe r i according to the similarity degree s i m(f a ,f b ) (see (4)).

    $$\begin{array}{@{}rcl@{}} pred(f_{a}, r_{i}) = \frac{{\sum}_{f_{b}\in F}sim(f_{a}, f_{b})rat(f_{b}, r_{i})}{{\sum}_{f_{b} \in F}sim(f_{a}, f_{b})} \end{array} $$
  • Aggregated predictions strategy. First, this strategy generates individual predictions p r e d(u x ,r i ) for user u x and unrated recipe r i by using the standard CF algorithm (see (5)). In this prediction, the degree of similarity s i m(u x ,u y ) between the target user u x and all other users u y U is calculated according to (6) Freyne et al. (2011). Then, individual ratings r a t(u y ,r i ) of users who rated r i are aggregated according to the similarity degree s i m(u x ,u y ).

    $$\begin{array}{@{}rcl@{}} pred(u_{x}, r_{i}) = \frac{{\sum}_{y \in U}sim(u_{x}, u_{y})rat(u_{y}, r_{i})}{{\sum}_{i \in U}sim(u_{x}, u_{y})} \end{array} $$


    $$\begin{array}{@{}rcl@{}} sim(u_{x}, u_{y}) = \frac{{\sum}_{i=1}^{k}(u_{x_{i}} - \overline{u_{x}})(u_{y_{i}} - \overline{u_{y}})}{\sqrt{{\sum}_{i=1}^{k}(u_{x_{i}} - \overline{u_{x}})^{2}}\sqrt{{\sum}_{i=1}^{k}(u_{y_{i}} - \overline{u_{y}})^{2}}} \end{array} $$

    where k is the number of items already rated by the user u x and the user u y .

    After that, to generate the prediction p r e d(f a ,r i ) for the whole family f a and recipe r i , individual predictions p r e d(u x ,r i ) of family members u x f a are aggregated according to their relative weight ω(u x ,f a ) (see (7)).

    $$\begin{array}{@{}rcl@{}} pred(f_{a}, r_{i}) = \frac{{\sum}_{x\in f_{a}}\omega(u_{x}, f_{a})pred(u_{x}, r_{i})}{{\sum}_{x \in f_{a}}\omega(u_{x}, f_{a})} \end{array} $$

    Both aggregated models strategy and aggregated predictions strategy recommend a list of recipes to the whole family by considering the task of recommending top-k recipes, i.e., k recipes having the highest predicted ratings.

    The evaluation results on MAE (Mean Absolute Error) show that aggregated models strategy are usually predominant to aggregated predictions strategy (Berkovsky and Freyne 2010). This means that individual models of users should be aggregated into a group model first and then using this model in the recommendation process.

  • Weighting models. Inspired by allowing for some users to have more influence than others, the authors proposed four different weighting models when aggregating the data of individual users. Two first models (called uniform model and role-based model) assign pre-defined weights for users. Particularly, the uniform model uses the same weight for all group members. The role-based model weights users according to their role. For instance, there are two roles specified in a family party: organizer and family member. The weight for the organizer will be 2 because she is responsible for organizing the party as well as preparing food. Whereas, the weights for family-members are 1 because they are likely less important people. Two other models (called role-based model and family-log model) weight users according to their interactions with the content. The role-based model weights users according to their activities across the entire community. The activity of a certain user is predicted based on the number of ratings which (s)he rated for items. The family-log model weights users according to their activities in relation to other family members.

With the idea of combining individual user preferences into a group profile by using aggregation heuristics (Masthoff 2011) (e.g., Least Misery, Average, Most Pleasure, Group Distance, Ensemble, etc.), we discuss in this subsection a simple group recommendation scenario in the food domain to show how a group recommendation can be created.

Supposing that in a recipe recommender system we have a group with four users (e.g., u s e r1..4) who rated 5 recipes (e.g., r e c i p e1..5) by using a 5-star rating scale. We use Least Misery strategy (Masthoff 2011) to aggregate individual user preferences into a group profile as a whole. Least Misery strategy makes sense in recipe decision scenarios since it helps to minimize the misery within a group, i.e., recipes which are not liked or can not be consumed by at least one group member will not be recommended to the whole group. In our example, the group rating value for each recipe is the minimum of all ratings given by all group members (see Table 6). After that, the recipe having the highest group rating value will be recommended to the group (Cantador and Castells 2012). In this example, r e c i p e 1 is recommended to the group because its group rating value is highest (i.e., 4).

Table 6 An example of using Least Misery strategy to aggregate individual user preferences into a group profile. r e c i p e 1 is recommended to the group because its group rating value is highest

Also for the purpose of supporting a group decision making process in a family, Elahi et al. (2014) proposed a novel interactive environment for groups in planning their meals through a conversational process based on critiquing (Chen and Pu 2012). The system consists of two components. The first one is a tagging and critiquing-based user interface. The second one is a utility function that takes into account diet compliance and healthiness of the users. The utility for each meal is calculated on the basis of considering meal time, user rating, diet plan, and health situation of each group member. After that, the utility of each meal for the whole group is quantified by aggregating the individual utility scores of all group members. Based on the utility of each meal for the whole group, the system delivers a meal recommendation list for the group. Each group has a group leader (also called the cook), and participants who will attend the group meal. Sometimes, the cook must not select the recipe with the highest utility score. (S)he can accept or refuse recipe(s) for some reasons (e.g., the unavailability of ingredients or insufficient cooking-skills). The participants are allowed to criticize the meal which was chosen by the cook. This critiquing process will be repeated until all members are satisfied.

Until now, to the best of our knowledge, there has been only few research on food recommender systems for groups. In the mentioned study (Elahi et al. 2014), although proposing a new interactive mechanism for group in the food domain, it exposes a lot of issues to be tackled in terms of group decision making, such as bundle recommendation, fast consensus in a group, time of preference visibility, etc. Figure 4 illustrates the user interfaces of the choicla Footnote 5 group decision support environment (Stettinger 2014), which can be applied as a potential solution for supporting group decision making process in the food domain. choicla can support a group of friends to choose a menu for a Christmas party in an asynchronous fashion. That means all group members can join the decision making process without being on-line together at the same time. In this scenario, one member creates a decision (e.g., Christmas party) and enters some menus into the decision. Each menu is described by name, photo, and description. While joining in a decision, each group member is able to invite other members to participate in this decision. Invited members give their preferences by rating proposed menus (e.g., using thumbs up and thumbs down) and can discuss with each other by using the “comment” functionality. Rating values from group members will be aggregated into group preferences using some group decision heuristics (e.g., average, least misery, most pleasure, etc.) Masthoff (2011) to propose a menu for the whole group. To avoid the anchoring effects bias (Felfernig 2014), the group suggestion is solely shown to a group member after he/she saved the ratings for menus. Having said that, choicla is the potential application for group decision processes in the food domain. However, the future version of choicla should integrate a complete group decision process for the food domain, which takes into account additional information of all group members (such as health situations, allergies, nutritional consumption, cooking skills, the availability of ingredients, etc.), in order to recommend healthy food to the whole group.

Fig. 4
figure 4

Screenshots of the choicla group decision support environment (iOS version). Figure 4a shows a list of different group decisions created by users. Users can rate alternatives by using the user interface shown in Fig. 4b. The suggestion for the whole group is shown in the “Suggestion” tab (Fig. 4c). The alternative enclosed with the medal icon is the suggested alternative for the whole group. For instance, “Turkish menu” is the menu chosen by choicla for recommending to the whole group

4 Research challenges

Existing research on food recommender systems plays a crucial role in supporting users to choose a diet which suits interests and health conditions. These studies exploit the information regarding user profiles and recipes in order to generate food recommendations. It has been recognized that the quality of recommendations is strongly influenced by the adequacy and accuracy of user information as well as nutritional information of food. However, recent studies have not provided detailed discussions on this issue. In addition, although some papers (e.g., Ueta et al. 2011, Aberg 2006) propose food recommendations to tackle health problems, suggestions regarding changing eating behaviors, which are the premise to maintain a healthy lifestyle, are still missing. Explanations could help users more trust in recommendations and encourage them to follow good eating habits, however the inclusion of explanations into food recommender systems has not received the interests from researchers. Besides, research on food recommender systems mainly focuses on single-user scenarios rather than on group scenarios. Until now, research on group recommender systems in the healthy food domain is very limited. Berkovsky and Freyne (2010) is one of the studies which proposes some aggregation strategies to generate food recommendations for groups of users. However, there still exist some open issues which should be taken into account within the scope of future work, such as achieving fast consensus within the group or fostering the fairness among group members. In this section, we will discuss research challenges in food recommender systems and propose some potential solutions. A summary of open issues is presented in Table 7.

Table 7 A summary of research challenges in food recommender systems and proposed solutions

4.1 Challenges regarding user information

  • The uncertainty of nutritional information from users: In order to make recommendations, the system needs to collect nutritional needs, ratings for food items/recipes and information of previous meals from users (Mika 2011). Most of the information is only provided through continuous interactions with users. However, in reality, recording nutritional intake from users can not avoid faults because users usually forget or give wrong information about the foods they have consumed (Mika 2011). Although some systems were proposed to tackle with these problems, for instance, foodlog (Aizawa et al. 2010), they are not able to give the accurate information about the consumed meals, even though they can estimate the nutritional balance among different kinds of food in a meal.

  • Collecting user rating data: Food recommender systems need information about users’ preferences to recommend similar food items ((Van Pinxteren et al. 2011; Mika 2011)). This information can be gathered by asking users to rate foods/recipes. However, it is not convenient if the system asks users to rate too many items. Hence, a challenge entailed is “How to collect enough users’ ratings while saving their effort?” Freyne and Berkovsky (2010). Besides, similar to keeping reporting food consumption (as mentioned above), persuading users to keep rating dishes also becomes another challenge for food recommender systems (Mika 2011).

4.2 Challenges regarding recommendation algorithms

As mentioned in Mika (2011), in order to calculate nutritional recommendations for users, any algorithm needs the following information:

  • User information (e.g., likes, dislikes, food consumption, or nutritional needs): Similar to recommender systems in other domains, food recommender systems also face with the cold-start problem when the system is used in the first time (Mika 2011). This problem can be surmounted by using information about users’ previous meals to calculate similarity and then recommend new recipes to users (Van Pinxteren et al. 2011). However, this solution requires many user efforts and abates the desire of system usage.

  • Recipe databases: Mika (2011) discussed two challenges that need to be solved:

    How many recipes the system should have? The quantity of gathered recipes should be large enough to accommodate the preferences of many users and vary the recommended recipes while still minimize the time for making recommendations. This is a tricky problem when the system tries to balance between the variety of recommendations and system response time. Hoxmeier et al. (Hoxmeier and Manager 2000) point out that long response times triggers user dissatisfaction which further decreases continuous use of the system.

    How to gather accurate nutritional information of recipes? It is observed that with the same food item, if we use different ways to cook it then we will get different nutritional values from it Mika (2011). Therefore, it is very difficult to ensure that whether gathered nutritional tables for food items are accurate because when comparing different nutritional value table of foods, sometimes it returns varying values for the same food items (Mika 2011). For instance, the nutritional value of celery in “a salad recipe” is different from the nutritional value of itself “in a fried recipe”, since cooking with high temperature make celery lose a big amount of essential oil. It means that the amount of essential oil of celery in the “fried recipe” could be lower than in the “salad recipe”.

  • A set of constraints or rules: Considering more constraints and rules in the recommendation process will improve the quality of recommendations (Mika 2011). For instance, with a user who has heart disease, the system should recommend menus with less fat and salt. Moreover, it is very necessary to detect the conflicts among the constraints or rules which prevent the recommendation algorithms from finding a solution. However, with the large database (e.g., thousands of foods/recipes), checking constraints/rules in the database brings negative effects for system performance (Mika 2011). In addition, food recommender systems should take into account constraints with regard to the availability of ingredients in the households for the purpose of helping users to save money and prevent the food waste behavior. The challenge here is how to propose food which meets health situations and nutritional needs of users, as well as taking advantages of the ingredients that are currently in the fridge. In this scenario, recommender systems seems to require many efforts from users because users have to report the consumption of all ingredients regularly and this can prevent users from using the system permanently.

4.3 Challenges regarding changing eating behavior of users

Nowadays, many people are suffering health problems because of inappropriate eating habits (Snooks 2009). For instance, some people eat too much food compared to their physical activity level and gradually become obese. Whereas, others (e.g., the elderly, the dieters) restrict extremely nutrition intake and this leads to malnutrition. Therefore, one of the main functions of food recommender systems is understanding users’ eating behaviors and persuading them to change eating behaviors in positive ways. However, this is a big challenge for food recommender systems because eating is a lifelong behavior which is influenced by many factors, especially psychological factors. Hence, food recommender systems should integrate health psychology theory in order to stimulate users to comply healthy eating behaviors. The first approach can be used by applying one simple change at a specific time until the user behavior becomes habitual (Snooks 2009). Another approach can be applied for food recommender systems by comparing to the ideal nutrient. Users can find the structure of ideal diet according to the age and physical activity level from reliable resources (e.g., USDA, DACH) and then compare what food they ate to what is recommended (Snooks 2009). The comparison approach is also proposed in Mankoff et al. (2002) in order to provide users potential dietary changes.

4.4 Challenges regarding explanations

Explanations play an important role in recommender systems since they increase the trust of users in decision outcomes (Tintarev and Masthoff 2007). In the healthy food domain, explanations are even more necessary since they not only increase the trust in recommendations but also stimulate users to consume healthy foods or change their eating behaviors. For this purpose, it makes sense that explanations of food recommender systems clarify how a decision outcome is created (Elahi et al. 2014). Besides, a detailed description of food items (e.g., nutritional value table for a recipe) needs to be included in a way that emphasizes the healthiness of a specific food for users.

4.5 Challenges regarding group decision making

As mentioned in previous sections of the paper, recommending recipes/food items usually involves groups rather than individual users. However, there is a low amount of research on food recommender systems for groups. Therefore, it is still an open topic which needs to be analyzed in future research.

  • Bundle recommendations: Group recommender systems usually attach the requirements/preferences of different users into group recommendation. This is the crucial idea discussed in many related studies (Masthoff 2011; O’Connor et al. 2001; Berkovsky and Freyne 2010). In the food domain, the aggregation process raises more challenges when users want to get recommendations for a complete meal with the combination of many recipes/food or a food schedule for more than one day (e.g., foods for next week). This issue is known as bundle recommendation which is a new research branch of recommender systems. The idea here is recommending a sequence of items instead of separated ones. In the healthy food domain, recommending a complete meal is even more complicated because the system has to consider not only preferences of group members but also other aspects, e.g., the variety of meals, weather and season (Van Pinxteren et al. 2011), the healthiness of recipes, health problems or daily nutrition needs of group members, etc. On the other hand, the recommendation of bundles has to assure the fairness among users within the group. It means that negotiation and argumentation mechanisms have to be developed in order to support group members to express acceptable trade-offs (Felfernig et al. 2014b). For instance, in a meal plan for a week, the preferences of users who were discriminated in previous meals should have a higher emphasis in the upcoming meals.

  • Achieving fast consensus in groups: In group recommender systems, although different aggregation approaches have been applied to generate group recommendations, such processes do not ensure that the recommended items reflect a high agreement level among group members (Castro et al. 2015). In this context, achieving consensus helps to bring individual preferences closer to each other before delivering group recommendations. However, further issues need to be considered in order to accelerate the achievement of consensus in groups. One of the promising solutions is enriching user interfaces which support basic negotiation mechanisms among users. User interfaces are designed such that all members can share their preferences within the group (Thuy Ngoc Nguyen 2017). Knowing the preferences of each other helps the group to reach a consensus quickly. An example thereof is the following: user A prefers cheese, whereas user B is interested in beef. There is a probability to achieve a consensus between user A and user B is that user A will eat recipes with beef as long as they include cheese. How to represent the current decision situation is considered as an issue of future work.

5 Conclusion

In this paper, we provide an overview of recommender systems in the healthy food domain on the basis of discussing four different types of food recommender systems. The first three types present some existing studies in the healthy food domain, which mainly focus on tailoring recommendations to individuals, by considering the preferences and/or nutritional needs of users. Meanwhile, recent studies presented in the fourth type target at consulting healthy food items in group scenarios. Popular recommendation approaches (e.g., Collaborative Filtering recommendation, Content-based recommendation, Constraint-based recommendation) are used in many food recommender systems. Besides, hybrid approaches are also employed in order to improve the recommender’s performance. Although being considered in different contexts, in general all food recommender systems play a vital role in providing food items meeting preferences and adequate nutritional needs of users as well as persuading them to comply positive eating behaviors. Some challenges regarding user information, recommendation algorithms, changing eating behaviors, explanations provision, and group decision making are discussed as issues for further work.