I will talk about a class of applications called CA apps, that can be considered intelligent in some sense.
Some examples:Sirilife.contactsLocaleAssistants act on behalf of the user, e.g.Change settings depending on context, e.g. Turn on Wifi at home Launch applications, e.g. A sports tracker when runningSimplify task executionInformation filtersHighlighting, prioritizations e.g. contacts you call, or applications you use in a contextFiltering, e.g. Call screening
CA apps can adaptto situationsto youPreferencesBehavioursAdapting to a situation can be done without referring to you, e.g. changing ring volume depending on ambient noise.Adapting to you, e.g. your preferred ring volume at the office, requires learning.Learning: it can adapt by applying previous experiences to a situationA more advanced form of learning includes generalization: applying previous experiences to new situation
Anthropomorphic: behaves like a humanMicrosoft clipSiriAnthropomorphism is not a general characteristic of CA apps but is often what people think of when we talk about intelligent applications. Anthropomorphism is a UI paradigm.Anthropomorphic UIs are hard due to our high expectations. Our expectations come from our tendency to attribute intelligence or intentionality to everything. When we discover the object is not intelligent(?) we get disappointed.It has been well researched within HCI community with mixed results.
I think it was a very bold move to launch Siri. It is not at all clear that UI or the AI works well enough for users to approve.Launching a product that doesn’t meet the usual user experience excellence of Apple may have a significant impact on its brand.But on the other hand, what they need to succeed with Siri is data, and launching a beta is one of the few ways to get it.
Why important? - Improved usability through simplicity, and even removing the UI. ”The invisible interface” as Amber Case call it. Here we show the Sony Ericsson headset that have the start and stop button that is often seen on our other headsets removed. You just pull the plug out of your ear to stop the player. Here we use the earplug as a sensor to determine current context. Stickiness. Your learning app is creating a relationship with you that is hard to break. This could be Siri’s main competitive edge and reason for early launch. New features/values, e.g. location aware reminders Non-trivial. Requires intimate knowledge about your user and your data. Thus room for competition on R&D and UX.
Why now?Social web rich source of context informationPrivacy threshold has loweredmobile sensing, mobile computing (multi-core cpu, gpu)Recent advances in NLP, machine learningCheap cloud computing
Research on defining context for user models gave up, to focus on how context sources are used instead.For a definition most people refer to Dey & Abowds paper
But the definition is very broad. So, for practical reasons they defined primary contexts
Today we take for granted that applications adapt to our identity
Location is a general parameter and can mean many things, e.g. absolute position in a coordinate system relative position, i.e. distance to something- places with common meaning but with unique instances for each user, e.g. home and work
Often relative, e.g. time of day, day of week
What is the user doing, e.g. walking, running, writing a document, talking on the phone, playing a game
Secondary contexts can be derived from primary contexts, but in practise they are contexts of their own
What people is the user interacting with and what is her relation to them?
What people, things is the user currently in proximity of?
Ambient context refers to what is happening at the place where the user is, independent of the user, e.g. there is currently a rock concert at the stadium where the user is.
Context is very often application specific, e.g. what song the user is currently listening to is relevant context information to some applications but not to others
There are challenges to developing CA apps. However, since solutions are not trivial, these are also opportunities for differentiation and competition.
Data chicken and eggTo create context aware applications you need data in order to create user models.To get data you must have an application.The value features of your application should match the data you collect, as we will soon show. Thus you can’t collect data that the user doesn’t get an immediate benefit from.Solution:-Simulate. Usually you can’t simulate all aspects (since then you would alrady have a user model), but often you can simulate some aspects.-Bootstrap. Use public data from existing services, or exisiting user data sets e.g. Google Location History.-Provide some feature using the extra data you need to collect.-Launch a beta, and make it clear that some features are not available in the beta, but that you need the data to launch those features.
An aspect of data chicken and egg is Slow start:Modelling individual users means that you initially have no data unless you can bootstrap somehow.This means you can’t introduce a feature until you have enough data, which is when you have enough confidence.This is not necessarily bad. Adding features after install may be perceived as something good. The problem is in selling a feature the user can’t initially use.Solution:Bootstrap using already collected data about the userBoostrap using stereotyping: use data from a stereotypical user if the user is similar to it by some measure
RelevanceCA apps must be confident in any interactions initiated with the user or actions taken on behalf of the user:Making the wrong decision can be very expensive, where taking the right action a thousand times does not compensate for one mistake.Solutions:Use CA only when cost of mistakes is low. For example: CA ads and restaurant recommendations has very low cost for mistakes. The user is unlikely to know about a restaurant you failed to recommend. Turning off wifi at wrong time has higher cost than turning it on.Use prediction, classificationmethods that can provide confidence values. Statistical methods can, machine learning methods often can’t. If not possible, estimate confidence emprically before launch. For how many days do you need to collect data from a user before the feature works well? Use semi-supervised learning. In most cases you don’t want to prompt the user to answer questions about predictions your app made, but if you can introduce them in a non-intrusive way, do so.
Even if you have good accuracy and confidence, users may think different.Users are not very aware of their own behaviours.Services and apps that use learning to automatically adapt to user behaviour often notice the user go through these steps:”Cool!” ”Wrong!” ”Ok, maybe not wrong, but it doesn’t fit my image of myself.” User starts to manipulate own behaviour to correct. This is especially true if what is learnt is public, e.g. through Facebook Give up, and accept imageExample: last.fmWe find that the user image of herself and her behaviour is often not what she expects.Continuous feedback important.Design application to show the current model of the user, and allow her to give feedback. This gives the user incentive to give feedback you can use for supervised learning.
EU has strong regulatory requirements on collecting and processing user data, or rather personally identifiable data.One of it’s implications is that you must allow users to retrieve or delete their data, which has implications for design and implementation.You must also allow users to have information about how data is processed, which means you must document it and make it public.
Determining location context and activity context consumes a lot of power since it requires movement detection.Movement detection is expensive since it requires continous or periodic polling of sensors that can determine movement.This is why some obvious use cases, e.g. life logging with activity recognition, has not been launched on existing smart phones.Solutions:Requires support in HW and low-level SW, e.g. interrupt driven accelerometer drivers, and sensor sub-systems. Until then: work around.
CA apps require lots of data. To create value out of data you need a special skill set. Not all organization can easily start recruiting statisticians, thus you want to be looking for programmers with statistics and data mining skills, or statisticians with programming skills (often called data scientists these days). However, they are in very high demand.Also, you need competence in management and product planning to understand the value of data. Companies like Google understand since this is at the core of their business. Companies like Nokia and LinkedIn realized the importance of data, and invested heavily in it, through research and by either having separate product management for data products, or having data scientist in product teams. When being creative about intelligent features, e.g. together with designers or product planenrs, I have found it very usefull to not restrict oneself regarding limitations of technology or data avilability. Instead, assume that you have a perfect knowledge about your customer and can predict anything. Also, designers need to tackle the challenge of confidence, what do when your model is wrong or doesn’t fit all your users.
- Now is the time.- There are challenges but they are also opportunities.- Understand value of data. Get the right product management.- Get down and dirty with your data. Buying a BI solution and have it generate a weekly report is not enough.- Data collection strategy- Privacy policies are not enough. You need to manage user expections by reflecting the data collected in the features of your application.- When creating new products, dont limit yourself initially by what you think is possible. Analytics can accomplish a lot more than we think.
Creating intelligent devices
CREATING INTELLIGENT DEVICES Håkan Jonsson – Sony Ericsson email@example.com
” Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves.” - Dey & Abowd>what is context?
” Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves.” - Dey & Abowd>what is context?>primary contexts
SUMMARY>now>challenges = opportunities>understand value of data>get down and dirty with your data>data collection and bootstrapping strategy>reflect data in application>assume perfect knowledge when creating