# A Deep Learning-Based Course Recommender System for Sustainable Development in Education
## 3 DECOR: A Deep Learning-Based Course Recommender System
### UBE Module  
The UBE module is an FFNN utilized to capture high-level user behavior features. The original user behavior feature vectors are highly sparse and high-dimensional, and they contain categorical and continuous values. Therefore, an input vector is converted to a low-dimensional, and dense real-valued vector called an embedding vector through the embedding layer and fed into the neural network's hidden layers in a forward pass.  
Figure 1: Overview of the proposed DECOR model framework.  
This study follows the a common strategy from a previous study [39; 56] that integrates all user behavior feature embeddings into the UBE module for high-level feature learning to enhance the model's recommendation performance. Accordingly, we first employ one-hot encoding when has given a user \(u\), their job \(j\), their certificate \(c\), and their language skill \(l\). Let \(\mathrm{v}_{u}^{U}\), \(\mathrm{v}_{j}^{U}\), \(\mathrm{v}_{c}^{C}\), and \(\mathrm{v}_{l}^{L}\) be the feature vector for user \(u\), job \(j\), certificate \(c\), and language skill \(l\), respectively. We can obtain user behavior feature embeddings \(\mathrm{p}_{u}\), \(\mathrm{q}_{j}\), \(\mathrm{s}_{c}\), and \(\mathrm{z}_{l}\) as follows:  
\[\mathrm{p}_{u} =\mathrm{P}^{T}\mathrm{v}_{u}^{U}, \tag{2}\] \[\mathrm{q}_{j} =\mathrm{Q}^{T}\mathrm{v}_{j}^{L},\] (3) \[\mathrm{s}_{c} =\mathrm{S}^{T}\mathrm{v}_{c}^{C},\] (4) \[\mathrm{z}_{l} =Z^{T}\mathrm{v}_{l}^{L}, \tag{5}\]  
where \(\mathrm{P}\in R^{|U|\times D},\mathrm{Q}\in R^{|I|\times D}\), \(\mathrm{S}\in R^{|C|\times D}\) and \(\mathrm{Z}\in R^{|L|\times D}\) indicate the embedding matrix for user, job, certificate, and language skill, respectively; \(D\), \(|U|\), \(|J|\), \(|C|\), and \(|L|\) denote embedding size, the numbers of user, numbers of job, numbers of certificate, and numbers of language skill, respectively. Then, these latent vector representations are concatenated and fed into the hidden layer of the UBE module; this process is defined as:  
\[\kappa^{(0)}=\phi_{c}(\mathrm{p}_{u},\ \mathrm{q}_{i},\ \mathrm{s}_{c},\ \mathrm{z}_{l})= \left[\begin{array}{c}\mathrm{p}_{u}\\ \mathrm{q}_{i}\\ \mathrm{s}_{c}\\ \mathrm{z}_{l}\end{array}\right], \tag{6}\]  
where \(\kappa^{(0)}\) is the concatenated latent vector of user \(u\), job \(j\), certificate \(c\), and language skill \(l\). We utilize concatenation because it can minimize the loss of information. Then, \(\kappa^{(o)}\) is fed into the hidden layer, and this process is defined as:  
\[\begin{split}\kappa^{(1)}=\sigma_{1}(\mathrm{W}_{UBE}^{(1)} \kappa^{(0)}+\mathrm{b}_{UBE}^{(1)})\\ \vdots\\ \kappa^{(\ell)}=\sigma_{\ell}(\mathrm{W}_{UBE}^{(\ell)}\kappa^{(\ell-1)}+ \mathrm{b}_{UBE}^{(\ell)})\end{split} \tag{7}\]  
where \(\ell\) is the layer number; \(\sigma\) is an activation function; and \(\kappa^{(\ell)}\), \(\mathrm{W}_{UBE}^{(\ell)}\) and \(\mathrm{b}_{UBE}^{(\ell)}\) indicate the output, model weight, and bias of the \(\ell\)-th layer, respectively. The activation function utilizes Rectified Linear Unit (ReLU) activation functions in the first two hidden layers. The final hidden layer utilizes a tanh activation function that is consistent with the course attribute latent feature layer. The learned features in the UBE module represent the latent representations of user behaviors. The ReLU and \(tanh\) activation functions are defined as:  
\[ReLU(x)=max(0,x), \tag{8}\]  
\[tanh=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}, \tag{9}\]