# A BiGRU Model Based on the DBO Algorithm for Cloud-Edge Communication Networks
## 3 Short-Term Traffic Load Prediction Based on DBO-BiGRU
### DBO-BiGRU Model
#### 3.2.1 Structural Design of the BiGRU Prediction Model  
Before describing the structure of the model design, two main points need to be elaborated: (i) the number of stacked layers of the BiGRU structure and (ii) measures to reduce overfitting. Compared to the single-layer BiGRU structure, the multi-layer BiGRU architecture significantly enhances the model's ability to capture both simple and complex temporal dependencies in the data, improving its learning and memory capabilities. While a single-layer BiGRU can handle basic temporal patterns, it often struggles with deeper, more abstract temporal relationships, limiting its prediction accuracy in more complex tasks such as traffic load prediction. However, adding more layers introduces increased computational complexity--specifically, the training time and memory usage grow exponentially with the number of layers. This trade-off between performance gains and resource consumption becomes critical when deploying such models in real-world applications. To achieve a balance between prediction accuracy and computational efficiency, it is common practice to limit the BiGRU structure to a maximum of three layers. Based on these considerations, this paper adopts a two-layer BiGRU model, which provides sufficient abstraction while maintaining manageable computational demands for training on communication link traffic load data. In order to reduce the risk of overfitting, this paper chooses to introduce a dropout layer into the model. The dropout layer is able to deactivate some neurons in the neural network according to a specific probability, thus enhancing the generalisation ability of the model. Combining the above design points, the structure of the BiGRU traffic prediction model designed in this paper is shown in Figure 4.  
In the content of the input layer demonstrated in Figure 4, \(ln_{1},ln_{2},ln_{3},\ldots,ln_{t}\) represents the input data of a certain data window after the raw information of the cumulative flow size in each historical time period has been preprocessed.The dimensions of the input data of the BiGRU computation component are 3, which consists of the sequence length (\(seq_{len}\)), the batch size (\(batch_{size}\)), and the dimensions of the input feature set (\(input_{size}\)). Since only time-series features are analysed in the preset scenario of this paper, the value of \(input_{size}\) is 1, and the specification of the input data can be expressed as \(seq_{len}\times batch_{size}\times 1\). Sequence length is determined by the width of the observation window of the data \(window_{size}\), and therefore the width of the observation window needs to be set reasonably in order to ensure the integrity of the data. Batch size refers to the size of the data volume integrated during batch processing, and batch training is generally used for models with large data volumes to prevent their memory leakage. In the hidden layer content, \(h_{1}^{1},0,h_{1}^{1},h_{2}^{1},\ldots,h_{t}^{1}\) denotes the hidden layer state of the BiGRU in layer 1, and \(h_{0}^{2},h_{1}^{2},h_{2}^{2},\ldots,h_{t}^{2}\) denotes the hidden layer state of the BiGRU in layer 2. In this paper, a dropout layer is added between the two BiGRU layers so that the neurons will fail at a certain rate during each iteration. This is done to reduce the model's over-dependence on the features extracted by a specific neuron, thus avoiding the phenomenon of overfitting. Therefore, a reasonable dropout rate needs to be set. In the content of the output layer, \(Out_{1},Out_{2},Out_{3},\ldots,Out_{t}\) denotes the output data of the neural network, and only the last output is taken for traffic prediction. the output data dimension of the BiGRU computational component is also 3, which consists of the sequence length, the batch size, and the total number of neurons in the hidden layer (\(hidden_{size}\times num_{directions}\)). \(hidden_{size}\) denotes the size of the hidden layer dimension, and \(num_{directions}\) denotes the number of feature-passing directions.