# Unsupervised Detection of Changes in Usage-Phases of a Mobile App
## 3 Materials and Methods
### Basic Change Detection Algorithm  
Algorithm 1 provides the basic working of the proposed methods. In essence, a set of usage pages, \(\mathcal{U}\), is constructed by computing Equation (1) on \(\mathcal{D}=\{y_{1},...y_{n}\}\). If the computed value is larger than a threshold, \(\tau\), it is regarded that a change is detected. However, there exist variations of Algorithm 1 according to the employed methods and the selection of the threshold, \(\tau\). The threshold, \(\tau\), is determined by three methods: \(\frac{Min+Max}{2}\), the mean, and the empirical threshold. In order to compute \(\frac{Min+Max}{2}\), we observe differences between two consecutive screenshots in the current usage-phase, \(\mathcal{U}_{t}\). \"Min\" and \"Max\" are the minimum and maximum difference in \(\mathcal{U}_{t}\), respectively. Thus, in each usage-phase, \(\mathcal{U}_{t}\), \(\tau\) is adjusted dynamically. The \"mean\" is computed by firstly observing differences between consecutive screenshots in a mobile app, then computing the averaged differences. As a result, each app has a distinct \"mean\" value. In the case of empirical threshold, we fix \(\tau\) by an empirically-determined number. There are also variations on the computation of Equation (1). With the SIFT based method (Section 3.3), Equation (2) is utilized for computing Equation (1). For graph based methods (Sections 3.4.1 and 3.4.2), Algorithm 1 becomes more complicated. Firstly, the input, \(\mathcal{D}=\{y_{1},...y_{n}\}\), is converted into a set of graphs, \(\mathcal{G}=\{g_{1},...g_{n}\}\) (for more details, refer to Section 3.4). Then for graph entropy based detection (Section 3.4.1), the conditional graph entropy (Equation (4)) between two \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**4 shared** & **alba** & **albamon** & **amazon** & **beadal** & **cars** & **cbs** & **cgv** \\
231 & 92 & 176 & 201 & 135 & 294 & 252 & 154 \\ (34/6.8) & (8/11.5) & (20/8.8) & (35/5.7) & (8/16.9) & (42/7.0) & (18/14.0) & (36/4.3) \\ \hline
**coupang** & **deep booster** & **door dash** & **drink water reminder** & **ebay** & **emart** & **espn** & **facebook** \\
133 & 433 & 580 & 217 & 143 & 158 & 97 & 225 \\ (19/7.0) & (55/7.9) & (187/3.1) & (22/9.9) & (24/6.0) & (13/12.2) & (15/6.5) & (27/8.3) \\ \hline
**fish** & **google** & **groupon** & **hawhae** & **home\&** **kakao** & **kazai** & **little** \\
**brain** & **translator** & **groupon** & **hawhae** & **shopping** & **bus** & **kazai** & **little** \\
310 & 189 & 335 & 196 & 177 & 279 & 212 & 193 \\ (40/7.8) & (32/5.9) & (47/7.1) & (20/9.8) & (46/3.8) & (59/4.7) & (40/5.3) & (48/4.0) \\ \hline
**mcdonalds** & **melon** & **messenger** & **my fitness** & **naverboton** & **news** & **offerup** & **papago** \\
373 & 201 & 388 & 387 & 150 & 273 & 365 & 173 \\ (69/5.4) & (11/18.3) & (53/7.3) & (49/7.9) & (17/8.8) & (25/10.9) & (32/11.4) & (27/6.4) \\ \hline
**pininterest** & **pluto tv** & **poshmark** & **roku** & **shareit** & **smart** & **spotify** & **the weather** \\
394 & 299 & 348 & 333 & 458 & 263 & 263 & 195 \\ (49/8.0) & (32/9.3) & (74/4.7) & (22/15.1) & (63/7.3) & (28/9.4) & (57/4.6) & (18/10.8) \\ \hline
**today** & **triple** & **tubi** & **wayfair** & **wish** & **woman** & **yanolja** & **yelp** \\
227 & 237 & 227 & 549 & 393 & 359 & 258 & 411 \\ (31/7.3) & (72/3.3) & (14/16.2) & (96/5.7) & (68/5.8) & (56/6.4) & (63/4.1) & (76/5.4) \\ \hline
**yeogioteae** & **zumo** & **The mean of the manually-labeled** & **usage-phases** & & & & \\
208 & 128 & & 265.44 & & & & \\ (44/4.7) & (31/4.1) & & 265.44 & & & & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: A list of tested apps and the number of usage-phase screenshots (numbers in parentheses mean the number of usage-phases manually determined/the averaged number of GUI screenshots per usage-phase). consecutive graphs \(g_{i}\) and \(g_{i+1}\) is utilized as a measure of difference between two corresponding GUI screenshots \(y_{i}\) and \(y_{i+1}\).