## 2 Materials and Methods
### Implementation
#### 2.3.4 Recommender
(4) Model Construction

SET data TO READFILE

SET movies TO READFILE

SET movies:columns TO READFILE

SET movies['example_age'] TO np.round((pd.to_datetime(\"now\")

pd.to_datetime(movies['release_date'])/np.timedelta4(1, 'Y'))

movies['example_age']/fillma(0),inplace=True)

SET movies['example_age'] TO movies.example_age.astype(\"int64')

SET user_df TO READFILE

SET user_df.columns TO ['user_id','age','gender','job','time']

SET user_df['gender_r'] TO user_df['gender']apply(lambda x1 IF x EQUALS 'M' else 2)

SET profiles TO ['age','gender_r']

SET user_df['user_profile'] TO [list(gs) FOR gs IN zip['user_dfprofile'] FOR profile IN profiles]]

#### 2.3.5 Movie Recommendation

The user receives movie recommendations from the NMF Recommender and Deep Learning Recommender, watches the movie, and provides evaluation information as feedback. The movie that has received feedback is stored in the User Profiles DB and delivered to User Modeling. Figure 17 represents the data flow until the movie is recommended to the user. First, the user's ID is delivered to the Recommender, and the Recommender retrieves the user's information from the Database and delivers it to the trained NMF model. Second, the model retrieves the top N movies based on hit rate. Lastly, the information of the top N movies obtained is delivered to the user. When the NMF model is trained, prediction data (user x movie) is generated, and the top 5 movies are recommended based on the movie information that the user has not rated. #### 2.3.6 Persona Update

The movie evaluation received from feedback is added to the existing user information to assign a user topic, and the user's Persona information is updated only when the information is changed. [Figure 18] represents the process for updating user Persona. The user Persona update process is as follows: 1 The user watches the recommended movie and rates the movie. 2 The rating information is added to the user corpus to create another user corpus. 3 A new topic is assigned through the topic model for the new corpus. 4 Which cluster the new topic belongs to is checked. 5 Whether the cluster information has changed is checked, and if it has changed, the user Persona is updated to assign a new Persona. Figure 17: Movie Recommendation—Data flow of movie recommendation. Figure 18: Persona update Rule. ## 3 Results

The selection of movie lens data to create a movie recommender system (i.e., data composition) was explained in Section 2.3.1: Dataset. Weights per user was assigned, a corpus was created, and a user-movie Persona was generated based on ratings through LDA (topic modeling) and K-means clustering. A user profile with user corpus and user-movie Persona was created (Section 2.3.2: User Modeling). Each model using NMF and DNN was created with the created profile (Section 2.3.3: Recommender Model Learning), and real movies were recommended (Section 2.3.4: Recommender, Section 2.3.5: Movie Recommendation). Lastly, the Persona Update Rule was defined to automate the model, and the Persona was updated (Section 2.3.6). ### Movie Recommendation Results According to Changes in User Preferences

SubsubsectionWe verify that the movie recommendation changes user preferences. We configured the proposed system, selected a random user, and recommended 50 movies over 10 times. The model was selected as the DL model that showed good performance in the top 10, and the selection was conducted according to the Persona update rule. In the case of amowie that belongs to the top 5 genres of movies the user watched, the user gave 2-4 points according to the genre ratio of the recommended movie. Figure 19 is a system configuration to check movie recommendations according to changes in user preferences. The operation method is as follows: 1 The user or system requests the recommender system for movie recommendation. 2 The requested recommender system checks the user's information and fetches the user Persona information and puts it as the recommendation model input.