Recommender systems in the Internet of Things
IoT envisions an infrastructure where different kinds of devices can be interconnected. Here’s an overview of different kinds of recommendation technologies and how these can be applied in IoT-related scenarios.
The Internet of Things is a networked infrastructure that provides a basis for interconnecting different devices anytime and anyplace . It is a result of the convergence between the topics of Things, Internet, and Semantics . In IoT scenarios, a huge amount of services and applications is developed which makes the identification of the most relevant ones a complex task for users. In this context, recommendation (recommender) systems ,  are key enabling technologies which make the identification of appropriate services and applications feasible. Recommendation systems suggest items of relevance – examples of such recommendations in IoT scenarios are apps to be installed on a gateway, additional devices to be deployed and managed by a gateway, infotexts that should be displayed on public displays, relevant data transfer protocols to be used for completing specific tasks on a gateway, and relevant hardware and software components that should be included in IoT ramp-up scenarios .
Further applications of recommendation technologies in the IoT context are the recommendation of workflows (e.g., which software functions should be included in a workflow definition of an IoT application), the recommendation of food items (e.g., depending on the condition of food items, the offering conditions could be adapted), recommendation in the context of personalized in-store shopping scenarios (e.g., depending on the position of customers in a physical store, which items should be recommended), and health monitoring (e.g., recommendation of food items and sports exercises depending on the current eating behavior and physical condition of a person) . In many of these scenarios, flexible IoT gateway infrastructures play a central role.
An IoT gateway is a hardware and software-based solution, which, as its primary role, enables device-to-device and/or device-to-cloud communication. It is a platform to support connections between different data sources (sensors with various communication protocols) and destinations (local or remote data management entities, as well as various actuators). IoT gateways, positioned at the edge and near the devices, could also play a crucial role in the execution of services. A typical IoT gateway platform is composed of a device manager, a communication/data protocols manager, an application manager, and a data manager (see Figure 1). Advanced IoT gateways contain additional functionalities among which a configurator and a recommender engine can be included to assist users in the configuration of the gateway or in recommending useful applications based on given gateway settings and user interaction protocols.
SEE ALSO: Are PKIs the key to securing the IoT?
As shown in Figure.1, IoT sensors can be connected to an IoT gateway using various connection protocols such as 5G, BLE, LORA, and ZigBee. Users of the gateway can connect their gateway via WAN/LAN to manage/monitor their data and services. They can also manage/monitor the collected data by linking a cloud application with their IoT gateway.
Basic technologies and application scenarios
Recommendation technologies can be used for various purposes to support IoT scenarios. In this section, we show how the basic recommendation technologies of collaborative filtering , content-based filtering , knowledge-based recommendation , and group recommendation  can be used for supporting these scenarios. These recommender systems can be interpreted as archetypes. For a detailed discussion of these approaches and variants thereof, we refer to , , .
Collaborative Filtering (see Table 1) is based on the idea of word of mouth promotion, i.e., the opinion of friends (nearest neighbors – NN) about items is used as the primary information source for the calculation of recommendations. The preferences (ratings) of the k-nearest neighbors are then used to extrapolate the preferences of the current user. For example, apps installed on gateways of users with a similar app-base will also be recommended for installation on the gateway of the current user. Other application examples of collaborative filtering in the IoT context are the recommendation of devices and the recommendation of components part of an IoT environment ramp-up . An example of a recommendation library that supports different variants of collaborative filtering is Apache Mahout.
Content-based Filtering (see Table 2) is based on the idea of stable preferences, i.e., preferences from the past will not dramatically change in the future. When using content-based filtering, keyword-based information about items is matched with keywords extracted from items already consumed in the past by the current user. For example, if a user has installed a specific app, similar apps or updates to the existing app can be recommended when available. Other examples of the application of content-based filtering in the IoT context are the recommendation of devices and workflows. An example of a recommendation library that supports different variants of content-based filtering is Apache Lucene.
Knowledge-based Recommendation is based on the idea of using recommendation knowledge defined in an explicit fashion, i.e., in terms of constraints of rules. When using knowledge-based recommendation, the preferences explicitly defined by the current user are forwarded to a knowledge base that is used to determine recommendations (solutions to a search problem). For example, if a user of an IoT gateway solution prefers battery-saving gateway configurations, the usage of specific communication protocols will be preferred compared to others. Other examples of the application of knowledge-based recommendation technologies in the IoT context are the recommendation of whole gateway configurations and the recommendation of data collection policies in wildlife animal monitoring. Different knowledge-based reasoning approaches such as conjunctive database queries and constraint-solving can be applied. For a detailed discussion of knowledge-based recommendation scenarios, we refer to .
Group Recommender Systems (see Table 3) are based on the idea of determining recommendations to groups of users, i.e., not to individual users. In group recommendation, basic algorithms such as collaborative filtering, content-based filtering, and knowledge-based recommendation are used to determine recommendations for individual users. These recommendations are then aggregated into a final recommendation for the group (aggregated predictions based approach). Examples of related aggregation functions are average (item with the highest average of user ratings is recommended) and least misery (item with the highest of all lowest ratings is recommended). Alternatively, a group profile is derived from the individual preferences of group members (aggregated models based approach). Based on the group profile, recommendations can be determined using the mentioned basic approaches. Group recommender systems implementations are typically based on libraries of single user recommender systems .
Further Scenarios – There are a couple of scenarios where basic recommendation technologies have to be extended to be able to take into account complex items [Polat2017]. For example, when configuring a whole gateway infrastructure, components and their connections have to be taken into account. In the context of a smarthome solution, components such as lighting equipment and sensors have to be assigned to rooms and a recommendation must also take into account the parametrization of the recommended equipment. Determining recommendations in such complex scenarios also requires the application of personalized search heuristics that help predict components of relevance for the user .
In such scenarios, inconsistencies can occur due to a change of user preferences, for example, a user wants to extend a smarthome solution with security and additional control features. Then, an already existing configuration has to be adapted in order to take into account the new requirements. Efficient reconfiguration support requires the provision of algorithms that allow the minimization of required changes to the current configuration taking into account optimality criteria such as reconfiguration costs and robustness with regard to future change requirements .
When to apply which recommendation technology?
The recommendation approaches discussed in this article use different knowledge sources and also have different advantages that make them more (or less) applicable in specific recommendation scenarios. In the following, we shortly discuss major criteria for the selection of a recommendation algorithm and analyze each of the discussed algorithms with regard to these criteria.
Easy System Setup – Both, content-based filtering and collaborative filtering support an easy setup. Only the knowledge about user preferences in terms of ratings (in content-based filtering, automatically extracted keywords) is needed to derive recommendations. Since group recommender systems often use these basic algorithms, setup easiness is also given for group recommender systems. In contrast, knowledge-based recommendation approaches require more setup investments since the construction of knowledge bases is often an error-prone and tedious process due to communication overheads between domain experts and knowledge engineers.
Conversational Recommendation Approach – Conversational approaches in terms of a dialog between the user and the system are primarily supported when recommending complex products and services. In such scenarios, knowledge-based recommenders are used, i.e., conversational approaches are supported in the context of knowledge-based recommendation. Collaborative filtering and content-based filtering do no support recommendation dialogs. In the context of group recommender systems, conversational processes can be supported, given that the group recommender system is based on knowledge-based recommendation .
Adaptivity – Collaborative and content-based approaches have a higher degree of adaptivity since every new rating can change the list of recommended items. This also holds for group recommendation scenarios if collaborative filtering or content-based filtering is used as underlying recommendation
approach. Knowledge-based recommendation approaches show less adaptivity since knowledge bases are stable, i.e., do not change immediately due to the preference articulations of an individual user.
Serendipity Effects – Serendipity is given if a recommendation is appreciated by a user but at the same time is something completely unexpected. Such effects can be achieved primarily by collaborative recommendation approaches. Content-based filtering assumes preference stability and provides recommendations in the line of already consumed items. Consequently, this approach provides a very low level of serendipity. Finally, the degree of serendipity in knowledge-based recommendation approaches depends on encoded serendipity knowledge. The degree of serendipity in group recommendation depends on the chosen underlying basic recommendation approach.
Ramp-up Problem – Both, collaborative filtering and content-based filtering have ramp-up problems: if no user ratings are available for a specific user in collaborative filtering or a user did not consume an item up to now when using a content-based recommender system, the major input for a good recommendation is missing. Furthermore, if an item did not receive ratings, it is hard to take the item into account by collaborative filtering systems. Since content-based filtering is based on item keywords, even without item ratings, recommendations can be determined. Knowledge-based recommendation does not have a ramp-up problem since the recommendation knowledge is encoded in a knowledge base which is assumed to pre-exist before recommendation sessions can be started. The existence of ramp-up problems in group recommendation settings depends on the chosen basic recommendation algorithm.
Transparency – Transparency can be regarded as the degree of explainability of recommendations. Explanations in collaborative filtering and content-based filtering have a lower degree of explainability since explanations are based on similar neighbors and similar keywords in content-based recommendation. In knowledge-based recommendation, explanations can be more fine-grained. Related explanations can take into account the reasons for a recommendation (represented by a list of user preferences) but also reasons as to why no solution could be found and which preferences are contradictory. In group recommender systems, explainability depends on the chosen basic recommendation approach.
High Involvement Items – Such items are complex and related decisions are taken in most of the cases after a very careful consideration since negative impacts of suboptimal decisions are high. An example thereof is choosing a specific server infrastructure or smarthome solution. In contrast, examples of low-involvement items are low-priced apps or sensors. In most of the cases, knowledge-based approaches are used for the recommendation of high-involvement items whereas content-based and collaborative filtering are used for the recommendation of low-involvement items. In the line of previous argumentations, group recommender systems can be used for high involvement items if the chosen basic recommendation approach is knowledge-based .
Conclusions and future work
In this article, we provided a short overview of existing recommendation approaches and discussed different aspects of their application in the context of IoT scenarios. In this context, we also discussed the advantages and disadvantages of different approaches with regard to a set of criteria that can be used for selecting a recommendation algorithm. There are a couple of open research issues related to the application of recommendation technologies in IoT scenarios. Especially in the context of recommending complex IoT configurations, search mechanisms have to be developed that allow efficient and personalized solution search also when confronted with large and complex configuration knowledge bases. Furthermore, knowledge about product variability has to be tested and updated in an efficient fashion. This requirement is in the line of current developments in software engineering which successively approach a strong coupling between development, test, deployment, and productive use. A major precondition for agile development.
The work presented in this article has been conducted within the scope of the H2020 project AGILE (Adoptive Gateways for dIverse MuLtiple Environments).
 Atzori, L., Iera, A., and Morabito, G. The Internet of Things: A Survey. Computer Networks, 54:2787-2805 (2010)
 Kwon, J. and Kim, S. Study on recommendation in internet of things environment. In: 7th International Conference on Multimedia, Computer Graphics and Broadcasting, pp. 13-14, IEEE (2015)
 Falkner, A., Felfernig, A., and Haag, A. Recommendation Technologies for Configurable Products. AI Magazine 32(3):99-108 (2011)
 Felfernig, A., Jeran, M., Ninaus, G., Reinfrank, F., and Reiterer, S. Toward the Next Generation of Recommender Systems: Applications and Research Challenges, Multimedia Services in Intelligent Environments, Smart Innovation, Systems and Technologies, 24:81-98, Springer (2013)
 Felfernig, A., Polat-Erdeniz, S., Azzoni, P., Jeran, M., Akcay, A., and Doukas, C. Towards configuration technologies for IOT gateways. In: International Workshop on Configuration 2016 (ConfWS’16), pp. 73-76. Toulouse, France (2016)
 Konstan, J., Miller, B., Maltz, D., Herlocker, J., Gordon, L., and Riedl, J. Grouplens: applying Collaborative Filltering to usenet news full text. Comm. of the ACM 40(3): 77-87 (1997)
 Pazzani, M. and Billsus, D. Learning and revising user profiles: The identification of interesting web sites. Machine Learning 27: 313-331 (1997)
 Felfernig, A. and Burke, R. Constraint-based recommender systems: Technologies and research issues. In: ACM International Conference on Electronic Commerce (ICEC08), pp. 17-26. Innsbruck, Austria (2008)
 Felfernig, A., Boratto, L., Stettinger, M., and Tkalcic, M. Group Recommender Systems, Springer (2018)
 Felfernig, A., Walter, R., Galindo, J., Benavides, D., Atas, M., Polat-Erdeniz, S., and Reiterer, S. Anytime Diagnosis for Reconfiguration, Journal of Intelligent Information Systems, pp. 1-22, (2018)
 Koren, Y., Bell, R., and Volinsky, C. Matrix factorization techniques for recommender systems. IEEE Computer 42(8): 30-37 (2009)
 Polat Erdeniz, S., Felfernig, A., and Atas, M. Cluster-specific heuristics for constraint solving. International Conference on Industrial, Engineering, Other Applications of Applied Intelligent Systems, pp. 21-30 (2017)