• 沒有找到結果。

Implicit Feature Extraction

The implicit feature formulates the usage transitions among Apps in a usage session. As mentioned in [73], users use a series of Apps, called a usage session, to complete a specific task. For example, one user could use ”Maps” when travelling to a sightseeing spot, then use camera to take photos, and upload

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4

0 5 10 15 20 25 30

Probability

Time(Minute) Transition Interval

Figure 2.3: The PDF of the duration of two consecutive App launches.

those photos to Facebook. Thus, the series of using ”Maps”, ”Camera” and ”Facebook” is called a usage session, denoted as ”Map”−→”Camera”δ1 −→”Facebook”, where δδ2 1and δ2represent the transition intervals.

The implicit feature of ”Facebook” in this usage session is thus < pM F(δ1), pCF(δ1+ δ2), pF F(∞) >, where pM F(·), pCF(·), and pF F(·) are probability models which represent the probability of using ”Maps”,

”Camera” and ”Facebook” respectively before using ”Facebook” with the transition interval as the ran-dom variable. Note that because there is no ”Facebook” to ”Facebook” in this usage session, the transition interval is thus set to ∞ and then the probability would be 0.

The probability model could be estimated from a user’s historical usage trace. In this section, we introduce an Apps Usage Graph (AUG) which models the transition probability among Apps for a single user. For training purposes, the implicit features for the training usage sessions are derived by traversing the AUG. However, for testing purposes, since we do not know which is the App to be invoked, the derivation of the implicit feature for the training usage session cannot be utilized directly. Therefore, an iterative refinement algorithm is proposed to estimate both the next App and its implicit feature simultaneously. The following paragraphs will illustrate the details of the AUG construction and the implicit feature derivation for both the training and testing usage sessions.

Apps Usage Graph (AUG)

For each user, we construct an Apps Usage Graph (AUG) to describe the transition probability among Apps. An AUG is a directed graph where each node is an App, the direction of an edge between two nodes represents the usage order, and the weight on each edge is a probability distribution of the interval between two Apps. Since two consecutive launches could be viewed as a Poisson arrival process, we can formulate the intervals between two launches as an exponential distribution. For example, Figure 2.3 shows the probability density function (PDF) of two consecutive launches which exactly fulfils the exponential distribution where most transitions (e.g., 0.45%) are within 1 minute.

Here, Equation 2.1 formulates the exponential density function of the launch interval being in [x, x+1).

The parameter α = ˆp(0) is derived by assigning x = 0 in Equation 2.1, and could be calculated by p(0), the real probability derived from the training data. Then, β is solved by minimizing the difference between the estimated probability ˆp(i) and the real probability p(i) as shown in Equation 2.2 for every

1

Figure 2.4: An example of the Apps Usage Graph (AUG).

interval i.

Empirically, we do not need to fit every interval when obtaining the exponential model. For example, in Figure 2.3, only the first 5 intervals already cover more than 75% of the training data. Therefore, we can iteratively add one interval until the data coverage reaches a given threshold. We will discuss the impact of the data coverage threshold in the experiments section.

p(x) = α expˆ −βx (2.1)

For example, Figure 2.4 shows an AUG with three Apps. From Figure 2.4, the probability of two consecutive usages of App1with an interval of 0.3 minutes (i.e., App1 0.3

−−→ App1) is 0.4, and App1 1.5

−−→ App2

is 0.2. Although AUG only takes two consecutive Apps into account, such as p12and p23, the probability of p13, could be calculated by p12× p23.

Implicit Features for Training

For each training case, the implicit features are derived by looking up the AUG. Suppose the currently used App (i.e., class label) is Appt, the implicit feature is thus, < p1t, p2t, ..., pnt>, where pitrepresents the probability of transiting from Appi to any random Apps and then to Appt. The probability of p′(s)it is defined as in Equation 2.3 which is the summation of every probability from Appito Appt. Note that we use a superscript, s, to indicate how many Apps are between Appiand Appt, and Appmkis the k-th App after Appi. Once we derive the implicit feature in a reverse time order, the sub-problem of estimating p′(s−k)mk,t is already solved. The calculation of the implicit feature for Appi stops when the transition probability falls below a given threshold, mintp. In our collected dataset, the transition probability falls to 0.1% when we look backward to more than 5 Apps, which is the default parameter for mintp. Algorithm 1 depicts the derivation of the implicit feature for a training case with Apptas its class label.

App1 App2 App3

Figure 2.5: Steps of obtaining the implicit feature of App3 in the training case, · · · → App1 1

−→ App2 0.5

Algorithm 1: Deriving the implicit feature of Apptfor training.

Input: Appt: a training App

Output: IFt: the implicit feature of Appt

foreach Appi prior than Appt do IFt[i] ← IFt[i] +pit(δˆit) ;

foreach Appm between Appi and Apptdo IFt[i] ← IFt[i] +pim(δˆjm) × IFm[t] ; We first estimate p′(0)13 from App1

−−→ App0.5 3, then p′(1)23 from App2

Since the App to be predicted for current invocation, Appt, is unknown for testing, the derivation process of implicit features for training does not work. We propose an iterative refinement algorithm to estimate both Appt and its implicit feature, IFt, for testing. Suppose θi is the probability of Appt = Appi, the implicit feature IFtis calculated as in Equation 2.4 which is a linear combination of the IF of each Appi. In addition, M = [IF1T, IF2T, . . . ] represents the transition matrix among Apps, where IF1T, IF2T, . . . are column vectors. Then, the value of θi could be updated by Equation 2.5, which is the probability of staying in Appi after one-step walking along the transition matrix M . We keep updating θi and IFt

iteratively, until Appt is fixed to one specific App. In our experiments, the iterative refinement process converges in about 3 iterations. Algorithm 2 depicts the derivation of the implicit feature for testing.

IFt= X

Algorithm 2: Deriving the implicit feature for testing.

Input: t: a testing case

Output: IFt: the implicit feature at t while iter < threshold do

foreach θj do

IFt← IFt+ θi× IFi ; end

foreach Appi prior than time t do θi← θi+ IFt[m] × M [m][i] ; initialize θi as < 1/3, 1/3, 1/3 >, which gives equal probability to each App, and the transition matrix

M =

, which is derived by calculating the IF of each App shown in Equation 2.3.

Note that the last row is all zero because there is no App3 transiting to any other Apps. Then, the implicit feature is < 0.37, 0.04, 0 > in the first iteration. Next, θi is updated to < 0.18, 0.22, 0.01 >, and normalized as < 0.44, 0.54, 0.02 > according to one-step walk in M with the calculated implicit feature as the prior probability. Then, we can obtain the implicit feature as < 0.53, 0.01, 0 > in the second iteration.

相關文件