Museum Recommendation system creation.

sambatlim
Idea worth sharing
Published in
4 min readDec 26, 2018
This photo I found somewhere in google by searching the word: museum guide.

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).

photo from the google search: keyword scan QR.

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.

similarity measurement
definition of each variable

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:

the user-based score of similarity

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.

the object-based score of similarity

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.

the request in the postman

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….

--

--

sambatlim
Idea worth sharing

Hello, I am a student who like sharing experiences and I am very humble to get someone ideas. Be happy to share your story.