PAC
personalized adaptive control

One of the driving applications of ubiquitous computing is universal appliance interaction: the ability to use arbitrary mobile computing devices to interact with arbitrary appliances such as TVs, printers, and lights. Because of limited screen real estate and the plethora of devices and commands available to the user, a central problem in achieving this vision is predicting which appliances and devices the user wishes to use next so that interfaces for those devices can be made available.

With Personalized Adaptive Control we took seriously the idea that a user will not necessarily think of devices as separate entities; therefore, rather than focus on which device the user may want to use next, we developed methods for automatically discovering the user's common tasks (e.g., watching a movie, or surfing TV channels), predicting the task that the user wishes to engage in, and generating an appropriate interface that spans multiple devices.

The task is seemingly straightforward but requires extending semi-supervised machine learning techniques and extending those techniques into the realm of HCI.

At one level, PAC is about building a specific application that helps users by creating better remote controls. Traditional remote controls typically allow users to activate functionality of a single device. Given the exploding number of devices and the fact that users activate only a subset of functionality across devices to accomplish a particular task, it is attractive to consider a remote control directly supporting this task-specific behavior.

At another level, PAC is about representations that help in activity discovery. In this case, we represent low-level actions as distributions over the other low-level actions that follow them. First, this makes sense in that it means actions are distinguished from one another in what they enable or predict about the environment. Second it affords theoretically elegant and computationally feasible similarity metrics (e.g., KL divergence and histogram-matching techniques) and thus provides a mechanism for clustering and discovering useful activities or tasks.

So far, we have shown that it is possible to discover and cluster collections of commands that represent tasks and to use history to predict the next task reliably. In fact, we showed that it is an easier problem to solve. Moreover, we show that tasks vary from user to user. At present, we are following up on our work by implementing a full working system and continuing a set of user studies.