what's in the apps for context?

15
What’s in the Apps for Context? Extending a Sensor for Studying App Usage to Informing Context-awareness Matthias Böhmer Christian Lander Antonio Krüger UbiMI Workshop at UbiComp 2013 September 8-9, 2013 Zürich, Switzerland

Upload: matthias-boehmer

Post on 10-May-2015

214 views

Category:

Technology


5 download

DESCRIPTION

Mobile phones became multi-purpose devices supporting their users with large variety of applications for various tasks. Not only the number of available applications is increasing, also the number of applications people are using on their devices is growing, as well as the amount of time people spent on their smartphones daily is getting bigger. In this workshop paper, we briefly describe our past work on understanding mobile application usage. We explain our research tool for measuring mobile application usage, called AppSensor, and discuss possibilities to exploit the information of mobile application usage to inform the reasoning about users’ contexts. We contribute our source code to the workshop for a discussion and prototyping of use cases leveraging the information of which application a user is currently using.

TRANSCRIPT

Page 1: What's in the apps for context?

What’s in the Apps for Context? Extending a Sensor for Studying App Usage to Informing Context-awareness

Matthias BöhmerChristian LanderAntonio Krüger

UbiMI Workshop at UbiComp 2013September 8-9, 2013Zürich, Switzerland

Page 2: What's in the apps for context?

1983

Page 3: What's in the apps for context?

Evolution

Page 4: What's in the apps for context?

4

Page 5: What's in the apps for context?

Logging app usage AppSensor: Tracing App Usage

who wherewhen how longwhich app

A

Page 6: What's in the apps for context?

Data from Deployment

- 4,125 users from various countries- 22,626 apps from 20 categories- 4.92 million data points- 127 days

6

Page 7: What's in the apps for context?

During Course of a Day

- App usage correlates with circadian circle

25,000

50,000

75,000

100,000

125,000

150,000

175,000

200,000

12 a

m

2 am

4 am

6 am

8 am

10 a

m

12 p

m

2 pm

4 pm

6 pm

8 pm

10 p

m

Appl

icat

ion

laun

ches

7

Page 8: What's in the apps for context?

Probability of Launches!"#$

!#$

"#$

%#$

&#$

'#$

(#$

)#$

*#$

+#$

!,#$

!!#$

!"-$

!-$

"-$

%-$

&-$

'-$

(-$

)-$

*-$

+-$

!,-$

!!-$ ./01/203#4/

5#6789:; <;:=; >--;?=0@;:= )A+. )A). )A*. )A(. )A%. )A&. )A,. )A+. *A!. *A,. )A). )A%. )A,. (A+. (A*. (A&. (A(. (A(. (A&. (A(. )A,. )A&. )A'. )A&. (A*%. "B%+* +C0$D8; &A'. 'A". 'A&. 'A*. 'A*. 'A(. 'A'. 'A". 'A&. 'A!. &A). &A%. &A%. &A". &A". &A%. &A&. &A,. &A&. &A". &A!. &A!. &A!. &A&. &A%!. "B!'! !B*!,

C0$$67D8#3D07 &&A+. &!A!. %*A%. %'A&. %!A(. %!A*. %"A). %&A). %+A&. &&A*. &+A,. '"A(. '&A*. ''A". ''A". '(A!. ''A). '(A*. ')A!. '(A!. '&A*. '%A%. '"A,. &+A,. &+A',. "B)(+ '',E73:=3#D7$:73 ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,. ,A,". !"( &%

FD7#78: ,A". ,A%. ,A%. ,A". ,A!. ,A!. ,A!. ,A". ,A%. ,A%. ,A&. ,A'. ,A%. ,A%. ,A&. ,A%. ,A%. ,A". ,A". ,A". ,A". ,A". ,A". ,A". ,A"'. (,& !(&G#$:; %A". %A,. %A,. "A). "A'. "A%. "A". !A). !A+. !A+. "A,. "A!. "A". "A". "A". "A%. "A%. "A". "A". "A&. "A). %A,. %A,. %A". "A%,. !B)!( !B),"H:#439 ,A%. ,A&. ,A&. ,A&. ,A(. ,A(. ,A). ,A(. ,A&. ,A%. ,A%. ,A". ,A". ,A". ,A". ,A". ,A". ,A". ,A". ,A%. ,A". ,A%. ,A". ,A%. ,A"(. '&, "")

5DI=#=D:;/J/K:$0 ,A&. ,A'. ,A(. ,A). ,A+. ,A*. ,A). ,A(. ,A'. ,A&. ,A%. ,A%. ,A". ,A". ,A". ,A". ,A". ,A". ,A". ,A". ,A%. ,A%. ,A%. ,A%. ,A%,. !B"() !!)5D1:;3L4: ,A*. ,A+. !A,. !A&. !A%. !A'. !A&. !A&. !A!. ,A+. ,A(. ,A(. ,A'. ,A'. ,A'. ,A'. ,A(. ,A'. ,A%. ,A&. ,A&. ,A'. ,A'. ,A'. ,A(,. "B!%" &'!

M643D$:ND# "A!. "A!. "A&. "A&. "A). "A&. !A*. !A*. !A+. !A). !A*. "A,. "A,. "A,. "A". "A!. "A". "A&. "A%. "A%. "A". "A!. !A+. "A,. "A,%. !B)!% )(O:@; "A(. "A'. "A(. "A'. "A'. "A). %A%. %A). &A!. %A(. %A,. "A(. "A'. "A). "A'. "A&. "A". "A!. "A%. "A". "A%. "A". "A%. "A%. "A&(. !B))) &&,

P=0N683DQD3L %A(. 'A,. 'A,. 'A*. (A%. (A'. (A,. 'A&. &A*. 'A!. &A+. &A%. &A". &A,. &A,. %A). %A&. %A&. %A,. %A!. %A!. %A,. "A+. %A". %A)(. "B!+, (&*R:1:=:78: ,A). ,A). ,A). ,A). ,A). ,A). ,A(. ,A(. ,A). ,A'. ,A'. ,A'. ,A&. ,A&. ,A&. ,A&. ,A%. ,A&. ,A&. ,A&. ,A'. ,A'. ,A'. ,A(. ,A&). +,% %&(S:33D7T; !A%. !A(. !A'. !A%. !A(. !A". !A". !A!. !A%. !A&. !A&. !A&. !A". !A%. !A". !A". !A%. !A!. !A!. !A". !A". !A%. !A%. !A&. !A"%. "B!)* !S90--D7T %A+. &A'. %A). %A&. %A". %A". %A!. %A,. %A!. %A%. %A". %A". %A". "A*. "A+. "A+. "A). "A). "A). "A). "A*. %A!. %A(. %A'. "A+(. "B''( !+*

S08D#4 'A). 'A,. &A+. &A%. &A". &A,. &A&. 'A!. 'A%. 'A&. 'A". 'A,. &A). &A*. &A+. &A'. &A'. &A(. &A(. &A+. 'A". 'A&. 'A*. 'A). &A)). !B+," %&"S-0=3; ,A'. ,A%. ,A%. ,A". ,A%. ,A%. ,A". ,A%. ,A%. ,A%. ,A%. ,A&. ,A&. ,A(. ,A). ,A*. ,A+. ,A*. ,A(. ,A(. ,A). ,A*. ,A). ,A). ,A'(. ')! "!'

29:$:; ,A". ,A!. ,A". ,A%. ,A&. ,A&. ,A&. ,A". ,A". ,A". ,A!. ,A!. ,A!. ,A". ,A!. ,A!. ,A!. ,A". ,A!. ,A!. ,A". ,A!. ,A!. ,A!. ,A!&. "&+ "%!2004; !,A+. !"A". !&A(. !)A(. ",A%. "!A'. "!A&. !*A(. !&A). !,A&. *A&. (A*. (A!. 'A+. 'A+. 'A+. (A,. (A!. 'A*. (A,. (A%. (A*. )A&. +A!. )A*+. "B'!" !B(**2=#Q:4 !A&. !A(. "A!. "A". "A&. "A(. "A". !A+. "A,. "A!. "A,. !A*. !A+. !A+. !A+. !A*. "A,. !A+. "A". "A". !A+. !A). !A(. !A&. !A*(. !B)'" &,)

<7U70@7 &A). 'A%. 'A!. 'A,. 'A%. &A&. 'A,. 'A+. &A(. &A&. &A!. %A*. %A'. %A*. %A). %A). &A,. %A(. %A). %A). %A). %A+. &A!. &A'. %A**. "B"*& !B)+(

203#4/5#6789:;/-:=/H06= !,

%B(,&/

))B,'%/

'%B(%%/

&,B%%"/

%%B&%*/

%,B+&+/

%*B!(!/

'(B*+'/

*%B&**/

!,+B'',/

!")B,(+/

!&"B(&"/

!'*B*)(/

!(*B,*"/

!(+B,!*/

!)"B+%'/

!)%B+(%/

!)+B*,!/

!*&B,!"/

!)(B,',/

!(%B,*,/

!'%B*%'/

!&!B%,%/

!"%B(%+/

Figure 5. Hourly relative app usage by category in terms of launches. Each cell value refers to the percentage of app launches done by our userswithin each hour for each category. Colors are normalized by row, with green indicating each category’s maximum percentage of application time,and white indicating each category’s minimum. For example, games reach their peak in the evening (green) and trough in the morning (white).

!"

!#"

!##"

!$###"

!#$###"

!##$###"

!$###$###"

!#$###$###"

!" %" !!"

!%"

&!"

&%"

'!"

'%"

(")#"

!"#

$%&'(

)'*++"&&%,+%-'

.%,/01'()'2%-3(,'4!"#$%&'()'25%"%,67889':-%;'<==->'

Figure 6. Number of apps used in a session. We aggregated sessionslonger than 40 apps since the graph flattens out and scarcity increases.Maximum length is 237.

Probably the most revealing statistic in our analysis of appli-cation chains is that for nearly half of all chains (49.60%) thefirst application belongs to the category Communication (asFigure 8 shows). Digging deeper, we found that 15.7% of thechains within our sample were initiated with an SMS appli-cation (9.5% default sms app, 6.2% an app called HandcentSMS), 9.6% with the phone application, and 5.9% with thestandard mail application. Interestingly, a browser was onlyused first in 5.9% of the application chains.

Figure 9 shows the transition probabilities between appli-cation categories in an application chain. Accordingly, thediagonal of the figure indicates transitions from one app toanother in the same category. As such, the values along thediagonal are non-zero. This graph considers only those ses-sions where two or more apps have been used. For each app,it is very likely that the app used next is a communication

!"

!#"

!##"

!$###"

!#$###"

!##$###"

!$###$###"

!#$###$###"!" %" &" '" (" )" *" +" ," !#"

!!"

!%"

!&"

!'"

!"#

$%&'(

)'*++"&&%,+%-'

!"#$%&'()'.,/0"%'122-'/,'3%--/(,'

Figure 7. Occurrences of sessions according to number of unique appsused within a session.

!"#"

$!"$#"%!"%#"&!"&#"'!"'#"#!"

()**+,

-./0

),"

1))23"

45)6

375"

8).-/2"

()*-.3"

95):

+.0;-<=

"

+,>,)6

,"

8?)@

@-,A"

B/*73"

C76

3"

D+20*

7:-/"

15/;72"

87E,A3"

8@)5<3"

F-G73<=27"

H7G757,.7"

F-I5/5-73"J

"K7*

)"

L7/2<?"

M-,/,.7"

1?7*

73"

N,<75</-,*

7,<"

!"#$"%

&'(")

Figure 8. Categories of first used app within a session.

- Type of used apps changes during the course of the day- During day: primarily communication apps- During night: scope of apps more heterogenous

8

Page 9: What's in the apps for context?

Support for App Launching

9

- Adaptive launcher menu- Support visual search for apps- Presenting 5 icons for next app

- Implements different models- Sequentially used apps- Prediction model- Locally most used apps- Most recently used apps- Most frequently used apps

- Application AppKicker- Extension as a widget - Deployed on app store- 53,000 installations

Will be presented at UbiComp 2013

Session „Systems“Wed 8:30-10:00

Page 10: What's in the apps for context?

App Recommender System

10

- Implementation of a recommender system- Context-aware (location, time and previous app)- Based on traces of application usage (AppSensor)

- Application appazaar- Deployed on app store- 7,200 installations

- Testbed for different recommender engines

Figure 4. Examples of screens a user sees when traversing the stages of our testbed’s conversion funnel. This usage-

centric action sequence can be captured for evaluation of the di↵erent recommender engines.

a certain stage, e.g. the long-term usage metric is thenumber of apps that have been used in the long-term.Conversion rates are the quotients of two counters ofstage events, e.g. the ratio of the number of people whoviewed a recommended app to the number of people whoused it in the long term.

Recommender Engines under TestThe focus of this paper is on the AppFunnel as an eval-uation framework and not on investigating new enginesthemselves. Therefore we have used the recommenderengines that already have been developed and deployedwithin appazaar for testing our framework. As shown inTable 1, the engines under test can be classified accord-ing to the two dimensions of personalization and contextawareness. The personalized engines take informationabout specific users into account, i.e. their app usagehistories. The context-aware recommender engines gen-erate recommendations based on users’ current context,e.g. time, location, and previously used apps.

Non-personalized Personalized

Context-

less

– App popularity – Usage-based CF

Context-

aware

– App-aware filtering – Location-aware CF

– Time-aware CF

Table 1. Design space of tested recommender engines.

Within appazaar, users’ requests for app recommen-dations have been scheduled to the di↵erent recom-mender engines randomly. This allows for counter-balanced within-subject testing of the engines. All en-gines that are utilizing collaborative filtering are imple-mented based on the Apache Mahout framework.5

It is worth mentioning that not every recommender en-gine was able to produce results for every request. Thesystem su↵ers from the cold-start problem [19], in par-ticular for the context-aware engines. When no recom-mendation could be presented to the user respectively,no user interaction with the recommendation list waspossible, and as a result no AppFunnel -related data wascollected. However, to present apps to the user regard-less, the fallback strategy for all engines is to return arandom set of applications. Since the interaction with

5http://mahout.apache.org/

such random data does not contribute to the evaluationof the engines themselves, we do not take into accountthis data for the presented evaluation framework.

App Popularity

The first recommender engine implemented in appazaaris based on apps’ popularities measured by their usage.Since installations alone do not reveal much about thequality of an application6, this engine ranks applicationsaccording to their popularity based on their global usagein terms of total number of launches. This engine isneither personalized nor context-aware. Therefore, thisengine was able to return results for all issued requestsfor recommendations, since it did not require any specificadditional data.

Usage-based collaborative filtering

The second engine implements collaborative filtering. Itutilizes users’ app usage data as implicit feedback en-coded as binary values for user/item pairs: 1 meaning auser has used an app and 0 meaning a user has never usedthe app. This engine is personalized, but not context-aware. The core of this engine was implemented using auser-based collaborative filtering algorithm. Therefore,it su↵ers from the cold-start problem and cannot rec-ommend any applications to users that are new to thesystem, or to those who did not upload app usage data.7

App-aware filtering

This recommender engine is based on the idea that peo-ple’s usage sessions between screen-on and screen-o↵have a specific contextual scope. For instance, thereis an increased likelihood that people stay with gamesonce they have used a game, or with social apps oncethey have used a social app [6]. Also, for app usageprediction the preceding app is a strong predictor [22].Therefore, this app-aware engine recommends applica-tions that are similar to those that have been used re-cently within the same session. The app-aware filteringis a context-aware but non-personalized approach. Sincethis engine is based on the apps recently used by theuser, this engine has failed whenever the user asked forrecommendations without having used an app other thanappazaar previously in the same session.6Jakob Nielsen, http://goo.gl/KR09G7Users could opt out from uploading data for privacy reasons.

Page 11: What's in the apps for context?

Findings

- Interruptions do not happen as often as expected- 8% of app use is interrupted by app switching - 3% of app use is interrupted by phone calls

- If interruptions happen, overhead may be exceedingly high

phone call app switch

Daily interruptions (% usage) 3.2 (2.2) 8.3 (5.3) per user

Regular app runtime (s) 24.8 (31.8) 18.9 (24.4)per app

Overhead duration (s) 43.2 (65.9) 34.4 (40.7)per app

mean (SD)

11

Page 12: What's in the apps for context?

Re-Design of Phone UIs

Prototype ImplementationAndroid-based implementation of approaches b) to e)Available for study in the wild and testing:

Problem and IdeaMobile phones evolved form single-purpose devices to multi-purpose devicesThe design of phone call applications did not evolve accordinglyIncoming phone calls can interrupt concurrent application useWe revise the design of call applications to allow for higher degree of multitasking

Extending Phone Call Applicationsa) Current design: Full-screen modal dialogs providing only options to accept or decline callb) Postponing calls: Additional third option besides accept/decline to allow user to return to previous applicationc) Multiplexing: Allows user to keep attention in previous application while call is pendingd) Background noti!cations: Puts incoming call into background for user to pickup call at wille) Scheduling on app completion: Wait until task is done and display call when user leaves previous app

Revisiting Phone Call Applicationsfor Multipurpose Mobile Phones

CALLER NAME CALLER NAME

CALLER NAME

Discussion, Challenges and Future WorkA model for predicting overhead would allow to determine which option (b to e) to choose for handling callsWhen user is multitasking the caller needs to be kept in line, e.g. by signalling “user is currently writing a mail”Other modalities need to be taken into account (esp. vibration and ringtone) and aligned with visual noti!cation

a) Current design b) Postponing calls c) Multiplexing d) Background noti!cation

Interruptions do not happen as often as expected3% of app use is interrupted by phone calls (external)

8% of app use is interrupted by app switching (internal)

- Extending the design space for phone call UIs- New interaction design for phone call handling- Support for better multitasking with call notifications- Application CallHeads deployed on app store (30,000 users)

12

Page 13: What's in the apps for context?

What‘s in the apps for context?

Page 14: What's in the apps for context?

tourist using city guide shopper shopping list

Page 15: What's in the apps for context?

ContextApp

Usage

Matthias Bö[email protected]://matthiasboehmer.de