These are the human proofs of HITS algorithm, at full length.
The HITS iterates converge to principal eigenvectors of A^T A and A A^T full
This proof shows: correctness, termination.
Let G have n nodes and adjacency matrix A with non-negative entries, and let M=ATA. Write at and ht for the vectors a and h after round t of HITS, and 1 for the vector of all ones, so h0=1. All norms are Euclidean.
Lemma 1 (the rounds are power iteration). If A=0, then for each t≥1 that the algorithm reaches, at=Mt−1x0/∥Mt−1x0∥ with x0=AT1, and ht=Aat/∥Aat∥. Line L5 never returns, and line L6 never divides by zero.
Proof. Line L3 sets av′=∑(u,v)∈Ehu, which is (ATh)v, and line L4 sets hu′=∑(u,v)∈Eav′=(Aa′)u. By induction on t, assume ht−1 is a positive multiple of AMt−2x0 for t≥2, and h0=1. Then a′ in round t is a positive multiple of AT1=x0 when t=1, and of ATAMt−2x0=Mt−1x0 when t≥2. Lemma 2 below shows Mt−1x0=0, so a′=0 and line L5 does not return. Then h′=Aa′, and ht−1Th′=(ATht−1)Ta′=∥a′∥2>0, so h′=0. Line L6 scales both by positive numbers, which gives the formulas of the claim and keeps the hypothesis for t+1, since ht is a positive multiple of $A a' $, a positive multiple of AMt−1x0. □
Lemma 2 (the start vector sees the top eigenspace).M is symmetric and positive semidefinite. Let λ1 be its largest eigenvalue and P the orthogonal projection onto its eigenspace. If A=0, then λ1>0 and Px0=0.
Proof.MT=ATA=M, and yTMy=∥Ay∥2≥0 for each y. The trace of M is ∑u,vAuv2>0, so λ1>0. The matrix M has non-negative entries. By the Perron-Frobenius theorem for non-negative matrices, its spectral radius, which is λ1 since all eigenvalues are non-negative, has an eigenvector w with w≥0 and w=0. Since w=AT(Aw)/λ1, each entry wv is a sum of non-negative terms Auv(Aw)u/λ1, so wv=0 at each node v with no entering arc. At each node v with wv>0, some Auv>0, so (x0)v=∑uAuv>0. Hence x0Tw>0. As w lies in the eigenspace, x0Tw=(Px0)Tw, so Px0=0. In particular Mtx0=0 for every t, since its projection is λ1tPx0=0. □
Theorem (convergence). Assume A=0. Let λ2′ be the largest eigenvalue of M that is less than λ1, or 0 if there is none. Then at→a∗=Px0/∥Px0∥ and ht→h∗=Aa∗/∥Aa∗∥, with ∥at−a∗∥≤2(λ2′/λ1)t−1∥x0∥/∥Px0∥. The vector a∗ is a non-negative eigenvector of M for λ1, and h∗ is a non-negative eigenvector of AAT for λ1.
Proof. Take an orthonormal basis of eigenvectors of M. Write x0=Px0+r, where r lies in the span of the eigenvectors with eigenvalues below λ1. Then Mt−1x0=λ1t−1(Px0+rt) with rt=Mt−1r/λ1t−1, and since every eigenvalue in that span is in [0,λ2′], ∥rt∥≤(λ2′/λ1)t−1∥r∥≤(λ2′/λ1)t−1∥x0∥. For non-zero vectors p and p+q, ∥p+q∥p+q−∥p∥p≤∥p∥2∥q∥, by the triangle inequality and ∥p+q∥−∥p∥≤∥q∥. With Lemma 1 and p=Px0, q=rt, this gives the bound, which tends to 0 because λ2′<λ1. The vector a∗ is in the eigenspace of λ1. It is non-negative because each at is non-negative, as a scaled sum of non-negative terms, and the limit of non-negative vectors is non-negative. It is not zero, so Aa∗=0 because ∥Aa∗∥2=a∗TMa∗=λ1>0. The map y↦Ay/∥Ay∥ is continuous where Ay=0, so ht→h∗ by Lemma 1. Finally AAT(Aa∗)=A(Ma∗)=λ1Aa∗, so h∗ is an eigenvector of AAT for λ1. □
Termination. The loop of line L2 runs at most K rounds, so the algorithm stops. If ε>0, it may stop earlier at line L9: by the theorem, at and ht converge, so ∥at−at−1∥+∥ht−ht−1∥→0, and the test of line L9 holds after finitely many rounds. If A=0, line L3 gives a′=0 in round 1 and line L5 returns two zero vectors, which is the stated output for a graph with no arcs.
Uniqueness. If λ1 is a simple eigenvalue, its eigenspace is a line, and a∗ is the unique eigenvector of norm 1 with non-negative entries on it; h∗ is then unique too. If λ1 is repeated, a∗ is the normalized projection of the in-degree vector x0 onto the eigenspace, which is determined by the graph. ■