Prestige in Multilayer Networks
It is possible to extend the prestige and status we considered in earlier lessons (e.g., Bonacich Eigenvector, PageRank, HITS and others) to the case of multilayer networks.1
A “Supermatrix” Approach
How would this work? Here we follow the approach outlined by Taylor, Porter, and Mucha (2021). The basic idea is to create a “supermatrix” that simultaneously encodes the pairwise relations of each node in each layer and the dependency relations between the same nodes across layers (e.g., in a temporal network the same nodes are only connected in immediately adjacent layers; in multiplex networks they are connected across all layers).
The “supermatrix” \(\mathbf{S}\) is defined as follows:
\[ \mathbf{S} = \mathbf{C} + \alpha(\tilde{\mathbf{A}} \otimes \mathbf{I}) \tag{1}\]
Where \(\mathbf{C}\) is a block-diagonal matrix of dimensions \(NL \times NL\) (\(N\) being the number of nodes and \(L\) being the number of layers) with each block in the diagonal containing the relevant \(N \times N\) centrality matrix for the \(l^{th}\) layer, and \(\tilde{\mathbf{A}}\) is an \(L \times L\) matrix containing the dependencies between each layer, \(\mathbf{I}\) is the \(N \times N\) identity matrix (containing ones along the diagonals and zero in every other cell); finally, \(\alpha\) is a tunable parameter (\(0 \geq \alpha \leq \infty\)) specifying how much the interlayer dependencies matter in determining the prestige scores, the higher the parameter the more “strongly coupled” the layers are (e.g., scores in one layer affecting scores in the others).
The \(\otimes\) symbol in Equation 1 refers to the kroenbercker product between the \(\tilde{\mathbf{A}}\) and \(\mathbf{I}\) (e.g., the supermatrix in which each block is composed of \(\mathbf{I}\) matrix multiplied by the value each cell of \(\tilde{\mathbf{A}}\)).2
Krackhardt Managers Multilayer Network Example
Let’s see how this would work in real data. We first load the Krackchardt Manager’s data from the networkdata package. Recall that this data records three types of ties between 21 high-tech managers: Friendship, Advice, and who reports to whom. We store each in a list object and transform each graph into an adjacency matrix using lapply:
We then create the block diagonal matrix \(\mathbf{C}\), using the function bdiag from the package Matrix
Note that by using the transpose of the original adjacency matrices to create the diagonal blocks of the \(\mathbf{C}\) matrix, we are specifying that we want to compute the multilayer Eigenvector centrality.3
We now need to create the interlayer dependency matrix \(\tilde{\mathbf{A}}\). We use the simplest assumption, which is that all the layers mutually depend on one another equally, which means that \(\tilde{\mathbf{A}}\) is the all ones matrix with diagonals set to zero:
f a r
f 0 1 1
a 1 0 1
r 1 1 0
Finally, we create \(\mathbf{I}\):
We are now ready to create the \(\mathbf{S}\) matrix with \(\alpha = 1.5\), using the base R function kronecker to compute the kronecker product between \(\tilde{\mathbf{A}}\) and \(\mathbf{I}\):
And now, all we need to do is run our old status distribution game on the \(\mathbf{S}\) matrix!
status1 <- function(w) {
x <- rep(1, nrow(w)) #initial status vector set to all ones of length equal to the number of nodes
d <- 1 #initial delta
while (d > 1e-10) {
o.x <- x #old status scores
x <- w %*% o.x #new scores a function of old scores and adjacency matrix
x <- x/norm(x, type = "E") #normalizing new status scores
d <- abs(sum(abs(x) - abs(o.x))) #delta between new and old scores
} #end while loop
return(as.vector(x))
}
ml.eig <- status1(S)The result will be a vector of length \(N \times L\) (in our case, \(21 \times 3 = 63\)) containing the prestige scores for each network layer.
We can arrange the long vector into an \(N \times L\) rectangular martrix \(\mathbf{W}\) containing the joint status scores of each node at each layer:
f a r
1 0.117 0.220 0.054
2 0.162 0.366 0.100
3 0.054 0.112 0.027
4 0.087 0.188 0.045
5 0.051 0.082 0.021
6 0.057 0.218 0.044
7 0.083 0.278 0.093
8 0.083 0.200 0.046
9 0.053 0.070 0.020
10 0.038 0.144 0.029
11 0.072 0.198 0.044
12 0.099 0.154 0.041
13 0.021 0.069 0.015
14 0.071 0.186 0.059
15 0.047 0.081 0.021
16 0.065 0.148 0.034
17 0.088 0.177 0.043
18 0.100 0.280 0.069
19 0.049 0.075 0.020
20 0.049 0.153 0.033
21 0.118 0.332 0.092
Each column of the matrix is a network layer (friendship, advice, and reports to) and each row is an individual. The entries in the matrix is the (unnormalized) status score of individual \(i\) on layer \(l\).
The marginal status of each node is given by the sum of their scores across all layers:
1 2 3 4 5 6 7 8 9 10 11 12 13
0.622 1.000 0.307 0.510 0.245 0.508 0.725 0.525 0.227 0.337 0.501 0.468 0.168
14 15 16 17 18 19 20 21
0.503 0.237 0.394 0.490 0.716 0.229 0.374 0.864
We can see that indeed, Manager 2 is the most central nodes across all three layers, followed by Manager 21.
We can also do the same thing to figure out which layer is the most important, but this time we sum the columns and normalize:
Which tell us that the advice layer is definitely the most important, and the “reports to” layer the least important in determining status across layers.
The conditional status of each node in each layer can be obtained as follows:
f a r
1 0.075 0.059 0.057
2 0.104 0.098 0.105
3 0.035 0.030 0.028
4 0.056 0.050 0.047
5 0.032 0.022 0.023
6 0.036 0.058 0.047
7 0.053 0.075 0.098
8 0.053 0.054 0.048
9 0.034 0.019 0.021
10 0.024 0.039 0.031
11 0.046 0.053 0.046
12 0.063 0.041 0.043
13 0.014 0.019 0.015
14 0.045 0.050 0.062
15 0.030 0.022 0.022
16 0.042 0.040 0.036
17 0.056 0.047 0.045
18 0.064 0.075 0.073
19 0.031 0.020 0.021
20 0.031 0.041 0.034
21 0.075 0.089 0.097
Reinforcing the previous results showing node 2 to be the most important in all three layers.
We can also calculate the node-specific importance of each layer:
f a r
1 0.299 0.562 0.139
2 0.258 0.583 0.159
3 0.281 0.580 0.139
4 0.273 0.588 0.139
5 0.329 0.531 0.139
6 0.179 0.682 0.139
7 0.183 0.612 0.205
8 0.253 0.608 0.139
9 0.368 0.492 0.139
10 0.178 0.683 0.139
11 0.229 0.631 0.139
12 0.337 0.524 0.139
13 0.203 0.658 0.139
14 0.224 0.590 0.185
15 0.314 0.547 0.139
16 0.263 0.597 0.139
17 0.286 0.575 0.139
18 0.222 0.623 0.155
19 0.341 0.520 0.139
20 0.208 0.652 0.139
21 0.218 0.613 0.169
Which gives us the relative importance of each layer in determining each node’s status. For instance, the friendship layer is pretty important for Manager 9, but relatively unimportant for manager 6. The reports to layer is relative unimportant for most managers, but it’s definitely most important for manager 7.
Changing Interlayer Dependency Assumptions
As we noted before, the \(\tilde{\mathbf{A}}\) matrix contains our hypotheses about interlayer dependencies. Suppose we have a theory that says that the advice layer does not affect the orders to layer. To encode this hypothesis into the status calculation we create a new \(\mathbf{A}\) matrix:
We now create a new \(\mathbf{S}\) matrix and compute the status scores:
S <- C + (1.5 * kronecker(A, I))
ml.eig <- status1(S)
W <- matrix(ml.eig, 21, 3)
rownames(W) <- 1:21
colnames(W) <- c("f", "a", "r")
ml.node <- rowSums(W)
ml.layer <- colSums(W)
cond.node <- t(t(W)/ml.layer)
round(cond.node, 3) f a r
1 0.077 0.058 0.052
2 0.103 0.097 0.103
3 0.035 0.030 0.027
4 0.057 0.050 0.045
5 0.034 0.021 0.019
6 0.036 0.060 0.054
7 0.048 0.075 0.108
8 0.054 0.054 0.048
9 0.035 0.018 0.016
10 0.023 0.040 0.036
11 0.047 0.054 0.048
12 0.065 0.039 0.035
13 0.014 0.019 0.017
14 0.044 0.050 0.063
15 0.031 0.021 0.019
16 0.042 0.040 0.035
17 0.057 0.047 0.042
18 0.062 0.076 0.078
19 0.033 0.019 0.017
20 0.031 0.042 0.038
21 0.073 0.089 0.102
Note that this new set of assumptions about interlayer dependencies change our results. Node 17 is now the highest status node in the friendship and reports to layers, while node remains the highest status node but only in the advice layer.
References
Footnotes
Multilayer networks include multiplex networks, where multiple relations (e.g., friendship, advice, co-working) are measured over the same group of actors at one point in time, or temporal networks (which each relation being one of the layers), where the same relation (e.g., friendship) is measured over the same group of actors at multiple temporally ordered “snapshots” (which serve as the layers).↩︎
To compute the other prestige scores (e.g., PageRank or HITS) we would feed different matrices here (e.g., the row-normalized adjacency matrix or the common-neighbors matrix).↩︎