# Overlapping Community Detection of Bipartite Networks Based on a Novel Community Density
## 3 Community Density
### Reasoning Community Density Alleviates the Modularity Resolution Limitation  
The root cause of the problem of modularity resolution limitation [18] is that modularity cannot effectively identify the results of community division. This problem has existed for quite a long time, but there has been no suitable method to completely solve this problem. The community density proposed in this paper can effectively solve the modularity resolution limitation in some cases. Now, let us look at an example. There is a bipartite network G(U,V,E). This bipartite network is a complete graph, in which there are \(L(u)\) nodes of type \(u\), and \(L(v)\) nodes of type \(v\), \(L(u)\geq 2\), \(L(v)\geq 2\), \((L(u)-L(v))\) mod \(2=0\). Then, this bipartite network has \(NV\) vertices and \(NE\) edges. This type of picture is called SCBG (Special Complete Bipartite Graph). \[NV =L(u)+L(v), \tag{13}\] \[NE =L(u)*L(v). \tag{14}\]  
The community detection of this graph yielded the following two results:  
R1: Divide the result into a community \(G\). R2: Evenly divided into two communities \(\{G_{1}(U_{1},V_{1},E_{1}),G_{2}(U_{2},V_{2},E_{2})\}\). \(U_{1}\cap U_{2}=0\), \(U_{1}\cup U_{2}=U\), \(V_{1}\cap V_{2}=0\), \(V_{1}\cup V_{2}=V\). For community \(G_{1}\), \(L(u)_{1}=\frac{1}{2}L(u)\), \(L(v)_{1}=\frac{1}{2}L(v)\), the total number of edges in community \(G_{1}\) is \(\frac{1}{2}NE\). Among them, the number of edges in the community \(E_{1_{u}}\) accounts for half of the total number of edges in the community \(G_{1}\), and the number of edges outside the community \(E_{1_{out}}\) accounts for the other half. Likewise, for community \(G_{2}\), \(L(u)_{2}=\frac{1}{2}L(u)\), \(L(v)_{2}=\frac{1}{2}L(v)\), \(G_{1}\) owns half of node \(U\) and node \(V\), and \(G_{2}\) owns the other half of node \(U\) and \(V\), and the total number of edges in community \(G_{2}\) is \(\frac{1}{2}NE\). Among them, the number of edges in the community \(E_{2_{in}}\) accounts for half of the total number of edges in the community \(G_{2}\), and the number of edges outside the community \(E_{2_{out}}\) accounts for the other half. An example of the above situation is given in Figure 5, where \(L(u)=4\) and \(L(v)=4\). Figure 4(a) is divided according to R1, and Figure 4(b) is divided according to R2. [PERSON] [16] proposed the modularity \(Q_{b}\) suitable for bipartite networks. Assuming that a bipartite network can be expressed as \(G(U,V,E)\), the formula for the modularity \(Q_{b}\) of the bipartite network is as Formula (15):  
\[Q_{b}=\frac{1}{M}\sum_{c\in\mathcal{C}}\left(\sum_{i=1}^{m}\sum_{j=1}^{n} \delta_{i,c}\delta_{j,c}\left(A_{ij}-\frac{d_{i}d_{j}}{M}\right)\right), \tag{15}\]  
where \(M\) represents the number of edges in the bipartite network, \(C\) represents the set of community in the bipartite network, \(c\) means the c-th community \(G_{c}(U_{c},V_{c},E_{c})\), and \(m\) and \(n\) represent the number of two types of nodes in the bipartite network, respectively. \(\delta_{(i,c)}\) represents the membership degree of node \(i\) to community \(c\), and if node \(i\) belongs to community \(c\), then \(c\) is 1, otherwise \(c\) is 0. \(d_{i}\) represents the degree of node i. \(A_{ij}\) represents the adjacency matrix of bipartite network, if there is an edge between \(i\) and \(j\), \(A_{ij}=1\), else \(A_{ij}=0\). Figure 5: When \(\mathrm{u}=4\) and \(\mathrm{V}=4\), the complete bipartite graph (CBG) is divided according to R1 and R2. For the two kinds of community partition results, \(R_{1}\) and \(R_{2}\), the modularity is calculated, respectively. For the community structure in Figure 5a, the calculation of modularity \(Q_{R_{1}}\) is shown in Formula (16). For the community structure in Figure 5b, the calculation of modularity \(Q_{R_{2}}\) is shown in Formula (17).