# A Hybrid User Mobility Prediction Approach for Handover Management in Mobile Networks
## 3 The Proposed Predictive Handover Management Approach
### User Mobility Prediction Objective  
Given the movement history of a user for the previous \(n\) time steps (i.e., user past trajectory), we want to predict the user's future trajectory for \(n\) time steps ahead. We define the trajectory for user \(i\) as a sequence of time-stamped points, \(L_{useri}=(l_{t-n},...,l_{t-2},l_{t-1})\), where \(l_{t}=(x_{t},y_{t},z_{t})\) contains information on the geographical location of the user (i.e., longitude, latitude, and elevation). First, we feed the user past trajectories into a vector autoregression model to obtain useful insights on the user mobility behaviour. Given \(L_{t}=(l_{t-n},...,l_{t-2},l_{t-1})\) as a user trajectory, in which \(L_{t}\) is a \((v\times 1)\) vector with \(v\) variables, the VAR(n) model can be expressed as  
\[l_{t}=a+C^{1}l_{t-1}+C^{2}l_{t-2}+...+C^{n}l_{t-n}+\epsilon_{t} \tag{1}\]  
where \(C^{1},C^{2},...,C^{n}\) denote coefficient matrices that are square matrices of order \(v\) and \(a\) is an intercept vector. \(\epsilon_{t}\) is a white noise vector with zero mean, and it is assumed that there is no correlation between noises in the system across time. Each variable is obtained by the lagged values of all of the variables. In another words, to predict the value of a variable at the current time step, we consider the impact of all of the other variables from the past time steps. In our model, we considered three variables (i.e., \(v=3\)) as defined earlier for the user trajectory \(l_{t}=(x_{t},y_{t},z_{t})\), and the model can be expressed as  
\[ \begin{pmatrix}x_{t}\\ y_{t}\\ z_{t}\end{pmatrix} = \begin{pmatrix}a_{1}\\ a_{2}\\ a_{3}\end{pmatrix} + \begin{pmatrix}c_{11}^{1}&c_{12}^{1}&c_{13}^{1}\\ c_{21}^{2}&c_{22}^{2}&c_{23}^{2}\\ c_{31}^{1}&c_{32}^{1}&c_{33}^{1}\end{pmatrix}\begin{pmatrix}x_{t-1}\\ y_{t-1}\\ z_{t-1}\end{pmatrix} +...+ \begin{pmatrix}c_{11}^{n}&c_{12}^{n}&c_{13}^{n}\\ c_{21}^{n}&c_{22}^{n}&c_{23}^{n}\end{pmatrix}\begin{pmatrix}x_{t-n}\\ y_{t-n}\\ z_{t-n}\end{pmatrix} + \begin{pmatrix}\epsilon_{1t}\\ \epsilon_{2t}\\ \epsilon_{3t}\end{pmatrix}  \tag{2}\]  
Figure 1: The proposed handover management approach. Then, we have  
\[x_{t} =a_{1}+c_{11}^{1}x_{t-1}+c_{12}^{1}y_{t-1}+c_{13}^{1}z_{t-1}+...+c_{1 1}^{n}x_{t-n}+c_{12}^{n}y_{t-n}+c_{13}^{n}z_{t-n}+\epsilon_{1t}\] \[y_{t} =a_{2}+c_{21}^{1}x_{t-1}+c_{22}^{1}y_{t-1}+c_{23}^{1}z_{t-1}+...+c_{2 1}^{n}x_{t-n}+c_{22}^{n}y_{t-n}+c_{23}^{n}z_{t-n}+\epsilon_{1t}\] \[z_{t} =a_{2}+c_{31}^{1}x_{t-1}+c_{32}^{1}y_{t-1}+c_{33}^{1}z_{t-1}+...+c_ {31}^{n}x_{t-n}+c_{32}^{n}y_{t-n}+c_{33}^{n}z_{t-n}+\epsilon_{1t} \tag{3}\]  
Since the VAR model is of order \(n\), each variable is calculated by the \(n\) lagged values of all three variables in the model from the previous time steps. For example, \(c_{11}^{1}\) and \(c_{12}^{1}\) determine the impacts of \(x_{t-1}\) and \(y_{t-1}\), respectively, when calculating \(x_{t}\). This gives us a better understanding of input sample correlations. For the next step, we feed the obtained results into a deep GRU-based neural network. For each time step, we consider the current location and the previous state to obtain the next state as the output. The GRU model has two main parts that deal with keeping or deleting user data from the past, namely the update gate and the reset gate. Using these two gates, the GRU model can solve the vanishing/exploding issue of RNNs and can make a long-term prediction [7]. Table 1 presents the model parameters. The update gate \(u(t)\) can be obtained by  
\[u(t)=\sigma(b_{u}+U_{u}L(t)+W_{u}h(t-1)) \tag{4}\]  
In (4), user trajectory (\(L(t)\)) and the information from the previous step (\(h(t-1)\)) are multiplied by their weights (the weights control the impact of each value on the final decision). Then, the sum of this multiplication with the update bias value goes through a sigmoid function (\(\sigma\)). The output is a value between 0 and 1. The update gate decides which part of the user's past movement history should be kept for analysis.