Online Movie Recommender


By Naiya Patel & Jay Byrd


INTRODUCTION

 

The “Online Movie Recommender” is a movie database system that recommends movies to the user based on prior selections and current criteria. The user will enter movie information into one or all of the four fields (title, actor, actress, director) provided. Then, he/she will choose a specific year of release, MPAA rating, and/or genre (drama, comedy, romance, etc.). Lastly, the user will initiate a search. The system will return a list of recommended movies that meet the given requirements.

 

With each search performed, the system will begin to recognize the user’s preferences with respect to genre, performer (male & female), and filmmaker. For example: when a user enters “Keanu Reeves” into the “Actor” field and starts a search, he/she will get a list of all of the movies Reeves has appeared in. If the user selects “Science-Fiction” from the drop-down list of genre choices in addition to entering an actor’s name, then the search will cross-reference those two data elements.

 

Furthermore, the system will remember that the user (in this particular session) chose a science-fiction film that stars Keanu Reeves, and recommend other science-fiction movies and movies that star Keanu Reeves to the user the next time he search for either one. As usage increases, the system will begin to make more accurate recommendations to the user. For example: if the user searches for a drama 73% of the time, and for movies that star Julia Roberts 68% of the time, and for movies directed by Martin Scorcese 55% of the time, then the system will first recommend movies that match all three preferences.

 

If none are found, it will then suggest movies that match all possible combinations of two of the three preferences, with the search becoming increasingly flexible as it goes along. Users will need to log on in order for the system to allow for the learning of numerous unique users’ movie selection habits and tastes. However, the user does not have to participate in the tailoring process. To explain: a user may not want the system to provide him/her with recommendations. He/she may already know which film they want to select, and don’t care to know about any others. In this case, the user may go directly to the search screen, which will not provide recommendations after each search.

 

Sometimes, there may be a situation that sees the user having exhausted the list of recommendations offered by the system, and he/she wants to inform it that its picks are not very helpful. In this case, the user may assign an alphanumeric value to the system that reflects his/her opinion with regard to the quality of the system’s selection(s). The system will then incorporate this information into its decision-making process, and make changes accordingly.

 

FUNCTIONALITY

 

Login Area:

  1. Here, the user has the option of either logging in, or proceeding directly to the search area. Logging in allows the user to receive recommendations from the system based on his/her search options.

 

Main Search Area:

  1. This area has data fields for entering movie information. There is a field for a movie’s title, actor, actress, and director. The user can enter information into none, one, or several of these fields to return movie titles that match the given values.
  2. Entering no information into the four aforementioned fields is ok, because there are other, different, kinds of fields that the user can utilize to make selections. They are as follows:
    1. A drop-down field that contains the release year for each and every movie in the database.
    2. A drop-down field that contains the genre (of single, double, and/or triple type). For example: a movie like “Armageddon” might be of type ‘action/romance/comedy’.
    3. A drop-down field that contains the MPAA rating for each movie. That would be PG, PG-13, R, etc.
  3. There is a ‘return’ field. This display area lists the movie(s) the user searched for, as well as the movie(s) the user has not requested, but that system believes the user might enjoy too.
  4. Finally, there is a section (not visible to the user) that does all of the figuring and considering with regard to determining what movies the user is likely to like. It is here that all of the selections (made over a period of time) are taken into account. A number of factors are used in the decision:
    1. The frequency with which a particular person (actor/actress/director) is searched for; a movie’s actors, actresses, and directors arbitrarily have a higher priority than its release year or MPAA rating.
    2. If the user searches for a given actor (Keanu Reeves, for example), the system will look to see what actress was in the movie with him. And, if the user searches for another actor (Guy Pearce, for example) which also has her (Carrie-Ann Moss, for example) as his co-star, then the system will recommend one or more movies starring that actress.
    3. The same scenario can be applied to the case of entering movie title information. With each unique title entered, the system does an elaborate series of crosschecking. Connections are made and maintained, and the system begins to understand what the user wants.

 

FINAL NOTES

 

Most of the functionality mentioned above has not been implemented in the accompanying Java Applet and Access Database. We intended for those two program/database items to be seen as conceptual, and not working, models. After due consideration, we believe (and we hope you agree) that the realization of such a complex system would take a lot longer than the amount of time we’ve been afforded. However, we believe (with hard-work and determination) we could create a system like, or close to, the one discussed earlier in this report, if afforded the time.

 

With this project, we hoped to simulate ‘machine learning’ by employing the multifaceted sections of A.I. known as “Data Mining” and “Search”. Our aim was to create a large ‘movie knowledge database’, with which to search for specific movie information. And, after finding that data, store certain parts of it in other smaller databases for use in other related areas. Then, the data would be ‘mined’ and used to produce results that don’t directly reflect what the user requested, but possible what the user is looking for.

 

This project, we think, only scratches the surface of those two topics specifically, and A.I. in general.