Museum Recommendation system creation.
Introduction
Before getting start to the process of making the recommendation system, let me tell you my story. The story is I got a chance to do my intern in one company (keep confidential for the company name but will call it NT from now on) as a web programmer, and I was assigned to do a recommendation system for their existing application (keep confidential for the application name but will call it MP from now on).
MP is the application that enables the user to scan the QR code that is placed in front of the object in the museum so the user can see all the detail of the object, and also multimedia such as audio, and video of the object.
I will divide the process of doing this system into three parts: Data collection, Data analysis, and API creation as the output to the application.
Data collection
Whenever the user scans the QR code, the system will save the information into the database. There is a lot of information that we have saved to the database, but the information that we actually used to make the recommendation system are userID, objID, museumID, and timestamp.
Data analysis
This is the most complicated part of this project. It brings me a lot of headaches. There are two methods of recommendation. They are the item-based and object-based method. We used the algorithm called similarity measurement.
We apply the algorithm above to our system then It took a very long time to analyze the data so the solution is to filter by the period of time and amount of users to analyze on. And it helped reduce the time it took.
The same approach we also apply to the object-based recommendation system. After applying the algorithm above to our data we got the result as shown below:
After got the score of similarity above, we ranked the score from the top down- high score top and lower score down. In order to get the final output — object to recommend, we have differentiated the objects that have been visited by the user a with the objects that have been visited by the other user that has the highest score of similarity to the user a. And we added one more weighting to the first 6 objects. It is the distance from one object to another — the closest object will gain more score and will recommend first.
After got the score of similarity above, we recommend to the user by query their last visited obj then we recommend to the other object by the score of similarity.
API Creation
we used postman to test our API. we create the post request API to support the application. In the request, there are several variables such as museumCode, userID, duration to analyze, etc.
Conclusion
during the process of making this recommendation system, the most challenging problem that we faced was the time that the system took to execute all the code and output to the user. So to solve this problem we decided to filter by time and user. And in the data analysis part, we need to be very careful about the way we bring the data to analyze — the less query the program executes, the less time it takes. for me, I used the only one query then keep the data as the array and pass to the other model as the variable.
reference
(1) similarity measurement algorithm:
I. Keller, E. Viennet, “Recommender Systems for Museums: Evaluation on a Real Dataset”, in Fifth International Conference on Advances in Information Mining and Management, 2015.
postman:
Thank for your time….