Keywords

1 Introduction

The adaption to the user is a fundamental requirement in the HCI field. Considering the mobile and global working economy, the classical approach “one application fits every user in all situations” is not appropriate anymore. In order to achieve the greatest usability and accessibility for the majority of users and especially for various situations, applications also need to take additional user-related and contextual information into account. Using these parameters, applications can better adapt to the user and the current situation, and thus become more appropriate, accurate and satisfiable. This work targets the identification and the elaboration of these important aspects towards the design of personalized user interaction.

Before starting to elaborate criteria, methods and possibilities for the design of personalizable applications, it is important to provide a basic understanding about what the term “personalization” means in the context of HCI. In [1] personalization is defined as follows: “Personalization is the task of providing adapted capabilities to the user of a system on the basis of implicitly gathered user information”. The definition emphasizes two crucial components: first, “providing adapted capabilities to the user”, and second, “on the basis of implicitly gathered user information”. In this section, we focus on the former component, namely the adapted capabilities, the latter is discussed separately in Sect. 2.3. According to [1] personalization primary aims at the adaption of the system to the needs and wishes of the user. In contrast, Anthony Jameson argues in [2] that personalization encompasses other features besides adaptation to individual user. In his definitions personalization is conducted of several overlapping aspects, namely adaptability, adaption and anthropomorphism. Figure 1 illustrates these overlapping aspects.

Fig. 1.
figure 1

Illustration of overlapping aspects of personalization as defined in [2]

This definition raises a new question - what are the differences between adaptability, adaption and anthropomorphism? Anthony Jameson [2] uses the following definitions:

  • Adaptability: The user is able to modify aspects of a system to suit her own preferences.

  • Adaption: The system modifies its own behavior at least partly independently of specifications by the system.

  • Anthropomorphism: The system exhibits human-like features e.g., depicted face and/or body, natural language for input or output and lifelike behaviors like eye-blinking and head scratching.

Others [3, 4] distinguish mainly between adaptability (sometimes also called customizability) and adaption, whereas the naming and the meaning of the former remain the same and the naming and the meaning of the later is more concrete. Today, in this context the more popular term “adaptivity” or “user-adaptive system” is used. In [2], a user-adaptive system is defined as follows: “A user-adaptive system is an interactive system which adapts its behavior to each individual user on the basis of nontrivial inferences from information about that user.”

Admittedly, this reduction of personalization to adaptability and adaptivity may be suitable for many user interfaces and applications, but especially for modern avatar-based user interfaces (UIs) e.g., as introduced in [5], it makes sense to consider the anthropomorphism aspect in the personalization process.

In summary, personalization aims to adapt a system (the adaption process) according to concrete decisions (adaption decision) that are influenced by users’ wishes, needs, requirements and external circumstances (the acquisition and preprocessing of applicable information). The following sections will outline these facets starting from the adaption process, over the acquisition and preprocessing of applicable information to the adaption decision.

2 The Adaption Process

In general, there are numerous ways to adapt a system according to user’s wishes, needs and requirements. According to [6], approaches for adaption can be classified into two categories: customization and automatic adaption. Coutand argues in [1] that the first category pertains to systems that offer their users the capability to select some alternative presentations or interaction characteristics. He notes that these systems are able to alleviate some constraints due to the “one-fit-all” paradigm, but that customization does not really improve the usability. For the second category, there are at least two possibilities: (a) One can, e.g., use its own service, system and/or application and implement personalization mechanisms on one or several layers as described in the 3-layer user interface model [4] or (b) one can utilize existing and available frameworks such as [79] or [10] to develop an adaptable and adaptive application or service. However, the automatic adaption process on itself involves a wide range of aspects and a detailed elaboration and listing of these aspects would go beyond the scope of this work. This work focuses primary on the question - “What is needed for the adaption decision and how is this decision taken?” rather than on the question – “How is the automatic adaption process implemented or realized?”

3 Acquisition and Preprocessing of Applicable Information

As already mentioned, the adaption decision is influenced by several overlapping aspects like users’ wishes, needs, requirements and external circumstances. Thus, in the first step one has to think about how to provide these different information to the system. In order to reach this goal, the following consecutive stages are required:

(a) the definition of the application field, followed by (b) the definition of the user (modeling of the user model), and finally (c) the definition of (additional) contextual parameters (e.g., lightning, user’s location, user-task, etc.). The following sections discuss these three stages along a few key requirements relevant for the practical implementation.

3.1 Selection of the Application Field

The first stage tries to limit the amount of potential parameters to those which are useful for the user and the concrete application. It is evident that applications of different fields require very often different parameters. As an example, a system that supports collaborative work requires other parameters as a system that recommends products for a user during an online shopping tour. The former would probably use parameters like “the number of co-workers”, whereas the later would probably use parameters like “the search history “. Thus, it is important to identify the primary field of the application before one can start to elaborate additional adaptivity aspects.

In [1], the following application fields have been defined:

  • Adapting an interface

  • Giving help

  • Helping the user to find information (adaptive hypermedia)

  • Recommending products, items and services

  • Supporting learning (user adaptive tutoring systems)

In [3], the additional two fields have been identified:

  • Conduct a dialog

  • Support collaboration

Such a list is not meant to be exhaustive, but it provides a good overview about the diversity of systems and applications. The following sections focus mainly on the “adapting an interface” application field.

3.2 The Definition of the User

The user plays the leading role in user-adaptive-systems. Thus, the second stage focuses on user-related information and on building, maintaining and utilizing user models. But what does the term “user model” mean? At this point it is necessary to provide a concrete definition of the term.

User Model.

According to [11] “user models are defined as models that systems have of users that reside inside a computational environment”. Analogues to this, in [12] the user model is defined as “a representation of information about an individual user that is essential for an adaptive system to provide the adaptation effect, i.e., to behave differently for different users”. According to these definitions the user model can be seen as a concrete snapshot representation of the user, which is needed by the user-adaptive-system. The generation of such a snapshot representations is done in the user modeling process.

User Modeling Process.

In [12], the user modeling process is defined as: “To create and maintain an up-to-date user model, an adaptive system collects data for the user model from various sources that may include implicitly observing user interaction and explicitly requesting direct input from the user. This process is known as user modeling”. A similar definition was provided by [13], “The aim of user modeling is to capture user information such as preferences, beliefs, goals, and intentions to construct a user model”. Both definitions confirm that the aim of the modeling process is to acquire user related data/information in order to update the user model. This information is stored in the user profile [1]. Furthermore, the first definition has additionally two interesting aspects, user information is implicitly observed and/or explicitly requested. This conclusion is also drawn by [14]. The most common method for explicit user information collection are simple questionnaires. However, drawbacks of explicit methods are that they place additional burden on the user [15] and create potential privacy concerns towards providing personal data. Methods for implicit user information collection on the other hand do not require any intervention by the user during the process of acquiring user preferences. Widely applied sources for implicit user information collection are browsing activity, web logs and search logs [16].

There are a number of common challenges related to the user modeling process [26]: The so called cold-start problem refers to the situation, when a system is lacking implicitly gathered user information, because it is used for the first time. More generally profile sparseness can also occur in systems that strongly rely on explicit gathering of user information, in case users provide incomplete feedback on the user preferences questionnaire. Another challenge to address in the user modeling process is to reflect the impact of different contexts, that a system might be used in (user profile personae) - e.g., it could make a difference, if an application is used at home or when being on the move. Although considered as a promising approach to address the aforementioned problems [27], sharing user information among different applications (i.e., using out-of-band data) might be restricted due to business reasons and requires that both user profiles are based on a common taxonomy.

User Profile.

As already mentioned, user models are usually stored in the so called user profile. There are several methods to realize a user profile repository. Starting from scratch one can use, e.g., (a) widely used a key-value model or (b) a markup scheme model (hierarchical data structure consisting of markup tags such as XML tags) or (c) ontology based models expressed in markup languages such as Web Ontology Language (OWL) [17] or Resource Description Framework (RDF) [18]. Alternatively one can utilize existing approaches like [19] or [20].

In [19] the focus is not only on a specific user model, but the solution accepts different techniques in order to address multiple user models. Each user model may address different needs of various domains. Analogous to [19], the solution provided by the Global Public Inclusive Infrastructure (GPII) [20] focuses not only on the description of user preferences, but also on the description of the platform and environmental characteristics. The remaining question is where are the differences between user related data like user preferences and other contextual data like environmental conditions? Are there any differences from the perspective of the persistence? These questions are discussed in the next section.

3.3 Considering Additional Contextual Parameters

In the previous sections, we discussed the modelling of the user and the persistence of the user model within the user profile. However, user-adaptive-systems require very often additional and not directly user-related information in order to adapt the user-system interaction and/or its behavior in an optimal manner. Moreover, these parameters are very often live or at least transient [12]. Concrete practical examples of such short-living parameters are (a) the current lighting or the noise level the user is surrounded by (b) user’s location, direction or motion speed or (c) user’s task or the goal of the current user-system interaction. In general, this information can be summarized as contextual information and these parameters differ from the user model or the user profile, respectively. In [21] context is defined as follows: “Context is any information that can be used to characterize the situation of an entry. An entry is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and the application themselves”. The emphasis in this definition is on the term “situation” and reflects the previously mentioned transience. Admittedly, the description of a situation can be multilayered and quite complex. There is no definite agreement about what should be included into the area of context. In [12, 13], this issue is tackled by providing the following classifications for context information:

  • The spatio-temporal context addresses aspects that are related to time and space like the current time, user’s current position, his or her direction, speed or track.

  • The environmental context captures the entities that surround the user such as, the temperature, lighting, noise or physical objects and obstacles.

  • The personal context represents the user’s physiological and mental state. The physiological part consists of parameters like the pulse, weight, age and the mental state consist of parameters like user mood, expertise, anger and stress.

  • The task context describes the user’s intention and may be described with explicit goals or the task breakdown structure.

  • The social context characterizes the social aspects, e.g., information about friends, neighbors, co-workers, and relatives.

  • The information context is the information space that is available at a given time.

Following the list, one can see that there are numerous context aspects which may be considered during the design of user-adaptive systems. Depending on the application field designers very often need to pay attention just to one context class or at least to a combination of some context classes. Systems that are able to provide such information are called context-aware systems. In [1], a context-aware system is defined as follows: “A system is context-aware if it uses context to provide relevant information and/or service to the user, where relevancy depends on the user’s task”. From the designers’ point of view a personalization in a limited setting (e.g., using spatio-temporal context information in conjunction with a mobile phone application) it would make sense to develop the own context-aware system to achieve this goal. In a broader setting (e.g., in an environmental setting with different users and various devices) it would make sense to utilize existing approaches and systems. A good overview about existing approaches and systems is given in [22, 23].

4 The Adaption Decision

The last missing step towards personalization is the adaption decision. As argued before, the adaption decision is influenced by the applicable information (presented in Sect. 3) and serves as the main factor for the adaption process (presented in Sect. 2). Again, there are various approaches to realize a concrete adaption decision but at the same time an appropriate approach is very often determined by the nature of the available information. As an example, quantitative values (e.g., a range from 0 to 100) may be applicable by rule-based adaption decision systems whereas probability distribution values may rather be applicable for uncertainty-based adaption decisions. The following section outlines a few selected adaption decision approaches and provides practical examples of applicable input values for the decision making.

4.1 Rule-Based Systems

A very practical and easy way to realize an adaption decision is to use a rule-based decision making process. As mentioned before, rule-based systems use quantitative input values which can be evaluated using simple algebraic methods [12] and comparative operators. In the context of adaptive mobile user interaction, a rule-based decision example could look like the following pseudo code snippet:

4.2 Case-Based Reasoning Systems

In [24], case-based reasoning is described as follows: “Case-Based Reasoning means to retrieve former, already solved problems similar to the current one and to attempt to modify their solutions to fit for the current problem”. Applied on the previous example of an adaptive mobile user interaction a case-based reasoning decision could look like the following pseudo code snippet:

The case-based reasoning consists of two processing steps. The first step is the retrieval of former and similar cases and the second step is the concrete usage or the modification of this former case. Case-based reasoning systems rely on a set of former decisions. However, if such a set is not available, one can build a set from scratch by involving the user into the decision process (e.g., by questioning the user if the current adaption decision fits his or her needs) and the learning of these decisions for future purpose.

4.3 Fuzzy Decision Making Systems

Informally, a fuzzy set is a class of objects in which there is no sharp boundary between those objects that belong to the class and those that do not [25]. The basic idea is to allow truth values to take values between 0 and 1, with 0 representing absolute falseness and 1 absolute truth [12]. Applied to the example of an adaptive mobile user interaction, a fuzzy decision making system could use the following three fuzzy functions to define “dark”, “bright” and “glary” environments.

$$ \mu_{x1} \text{ := } dark \,environment,\, illuminance \,between \,0\, and \,500 \,lx $$
$$ \mu_{x2} \text{ := } bright \,environment, \;illuminance\, between\, 50\, and\, 20.000 \,lx $$
$$ \mu_{x3} \text{ := } glary \,environment, \,illuminance \,at\, least\, 7.000 \,lx $$

In Fig. 2 the three fuzzy functions are illustrated. The x axis represents the illuminance in lux and the y axis the degree of truth. In this example one can use the maximum operator and a concrete illuminance value e.g., 300 lx to elaborate the maximum degree of membership. This is depicted in the following equation:

Fig. 2.
figure 2

Illustration of overlapping fuzzy functions defining “dark”, “bright” and “glary” environments.

$$ \begin{aligned} \mu_{max} \left( x \right) &= max\left[ {\mu_{x1} \left( x \right);\mu_{x2} \left( x \right);\mu_{x3} \left( x \right)} \right] \Rightarrow \mu_{max} \left( {300} \right) = max\left[ {0.05; 0.9;0} \right] = 0.9 \\ &= \mu_{x2} \left( {300} \right) \end{aligned}$$

Thus, for a concrete illumination value of 300 lx the system would adapt the user interface in order to satisfy the bright environment. The following pseudo code illustrates this decision rule:

As mentioned previously, examples presented in sections are very simplified and represent just three possibilities one can utilize to realize adaption decisions. For the sake of completeness, it should be noted that there are other approaches like the Bayesian network, neuro-fuzzy approach, machine learning approach or the combination of these [3, 12].

5 Conclusion

In this paper, we have surveyed the field of the personalization process within modern HCI systems. We clarified the difference between the ordinary customization process, which does not really increase the usability, and the automatic adaption process which in contrast targets this goal. We outlined tree major working processes towards personalization in user-adaptive systems, namely (a) the acquisition and preprocessing of applicable information, (b) the adaption decision and finally (c) the adaption process. The main focus of this work was on the first two working processes, whereas the last one was just briefly sketched. More concrete details regarding the adaption process can be obtained from the referred literature. This survey in not meant to be exhaustive, but it provides a good summary and a quick overview about different aspects which developers have to keep in mind during the design of personalizing applications, services and systems.