
UNIVERSITY OF MANCHESTER School of Computer Science Project Report 2016 Recommendation web service Author: George Andrei Ceaus Supervisor: Sean Bechhofer 1 Abstract Recommendation engines are becoming an essential component for most web or mobile applications. Algorithms such as collaborative filtering allow content providers to recommend their users useful content and maximize how much content users consume. However, implementing such a system is complex and requires vast knowledge of how recommendations engine work. The aim of this project was to abstract the inner workings of a recommender system by implementing it behind a web service and provide an API that developers can integrate into their applications. This report will start by going through some context information about the domain of this project and technologies used. It will then go into details about the research I have done before the beginning of the project, cover what functionality the system currently implements and how it can be used. It will also explain what design decision I have taken and why, and how I have implemented the system. Finally, it will end by showing what steps I have taken to evaluate the recommender system and the most important algorithms, and give a brief summary of what other features will be implemented after the end of the project. 2 1 TABLE OF CONTENTS 2 Context ............................................................................................................................................ 4 2.1 The topic area to which the work applies ............................................................................... 4 2.2 What else has been done in the area and by whom .............................................................. 4 2.3 Why the work is being done ................................................................................................... 5 2.4 What the work was aiming to achieve .................................................................................... 5 2.5 Technologies context .............................................................................................................. 5 3 Research .......................................................................................................................................... 6 3.1 Graph databases ..................................................................................................................... 6 3.2 Querying graph databases ...................................................................................................... 6 4 Functionality ................................................................................................................................... 7 4.1 Gathering information ............................................................................................................ 7 4.1.1 Content ........................................................................................................................... 7 4.1.2 Tags ................................................................................................................................. 7 4.1.3 Users ............................................................................................................................... 7 4.1.4 User behaviour ................................................................................................................ 8 4.2 Recommendations .................................................................................................................. 8 4.2.1 Recommending tags ........................................................................................................ 8 4.2.2 Content-based filtering ................................................................................................... 8 4.2.3 Collaborative filtering ..................................................................................................... 8 4.2.4 Other types of recommendations ................................................................................... 9 5 Design .............................................................................................................................................. 9 5.1 Recommender systems approaches ....................................................................................... 9 5.2 Graph database ..................................................................................................................... 10 5.2.1 Interfacing with the graph database ............................................................................. 10 6 Development ................................................................................................................................. 12 6.1 Approach ............................................................................................................................... 12 6.2 setting up .............................................................................................................................. 13 6.2.1 Graph database ............................................................................................................. 13 6.2.2 Web client ..................................................................................................................... 13 6.2.3 Recommender service backend .................................................................................... 14 6.3 Recommendation algorithms ............................................................................................... 15 7 Evaluation ..................................................................................................................................... 17 3 8 Future work ................................................................................................................................... 18 8.1 Tags ontologies ..................................................................................................................... 18 8.2 Trending content ................................................................................................................... 19 8.3 Subscriptions ......................................................................................................................... 19 9 Reflection and Conclusion............................................................................................................. 19 10 References ................................................................................................................................ 20 2 CONTEXT 2.1 THE TOPIC AREA TO WHICH THE WORK APPLIES The amount of digital content consumed through the internet is exponentially increasing year on year. Some examples of digital content are video, audio, images, software or news. The most popular mediums through which content is consumed are web applications and more recently and increasingly popular, mobile applications. Due to the vast amounts of content available, content publishers are developing ways to organize content and make it more discoverable to its consumers. This has led to research in domains such as information retrieval, search engines or recommendation engines. In fact, the most successful applications are those that were able to come up with innovative solutions to support this requirement, and maximize how much content its users consume. However, developing such a system or even using an existing one requires expertise, which some developers do not have. The software product that I have developed during this project tries to help developers integrate a recommendation engine into their application, without requiring much knowledge in this field. 2.2 WHAT ELSE HAS BEEN DONE IN THE AREA AND BY WHOM Recommender systems attempt to present to the user content that he/she might be interested in. Therefore, these can be considered as a companion to search engines since they can recommend content that the user was not searching for but still find it useful. The two main approaches to recommendations are collaborative filtering, content-based filtering, or a combination of the two known as a hybrid approach [1]. In collaborative filtering, the user’s past behaviour is taken into account to find users with similar preferences. Because of this, the system needs a large amount of historical information on the user and is susceptible to the cold start problem, where the system does not have enough data to make useful recommendations. The latter, content-based filtering, is focused on the content features such as tags or the user’s preferences, to recommend other similar content. Since this method doesn’t rely on historical information as much as collaborative-filtering, it is less susceptible to cold start problems, and can recommend content right away given that content features have been specified and the user has consumed at least one item. 4 There are numerous research papers and resources on recommender algorithms online [2]. It is a heavily discussed and researched topic, and it has even been the subject of a competition sponsored by Netflix [3] to drive research into finding new algorithms with better accuracy. The applications development community is moving towards a world of microservices [4], modularity, web and cloud services. Developers focus on only their specific business logic, and use other services for extra functionality, usually via a REST API [5], which has become an industry standard for web services. However, when it comes to full-blown solutions which allows
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages21 Page
-
File Size-