# SoftRec: Multi-Relationship Fused Software Developer Recommendation
## 3 The Multi-Relationship Fused Software Developer Recommendation
### Fusion of Multi-Relationships  
In this section, we integrate the collaboration relationship and association relationship with the interaction relationship based on joint matrix factorization [18]. Suppose \(\text{C}_{n\times n}\in\mathbb{R}^{n\times n}\), \(R_{n\times m}\in\mathbb{R}^{n\times m}\), \(S_{m\times m}\in\mathbb{R}^{m\times m}\), \(Q\in\mathbb{R}^{d\times n}\), \(U\in\mathbb{R}^{d\times n}\) and \(V\in\mathbb{R}^{d\times m}\) follow Gaussian distributions [18; 36] with the means of 0 and variances of \(\sigma_{\text{C}}^{2}\), \(\sigma_{R}^{2}\), \(\sigma_{S}^{2}\), \(\sigma_{Q}^{2}\), \(\sigma_{u}^{2}\) and \(\sigma_{v}^{2}\), respectively. Here, \(Q\), \(U\) and \(V\) denote the latent features of the collaboration relationships, the developers and the tasks, respectively. \(d\) is the vector size. As shown in Figure 2 middle subfigure, for each developer \(u_{i}\), the latent collaboration feature vector is denoted by \(Q_{t}\in\mathbb{R}^{d\times 1}\), and the latent developer feature vector is denoted by \(U_{i}\in\mathbb{R}^{d\times 1}\). They are calculated by factorizing \(C_{n\times n}\). Similarly, for each task \(v_{j}\), the latent task feature vector is denoted by \(V_{j}\in\mathbb{R}^{d\times 1}\), and the latent association feature vector is denoted by \(V_{l}\in\mathbb{R}^{d\times 1}\). They are calculated by factorizing \(S_{m\times m}\). Here, \(U_{i}\) is the shared latent developer feature vector, calculated by factorizing \(C_{ti}\) and \(R_{ij}\). \(V_{j}\) is the shared latent task feature vector, calculated by factorizing \(R_{ij}\) and \(S_{jl}\). To learn \(U\), \(V\) and \(Q\), we design a log-joint posterior probability distribution function as shown in Equation (7):  
\[ \begin{split}\ln p=&\frac{-1}{2\sigma_{R}^{2}}\|I^{ R}\odot(R-g(U^{\text{T}}V))\|_{F}^{2}-\frac{1}{2\sigma_{\text{C}}^{2}}\|I^{C} \odot(C-g(U^{\text{T}}Q))\|_{F}^{2}\\ &-\frac{1}{2\sigma_{S}^{2}}\|I^{S}\odot(S-g(V^{\text{T}}V))\|_{F} ^{2}-\frac{1}{2}(\frac{1}{\sigma_{\text{D}}^{2}}\|U\|_{F}^{2}+\frac{1}{\sigma_{ V}^{2}}\|V\|_{F}^{2}+\frac{1}{\sigma_{Q}^{2}}\|Q\|_{F}^{2})\\ &-\frac{1}{2}(\ln\sigma_{R}^{2}\|I^{R}\|_{F}^{2}+\ln\sigma_{\text {C}}^{2}\|I^{C}\|_{F}^{2}+\ln\sigma_{\text{S}}^{2}\|I^{S}\|_{F}^{2})-\frac{d}{2 }(m\ln\sigma_{U}^{2}+n\ln\sigma_{V}^{2}+m\ln\sigma_{Q}^{2}),\end{split}  \tag{7}\]  
where \(I^{R}\), \(I^{C}\) and \(I^{S}\) denote the indicator matrices. \(\odot\) denotes the Hadamard product of two matrices. \(g(x)=\frac{1}{1+exp(-x)}\) is a logistic function [18] used to limit the predicted value of \(U_{i}^{T}V_{j}\) to the interval of \([0,1]\). The model parameters \(U\), \(V\) and \(Q\) can be learned by maximizing the log-joint posterior in Equation (7) which is equivalent to minimizing the objective function in Equation (8):  
\[ \begin{split}\mathcal{L}_{1}=&\frac{1}{2}\|I^{R} \odot(R-g(U^{\text{T}}V))\|_{F}^{2}+\frac{\lambda_{\text{C}}}{2}\|I^{C}\odot(C- g(U^{\text{T}}Q))\|_{F}^{2}+\frac{\lambda_{\text{S}}}{2}\|I^{S}\odot(S-g(V^{\text{T}}V))\|_{F}^{2}\\ &+\frac{1}{2}(\lambda_{U}\|U\|_{F}^{2}+\lambda_{V}\|V\|_{F}^{2}+ \lambda_{Q}\|Q\|_{F}^{2}),\end{split}  \tag{8}\]where \(\lambda_{C}=\frac{\sigma_{k}^{2}}{\sigma_{C}^{2}}\), \(\lambda_{S}=\frac{\sigma_{k}^{2}}{\sigma_{S}^{2}}\), \(\lambda_{U}=\frac{\sigma_{k}^{2}}{\sigma_{U}^{2}}\), \(\lambda_{V}=\frac{\sigma_{k}^{2}}{\sigma_{V}^{2}}\), \(\lambda_{Q}=\frac{\sigma_{k}^{2}}{\sigma_{Q}^{2}}\). Based on Equation (8), we calculate the partial derivative \(\frac{\partial\mathcal{L}_{1}}{\partial U_{i}}\), \(\frac{\partial\mathcal{L}_{1}}{\partial V_{j}}\) and \(\frac{\partial\mathcal{L}_{1}}{\partial Q_{t}}\) as shown in Equation (9):  
\[