## 3 Methodology
### The DACR Generator
#### 3.1.2 Content Feature Extracting Using DAE  
Typically, item \(\mathbf{v}_{i}\) is a spare vector because the number of dimensions in the vector is large. This makes similarity evaluation between two items inefficient. In this study, the denoising autoencoder (DAE) neural network [36] is used to reduce an item's vector space while maintaining its essential characteristics. The autoencoder can be divided into an encoding part and a decoding part. The encoding part encodes the input data to get the low dimensional representation in few layers. In contrast, the decoding part returns the low dimension vector respective to its original dimension vector. Mathematically, the autoencoder takes an input vector \(\mathbf{x}\in[0,1]^{d}\) and maps it to a hidden representation \(\mathbf{y}\in[0,1]^{d^{\prime}}\) through a deterministic mapping \(\mathbf{y}=f_{\theta}(\mathbf{x})=s(\mathbf{W}\mathbf{x}+\mathbf{b})\) parameterized by \(\theta=\{\mathbf{W},\mathbf{b}\}\). \(\mathbf{W}\) is a \(d\times d^{\prime}\) weight matrix, \(\mathbf{b}\) is a bias vector, and \(s\) is an activation function. The resulting latent representation \(\mathbf{y}\) is then mapped back to a reconstructed vector \(\mathbf{z}\in[0,1]^{d}\) where \(\mathbf{z}=\mathbf{g}_{\theta^{\prime}}(\mathbf{y})=s(\mathbf{W}^{\prime} \mathbf{y}+\mathbf{b}^{\prime})\) with \(\theta^{\prime}=\{\mathbf{W}^{\prime},\mathbf{b}^{\prime}\}\). The weight matrix \(\mathbf{W}^{\prime}\) of the reverse mapping may optionally be constrained by \(\mathbf{W}^{\prime}=\mathbf{W}^{T}\), in which case, the autoencoder is said to have tied weight. Each training \(\mathbf{x}^{(i)}\) is thus mapped to a corresponding \(\mathbf{y}^{(i)}\) and reconstruction \(\mathbf{z}^{(i)}\). The parameters of this model are optimized by minimizing the following average reconstruction error:  
\[\theta,\theta^{\prime}=\underset{\theta,\theta^{\prime}}{\text{argmin}}\frac {1}{n}{\sum_{i=1}^{n}L\left(\mathbf{x}^{(i)},\mathbf{z}^{(i)}\right)}= \underset{\theta,\theta^{\prime}}{\text{argmin}}\frac{1}{n}{\sum_{i=1}^{n}L \left(\mathbf{x}^{(i)},g_{\theta^{\prime}}(f_{\theta}(\mathbf{x}^{(i)})) \right)} \tag{1}\]  
where \(L\) is a loss function such as the traditional squared error \(L(\mathbf{x}_{i}\mathbf{z})=\left\|\mathbf{x}-\mathbf{z}\right\|^{2}\). This optimization can be carried out by different kinds of methods, such as stochastic gradient descent. An alternative loss, suggested by the interpretation of \(\mathbf{x}\) and \(\mathbf{z}\) as either bit vectors or vectors of bit probabilities is the reconstruction cross-entropy:  
\[LH(\mathbf{x},\mathbf{z})=-\sum_{k=1}^{d}\left[\mathbf{x}_{k}\log\mathbf{z}_ {k}+(1-\mathbf{x}_{k})\log(1-\mathbf{z}_{k})\right] \tag{2}\]  
To improve the traditional autoencoders' effectiveness, a modified autoencoder called the denoising autoencoder (DAE) is proposed [36]. Except for the encoding part and decoding part, the denoising autoencoder has a corrupted part. The first step of DAE applies stochastic mapping \(\widetilde{\mathbf{x}}\sim q_{D}(\widetilde{\mathbf{x}}\big{|}\mathbf{x})\) to randomly corrupt the input data \(\mathbf{x}\). The random corruption will force the partial input data to change to 0, and other values will remain. These random 0 values, which are destroyed randomly, will train the denoising autoencoder to restore these damaged data. Finally, it will calculate the error between the restored data and the original data. Figure 2 visually shows the process of denoising autoencoder. Note that \(\mathbf{x}\) is the input data and will be converted to \(\widetilde{\mathbf{x}}\) by partial corruption. The sameas the traditional autoencoder, the corrupted data \(\mathbf{\tilde{x}}\) will reduce the dimension and map it to the hidden layer \(\mathbf{y}=f_{\theta}(\mathbf{\tilde{x}})=s(\mathbf{W\tilde{x}}+\mathbf{b})\). Next, it reconstructs the \(\mathbf{z}=g_{\theta^{\prime}}(\mathbf{y})=s(\mathbf{W}^{\prime}\mathbf{y}+ \mathbf{b}^{\prime})\) back to the original dimension.