Exact Diffusion for Distributed Optimization and Learning --- Part II: Convergence Analysis
Kun Yuan, Bicheng Ying, Xiaochuan Zhao, Ali H. Sayed
I Introduction and review of Part I[2]
For ease of reference, we provide a brief review of the main construction from Part I . We consider a collection of networked agents working cooperatively to solve an aggregate optimization problem of the form:
where the are positive weighting scalars, each is convex and differentiable, and the aggregate cost is strongly-convex. When , problem (1) reduces to
Problems of the type (1)–(2) find applications in a wide range of areas including including wireless sensor networks , distributed adaptation and estimation strategies , distributed statistical learning and clustering .
Various algorithms have been proposed to solve problem (2) such as . These algorithms either employ doubly-stochastic or right-stochastic combination matrices. In Part I, we derived the exact diffusion strategy (3)–(5).
where refers to a column vector with all entries equal to one. It is assumed that the network graph is strongly-connected, which translates into a primitive matrix . This implies, in view of the Perron-Frobenius theorem , that there exists a Perron vector satisfying
Furthermore, it was argued in Eq.(11) of Part I that given and (and hence ), one can always adjust and find a positive constant such that
Let , the matrix is said to be balanced if
We showed in Part I that balanced left-stochastic matrices are common in practice and that condition (9) endows with several useful properties that enabled the derivation of the above exact diffusion strategy, and which will be used again in this work to examine its convergence properties.
The structure of the exact diffusion strategy listed in (3)–(5) is very similar to the standard diffusion implementation , with the only difference being the addition of an extra correction step between the adaptation and combination steps. We can rewrite the recursions (3)–(5) in an aggregate form by resorting to a block vector notation. First, we introduce the eigen-decomposition
Using these variables, and was already explained in Part I, the recursions (3)–(5) can be rewritten in the following equivalent so-called primal-dual form:
For the initialization, we set and to be any value, and hence for we have
The following auxiliary lemma, which was established in Part I, is used in the subsequent convergence analysis.
In this article, we will establish the linear convergence of exact diffusion using the primal-dual form (19). This is a challenging task due to the coupled dynamics among the agents. To facilitate the analysis, we first apply a useful coordinate transformation and characterize the error dynamics in this transformed domain. Then, we show analytically that exact diffusion is stable, converges linearly, and has a wider stability range than EXTRA consensus strategy. We also compare the performance of exact diffusion to other existing linearly convergent algorithms besides EXTRA, such as DIGing and Aug-DGM with numerical simulations.
II Convergence of Exact Diffusion
The purpose of the analysis in this section is to establish the exact convergence of to , for all agents in the network, and to show that this convergence attains an exponential rate.
If condition (8) holds and block vectors exist that satisfy:
then it holds that the block entries of satisfy:
where is the unique solution to problem (1).
Next we check . Since , condition (23) is equivalent to
where equality (a) holds because is symmetric and (22). Since , we conclude that , which shows that the entries , which are identical, must coincide with the minimizer of (1).
Observe that since is assumed strongly-convex, then the solution to problem (1), , is unique, and hence is also unique. However, since is rank-deficient, there can be multiple solutions satisfying (25). Using an argument similar to , we can show that among all possible , there is a unique solution lying in the column span of .
When condition (8) holds and defined by (2) is strongly-convex, there exists a unique pair of variables , in which lies in the range space of , that satisfies conditions (23)-(24).
First we prove that there always exist some block vectors satisfying (23)–(24). Indeed, when is strongly-convex, the solution to problem (1), , exists and is unique. Let . We conclude from Lemma 1 that condition (24) holds. Next we check whether there exists some such that
where the last “” holds because is symmetric.
We now establish the existence of the unique pair . Thus, let denote an arbitrary solution to (25). Let further denote the projection of onto the column span of . It follows that and, hence, . Therefore, the pair also satisfies conditions (23)-(24).
Next we verify the uniqueness of by contradiction. Suppose there is a different lying in that also satisfies condition (23). We let and . Substituting and into condition (23), we have
Subtracting (42) from (41) and recall , we have , which leads to . This contradicts the assumption that .
Using the above auxiliary results, we will show that generated through the exact diffusion (19) will converge exponentially fast to .
II-B Error Recursion
Let , which corresponds to a block vector with repeated times. Introduce further the error vectors
The first step in the convergence analysis is to examine the evolution of these error quantities. Multiplying the second recursion of (19) by from the left gives:
Substituting (44) into the first recursion of (19), we have
Subtracting optimality conditions (23)–(24) from (45) leads to
Next we examine the difference . To begin with, we get from (17) that
When is twice-differentiable (see Assumption 1), we can appeal to the mean-value theorem from Lemma D.1 in , which allows us to express each difference in (50) in the following integral form in terms of Hessian matrices for any :
Using the relations and , it is easy to verify that
That is, the error vectors evolve according to:
Relation (81) is the error dynamics for the exact diffusion algorithm. We next examine its convergence properties.
II-C Proof of Convergence
Each is twice differentiable, and its Hessian matrix satisfies
Moreover, there exists at least one agent such that is -strongly convex, i.e.
Note that when is twice differentiable, condition (88) is equivalent to requiring each to be -Lipschitz continuous . In addition, condition (89) ensures the strong convexity of and , and the uniqueness of and . It follows from (88)–(89) and the definition (51) that
The direct convergence analysis of recursion (81) is challenging. To facilitate the analysis, we identify a convenient change of basis and transform (81) into another equivalent form that is easier to handle. To do that, we first let
It holds that . In the following lemma we introduce a decomposition for matrix that will be fundamental to the subsequent analysis.
The matrix admits the following eigendecomposition
Remark 1. (Other possible decompositions) The eigendecomposition (94) for is not unique because we can always scale and to achieve different decompositions. In this paper, we will study the following family of decompositions:
and can be set to any nonzero constant value. We will exploit later the choice of in identifying the stability range for exact diffusion.
For convenience, we introduce the vectors:
where ,
To evaluate the block entries of , we partition
Substituting (II-C), (177)–(179) and (185) into (158), we have
As a result, will stay at only if the initial value . From the definition of in (121) and (169) we have
With (201), recursion (195) is equivalent to
The convergence of the above recursion is stated as follows.
Suppose each cost function satisfies Assumption 1, the left-stochastic matrix satisfies the local balance condition (9), and also condition (8) holds. The exact diffusion recursion (19) converges exponentially fast to for step-sizes satisfying
where , , and
The convergence rate for the error variables is given by
where is some constant and , namely,
With similar arguments shown above, we can also establish the convergence property of the exact diffusion algorithm 1’ from Part I . Compared to the above convergence analysis, the error dynamics for algorithm 1’ will now be perturbed by a mismatch term caused by the power iteration. Nevertheless, once the analysis is carried out we arrive at a similar conclusion.
Under the conditions of Theorem 1, there exists a positive constant such that for step-sizes satisfying , the exact diffusion Algorithm 1’ will converge exponentially fast to .
III Stability Comparison with EXTRA
In the case where the combination matrix is symmetric and doubly-stochastic, and all agents choose the same step-size , the exact diffusion recursion (19) reduces to
where . In comparison, the EXTRA consensus algorithm has the following form for the same (recall though that exact diffusion (19) was derived and is applicable to a larger class of balanced left-stochastic matrices and is not limited to symmetric doubly stochastic matrices; it also allows for heterogeneous step-sizes):
where we are using the notation and to refer to the primal and dual iterates in the EXTRA implementation. Similar to (20), the initial condition for (218) is
Comparing (217) and (218) we observe one key difference; the diffusion update in (217) involves a traditional gradient descent step in the form of . This step starts from and evaluates the graduate vector at the same location. The result is then multiplied by the combination policy . The same is not true for exact consensus in (218); we observe an asymmetry in its update: the gradient vector is evaluated at while the starting point is at a different location given by . This type of asymmetry was shown in to result in instabilities for the traditional consensus implementation in comparison to the traditional diffusion implementation. It turns out that a similar problem continues to exist for the EXTRA consensus solution (218). In particular, we will show that its stability range is smaller than exact diffusion (i.e., the latter is stable for a larger range of step-sizes, which in turn helps attain faster convergence rates). We will illustrate this behavior in the simulations in some detail. Here, though, we establish these observations analytically. The arguments used to examine the stability range of EXTRA consensus are similar to what we did in Section II for exact diffusion; we shall therefore be brief and highlight only the differences.
As already noted in , the optimality conditions for the EXTRA consensus algorithm require the existence of block vectors such that
Moreover, as argued in Lemma 3, there also exists a unique pair of variables , in which lies in the range space of , that satisfies (220)–(221). Now we introduce the block error vectors:
and examine the evolution of these error quantities. Using similar arguments in Section II-B, and recalling the facts that is symmetric doubly-stochastic, and , we arrive at the error recursion for EXTRA consensus (see Appendix D):
It is instructive to compare (232)–(237) with (81)–(87). These recursions capture the error dynamics for the exact consensus and diffusion strategies. Observe that when is symmetric and . Therefore, has the same eigenvalue decomposition as in (II-C)–(143). With similar arguments to (94)–(208), we conclude that the reduced error recur-sion for EXTRA consensus takes the form (see Appendix E):
Following the same proof technique as for Theorem 1, we can now establish the following result concerning stability conditions and convergence rate for EXTRA consensus.
Suppose each cost function satisfies Assumption 1, and the combination matrix is primitive, symmetric and doubly-stochastic. The EXTRA recursion (232) converges exponentially fast to for step-sizes satisfying
where and
The convergence rate for the error variables is given by
where is some constant and , namely,
III-B Comparison of Stability Ranges
When is symmetric and , from Theorem 1 we get the stability range of exact diffusion:
Comparing (253) with (245), we observe that the expressions differ by the terms and . We therefore need to compare these two norms.
It is easy to recognize that . Now, since is assumed symmetric doubly-stochastic and , we have
Moreover, since is primitive, symmetric and doubly stochastic, we can decompose it as
With this decomposition, expression (259) can be rewritten as
Similarly, . Using , and equations (260) and (262), we have
It is worth noting that the “” sign cannot hold in (a) because
In other words, and cannot reach their maximum values at the same . As a result,
This means that the upper bound on in (245) is smaller than the upper bound on in (253).
We can also compare the convergence rates of EXTRA consensus and exact diffusion when both algorithms converge. When is symmetric and , from Theorem 1 we get the convergence rate of exact diffusion:
It is clear from (III-B) and (3) that EXTRA consensus and exact diffusion have the same convergence rate to first-order in , namely,
More generally, when higher-order terms in cannot be ignored, it holds that because (see (269)). In this situation, exact diffusion converges faster than EXTRA.
III-C An Analytical Example
In this subsection we illustrate the stability of exact diffusion by considering the example of mean-square-error (MSE) networks . Suppose agents are observing streaming data that satisfy the regression model
It was shown in Example 6.1 of that the global minimizer of problem (273) coincides with the unknown in (272).
When and are unknown and only realizations of and are observed by agent , one can employ the diffusion algorithm with stochastic gradient descent to solve (273). However, when and are known in advance, problem (273) reduces to deterministic optimization problem:
We can then employ the exact diffusion or the EXTRA consensus algorithm to solve (274).
To illustrate the stability issue, it is sufficient to consider a network with agents (see Fig. 1) and with diagonal Hessian matrices, i.e.,
We assume the agents use the combination weights with , so that
which is symmetric and doubly stochastic. The two agents employ the same step-size (or in the EXTRA recursion). It is worth noting that the following analysis can be extended to agents with some more algebra.
To guarantee the convergence of and , we need to examine the eigenstructure of the matrices and . The proof of the next lemma is quite similar to Lemma 4; if desired, see Appendix F of the arXiv version.
The matrix admits the following eigendecomposition
Moreover, the matrices and are given by
It is observed that always has an eigenvalue at , which implies that is not stable no matter what the step-size is. However, this eigenvalue does not influence the convergence of recursions (280). To see that, from Lemma 5 we have
where , , , and
The exact diffusion recursion (280) can be transformed into
which can be further divided into two separate recursions:
As a result, we only need to focus on the other recursion:
If we select the step-size such that all eigenvalues of stay inside the unit-circle, then we guarantee the convergence of and, hence, .
all eigenvalues of will lie inside the unit-circle, which implies that in (280) converges to , i.e., .
Next we turn to the EXTRA error recursion (281).
it holds that generated through EXTRA (281) will diverge.
Comparing the statements of Lemmas 6 and 7, and since , exact diffusion has a larger range of stability than EXTRA (i.e., exact diffusion is stable for a wider range of step-size values). In particular, if agents place small weights on their own data, i.e., when , the stability range for exact diffusion will be almost twice as large as that of EXTRA.
IV Numerical Experiments
In this experiment, we focus on the least-squares problem:
The simulation setting is the same as Sec. VI.A of Part I.
In the simulation we compare exact diffusion with EXTRA, DIGing, and Aug-DGM. These algorithms work with symmetric doubly-stochastic or right-stochastic matrices . Therefore, we now employ doubly-stochastic matrices for a proper comparison. Moreover, there are two information combinations per iteration in DIGing and Aug-DGM algorithms, and each information combination corresponds to one round of communication. In comparison, there is only one information combination (or round of communication) in EXTRA and exact diffusion. For fairness we will compare the algorithms based on the amount of communications, rather than the iterations. In the figures, we use one unit amount of communication to represent communicated variables, where is the dimension of the variable while is the number of edges in the network. The problem setting is the same as in the simulations in Part I, except that is generated through the Metropolis rule . In the top plot in Fig. 2, all algorithms are carefully adjusted to reach their fastest convergence. It is observed that exact diffusion is slightly better than EXTRA, and both of them are more communication efficient than DIGing and Aug-DGM. When a larger step-size is chosen for all algorithms, it is observed that EXTRA and DIGing diverge while exact diffusion and Aug-DGM converge, and exact diffusion is much faster than Aug-DGM algorithm.
We also compare exact diffusion with Push-EXTRA and Push-DIGing for non-symmetric combination policies. We consider the unbalanced network topology shown in Fig. 6 in Part I . The combination matrix is generated through the averaging rule. Note that the Perron eigenvector is known beforehand for such combination matrix , and we can therefore substitute directly into the recursions of Push-EXTRA and Push-DIGing. In the simulation, all algorithms are adjusted to reach their fastest convergence. In Fig. 3, it is observed that exact diffusion is the most communication efficient among all three algorithms. This figure illustrates that exact diffusion has superior performance for locally-balanced combination policies.
IV-B Distributed Logistic Regression
The simulation setting is the same as Sec. VI.B of Part I.
In this simulation, we also compare exact diffusion with EXTRA, DIGing, and Aug-DGM. A symmetric doubly-stochastic is generated through the Metropolis rule. In the top plot in Fig. 4, all algorithms are carefully adjusted to reach their fastest convergence. It is observed that exact diffusion is the most communication efficient among all algorithms. When a larger step-size is chosen for all algorithms in the bottom plot in Fig. 4, it is observed that both exact diffusion and Aug-DGM are still able to converge linearly to , while EXTRA and DIGing fail to do so. Moreover, exact diffusion is observed much more communication efficient than Aug-DGM.
Appendix A Proof of Lemma 4
With and the fact (see Lemma 1), we also have
With relations (340) and (341), we can verify that
where in (a) we used and . Using from Lemma 3 of Part I, we have
and . Moreover, we can also verify that
where This is because the vectors and are the left- and right-eigenvectors of . Combining relations (357) and (358), we have
With permutation operations, it holds that
Now we seek the eigenvalues of . Let denote an eigenvalue of . The characteristic polynomial of is
Since when , it holds that . Therefore, is a complex number, and its magnitude is . Therefore, can be diagonalized as
where and are complex numbers and
Since each factor in is invertible, must exist. Combining (348) and (361)–(386), we finally arrive at
and has the structure claimed in (4).
Therefore, we have established so far the form of the eigenvalue decomposition of . In this decomposition, each -th column of is a right-eigenvector associated with the eigenvalue , and each -th row of is the left-eigenvector associated with . Recall, however, that eigenvectors are not unique. We now verify that we can find eigenvector matrices and that have the structure shown in (102) and (107). To do so, it is sufficient to examine whether the two columns of are independent right-eigenvectors associated with eigenvalue , and the two rows of are independent left-eigenvectors associated with . Let
Obviously, and are independent. Since
we know and are right-eigenvectors associated with eigenvalue . As a result, an eigenvector matrix can be chosen in the form X=\left[\begin{array}[]{ccc}R&\vline&X_{R}\\ \end{array}\right], where each -th column of corresponds to the right-eigenvector associated with eigenvalue . Similarly, we let
where each -th row of corresponds to a left-eigenvector associated with eigenvalue .
Appendix B Proof of Theorem 1
From the first line of recursion (208), we have
Squaring both sides and using Jensen’s inequality gives
for any . Using , we obtain
where . Similarly, we can also obtain
where inequality holds because and . It is obvious that . As a result, we have
which implies that when the step-size satisfy
Recall (176) and by introducing E=\left[\begin{array}[]{cc}I_{MN}&0_{MN}\\ \end{array}\right], we have . Therefore, it holds that
where . Notice that is independent of . Substituting (419) and (B) into (B), we get
where we are selecting .
Next we check the second line of recursion (208):
Squaring both sides and using Jensen’s inequality again,
where . From Lemma 4 we have that . By setting , we reach
We introduce the matrix , and note that we can write . Substituting it into (87),
We also emphasize that is independent of . With inequality (436), we further have
since , and where and are defined as
With (437) and (438), inequality (B) becomes
Combining (B) and (440), we arrive at the inequality recursion
Now we check the spectral radius of the matrix . Recall the fact that the spectral radius of a matrix is upper bounded by any of its norms. Therefore,
where we already know that . To guarantee , it is enough to select the step-size parameter small enough to satisfy
To get a simpler upper bound, we transform (450) such that
If, in addition, we let (451) be less than , which is equivalent to selecting
then we guarantee equality (450). Combing (449), (452) and (453), we have
will guarantee to be less than . In fact, the upper bound in (454) can be further simplified. From the definitions of , , and , we have
because , and . Therefore, the inequality in (454) is equivalent to
It is observed that the constant value affects the upper bound in (460). If is sufficiently large, then the first term in (460) dominates and has a narrow feasible set. On the other hand, if is sufficiently small, then the second term dominates and will also have a narrow feasible set. To make the feasible set of as large as possible, we should optimize to maximize
Notice that the first term is monotone decreasing with , while the second term is monotone increasing with . Therefore, when
we get the maximum upper bound for , i.e.
Next we compare the above upper bound with . Recall that for any matrix , its spectral radius is smaller than its induced norm so that
Moreover, recall from Lemma 4 that , so that , which implies that
Using relations (464) and (465), and recalling that , , and , we have
Therefore, the upper bounds in (454), (455) are determined by
In other words, when satisfies (467), will be guaranteed to be less than , i.e.,
where . Let
Computing the -norm of both sides gives
where we define . Inequality (473) is equivalent to
By re-incorporating , relation (478) also implies that
where the constant .
Appendix C Proof of Theorem 2
Substituting recursions (98) and (99) from Part I into expre-ssion (100) we obtain (compare with (93) from Part I ):
which can be rewritten into a primal-dual form (compare with (89) from Part I ):
For the initialization, we set and to be any value, and hence for we have
Recursions (494) and (495) are very close to the standard exact diffusion recursions (19) and (20), except that the step-size matrix is now changing with iteration . Following the arguments (43) – (45), we have
Subtracting optimality conditions (23)–(24) from (496) leads to
Comparing recursions (497) and (46), it is observed that recursion (497) has an extra “mismatch” term, This mismatch arises because we do not know the perron vector in advance. We need to run the power iteration (see recursion (97) from Part I) to learn it. Intuitively, since as , we can expect the mismatch term to vanish gradually. Let
By following arguments (50)–(59), recursion (497) is equivalent to
By following (69)–(87), recursion (503) can be rewritten as
where and are defined in (87), and
Relation (515) is the error dynamics for the exact diffusion algorithm . Comparing (515) with (81), we find that algorithm is essentially the standard exact diffusion with error perturbation. Using Lemma (4) and by following arguments from (121) to (208), we can transform the error dynamics (515) into
Next we analyze the convergence of the above recursion. From the first line we have
where the last inequality follows the arguments in (413)–(B). From the second line of recursion (525), we have
Next let us bound the mismatch term . From (498) we have
where is a constant independent of iteration. Recall that and where
Using the relation (see equation (13) from Part I), we have
where .
Now we examine the convergence of . From the discussion in Policy 5 form Part I, it is known that generated from the power iteration (see equation (37) from Part I) will converge to . Therefore,
Recall from the discussion in Policy 5 from Part I that
where is a constant, and is the second largest eigenvalue magnitude of matrix , i.e., . Since is locally balanced, we know is diagonalizable with real eigenvalue in , and it has a single eigenvalue at (see Table I from Part I ), we conclude that . Also, recall from the discussion at the end of Policy 5 in Part I that is guaranteed when . Let
Combining (C) and (549), it holds that for ,
where we define . Substituting (550) into (C), it holds that
where is a constant independent of iterations. Substituting (551) into (543), we have
where the last equality holds because for (see (201)). Substituting (C) into (C), we have
where are constants defined as
These constants are independent of iterations. It can be verified that when iteration is large enough such that
where we can prove by following arguments (B). Inequality (580) further implies that
where . Let . Inequality (584) becomes
By adding , where can be any positive constant to be chosen, to both sides of the above inequality, we get
As a result, the quantity converges to linearly. Since and , we can conclude that , and hence , converges to linearly.
Appendix D Error Recursion for EXTRA Consensus
Multiplying the second recursion of (218) by gives:
Substituting into the first recursion of (218) gives
From (591) and the second recursion in (218) we conclude that
Subtracting the optimality condition (220)–(221) from (592) leads to
Using relations and , it is easy to verify that
Substituting (607) into (602) gives (232)–(237).
Appendix E Error Recursion in Transformed Domain
Multiplying both sides of (232) by :
To compute each entry of , we let
we find for the second line of that
Substituting (E), (641) and (649) into (622), we rewrite (622) as
As a result, will converge to only if the initial value . To verify that, from the definition of in (121) and (633) we have
Recall that lies in the , so that also lies in . Recall further from Lemma 1 that , and conclude that . Therefore, from (660) we have
With (665), recursion (659) is equivalent to (244).
Appendix F Proof of Theorem 3
From the first line of recursion (244), we have
Squaring both sides and using Jensen’s inequality gives
for any . For the term , we have
where . Similarly, we can obtain the upper bound
where equality holds because . It is obvious that . As a result, we have
which implies that when the step-size is sufficiently small to satisfy
where and the “” sign in the third line holds because . Notice that is independent of . Substituting (672) and (F) into (F), we get
where we are selecting .
Next we check the second line of recursion (244), which amounts to
Squaring both sides of (675), and using Jensen’s inequality again,
where . From Lemma 4 we have that . By setting , we reach
From the definition of in (237), we have
We also emphasize that is independent of . With inequality (685), we further have
notice that , and are defined as
With (686) and (687), inequality (F) becomes
Combining (F) and (689), we arrive at the inequality recursion:
From this point onwards, we follow exactly the same argument as in (449)–(491) to arrive at the conclusion in Theorem 3.
Appendix G Proof of Lemma 6
It is observed from expression (295) for that one of the eigenvalues is . It is easy to verify that when satisfies (334), it holds that Next, we check the other two eigenvalues. Let denote a generic eigenvalue of . From the right-bottom block of in (295), we know that will satisfy the following characteristic polynomial
where is a combination weight (see the expression for in (278)). Solving (697), the two roots are
Based on the value of and , can be negative, zero, or positive. Recall from (334) that . In that case, over the smaller interval , it holds that and, from (699), . For this reason, as indicated in cases 1 and 2 below, the scenarios corresponding to or can only occur over :
Case 1: . It can be verified that when
it holds that . In this situation, both and are imaginary numbers with magnitude
where the last inequality holds because (see (334) and (700)) and .
Case 2: . It can be verified that when
it holds that . In this situation, from (698) we have
where the last inequality holds because (see (334) and (700)) and . Observe further that the upper bound on in (700) is positive and smaller than one when .
Case 3: . It can be verified that when
or when , it holds that . In this situation, is real and
Moreover, since , we have
We regard as a function of , i.e., . It holds that is monotone increasing with . To prove it, note that
we conclude that . Since , it follows that
In summary, when satisfies (334), for any it holds that all three eigenvalues of stay within the unit-circle, which implies that , and also . As a result, in (333) will converge to . Since for any , we conclude that converges to .
Appendix H Proof of Lemma 7
Similar to the arguments used to establish Lemma 5 and (310)–(333), the EXTRA error recursion (281) can also be divided into two separate recursions
where , and
Now we suppose as noted in (335), it then follows that
and hence both and are real numbers with
Moreover, with we further have
where the last inequality holds because of (718) and (721). Therefore, when is chosen such that , there always exists one eigenvalue such that which implies that diverges, and so does .