This is an implementation of NoNCrossQuery (a special case of NoNCrossRank) algorithm with Python.
The goal of this algorithm is to solve:
Given: (1) an Network of Networks (NoN) R = <G, A, θ>, (2) a query node of interest from a source domain-specific network As, (3) a target domain-specific network Ad, and (4) an integer k;
Find: the top-k most relevant nodes from the target domain-specific network Ad w.r.t the query node.
- __init__.py: program entry;
- Precomputation.py: CR and CQ precomputation (to obtain normalized A and normalized Y)
- RunCQ_Basic.py: run basic version of CrossQuery algorithm
- RunCQ_Fast.py: run fast version of CrossQuery algorithm
- RunCQ_DBLP.py: run CrossRank algorithm to solve CrossQuery problem
- CQ_Basic.py: CrossQuery-basic algorithm
- CQ_Fast.py: CrossQuery-fast algorithm
- CR.py: CrossRank algorithm
- ExtractSubNet.py: extract a relevant sub-network from the main network w.r.t. source and target domains, use the sub-network in the CrossQuery-fast algorithm
- DijkstraExpansion.py: conduct one step expansion of Dijkstra's algorithm
G: the adjacency matrix of main network
A: domain specific networks A = (A1, ..., Ag)
θ: the one-to-one mapping function (mapping main node to domain-specific network)
s: the id of source domain-specific network
d: the id of target domain-specific network
es: the query vector for source domain-specific network As (i = 1, ..., g)
k: an integer indicating that top-k most relevant nodes from the target domain-specific network will be returned
TopKAuthorNames: the top-k most relevant nodes from the target domain-specific network Ad w.r.t the query node
Ni, J., Tong, H., Fan, W., & Zhang, X. (2014, August). Inside the atoms: ranking on a network of networks. In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 1356-1365). ACM.