## 3 Previous Work  
In [38], a number of problems regarding similarity measurement method using the rating information were noticed. Firstly, the rating matrix in practice is extremely sparse (for example, 99.47% entries of this matrix in the MovieLens 20 M dataset are missing), which makes it hard to evaluate the relevance between two items that have many ratings but only share a few common users. Secondly, calculating the similarity score between two items is a time-consuming task due to a large number of users (usually in the order of millions). To address these problems, a novel similarity measure was proposed using Genome Tags instead of rating information. Specifically, each movie is characterized by a genome score vector \(g=\{g_{1},g_{2},\ldots,g_{1128}\}\) which encodes how strong a movie exhibits particular properties represented by 1128 tags [22], and the similarity score \(s_{ij}\) between movies \(i\) and \(j\) is calculated as follows.  
\[s_{g_{i},g_{j}}^{Cosename}=\frac{\sum_{k=1}^{G}g_{ik}\times g_{jk}}{\sqrt{\sum _{k=1}^{G}g_{ik}^{2}}\times\sqrt{\sum_{k=1}^{G}g_{jk}^{2}}} \tag{6}\]  
or  
\[s_{g_{i},g_{j}}^{PCGenome}=\frac{\sum_{k=1}^{G}(g_{ik}-\bar{g}_{i})\times(g_{ jk}-\bar{g}_{j})}{\sqrt{\sum_{k=1}^{G}(g_{ik}-\bar{g}_{i})^{2}}\times\sqrt{ \sum_{k=1}^{G}(g_{jk}-\bar{g}_{j})^{2}}} \tag{7}\]  
where \(\bar{g}_{i}\) and \(\bar{g}_{j}\) are the mean genome scores of vectors \(g_{i}\) and \(g_{j}\), respectively; and \(G=1128\) is the length of genome vectors. Experiments conducted on the preprocessed MovieLens 20 M dataset (keeping only movies with Tag Genome) showed that the item-oriented CF models based on similarity measures Cosgenome and PCCgenome provide accuracy equivalent to the state-of-the-art CF models using rating information whilst performing at least 2 times faster.  
In [39], we introduced a natural language processing (NLP)-based cleaning process to eliminate the redundancy from the original 1128 genome tags to generate a more accurate description for each movie with 1044 new tags. While this process slightly improved the accuracy of the systems, the number of new tags is still quite large (7% smaller to original 1128 tags) and other groups of related tags which cannot be combined using NLP become  
Figure 1: Illustration of a vanilla 1-layer AE. The input and output layers have the same number of neurons while the hidden layer is smaller to serve the idea of mapping original data from a high dimension space into a lower one.  
hidden. Hence, a 3-layer AE was implemented to compress cleaned tags into a vector of 600 elements in order to discover the latent characteristics inside the genome tags and regenerate a more powerful representation of each movie. By using new feature vectors for every movie, kNN-ContentAE model can achieve at least 2.56% lower RMSE when compared to its counterparts while the prediction time is still reasonable.  
Additionally, a novel technique integrating the matrix factorization output as the baseline estimate of user rating into kNNBaseline model was described as follows.  
\[\hat{r}_{ui}^{kNN-Content}=\hat{r}_{ui}+\frac{\sum_{j\in\mathcal{S}(i;u)}s_{ij }\big{(}r_{uj}-\hat{r}_{uj}\big{)}}{\sum_{j\in\mathcal{S}^{k}(i;u)}s_{ij}} \tag{8}\]  
where \(\hat{r}_{ui}\) and \(\hat{r}_{uj}\) are the predicted ratings produced by SVD/SVD++ model while \(s_{ij}\) is calculated by kNN-ContentAE model. This created hybrid content-based and CF models, kNN-ContentAE-SVD and kNN-ContentAE-SVD++, which take the advantages of both local level interaction of neighborhood-based method and global level characteristics explored by model-based method to provide more precise recommendations.