# TD-DNN: A Time Decay-Based Deep Neural Network for Recommendation System
## 4 Proposed Methodology
### Data Preprocessing Phase
#### 4.1.1 Detecting and Correcting the Noisy Ratings
\begin{table}
\begin{tabular}{l l} \hline \hline
**Users Sets** & \\ \hline If r (user, item) \textless{T}^{1}\_u & add rating into Weak\_user set \\ If r (user, item) \textgreater{T}^{1}\_u and r (user, item) \textless{T}^{2}\_u & add rating into Average\_user set \\ If r (user, item) \textgreater{T}^{2}\_u & add rating to the Strong\_user set \\ \hline
**Item Sets** & \\ \hline If r (user, item) \textless{T}^{1}\_i & add rating into Weak\_item set \\ If r (user, item) \textgreater{T}^{1}\_i and r (user, item) \textless{T}^{2}\_i & add rating into Average\_item set \\ If r (user, item) \textgreater{T}^{2}\_i & add rating into Strong\_item set \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Categorized Users and Items into Sets. \begin{table}
\begin{tabular}{l l} \hline \hline
**Thresholds** & **Formula** \\ \hline \(\mathrm{T}^{1}\_\text{u}\) or \(\mathrm{T}^{1}\) i or \(\mathrm{T}^{1}\) & \(\mathrm{R}^{\mathrm{min}}\) + round (\(1/3\times(\mathrm{R}^{\mathrm{max}}-\mathrm{R}^{\mathrm{min}})\) \\ \(\mathrm{T}^{2}\_\text{u}\), or \(\mathrm{T}^{2}\_\text{i}\) or \(\mathrm{T}^{2}\) & \(\mathrm{R}^{\mathrm{max}}-\) round (\(1/3\times(\mathrm{R}^{\mathrm{max}}-\mathrm{R}^{\mathrm{min}})\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Thresholds. \begin{table}
\begin{tabular}{l l l} \hline \hline
**User Classes** & \\ \hline If \(\mid\)Weak\_user\(\mid\)\(\geq\)\(\mid\)Strong\_user\(\mid\) + \(\mid\)Average\_user\(\mid\) & User is Critical \\ If \(\mid\)Average\_user\(\mid\)\(\geq\)\(\mid\)Strong\_user\(\mid\) + \(\mid\)Weak\_user\(\mid\) & User is Average \\ If \(\mid\)Strong\_user\(\mid\)\(\geq\)\(\mid\)Average\_user\(\mid\) + \(\mid\)Weak\_user\(\mid\) & User is Benevolent \\ \hline
**Item Classes** & \\ \hline If \(\mid\)Weak\_item\(\mid\)\(\geq\)\(\mid\)Strong\_item\(\mid\) + \(\mid\)Average\_item\(\mid\) & Item is Weakly recommended \\ If \(\mid\)Average\_item\(\mid\)\(\geq\)\(\mid\)Strong\_item\(\mid\) + \(\mid\)Weak\_item\(\mid\) & Item is Averagely recommended \\ If \(\mid\)Strong\_item\(\mid\)\(\geq\)\(\mid\)Average\_item\(\mid\) + \(\mid\)Weak\_item\(\mid\) & Item is Strongly recommended \\ \hline
**Rating Classes** & \\ \hline If r (user, item) \textless{T}^{1} & Rating is Weak \\ If \(\mathrm{T}^{1}\leq\mathrm{r}\) (user, item) \textless{T}^{2} & Rating is Average \\ If r (user, item) \textgreater{T}^{2} & Rating is Strong \\ \hline \hline \end{tabular}
\end{table} 
Table 3: User, Item and Rating Classes. After detecting the noise/inconsistent rating, it is not removed but fixed. There are many ways of dealing with natural noise [50; 52; 53; 54]. For instance, [PERSON] et al. [53] ignored the noisy ratings, while others [55; 56] used some extra information, such as metadata, to correct the noisy ratings. [PERSON] et al. [57] detect the \"noisy but non-malicious\" users by assuming that a user's ratings on closely related items should have similar values. It assesses underlying noise for each user profile, identifying those with the highest noise levels. [PERSON] et al. [50] detected the noisy ratings by categorizing items and users according to their ratings. To correct the noisy ratings, the author used the Pearson Correlation Coefficient for similarity computation and predicted the new ratings for the noisy ratings. In this approach, new ratings are determined at k's value of 60, but this may differ depending on the dataset. Thus, finding the k's optimal value is a drawback; hence, the Matrix Factorization [58] approach is used to correct the noisy rating. In this approach, the user-item rating matrix is decomposed into two lower dimensionality rectangular matrices  
```
Inputs: set of available ratings {r(user, item)},

Threshold for Classification--T^1_u, T^2_u, T^1_i, T^2_i, T_u, T_i, \(\delta=1\)

1. Weak_user = {}, Average_user = {}, Strong_user = {},
2. Weak_item = {}, Average _item = {}, Strong_item = {},
3. Possible_noise = {}
4. for each rating in set of available ratings r(user, item)
5. if r(user, item) < T^1_u
6.