## 2 Materials and Methods
### Implementation
#### 2.3.4 Recommender  
1. NMF  
Our recommender system used a user persona instead of a rating. The first stage of data collection involves continuously collecting data by receiving meta information about the videos uploaded by users. In the second stage of candidate extraction, the YouTube user's history of views and \"likes\" are used as input, and subnet videos suitable for users are extracted from the video to form candidates. These candidates are generally considered to be suitable for users. The third stage, ranking decision, evaluates and ranks the data created in the candidate extraction stage in three stages: the video itself, the center of the user, and diversification. The video itself stage evaluates based on the properties of the video itself, unrelated to the user. The user-centered stage performs an evaluation based on the preferences and environment of the user. The diversification stage provides a variety of contents by limiting the provision of related contents or channels to prevent the creation of recommended data biased towards similar specific contents based on the evaluations conducted earlier. Figure 15 shows the process of receiving requests from users or the system, recommending movies to  
1. A user requests movie recommendation from the Recommender. The Recommender uses the NMF model to generate a user Persona profile based on the movie ratings provided by the user, and maps it to the Persona model. 2. Recommender  
Figure 15: Recommender—NMF. 2. Excluding movies that the user has already seen, the Recommender recommends to the user movies that are listed in the top N based on hit rate. 3. The user watches the recommended movie. 4. The user inputs ratings for the watched movie, and the Recommender generates a profile based on this. ```
SETR_shapeTOGetShape()[h1] SETX,y,RTOLoadData(R_shape) SETitem_infoTOREADFILE SETitem_info.columnsTO['title'] SETparametersNMFTO{ 'n_components':15,#numberoflatentfactors'init':random','random_state':0,'alpha':0.001,#regularizationterm SET'11_ratio':0,#setregularizationTOL2'max_iter':15 } SETestimatorTONMF(**parametersNMF) SETR_trainTOConverToDense(X,y,R_shape) estimator.fit(R_train) SETThetaTOestimator.transform(R_train)#userfeatures SETMTOestimator.components_T#itemfeatures SETR_predTOM.dot(Theta.T) SETR_predTOR_pred.T SETnmt_rankTO[] FORjINrange(): SETrankTOmake_recommendation_activeuser(item_info,R,R_pred,user_idx=j,k=_TOP_N_) SETrank['movie_id']TOrank.index SETrankTOrank['movie_id']values nmf_rank.append(rank)
```

#### 2.2.2 Deep Learning

The trained model creates a candidate pool, and the trained ranking model recommends movies to the user. The candidate model extracts candidate movies for each user and stores them in memory. The stored movie and personal information are added and learned to train the ranking model and complete the model. [Figure 16] shows the process of receiving requests from users or the system and recommending movies to users using the ranking model of YouTube recommendation. We conducted training using a total of 50 epochs, and for optimization, we used adam. Additionally, for the learning rate, we defined a function called step_decay to dynamically change it during training. The function used is as follows. def step_decay(epoch): start = 0.1 drop = 0.5 epochs_drop = 5.0 lr = start * (drop ** np.floor(epoch)/epochs_drop)) return lr

When the above function is applied, it can be decreased with each epoch and used. Also, we used the default model provided by Keras, including an Input Layer, Embedding Layer, Flatten Layer, Dense Layer, and for layer merging, a Concatenate Layer was used. 1. The user requests movie recommendations. The Recommender processes the user's information and recommends the top N movies to the user, excluding movies that the user has already seen, using the results processed through the Deep Learning model. 2. The user watches the recommended movie. 3. The user inputs ratings for the watched movie, and the Recommender generates a profile based on this

Figure 16: Recommender—Deep Learning.