## 4 Methodology
### Feature Extractor  
We first introduce the feature extractor, which is the input layer of our model. The input layer consists of two independent feature extractors that process the unlabeled grid \(G_{U}\) and labeled grids \(G_{S}\) separately due to the dimensional difference between the input features. Moreover, the input features are composed of non-sequential data and sequential data. Thus, we extract their embedding vectors separately in different ways.  
Since the input features, air quality index \(X^{A}\) and meteorological features \(X^{M}\) are long-term time-related, we can use recurrent neural network (RNN) to encode each of the sequential features. Although RNN is designed to deal with time series data, this technique suffers from a vanishing or exploding gradient problem. To deal with the flaws, long short-term memory (LSTM) is proposed in [23]. In Equation (2), the first two gates control the proportion of previous state \(C_{(t-1)}\) and generate the current state \(C_{t}\). Then, the output gate is used to control the amount of cell states to generate the current output value \(h_{t}\).  
\[\begin{split} i_{t}&=\sigma(W_{i}[X_{t},h_{t-1}]+b_{ i}),\\ f_{t}&=\sigma(W_{f}[X_{t},h_{t-1}]+b_{f}),\\ o_{t}&=\sigma(W_{o}[X_{t},h_{t-1}]+b_{o}),\\ c_{t}&=f_{t}\odot c_{t-1}+i_{t}\odot tanh(W_{c}[X_{ t},h_{t-1}]+b_{c}),\\ h_{t}&=o_{t}\odot tanh(c_{t}),\end{split} \tag{2}\]  
where \(W_{i}\), \(W_{f}\), \(W_{o}\), and \(W_{c}\) are the weights for concatenated input vectors at time step t for each gate, \(i_{t}\) is the input gate's activation vector, \(f_{t}\) is the forget gate's activation vector, \(o_{t}\) is the output gate's activation vector, and \(b_{i}\), \(b_{f}\), \(b_{o}\), and \(b_{c}\) are the biases vectors. To make the model nonlinear, \(\sigma\) and \(tanh\) are applied as activation functions and \(\odot\) is the element-wise multiplication of the matrix.  
Other static features such as \(X^{P}\), \(X^{R}\), \(X^{L}\) and \(X^{D}\) are non-dynamic related. We employ a single dense layer (the first dense layer in Figure 1a) to extract and learn the interaction between static features.  
Then we calculate the static embedding in Equation (3):  
\[\begin{split} e_{U}^{1}&=ReLU(W_{U}^{1}(X_{U}^{P} \oplus X_{U}^{R}\oplus X_{U}^{L})+b_{U}^{1}),\\ e_{Sn}^{1}&=ReLU(W_{S}^{1}(X_{Sn}^{P}\oplus X_{ Sn}^{R}\oplus X_{Sn}^{L}\oplus X_{Sn}^{D})+b_{S}^{1}),\text{for }n=1,\ldots,k\end{split} \tag{3}\]  
where \(e_{U}^{1}\) and \(e_{Sn}^{1}\) are the output of the first dense layer of unlabeled grids and labeled grids, \(\oplus\) denotes the operation of feature concatenation, and rectified linear unit (ReLU) is our activation function. After extracting both static features and sequential features, we aim to capture the correlation between them. We further construct another dense layer on top of LSTM and the first dense layer, in order to obtain the feature interaction and calculate the embedding feature of each grid. We can have an interactive dense layer in Equation (4):  
\[\begin{split} e_{U}^{2}&=ReLU(W_{U}^{2}(e_{U}^{1} \oplus h_{U}^{t})+b_{U}^{2}),\\ e_{Sn}^{2}&=ReLU(W_{S}^{2}(e_{Sn}^{1}\oplus h_{Sn }^{t})+b_{S}^{2}),\text{for }n=1,\ldots,k\end{split} \tag{4}\]  
in which \(e_{U}^{2}\) and \(e_{Sn}^{2}\) are the outputs of the feature extractor for unlabeled grids and labeled grids, and \(h^{t}\) is the last hidden state of LSTM. In Equation (4), we use the same weight and bias in the feature extractor for all \(k\) labeled grids. Since the labeled grids are the same, learning shared weight is a method to reduce duplicated computation and parameter numbers.