1 Introduction

Empowering and motivating people is a major challenge. This becomes especially crucial when it comes to the health and the physical condition of an individual [23]. It is a well-known fact that the average human lifetime is increasing. Living longer implies the risk of age related health problems that reduce significantly the quality of life. Therefore, many people need to improve and maintain their independence, functional capacity, health status as well as their physical, cognitive, mental and social wellbeing. Modern mobile and sensor technologies enable the recording of all kinds of data related to a person’s daily lifestyle, such as exercises, steps taken, body weight, food consumption, blood pressure, cigarettes smoked, etc. This type of self-data tracking is often referred as the Quantified-Self concept [23].

Recent works have shown that tracking measurements such as step counts, spent calories and body weight are very effective to make the user conscious of its importance and it may lead to lifestyle changes by motivating a person to engage in physical exercise [15]. Additionally, by tracking measurements over time, he/she gets insights regarding his/her progress and he/she is able to experience the direct relation between his efforts and the actual outcome. For instance, going for jogging twice a week leads to a decrease of body fat percentage [19].

As an emerging topic, the Internet of Things (IoT) [2, 10, 18] represents a networked infrastructure of connected different types of devices. In this context, a huge amount of services and applications is created which makes the identification of the relevant ones a challenging task. Several IoT solutions have been proposed to implement the concept of Quantified-Self and related challenges in the areas of health care and assisted living [14, 17, 26]. AGILEFootnote 1 is an EU-funded project aiming to build a modular hardware and software gateway for IoT with support for protocol interoperability, device and data management, IoT applications execution, and external Cloud communication. The main concept behind AGILE is to enable users to easily build IoT applications and control connected devices through a modular IoT gateway and a set of full stack (OS, runtime and applications) IoT software components. One of five pilot projects of AGILE is Quantified-Self which is an IoT enabled m-health (mobile health) system based on the AGILE gateway environment.

In the AGILE project, we have developed new recommendation approaches especially useful in IoT scenarios [7, 8, 24]. Recommender systems [11] suggest items (alternatives, solutions) which are potential interest for a user. Examples of related questions are: which book should be purchased?, which test method should be applied?, which method calls are useful in a certain development context? or which applications are of potential interest for the current user? A recommender system can be defined as any system that guides a user to interesting or useful objects for the user in a large space of possible options or that produces such objects as output [6].

In this paper, we propose new recommendation approaches in the IoT enabled m-health domain based on our example domain Quantified-Self. In Quantified-Self, we collect patients data using variety of IoT technologies. Based on the measured patients information, our proposed recommender provides life quality increasing solutions both to patients and physicians.

The remainder of this paper is organized as follows. First of all, we give an overview of the state of the art in recommendation technologies in IoT enabled m-health (Sect. 2). In Sect. 3, we introduce the example application Quantified-Self, thereafter we explain our proposed recommendation approaches for each use case based on the sample dataset from Quantified-Self (Sect. 4). Finally, in Sect. 5 we conclude our work with a discussion of issues for future work.

2 Related Work

IoT-based applications enable a deeper understanding for recommender systems which can primarily be explained by the availability of heterogeneous information sources [1, 9, 29]. Thanks to this ongoing IoT revolution, huge amounts of data are being collected in clinical databases representing patients’ health states. Sensor-based Internet-enabled devices equipped with radio frequency identification (RFID) [25] tags and other communication enablers [3] are opening up exciting new ways of innovative recommendation applications in the health domain. Hence, required digital information is already available for patient-oriented decision making. This means, when this data can be used by recommendation algorithms, very important results can be obtained [3].

In [28], authors propose to centralize personal health records (PHR) using a system which allows access for the owner as well as for authorized health professionals. In this system, recommender systems may support patients with additional laymen-friendly information helping to better comprehend their health status as represented by their record.

PHR management systems may fail to satisfy the individual medical information needs of their users. Personalized recommendations could solve this problem. In [27], a ranking procedure based on a health graph is proposed which enables a match between entries of a PHR management system and health information artifacts. This way, the user of such a system can obtain individualized health information he might be interested in.

Researchers have indicated that integrated medical information systems are becoming an essential part of modern healthcare systems. Such systems have evolved to an integrated enterprise-wide system. In particular, such systems are considered as a type of enterprise information system or enterprise resource planning (ERP) [13] system addressing healthcare industry sector needs. As part of efforts, nursing care plan recommender systems can provide clinical decision support, nursing education, clinical quality control, and serve as a complement to existing practice guidelines [5]. The authors of [5] exploit correlations among nursing diagnoses, outcomes and interventions to create a recommender system for constructing nursing care plans.

In [21], a health recommendation system architecture is proposed using rough sets, survival analysis approaches and rule-based expert systems to recommend clinical examinations for patients or physicians from patients’ self reported data. Such data can be treated as condition attributes, while survival time from a follow-up study can be treated as the target function.

Authors of [4] propose the application of IoT for personalized healthcare in smart homes. An IoT architecture is presented which enables such healthcare services. Continuous monitoring of physical parameters and processing of the medical data form the basis of smarter, connected and personalized healthcare. The core functionalities of the IoT architecture are exposed using Restful web services.

In this paper, we apply recommendation techniques which are also applied in these related works. The added value in our work is especially the differentiation in recommended items indeed. We propose two new recommenders for our IoT project which recommends new apps, healthcare devices, and physical activity plans for patients.

3 Example Domain: Quantified-Self

Quantified-Self is used as an example domain to explain our proposed recommendation approaches throughout this paper. The realization of Quantified-Self concept requires the integration of several m-health and IoT elements (see Fig. 1), where proposed applications are orchestrated around the AGILE Gateway [16]. The gateway connects to the home network and through the gateway’s management user interface, the owner has access to all provided features, such as reporting and visualization tools, can manage (store/view/edit) their data and define an access policy to share data with their social network contacts. Wearable activity trackers and medical sensors automatically communicate with the gateway whenever within range, and upload the most recent data. Integration with cloud platforms allows data synchronization between the gateway and the owner’s online profile, which enables the user to access their data through a web application. In addition, health and activity data can be downloaded to the gateway from the owner’s personal accounts on relevant platforms.

Fig. 1.
figure 1

Software architecture of Quantified-Self on the basis of the AGILE gateway.

As illustrated in Fig. 1, each user of the Quantified-Self application is provided with a set of activity tracking devices and biosignals sensors (such as oximetersFootnote 2, blood pressure monitorsFootnote 3 or glucometersFootnote 4), to monitor their daily physical activity and physical condition. All activity data and biosignal measurements are stored locally, on the user’s gateway. Users are able to visualize and manage their data, create reports and export the data from the gateway or even import past data from other cloud services they might have used before, such as FitbitFootnote 5, GoogleFitFootnote 6, etc. In parallel, motion and lifestyle data can be processed and analyzed on the gateway, so as personalized recommendations are sent to the user’s smart phone in order to encourage them to reach their physical activity goals. Moreover, users are able to share their activity data and achievements with certain people/users from their social circle, including relatives, friends and most importantly their physicians.

The Quantified-Self concept is targeting data acquisition on aspects of a person’s daily life in terms of inputs (e.g. food consumed, quality of surrounding air), states (e.g. mood, arousal, blood oxygen levels), and performance (mental and physical activities) through a modern, health centric, social and mobile enabled, communication platform that resides in the gateway (in terms of collecting and visualizing data). The application is developed using the AGILE environment and software stack, and uses the communication modules of the gateway to collect data from self-tracking devices of users: wristbands or smart watches, weighting scales, oximeters, blood pressure monitors, etc. In addition, the cloud integration modules are exploited for periodically importing activity data and biosignals from other providers and applications through their public APIs.

Since the implementation of the aforementioned application is ongoing and the number of users who are currently using it is limited, an extended dataset from an established m-health solution [17, 20] has been used as the knowledge base for our recommender. The main dataset consists of the “biosignal” measurements of patients and elders, which are acquired directly from the biosignal sensors that users are equipped with. Both in the present Quantified-Self solution and the application which provided the knowledge base, sensors that are used support wireless communication, and particularly Bluetooth, for simplified integration of the sensors, and for seamless, real-time synchronization of measurement data. The sensors currently supported are the following: activity trackers, pulse oximeters, blood pressure monitors, weighing scales, spirometers, glucometers, and thermometers. These sensors measure the following biosignal types: step count, heart rate (bpm), oxygen saturation (%), blood pressure (mmHg), FEV1 (L), peak flow (L/min), blood glucose levels (mg/dL), and body temperature (Celsius/Fahrenheit). It should be noted though that the modular design that has been followed, enables the potential integration of additional devices in the same application, which may require different operational workflows and communication patterns.

The biosignals’ dataset includes approximately half million records of the aforementioned biosignals from one hundred users in a time frame of three years. Besides the biosignal data, the knowledge base includes information for users’ demographics (gender, age, location), as well as their personal health record (lab results, medication and allergies). In order to ensure the smooth communication between the different components of the system, and for the smooth data integration with external systems well established data models have been used. Therefore in the proposed approach, all components and workflows which require data exchange and/or storage follow the Fast Healthcare Interoperability Resources Specification (FHIR)Footnote 7.

4 Recommendation Systems in Quantified-Self

We explain our proposed recommendation approaches for IoT enabled m-health applications based on the given example domain Quantified-Self. The increasing trend of using Quantified-Self solutions is also helpful for this improvement. The utilization of recommendation technologies is essential for improving the health conditions of individuals. The users of IoT enabled m-health applications can get recommendations for new activity plans, IoT enabled m-health devices, applications, healthy nutritions. All these recommendations help the users to enhance their life style and reach their target health conditions easier than before. These recommendations indeed play an important role like a personal trainer or personal coach.

4.1 Use Case - 1: Virtual Coach

In order to motivate subscribers/users for sportive activities, Quantified-Self - Virtual Coach collects demographic information (age, location, physical condition, medical history, chronic diseases, etc.) of each user. It stores user profiles on its online server and a recommender engine calculates the similarities between users based on their demographic data. Using the similar users’ information, a new activity plan (how often, what to measure, which activities) or a new IoT device (a wristband, step counter watch, etc.) can be recommended to users.

In this case, a recommender engine uses Collaborative Filtering as the recommendation technology to find similarities between users. Quantified-Self - Virtual Coach recommends new activities or new devices to users based on these similarities. Collaborative Filtering [12] is based on the idea of promotion, where the opinion of similar users are considered. These users are also denoted as the nearest neighbors which means these are the users who have similar preferences compared to the current user. The first step of a collaborative filtering recommender is to identify the k-nearest neighborsFootnote 8 and to guess the preferences of the current user using the purchased items by nearest neighbors.

Table 1. Profiles of users are stored in the online server of the recommender engine in anonymous mode (without their names, addresses, etc.).

There are several similarity metrics in the context of collaborative filtering scenarios for determining nearest neighbors [11]. For the purposes of our example, we use a simplified formula that supports the identification of k-nearest neighborsFootnote 9 (see Formula 1).

$$\begin{aligned} similarity(user_a, user_b) = \frac{1}{1+ \varSigma _{property=1}^n |eval(user_a) - eval(user_b)|} \end{aligned}$$
(1)

When Formula 1 is applied to the example of Table 1, property becomes demographics and devices of users. Thus, for the seven properties (age, gender, location, chronic diseases, oximeter, wristband, BPM (hearth beats per minute) device) of each user, the calculation result of eval(user_a) - eval(user_b) for the \(i^{th}\) property is 0 if their values are same, otherwise it is 1. For instance, for the first property age, the calculation result of eval(user_1) - eval(user_2) is 1, because age of user_1 is young whereas age of user_2 is middle. Since they do not have the same values, their difference is 1. For another instance, for the sixth property wristband, the calculation result of eval(user_1) - eval(user_2) is 1, because the usage of oximeter of user_1 is whereas for user_3 it is . Since they have the same values, when \(property = 5\), the result of eval(user_1) - eval(user_3) is 0. In Table 1, user-1 (the nearest neighbor) has demographics which are similar to those of the current user. Consequently, a collaborative recommender proposes devices to the current user which have been investigated by the nearest neighbor (e.g., an oximeter device is recommended to the current user).

4.2 Use Case - 2: Virtual Nurse

Quantified-Self - Virtual Nurse motivates different types of chronic patients (i.e diabetes, asthma, cancer, cardiovascular) to reach their goals on the basis of a recommended plan. It collects the measured data of patients and checks their health conditional targets. If the measured values are very far from their expected (target) values, then some specific recommendations can be placed for those patients. The recommendations should be personalized and related to the base line of each user’s data, which will be permanently updated.

The patient medical data includes the personalized models that shows the behavioral responses of the patients versus the coach interventions to discover best-practices and measure adherence. The recommender could act as a decision support system that gathers information from the patient, finds an activity plan that matches with the available objectives and offers a personalized list. A physician might intervene (semi-supervised recommendation) to select the collected information that are more related with the wellbeing of the patient.

In this case, the recommender engine uses Content-based Filtering as the recommendation technology to find a related plan based on the user data. Quantified-Self - Virtual Nurse recommends new activity plans to users based on their actual and expected measurements. Content-based Filtering [22] is based on the assumption of monotonic personal interests. For example, users interested in the topic sports devices are generally not changing their interests so often but keep their interests in the same topic. The basic approach of content-based filtering is to compare the content of already used items with new items that can potentially be recommended to the user.

Table 2. Actual and expected (targets) measurements of patient-1. The targets of the available activity plans are also represented. Arrows denote increase(\(\uparrow \))/decrease(\(\downarrow \))/stay(\(\longleftrightarrow \)) targets of a plan. For instance, plan-2 is targeting to decrease the blood pressure and weight. Therefore, plan-2 includes activities which can decrease these two parameters.

A simplified example of a related recommendation approach is given in Table 2. When applying a content-based filtering based approach, recommended items (plans) are determined on the basis of the similarity of the patient’s targets and available plans. Similar to collaborative filtering, there are different types of similarity metrics [11]. For the purposes of our examples, we introduce a simplified formula that supports the identification of, for example, relevant plans for the patient-1 (see Formula 2).

$$\begin{aligned} similarity(patient, plan) = \frac{\#(targets(patient) \cap targets(plan))}{\#(targets(patient) \cup targets(plan))} \end{aligned}$$
(2)

Formula 2 determines the similarity on the basis of the targets of plans and targets of patient-1. For instance, the similarity between patient-1 and plan-3 is calculated as 0.33 where \(\#(targets(patient) \cap targets(plan))=1\) since there is only 1 same target (target for hearth-rate) and \(\#(targets(patient) \cup targets(plan))=3\) where the number of targets for both is three (systolic blood pressure, hearth-rate, and weight). In our example of Table 2, plan-1 has the highest similarity with the targets of patient-1, therefore plan-1 is recommended to patient-1.

5 Conclusions and Future Work

The utilization of recommender systems is considered essential for improving the health conditions of individuals. In this paper, We proposed two new recommenders for our IoT project which recommends new apps, healthcare devices, and physical activity plans for patients. We analyzed the applicabilities and the advantages of recommendation technologies in IoT enabled m-health applications by showing examples on the pilot application (Quantified-Self) of our project (AGILE). We have proposed two recommendation use cases Virtual Coach and Virtual Nurse which help users/patients to improve their health conditions. This improvement is provided by correct device or sportive activity recommendations for users by Virtual Coach, and correct activity plan recommendation for patients by Virtual Nurse. As future work, we will implement mentioned recommender engines for Quantified-Self system and analyze the results in the bases of changes in the health data of users. Besides, we plan to detect anomalies in Quantified-Self activity plans and send additional recommendations to users/physicians.