# SoftRec: Multi-Relationship Fused Software Developer Recommendation
## 1 Introduction
In practice, there are a lot of implicit relationships between developers and tasks that can be leveraged to help find suitable developers. Take GitHub's code review as an example, as shown in Figure 1a-c, where \(u_{i}\) denotes the developer, \(p_{i}\) denotes the pull-request, dots with blank cells denotes the developers' explicit review (or comment) on pull-request, and dots with grey cells denotes the developers' implicit interaction (e.g., star, browse). Since \(u_{2}\) has implicit interaction on \(p_{6}\), we can infer that \(u_{2}\) has potential preferences for \(p_{6}\) (denoted as \(u_{2}\to p_{6}\)). Since \(u_{1}\) has a close collaboration relationship with \(u_{2}\) (\(u_{1}\leftrightarrow u_{2}\)), we can infer the potential relationship \(u_{1}\to p_{6}\) (red circles in Figure 1a). Similarly, since \(u_{1}\) has preferences for \(p_{1}\) (\(u_{1}\to p_{1}\)), and \(p_{1}\) has an association relationship with \(p_{4}\) (\(p_{1}\to p_{4}\)), we can infer the potential relationship (\(u_{1}\to p_{4}\)). By analyzing GitHub's code review recommendation, we find that developers are more likely to accept a recommended pull-request if (1) they have reviewed code or solved issues of the contributors of the same pull-request (i.e., the collaboration relationships between developers can keep continuity); (2) they have browsed or stared (besides explicitly reviewed) the pull-request (i.e., implicit interaction relationships help improve recommendation accuracy); or (3) they have reviewed a similar pull-request of the recommended one. Such information can be exploited to improve the accuracy of developer recommendation. To leverage the above mentioned relationships between developers and tasks, we develop a novel multi-relationship fused approach for software developer recommendation (SoftRec). The major contributions of SoftRec are:  
Figure 1: Illustration of the implicit relationships between developers and tasks based on GitHub’s code review. * We formally define the multivariate relationships between developers and tasks, including three types: (1) developer-developer collaboration relationships, (2) developer-task interaction relationships, and (3) task-task association relationships. * We propose a multi-relationship fused approach to recommend developers based on joint matrix factorization and generate forecast results upon the architecture of deep neural network. To our best knowledge, this is the first attempt to integrate these three implicit relationships into developer recommendation. * We propose a fast approach to update the changes of the model efficiently and improve the recommendation efficiency, which can address the cold start issue. * To evaluate the effectiveness of SoftRec, we conduct experiments on two real-world datasets: One from GitHub with 2517 developers and 9329 tasks, while the other from a well-known company's GitLab with 590 developers and 15,632 tasks, and we also conduct a user study in this company. By comparisons of four state-of-the-art works, the results demonstrate the advantages of the SoftRec. The remainder of this paper is organized as follows. We review the related work in Section 2. In Section 3, we present the proposed multi-relationship fused software developer recommendation framework. In Section 4, we present and discuss the result of experiments on real-world datasets and conduct a user study. In Section 5, we discuss the threats to validity of our approach. Concluding remarks with a discussion of some future work are given in Section 6.