## 4 The Proposed Model
### The Feature Extraction Algorithm  
In our proposed model, the component responsible for extracting and representing features is crucial. We generate a variety of features to represent users and items by utilizing information from four distinct sources: the utility matrix, user reviews, item descriptions, and item categories. The details of our approach are outlined below:  
We use the matrix factorization technique to extract latent features of users and items from the given utility matrix, which we refer to as Rating-Feature. This technique involves decomposing the utility matrix of size \((m\times n)\) containing ratings for \(m\) users and \(n\) items into two lower rank matrices. Here, \(f\) refers to the number of latent factors or features that represent the users and items in the decomposed matrices. To perform factorization, we select the number of latent factors and use the Alternating Least Square algorithm. The user and item matrices are initialized with random values and iteratively optimized to minimize the difference between predicted and actual ratings. This process alternates between fixing the user matrix and updating the item matrix until convergence, resulting in two lower-dimension matrices of \(m\times f\) and \(n\times f\) dimensions for the user and item matrices, respectively.  
1. The user features are represented by a matrix of size \((m\times f)\), where each row corresponds to a specific user and contains a vector of \(f\) features. This matrix is considered as a view of the user, meaning that it represents the user's characteristics;
2. The item features are represented by a matrix of size \((n\times f)\), where each item is represented by a vector of \(f\) features. Each row in this matrix corresponds to a specific item and is considered a view of that item.  
For the Review-Feature, we employ a pre-trained BERT model to generate a vector representation of text reviews written by users for items in the (user \(u\), item \(i\)) pair. This vector representation is considered a view of user \(u\).  
For the Description-Feature, we utilize a pre-trained BERT model to generate a vector representation of the text description provided for item \(i\). This vector representation is considered a view for item \(i\).  
The Category-Feature involves using the list of categories to which item \(i\) belongs to generate a vector representation. TF-IDF measures the significance of words in a document (which in our study is a list of item categories) by considering their frequency in the document and the frequency of the word in the corpus. Since BERT is better suited for extracting features from complete sentences, we use TF-IDF instead of BERT to convert these category features into a vector representation. This vector representation is also considered a view for item \(i\).  
Some of the feature types that will be extracted are denoted as the following:  
* Rating-Feature, which pertains to the user \(u\) and item \(i\), and is represented as Rat(\(u\)) and Rat(\(i\)) respectively;
* Review-Feature, which pertains to the user \(u\) and is represented as Rev(\(u\));
* Description-Feature, which pertains to the item \(i\) and is represented as Des(\(i\));
* Category-Feature, which pertains to the item \(i\) and is represented as Cat(\(i\)).