Hosting platforms for software projects can form collaborative social networks and a prime example of this is GitHub which is arguably the most popular platform of this kind. An open source project recommendation system could be a major feature for a platform like GitHub, enabling its users to find relevant projects in a fast and simple manner. We perform network analysis on a constructed graph based on GitHub data and present a recommendation system that uses link prediction.
The problem of recommendation has been around for quite some time. A popular approach in this area is Collaborative Filtering @cite_11 which relies on the assumption, that if two users perform similar actions, then they are also more likely to perform other actions in the same way. Several such approaches use machine learning methods, however, we are interested in methods using network structure. Recommendation systems in network analysis are usually based on link prediction techniques.
@cite_11
2100235918
As one of the most successful approaches to building recommender systems, collaborative filtering (CF) uses the known preferences of a group of users to make recommendations or predictions of the unknown preferences for other users. In this paper, we first introduce CF tasks and their main challenges, such as data sparsity, scalability, synonymy, gray sheep, shilling attacks, privacy protection, etc., and their possible solutions. We then present three main categories of CF techniques: memory-based, modelbased, and hybrid CF algorithms (that combine CF with other recommendation techniques), with examples for representative algorithms of each category, and analysis of their predictive performance and their ability to address the challenges. From basic techniques to the state-of-the-art, we attempt to present a comprehensive survey for CF techniques, which can be served as a roadmap for research and practice in this area.