Một số thuật toán truy vấn dữ liệu sử dụng kỹ thuật chia Để trị với vectơ lanczos Một số thuật toán truy vấn dữ liệu sử dụng kỹ thuật chia Để trị với vectơ lanczos
Ma trận
Chuẩn vectơ và chuẩn ma trận
Định nghĩa 1.1 Chuẩn∥ ã ∥trờn khụng gian vectơ X là một ỏnh xạ∥ ã ∥:X →Rthỏa mãn các tính chất:
1 ∥x∥ ≥0với mọix∈X và∥x∥=0khi và chỉ khix= 0, 2 ∥λx∥=|λ|∥x∥với mọix∈X vàλ ∈R,
Với p≥1, chuẩnl p trênR n của vectơxđược cho bởi công thức:
Ta có một số trường hợp đặc biệt sau,
Với p≥1, chuẩnlp trênR n×m của ma trậnAđược cho bởi công thức:
Ta quan tâm đến p=2, khi đó∥A∥ 2 =σ 1 , là giá trị kỳ dị lớn nhất củaA.
Ngoài ra, trên không gianR n×m người ta cũng quan tâm đến chuẩn Frobenius:
∥A∥ F q tr(A T A), (1.6) trong đótr(A T A)là vết của ma trậnA T A, tức tổng các giá trị trên đường chéo của ma trậnA T A.
Tích vô hướng và hệ vectơ trực giao
Định nghĩa 1.2 Tích vô hướng của hai vectơ x,y∈R n , ký hiệu bởi ⟨x,y⟩, được định nghĩa là
⟨x,x⟩ (1.8) Định nghĩa 1.3 Góc (đo bằng radian) giữa hai vectơ khác không x,y∈R n , ký hiệu bởi⟨x,[y⟩, được xác định duy nhất bởi các điều kiện sau:
(1.9) Định nghĩa 1.4 Hai vectơx,y∈R n được gọi là vuông góc (hay trực giao) với nhau, và được ký hiệu làx⊥y, nếu
∥x+y∥ 2 2 =∥x∥ 2 2 +∥y∥ 2 2 (1.12) Định nghĩa 1.5 Một hệ các vectơ khác không Strong không gian vectơR n được gọi là hệ trực giao nếu các vectơ của hệ đôi một vuông góc với nhau, tức là với mọix,y∈S vàx̸=ythì⟨x,y⟩=0 Hơn nữa, nếu với mọix∈Sthỏa mãn∥x∥ 2 =1thì hệ được gọi là trực chuẩn.
Giá trị riêng và vectơ riêng
Định nghĩa 1.6 Giả sử ma trậnA∈C n×n Sốλ ∈C được gọi là giá trị riêng của A nếu tồn tại vectơx∈C n ,x̸= 0, sao choAx=λx Vectơ x được gọi là vectơ riêng ứng với giá trị riêngλ. Định nghĩa 1.7 Cho ma trậnA∈C n×n Nếu tồn tại ma trận khả nghịchX và ma trận đường chéoΛsao choA=XΛX −1 thì nói ma trận A chéo hóa được và nói ma trận X làm chéo hóa ma trận A Trường hợp X là ma trận trực giao (X −1 =X T ) thì nói ma trận A chéo hóa trực giao được và nói X làm chéo hóa trực giao ma trận A.
(1.13) Điều này cho thấy nếux i là cột thứ i của ma trậnX vàλi là phần tử thứ i của ma trận đường chéo ΛthìAx i =λix i Do đó cột thứi của ma trận X là một vectơ riêng củaA và phần tử thứi củaΛ là giá trị riêng tương ứng. Định lý 1.1 Nếu ma trậnA∈R n×n đối xứng (A T =A) thì A có n giá trị riêng thực và n vectơ riêng trực chuẩn tương ứng.
Chứng minh: Xem Định lý 8.1.1 trong [8].
Từ định lý trên ta dễ thấy:ma trậnA∈R n×n chéo hóa trực giao được khi và chỉ khi là
Ađối xứng Thật vậy, nếuAđối xứng suy raAcóngiá trị riêng thực vànvectơ riêng trực chuẩn tương ứng và do đóAchéo hóa trực giao được Ngược lại, nếuAchéo hóa trực giao được, tức là tồn tại ma trận trực giaoX và ma trận đường chéo Λ sao choA=XΛX T suy raA T = (XΛX T ) T =XΛX T =AhayAđối xứng.
Không gian cột, không gian nghiệm và hạng của ma trận
Định nghĩa 1.8 Cho ma trận A∈R m×n , không gian cột của A ký hiệu là range(A) được xác định bởi range(A) ={y∈R m |y=Ax vớix∈R n }, (1.14) không gian nghiệm củaAký hiệu lànull(A)được xác định bởi null(A) ={x∈R n |Ax= 0 }, (1.15) và hạng củaA, ký hiệu làrank(A), bằng số chiều của không gian conrange(A) rank(A) =dim(range(A)) (1.16) Ta có các tính chất sau (Xem trang 50 sách [8]): rank(A) =rank(A T )vàdim(null(A)) +rank(A) =n (1.17)
Khai triển kỳ dị (SVD)
Định nghĩa 1.9 Cho ma trậnA∈R m×n Khi đó, một phân tích giá trị kì dị của A được xác định bởi
1 U = [u 1 ,u 2 , ,um] ∈R m×m là ma trận trực giao trong đó các cột xác định m vectơ riêng trực chuẩn củaAA T , còn được gọi là vectơ kỳ dị trái,
2 V = [v 1 ,v 2 , ,vn]∈R n×n là ma trận trực giao trong đó các cột xác định n vectơ riêng trực chuẩn củaA T A, còn được gọi là vectơ kỳ dị phải,
3 Σ∈R m×n , Σ=diag(σ 1 ,σ 2 , ,σp), trong đó p= min(m,n), σ 1 ≥ σ 2 ≥ ≥ σr>σ r+1 = .σp=0vàσi,i=1, ,plà các giá trị kỳ dị của A,
Bộ baσi ,ui ,vi được gọi là bộ ba kỳ dị thứ i của A. Định lý 1.2 Cho ma trậnA∈R m×n Khi đó, luôn tồn tại Khai triển kỳ dị của ma trận A Hơn nữa ta có các tính chất sau
1 A=∑ r i=1 uiσiv T i được gọi là dạng phân rã kép của A, 2 rank(A) = r,range(A) =⟨u 1 ,u 2 , ,u r ⟩vànull(A) =⟨v r+1 , ,vn⟩,
3 ∥A∥ 2 =σ 1 ,∥A∥ F q σ 1 2 +σ 2 2 + .+σ r 2 , 4 λi=σ i 2 ,i=1, ,plà các giá trị riêng của cảA T AvàAA T , 5 Av i =σ i u i vàA T u i =σ i v i ,
Chứng minh: Xem các Định lý 5.1, 5.2, 5.3, 5.4, 5.6, 5.7 trong [21]. Định lý 1.3 Với mọi k thỏa mãn0≤k≤r, đặt
∥A−B∥ p =A k , (1.20) hayA k là xấp xỉ hạng k tốt nhất của A Hơn nữa ta có:
Chứng minh: Xem các Định lý 5.8, 5.9 trong [21].
Phép chiếu
Định nghĩa 1.10 Cho ma trậnP∈R n×n , và các không gian conS 1 =range(P),S 2 null(P) Nếu P 2 =Pthì ta nói P là một phép chiếu trong không gian R n lênS 1 dọc theoS 2 Hơn nữa nếuS 1 ⊥S 2 (với mọix∈S 1 , với mọiy∈S 2 ,x⊥y) thì phép chiếu P được gọi là phép chiếu trực giao.
Ta có(I−P) 2 =I−2P+P 2 =I−PnênI−Pcũng là một phép chiếu và ta gọi nó là phép chiếu bù củaP. Định lý 1.4 Nếu ma trậnP∈R n×n là một phép chiếu thìrange(I−P) =null(P).
Với mọi x∈null(P)ta cóPx=0suy ra(I−P)x=xhay x∈range(I−P).
Ngược lại, với mọixta cóP(I−P)x=Px−P 2 x=0suy ra(I−P)x∈null(P)hay với mọiy∈range(I−P)ta cóy∈null(P).
Từ hai điều trên suy rarange(I−P) =null(P).□ Định lý 1.5 Một phép chiếu P là trực giao khi và chỉ khiP T =P.
Chứng minh: Xem Định lý 6.1 trong [21].
Hệ quả 1.5.1 Cho Q ∈R m×n với các cột là các vectơ đơn vị trực giao với nhau thì
P=QQ T là một phép chiếu trực giao.
Chứng minh: Ta cóP 2 =QQ T QQ T =QQ T =P, do đóPlà một phép chiếu Hơn nữaP T = (QQ T ) T =QQ T =Psuy ra điều phải chứng minh.□
Phân tích QR
Định nghĩa 1.11 Cho A∈R m×n với m≥n Phân tích A = QR, trong đó Q∈R m×m gồm m vectơ trực giao, R∈R m×n là ma trận tam giác trên (ri j =0 với mọi i > j), được gọi là phân tích QR đầy đủ.
GọiQˆ ∈R m×n gồm n vectơ bên trái của Q và Rˆ ∈R n×n gồm n hàng đầu tiên của R.
Khi đó ta cóA=QˆRˆ và được gọi là phân tích QR rút gọn. Định lý 1.6 Mọi A∈R m×n (m≥ n) đều có phân tích QR đầy đủ, và do đó cũng có phân tích QR rút gọn.
Chứng minh: Xem Định lý 7.1 trong [21]. Định lý 1.7 VớiA∈R m×n (m≥n), giả sửrank(A) =nthì có duy nhất phân tích QR rút gọnA=QˆRˆ vớirii>0.
Chứng minh: Xem Định lý 7.2 trong [21].
Vectơ ngẫu nhiên, ma trận ngẫu nhiên
Khái niệm vectơ ngẫu nhiên, ma trận ngẫu nhiên cũng như các đặc trưng của chúng được xây dựng dựa trên khái niệm Đại lượng ngẫu nhiên (ĐLNN) và các đặc trưng của nó Có rất nhiều tài liệu trình bày một cách chặt chẽ về mặt toán học khái niệm ĐLNN, chẳng hạn [14] Ở đây, học viên xin chỉ trình bày khái quát để tiện trình bày những nội dung kiến thức ở các mục sau.
Một đại lượng mà giá trị của nó là ngẫu nhiên, không dự đoán được, được gọi là một ĐLNN.
Giá trị trung bình mẫu X là một ước lượng không chệch kỳ vọng của ĐLNN X, E(X)≈X Kỳ vọng có một số tính chất sau:
• E(C) =CvớiC là một hằng số,
• E(CX) =C.E(X)vớiClà một hằng số,
Phương sai của ĐLNNX được xác định theo công thức
Var(X) =E[(X−E(X)) 2 ] (1.23) Hai ĐLNNX vàY có hiệp phương sai cov(X,Y) =E[(X−E(X))(Y−E(Y))] (1.24)
Var(X) =cov(X,X), cov(X,Y) =0,vớiX,Y độc lập.
Nếu ĐLNN X cú phõn bố chuẩn, ký hiệuX ∼N(à,σ 2 ), thỡ:
Thông thường, sai số của một phép đo là một ĐLNN có phân bố chuẩn với kỳ vọng à =0. Định nghĩa 1.12 Vectơ ngẫu nhiên là vectơ của các biến ngẫu nhiên.
Ví dụx= (X 1 ,X 2 , ,Xn) T trong đóXi,i=1,2, ,n, là các ĐLNN. Định nghĩa 1.13 Kỳ vọng của vectơ ngẫu nhiênx= (X 1 ,X 2 , ,Xn) T là vectơE(x) (E(X 1 ),E(X 2 ), ,E(Xn)) T Định nghĩa 1.14 Ma trận A = [a 1 ,a 2 , ,a n ], trong đó a i ∈R m với i=1,2, ,n là các vectơ ngẫu nhiên được gọi là một ma trận ngẫu nhiên. Định nghĩa 1.15 Kỳ vọng của ma trận ngẫu nhiên A = [a 1 ,a 2 , ,an] là ma trận
E( A ) = [E(a 1 ),E(a 2 ), ,E(a n )]. Định lý 1.8 Nếu x là vectơ ngẫu nhiên, A là ma trận ngẫu nhiên, a và b là các vectơ đã xác định, M và N là các ma trận đã xác định thì ta có:
Ta chứng minhE(Mx) =M.E(x) Thật vậy, ta có phần tử hàngi cột j của ma trận
E(Mx) là E(∑ n k=1 m ik x k j ) =∑ n k=1 m ik E(x k j ) cũng là phần tử thứ i cột j của ma trận M.E(x).
Những trường hợp còn lại chứng minh tương tự.□ Định lý 1.9 Nếu các vectơ ngẫu nhiênxvàyvới các thành phầnXi vàYj độc lập với nhau thìE(xy T ) =E(x).E(y) T
Chứng minh: Phần tử hàng i cột j của ma trậnE(xy T )là E(X i Yj) =E(X i ).E(Y j )(do Xi vàYj độc lập với nhau) cũng là phần tử hàngicột j của ma trậnE(x).E(y) T nên ta có điều phải chứng minh.□ Định nghĩa 1.16 Ma trận hiệp phương sai của vectơ ngẫu nhiên X là ma trận cov[x] =E[(x−E(x))(x−E(x)) T ]
(1.27) trong đóσ i 2 =Var(X i ),σ i j =cov(X i ,X j )vớii,j =1,2, ,n. Định lý 1.10 Nếu các thành phần Xi ,i=1, ,ncủa vectơ ngẫu nhiênxđộc lập với nhau thìcov(x) =diag(σ 1 2 ,σ 2 2 , ,σ n 2 ).
Chứng minh: DoXi vàXj (i̸= j) độc lập nên ta cóσi j =cov(Xi,Xj) =0 Suy ra điều phải chứng minh.□ Định lý 1.11 Giả sửxlà một vectơ ngẫu nhiên thìcov(x) =E(xx T )−E(x).E(x) T Chứng minh: cov[x] =E[(x−E(x))(x−E(x)) T ]
Cấu trúc low-rank-plus-shift
Định nghĩa 1.17 Ma trậnA∈R m×n được gọi là ma trận có cấu trúc low-rank-plus- shift nếu nó thỏa mãn:
A T A m =CWC T +σ 2 I, (1.29) trong đóC∈R n×k ,rank(C) =k√ ε Cụ thể Thuật toán 1 được hiệu chỉnh bằng cách chèn vào giữa dòng 6 và 7 đoạn mã sau: bound=√ ε∥w i ∥ 2 for j=1toido ω ←w T i qj if|ω|>bound then w i ←w i −ωq j end end
Như vậy, so với tái trực giao toàn phần ta cũng thực hiện k(k−1)/2vòng lặp Tuy nhiên, thay vì thực hiện phép tính Công thức 2.17 ở tất cả vòng lặp, ta chỉ thực hiện phép tính này ở một số nhỏ vòng lặp Ở những vòng lặp không phải tính, ta chỉ thực hiện phép tính ω ←w T i qj và phép so sánh |ω|> bound với chi phí rẻ hơn nhiều.
Ngoài ra ta còn phải thực hiệnkphép tínhbound=√ ε∥w i ∥ 2 , nhưng chi phí là không đáng kể.
Ước lượng A T k q và chuẩn các vectơ cột của A k bằng vectơ Lanczos
Sử dụng vectơ Lanczos của AA T
Cách thứ nhất là áp dụng Thuật toán Lanczos cho ma trậnM T Tuy nhiênM, ma trận không thưa kích thướcm×m, không cần phải xác định một cách tường minh.
Thay vào đó ở dòng thứ 4 của Thuật toán 1 ta thay bằng wi←A(A T qi)−β i−1 q i−1 (2.19) Điều này giúp ta thay vì mất chi phím.nnz+m 2 cho việc tínhM T và tíchMqi, ta chỉ mất chi phí2nnzcho hai lần tính tích ma trận thưa với vectơ,A(A T qi) Với cách tính này, đẳng thức 2.3 trở thành
AA T Q k =Q k T k +w k e T k (2.20) a Ước lượngA T k qXét dãy si =A T QiQ T i q Phân tích dưới đây cho thấy khii=k, vectơsk là một xấp xỉ tốt củaA T k q Thật vậy, gọi uj,vj vàσj lần lượt là vectơ kỳ dị trái, vectơ kỳ dị phải và giá trị kỳ dị thứjcủaA, ta có:
Theo Hệ quả 2.6 ta có:
∥(I−QiQ T i )u j ∥ 2 ≤cjC i− −1 j (γ j ), (2.22) nên từ 2.21 suy ra
2(e (i− j)λ +e −(i− j)λ ),λ =ln(γ j +q γ 2 j −1), (2.24) suy raC i− j (γ j )tiến nhanh theo cấp số nhân của số Eulerekhiităng Do đó từ (2.23) ta thấysihội tụ nhanh tớiA T qdọc theo hướng củavj Hay nói cách khác, theo hướng của các vectơ kỳ dị phải lớn nhất của A, dãy si nhanh chóng hội tụ về A T q Thực tế này ngụ ý rằngsi khi chiếu lên không gian con với các vectơ cơ sở là các vectơ kỳ dị phải lớn nhất củaA, rất gần với hình chiếu của A T qcũng lên không gian con này Do đós k là lựa chọn thay thế tốt choA T k q. b Ước lượng chuẩn các vectơ cột củaA k Ta xét dãya (h) i =QiQ T i Ae h ,h=1, ,n Ta có:
Lý luận tương tự Mục 2.3.1a, ta thấy vectơa (h) k là lựa chọn thay thế tốt choAkeh Điều này tương đương với∥a (h) k ∥ 2 là lựa chọn thay thế tốt cho∥A k eh∥ 2 Ta lại có
Vớiqˆ (h) i là phần tử thứ h của vectơqˆ i =A T q i ta có
∥a (h) i ∥ 2 2 =∥a (h) i−1 ∥ 2 2 + (qˆ (h) i ) 2 , (2.27) từ đó suy ra zi= (∥a (1) i ∥ 2 2 ,∥a (2) i ∥ 2 2 , ,∥a (n) i ∥ 2 2 ) T =z i−1 + (qˆi) 2 (2.28) c Cách triển khai
Ta có thể chia việc truy xuất dữ liệu thành hai giai đoạn: giai đoạn tiền xử lý sinh ra các vectơ Lanczos và giai đoạn phản hồi truy xuất.
Giai đoạn tiền xử lý sinh ra các vectơ Lanczos, chúng ta thực hiện như Thuật toán 1 với lưu ý dòng 4 được thay thế bằng Công thức 2.19 và bổ sung đoạn code để đảm bảo tính bán trực giao của các vectơ Lanczos như đề cập ở Mục 2.2 Trong giai đoạn này ta cũng tính dãy z i , trong đó qˆ i đã được tính trước đó (xem Công thức 2.19) nên chi phí tính toán cho dãy này là không đáng kể so với tổng chi phí cả giai đoạn.
Giai đoạn phản hồi truy xuất, chúng ta ước lượngA T k qthông quas k =A T (Q k (Q T k q)).
Nhận thấy mỗi cột i của ma trận A^ = A T Q k là A T Q k e i = A T q i = q^ i đã được tính ở giai đoạn tiền xử lý, nên nếu ma trận A^ được lưu lại, ở giai đoạn phản hồi truy vấn ta có thể tính s k = A(Q^ T k q) Do đó, ta cũng không cần phải giữ lại ma trận A cho việc phản hồi truy vấn Như vậy có sự đánh đổi giữa chi phí lưu trữ ma trận A^ và chi phí lưu trữ ma trận A Đồng thời, chi phí thời gian tính toán ở giai đoạn phản hồi truy vấn sẽ là km + kn thay vì nnz + 2km.
Thuật toán 2: Tiền xử lý với ma trậnAA T
Sử dụng vectơ Lanczos của A T A
Cách thứ hai là áp dụng Thuật toán Lanczos cho ma trậnM=A T Abằng cách thay dòng thứ 4 của Thuật toán 1 bằng wi ←A T (Aq i )−βiq i−1 , (2.29) khi đó ta có
A T AQ k =Q k T k +w k e T k (2.30) a Ước lượngA T k q Xét dãy si =QiQ T i A T q (2.31)
Gọiuj,vj vàσj lần lượt là vectơ kỳ dị trái, vectơ kỳ dị phải và giá trị kỳ dị thứj của A, ta có:
Lý luận tương tự Mục 2.3.1a, ta cós k là một lựa chọn xấp xỉ tốt củaA T k q. b Ước lượng chuẩn các vectơ cột củaA k Xét dãy a (h) i =AQiQ T i e h , h=1, ,n, (2.33) và ta có:
Cũng lý luận tương tự Mục 2.3.1a, ta cóa (h) k là một lựa chọn xấp xỉ tốt củaAkeh hay
∥a (h) k ∥ 2 là lựa chọn xấp xỉ tốt của∥A k eh∥ 2 Mặt khác:
Vớiqˆ i =Aq i vàq (h) i là phần tử thứhcủa vectơq i , ta có:
∥a (h) i ∥ 2 2 =∥a (h) i−1 ∥ 2 2 + (qˆ T i qˆi)(q (h) i ) 2 (2.36) Do đó ta có: zi= (∥a (1) i ∥ 2 2 ,∥a (2) i ∥ 2 2 , ,∥a (n) i ∥ 2 2 ) T =z i−1 + (qˆ T i qˆi)(q i ) 2 (2.37) c Cách triển khai
Nhìn chung cách triển khai khá giống với cách triển khai ở Mục 2.3.1, chỉ có chút khác biệt trong các công thức tính toán.
Giai đoạn tiền xử lý, chúng ta thực hiện như Thuật toán 2 với lưu ý rằng các dòng 4, 5, 6 được thay thế bằng đoạn code sau. qˆi←Aqi; z i ←z i−1 + (qˆ T i qˆ i )(q i ) 2 ; w i ←A T qˆ i −β i−1 q i−1 ; Giai đoạn phản hồi truy xuất, chúng ta ước lượngA T k qthông quas k =Q k (Q T k (A T q)).
Nếu ma trận Aˆ với các cột là các vectơ qˆ i , i=1,2, ,kđược trả về ở giai đoạn tiền xử lý thì ở giai đoạn phản hồi truy vấn ta có thể tínhs k =Q k (Aˆ T q).
Độ phức tạp tính toán
Thay vì tính SVD rút gọn, sử dụng các vectơ Lanczos sẽ bỏ qua việc chéo khóa ma trậnT k để tínhA k trong giai đoạn tiền xử lý Do đó tiết kiệm nhiều về chi phí thời gian cho quá trình tiền xử lý Đồng thời việc không tính A k cũng giảm bộ nhớ để lưu trữ ma trận này cho quá trình phản hồi truy vấn (thay vào đó lưu trữkvectơ Lanczos cần ít bộ nhớ hơn) Phần này phân tích độ phức tạp tính toán của cả quá trình tiền xử lý và quá trình phản hồi truy vấn và kết quả được tóm tắt trong Bảng 2.1 Chúng ta giả sử rằng ma trậnAcó kích thướcm×nvới nnz các phần tử khác 0 Trường hợpAkhông phải là ma trận thưa không điển hình, do đó chúng tôi bỏ qua phân tích trường hợp này ở đây.
Trước tiên ta phân tích độ phức tạp khi ước lượngA T k q Trong giai đoạn tiền xử lý, trong mỗi vòng lặp thực hiện hai lần tích ma trận - vectơ được tính (một ở bước 4 và một bước 6), và nếu sử dụng vectơ Lanczos củaAA T thì cần thêm một số phép tính với vectơ có độ dài m (6 phép tính chưa kể chi phí tái trực giao hóa), nếu sử dụng các vectơ Lanczos của A T A thì cần thêm một số phép tính với vectơ có độ dài n (6 phép tính chưa kể chi phí tái trực giao hóa) Do đó vớiklần lặp, chi phí thời gian là O(k(nnz+m)) đối với sử dụng AA T hoặc O(k(nnz+n)) với sử dụng A T A Chi phí bộ nhớ bao gồm việc lưu trữ ma trậnAvà tất cả các vectơ Lanczos, do đó lần lượt là O(nnz+km)vàO(nnz+kn) Nếu lưu ma trận Aˆ thì cả hai trường hợp đều có chi phí lưu trữ làO(nnz+km+kn), chi phí thời gian không đổi.
Thay vì tính các vectơ Lanczos để ước lượng A T k qtheo sk, nếu tính theo SVD rút gọn thì chi phí tính toán sẽ lớn hơn nhiều Một cách điển hình để tính SVD rút gọn là thực hiện quy trình Lanczos với k ′ > klần lặp, sau đó tính toán các giá trị riêng của T k ′ Thông thường để đảm bảo sự hội tụ của kgiá trị và vectơ Ritz đầu tiên, số bước Lanczosk ′ phải lớn hơnkkhá nhiều Do đó, chi phí cho SVD rút gọn, cả về thời gian và bộ nhớ, liên quan đến giá trịk ′ lớn hơn nhiều so vớik Hơn nữa, chi phí còn có một yếu tố bổ sung để thực hiện các phân tích giá trị riêng củaT k ′ Ở giai đoạn phản hồi truy vấn, việc tính s k cần ba lần tính tích ma trận - vec tơ trong đó có một lần là ma trận thưa Do đó, chi phí thời gian chính xác lànnz+2km đối với cách tiếp cận sử dụngAA T vànnz+2knvới cách tiếp cận sử dụngA T A Trong trường hợp sử dụng ma trậnAˆ thay vì ma trậnAthì chi phí lưu trữ và chi phí thời gian cho cả hai cách tiếp cận lần lượt làO(kn+km)vàkn+km Trong khi đó nếu tính tíchA T k q bằng SVD có thể được tính theo ba cách: (a) A T (U k (U k T q)); (b) V k (V k T (A T q)); hoặc (c)V k (Σ k (U k T q)) Cách tiếp cận (a) yêu cầu bộ nhớ O(nnz+km) và thời gian nnz+2km, cách tiếp cận (b) yêu cầu bộ nhớO(nnz+kn)và thời giannnz+2kn, trong khi cách tiếp cận (c) yêu cầu O(k(m+n)) bộ nhớ và k(m+n)thời gian Tùy thuộc vào kích thước tương đối củakvànnz/n(hoặcnnz/m), cách tốt nhất có thể được chọn trong triển khai thực tế.
Bảng 2.1: So sánh độ phức tạp tính toán trong ước lượngA T k q ƯL theo AA T / ƯL theo A T A / Lưu A ˆ SVD cắt gọn
- Bộ nhớ O(nnz +km)/O(nnz + kn)/O(nnz + km + kn) O(nnz + k ′ m + T s )/O(nnz + k ′ n + T s ) - Thời gian O(k(nnz + m))/O(k(nnz + n))/Không đổi O(k ′ (nnz + m) + T t )/O(k ′ (nnz +n) + T t )
- Bộ nhớ O(nnz + km)/O(nnz + kn)/O(km + kn) O(nnz + km)/O(nnz + kn)/O(k(m + n)) - Thời gian nnz +2km / nnz + 2kn / km + kn nnz +2km / nnz + 2kn / k(m + n)
Trong bảng trên,TsvàTt lần lượt là chi phí bộ nhớ và thời gian cho việc chéo khóa ma trận ba đường chéo và kiểm tra độ hội tụ Hai chi phí này đều phức tạp và không thể biểu diễn một cách gọn gàng bằng các hệ số nhưnnz,k,mvàn Ngoài ra, hãy lưu ý rằngk ′ >kvà thường thìk ′ lớn hơnkvài lần. Đối với với việc ước tính chuẩn các vectơ cột của Ak, ta dễ dàng nhận thấy nếu sử dụng theo vectơ Lanczos thì cần 2k phép tính vectơ với độ dài n (vớiAA T ) hoặc cần k phép tính vectơ có độ dài m và2kphép tính vectơ với độ dài n (vớiA T A) Rõ ràng chi phí này là không đáng kể so với ước lượngA T k qnhư phân tích ở trên Do đó có thể xem độ phức tạp tính toán ở quá trình tiền xử lý vẫn theo Bảng 2.1 Nếu tính chuẩn các vectơ cột củaA k thông qua SVD rút gọn thì
(2.38) từ đây suy ra z k =V k 2 diag(Σ) 2 (2.39)
Như vậy ta cần 2 phép tính ma trận kích thướcn×kvà 1 phép tính với vectơ độ dài k.
Khác với ước lượng thông qua vectơ Lanczos, tính chuẩn các vectơ cột củaA k thông qua SVD rút gọn được thực hiện ở giai đoạn phải hồi truy vấn dữ liệu, và chi phí tính toán này là đáng kể so với tínhA T k q Do đó ta sẽ thấy trong quá trình phải hồi truy vấn việc ước lượng thông qua các vectơ Lanczos tiêu thụ ít tài nguyên hơn so với việc tính toán thông qua SVD.
Từ những phân tích ở trên, ta có thể kết luận như sau:
• Việc lựa chọn sử dụng thuật toán gần đúng nào phần lớn phụ thuộc vào kích thước tương đối củamvàn, tức là vào hình dạng của ma trậnA Rõ ràng sử dụng AA T là lựa chọn tốt hơn khimn, có cấu trúc Low-rank-plus-shift thì
Từ đó ta có thể nghĩ đến việc ước lượngbestk(A)≈A Kết quả có thể khái quát hóaˆ cho trường hợpAđược chia thành nhiều khối theo cộtA= [A 1 ,A 2 , ,As] Trường hợp m0 nên dấu của các giá trị α 1 ,α 2 , ,αn phụ thuộc vào việc các phần tử trong v 1 có lớn hơnm(v 1 )hay không Đến đây nhiệm vụ của ta là xác định v 1 Như Mục 2.1 đã chỉ ra, điều này có thể đạt được thông qua tính vectơ riêng tương ứng với giá trị riêng lớn nhất của ma trận3đường chéo sinh ra bởi Thuật toán 1 áp dụng cho ma trậnC T C Ở đây cần lưu ý rằngC là một ma trận không thưa trong khiA là ma trận thưa nên tính tường minhC rồi thực hiện các tính toán quaC sẽ không hiệu quả về mặt chi phí tài nguyên tính toán bằng tính toán gián tiếp quaA Cụ thể, bước4của Thuật toán 1 được thay bằng: wi←A T (Aq i −àe T qi)−eà T (Aq i −àe T qi)−β i−1 q i−1 (3.10)Thuật toán 3 tóm tắt quá trình chia đôi tập dữ liệu.
Thuật toán 3: Chia đôi ma trận dữ liệu
1 Thực hiện Thuật toán 1 với bước4được thay thế bởi Công thức 3.10;
2 Xác định vectơ riêngyứng với giá trị riêng lớn nhất của ma trậnTk;
Kỹ thuật chia để trị theo tài liệu (cột)
Như đã đề cập ở Mục 3.1, cách chia này phù hợp với những ma trậnA∈R m×n cao và mỏng (m>n) Tại mỗi nút trong cây phân cấp thực hiện Thuật toán 3 để phân chia tập A (i) j (A (0) 1 =A) thành hai tập con A (i+1) 2 j-1 và A (i+1) 2 j Hình 3.2 minh họa quá trình phân chia hai cấp ma trậnAban đầu.
Với cách chia như trên một tài liệu chỉ xuất hiện trong một tập con sau cùng (nút lá) Rõ ràng, nếu chúng ta dùng mô hình VSM thì kết quả phân tích trên tập con sẽ trùng với kết quả phân tích trên tập ban đầu Ngược lại, với mô hình LSI kết quả sẽ có ít nhiều khác biệt do nhìn chungbestk(A)̸stk(A (i) j )vớiA (i) j là một nút lá của câyPDDP cấp i Tuy nhiên, thay vì dùng mặt phẳng nếu chúng ta dùng một ’dải’ mỏng xung quanh siêu phẳng phân tách và cả hai tập con đều có chung ’dải’ này (Hình 3.3),thì sự chồng chéo nhỏ này của các tập con sẽ có ích Nó cho phép linh hoạt khi quyết
Hình 3.2: Phép chia 2 cấp ma trận thuật ngữ-tài liệuA∈R m×n theo tài liệu (cột).
(Nguồn: chỉnh sửa từ Hình 1 trong [5]) định mức độ tương đồng của các tài liệu bên trong ’dải’ Trong trường hợp này, Thuật toán 3 có chút điều chỉnh, với độ rộngd của dải, đoạn mã từ dòng 5 đến 9 được thay bằng: ifv 1 [i]≥m(v 1 )−d/2then left.append(i); end ifv 1 [i]≤m(v 1 ) +d/2then right.append(i); end
Nếu một tài liệu không nằm trong một dải phân tách nào thì nó chỉ xuất hiện trong một tập con cuối cùng Mức độ tương đồng giữa tài liệu này với truy vấn chỉ được lấy từ quá trình phân tích trên nút này Nếu nó xuất hiện trong một dải phân tách nào đó thì nó sẽ xuất hiện ở ít nhất hai nút lá Ở mỗi nút lá nó xuất hiện, mức độ tương đồng giữa nó và truy vấn có thể khác nhau Mức tương đồng cao nhất trong tất cả các mức tương đồng này được chọn là mức tương đồng chung cho tài liệu này.
Hình 3.3: Minh họa việc phân chia nút A (i) j thành hai nút con A (i+1) 2 j-1 và A (i+1) 2 j Hai khung nét đứt biểu thị khung thực tế của hai tập con, có chung một ’dải’ có chiều rộngd xung quanh siêu phẳng.
(Nguồn: chỉnh sửa từ Hình 2 trong [5])
Chi tiết việc xử lý tính toán tại mỗi nút lá được tiến hành như trình bày ở Mục2.3 Trong phân tích ở Mục 2.3.3 đã chỉ ra việc tính toán sử dụng vectơ Lanczos củaA (i) j T A (i) j trong trường hợp này là tốt nhất về hiệu quả tính toán Chiến lược chia để trị dựa trên phân chia theo cột được tóm tắt trong Thuật toán 4.
Kỹ thuật chia để trị theo thuật ngữ (hàng)
Cũng có thể phân nhỏ dữ liệu theo thuật ngữ thay vì theo tài liệu và đây có thể là một cách tiếp cận tốt hơn so với cách chia theo cột khi m≤n Cách chia theo thuật ngữ giống hệt với cách chia theo tài liệu ngoại trừ việc nó được áp dụng cho ma trận chuyển vị của ma trận thuật ngữ - tài liệuA Hình 3.4 minh họa cho cách chia này Ở đây mỗi Ai đại diện cho một ma trận có kích thước mi×n chứa mi hàng của A, thu được bằng kỹ thuật chia đệ quy PDDP áp dụng cho các hàng chứ không phải cho các cột Ví dụ: A 1 , ,A 4 trong Hình 3.4 có thể thu được theo cách tương tự như trongHình 3.2, với hình minh họa được xoay90 o ngược chiều kim đồng hồ Để đơn giản, ở đây chúng tôi sử dụng1,2, ,pđể lập chỉ mục cho tất cả các tập con (nút lá) thay vì
Thuật toán 4: D&C-Lanczos: Phân chia theo cột
1 Phân chia các ma trậnA (i) j vớiA=A (0) 1 theo cột thành các ma trận conA (i+1) 2 j−1 vàA (i+1) 2 j (sử dụng Thuật toán 3 áp dụng cho ma trậnA (i) j với chút điều chỉnh đã nói ở trên.);
2 Với một truy vấnqnhất định, tính toán mức độ tương đồng giữaqvà các tài liệu trong từng nút láA i j max , j=1,2, ,2imax (sử dụng vectơ Lanczos của A i j max T A i j max - xem Mục 2.3.2);
Mức độ tương tự cấp câu cao nhất giữa tài liệu và truy vấn tương ứng với nút tương ứng trong cây ngữ pháp phụ thuộc (dependency parse tree).
Ma trậnAhiện được phân chia theo hàng thành ptập con và truy vấnqđược phân chia tương ứng, nghĩa là:
Câu hỏi bây giờ là làm thế nào để tính toán sự tương đồng giữa một truy vấn và các cột của ma trậnAban đầu Nếu chúng ta thực hiện phân tích theo mô hình VSM trên từng nút lá thì tổng kết quả phân tích từ tất cả các nút là sẽ trùng khớp với kết quả phân tích theo mô hình VSM cho toàn bộ dữ liệu Thay vào đó, chúng ta thực hiện phân tích LSI trên từng nút lá và kết hợp các kết quả với nhau.
Gọibestk(A i )là xấp xỉ hạng k tốt nhất củaAi,i=1, ,qvà
Hình 3.4: Phân chia theo thuật ngữ (hàng) của ma trận tài liệu thuật ngữAthành 4 tập con Truy vấnqđược chia nhỏ tương ứng.
(Nguồn: chỉnh sửa từ Hình 3 trong [5])
Theo Mục 3.1 ta cóbest k (A)≈A Khi đóˆ best k T (A)q≈Aˆ T q
(domin) Kỹ thuật này được tóm tắt trong Thuật toán 5.
Thuật toán 5: D&C-Lanczos: Phân chia theo hàng
1 Phân chia ma trận tài liệuAtheo hàng thành các ma trận conAi,i=1,2, ,p.
(tương tự bước 1 Thuật toán 4 với lưu ý là Thuật toán 3 áp dụng cho các ma trận chuyển vị tương ứng);
2 Với một truy vấnqnhất định, chia nhỏqtheo tương ứng với chia ma trận tài liệuA;
3 Thực hiện phân tích trên mỗiAi(sử dụng vectơ Lanczos củaAiAi T
- xem Mục 2.3.1) và tính tổng các kết quả như 3.13 và tính chuẩn các cột ma trậnAˆ như 3.15;
4 Chuẩn hóa kết quả bằng cách chia mỗi phần tử củas ′ k cho chuẩn của cột tương ứng trong ma trậnA;ˆ
Mục tiêu của các thử nghiệm được trình bày trong chương này là cho thấy tính hiệu quả của các kỹ thuật chia để trị kết hợp các ước lượng sử dụng vectơ Lanczos so với cách tiếp cận dựa trên SVD rút gọn Các thử nghiệm được thực hiện bằng ngôn ngữ lập trình Python 3.10.13 (mã nguồn: https://github.com/dunglk85/
IR_VectorSpaceModel) chạy trên máy tính Window 10 với bốn CPU core i5-7200U2.50-2.70 GHz và bộ nhớ 8GB.
Dữ liệu
Hai bộ dữ liệu đã được sử dụng trong các thử nghiệm gồm:
- MEDLINE Đây là một trong các bộ dữ liệu tiêu chuẩn ban đầu trong nghiên cứu truy xuất thông tin Số liệu thống kê điển hình của bộ dữ liệu là số lượng các thuật ngữ riêng biệt nhiều hơn số lượng tài liệu Ma trận dữ liệu được ký hiệu làAMED.
- NPL Bộ dữ liệu này lớn hơn bộ dữ liệu trên, có đặc điểm là số lượng tài liệu nhiều hơn số lượng các thuật ngữ riêng biệt Ma trận dữ liệu được ký hiệu làA NPL
Trước khi đưa các bộ dữ liệu vào thực nghiệm các kỹ thuật nêu trên, học viên sử dụng thư viện nltk để tiến hành loại bỏ stopword, loại bỏ biến thể (lemmatization).
Sau đó học viên tiến hành vectơ hóa dữ liệu, tính tf-idf, bằng gói thư việnsklearnđể biến các tập văn bản thành ma trận, các câu truy vấn thành các vectơ Các thống kê đặc điểm của hai bộ dữ liệu sau khi xử lý để đưa vào thử nghiệm có trong Bảng 4.1.
Bảng 4.1: Thống kê về các bộ dữ liệu thực nghiệm
Sự hội tụ của chuỗi s i
(a) Không tái trực giao, A MED (A T A) (b) Tái trực giao, A MED (A T A)
(c) Không tái trực giao, A NLP (AA T ) (d) Tái trục giao, A NLP (AA T )Hình 4.1: Sự hội tụ của chuỗisi tới vectơA T qtheo các hướngv 1 ,v 2 vàv 3 Hình 4.1 biểu diễn đặc tính hội tụ của si theo hướng của các vectơ kỳ dị phải lần lượt của ma trậnAMED vàANLP Trục tung tương ứng với các giá trị| ⟨A T q−si,vj⟩ |.
Như được chỉ ra bởi đồ thị (a) và (c), nếu không thực hiện tái trực giao, các chuỗi si sẽ phân kỳ bắt đầu từ khoảng lần lặp thứ 10, điều này cho thấy rằng việc mất tính trực giao trong quá trình Lanczos xuất hiện khá sớm Do đó, cần phải thực hiện lại việc trực giao hóa để mang lại kết quả chính xác Đồ thị (b) và (d) thể hiện mô hình hội tụ dự kiến: phần chênh lệch nhanh chóng giảm xuống mức (gần) 0.
Độ lệch giữa s k và A T k q
Hình 4.2: Độ lệch giữaA T k qvàs k theo hướng các vectơ kỳ dị phải
Hình 4.2 thể hiện độ lệch giữa A T k q và s k theo hướng các vectơ kỳ dị phải Đồ thị cho thấy rằng A T k q và s k gần như giống hệt nhau khi chiếu lên một số lượng lớn các vectơ kỳ dị phải đầu tiên Điều này chỉ ra rằng s k có thể thay thế hiệu quả cho A T k q mà vẫn bảo toàn chất lượng theo nhiều hướng vectơ kỳ dị phải đầu tiên.
Sự phân bố các giá trị kỳ dị
Hình 4.3: Sự phân bố giá trị kỳ dị
Quay lại Hình 4.1 ta thấy: - các chuỗi si hội tụ theo cả ba hướng, vớiv 1 là hướng nhanh nhất; - các ước lượng gần đúng không khác nhau quá nhiều về tốc độ hội tụ.
Thực tế đầu tiên có thể được nghiên cứu sâu hơn bằng cách vẽ đồ thị phân bố giá trị kỳ dị của ma trận dữ liệu như trong Hình 4.3 Sự giảm nhanh các giá trị kỳ dị đầu tiên giải thích sự hội tụ nhanh chóng theo hướng v 1 Thực tế thứ hai được giải thích bởi chúng có giới hạn tương tự nhau (xem bất đẳng thức 2.23 và 2.32) Và do đó cho thấy rằng chất lượng gần đúng không phải là một yếu tố trong việc lựa chọn sử dụng vectơ Lanczos củaAA T hay A T A.
Hình 4.3 cũng cho thấy, các giá trị kỳ dị càng về sau càng ít thay đổi Điều này cho thấy cấu trúc low-rank-plus-shift của ma trận dữ liệu (xem Mục 1.1.9).
Độ chính xác trong truy vấn dữ liệu
Hình 4.4 thể hiện Độ chính xác bình quân, hình 4.5 thể hiện đường cong Độ chính xác - Độ nhạy Với những gì hai hình này thể hiện, ta thấy độ chính xác đạt được của các ước lượng khác nhau là tương đối giống nhau.
Hình 4.4: Độ chính xác bình quân
Hình 4.5: Đường cong Độ chính xác - Độ nhạy
Thời gian tính toán
Hình 4.6 thể hiện chi phí thời gian giai đoạn tiền xử lý So sánh giữa việc dùng SVD và vectơ Lanczos rõ ràng sử dụng vectơ Lanczos là tiết kiệm hơn nhiều Ngoài ra, ta thấy khi kích thướcAlớn vàklớn thì kỹ thuật chia để trị cho thấy tính hiệu quả về chi phí thời gian VớiAnhỏ vàknhỏ thì kỹ thuật chia để trị là không hiệu quả Điều này được giải thích là do chi phí thời gian của việc phân chia dữ liệu.
Hình 4.6: Chi phí thời gian tiền xử lý
Hình 4.7: Chi phí thời gian truy vấn
Hình 4.7 thể hiện chi phí thời gian giai đoạn phản hồi truy vấn Ở đây ta vẫn thấy việc sử dụng vectơ Lanczos tiết kiệm hơn so với SVD Như đã nói ở Mục 2.3.3 thì điều này là do nếu sử dụng SVD thì cần phải tính chuẩn các vectơ cột của A k trong giai đoạn này, trong khi các giá trị này đã được ước lượng trong giai đoạn tiền xử lý nếu sử dụng vectơ Lanczos Ở giai đoạn phản hồi truy vấn, kỹ thuật chia để trị là tốn chi phí hơn Tuy nhiên, so với giai đoạn tiền xử lý thời gian phản hồi truy vấn là rất nhỏ (kém khoảng 1000 lần) Do đó kỹ thuật chia để trị vẫn cho thấy tính hiệu qủa đối với tập dữ liệu lớn.
Kỹ thuật chia để trị được ứng dụng phổ biến trong lĩnh vực khoa học dữ liệu, giúp chia nhỏ bài toán lớn thành nhiều bài toán nhỏ Thêm vào đó, thuật toán Lanczos được sử dụng trong các bài toán liên quan đến giá trị riêng và vectơ riêng Nghiên cứu luận văn này cung cấp kiến thức chuyên sâu về cả hai kỹ thuật này.
• Cách ước lượng các đại lượngA T k qvà chuẩn các vectơ cột củaA k trong mô hình LSI bằng việc sử dụng các vectơ Lanczos.
• Kỹ thuật phân chia ma trận dữ liệu theo cột và theo hàng dựa trên thuật toán Phân chia theo hướng chính (PDDP) và cách tổng hợp kết quả phân tích từ các tập dữ liệu con được chia.
• Áp dụng và thực nghiệm các kỹ thuật trên vào bài toán truy vấn dữ liệu Kết quả thực nghiệm cho thấy, trong mô hình LSI, kỹ thuật chia để trị sử dụng ước lượng bằng vectơ Lanczos khi so sánh với việc sử dụng SVD mang lại độ chính xác truy vấn tương đương nhưng chi phí tính toán là ít hơn nhiều.
Hướng nghiên cứu tiếp theo
Với việc độ chính xác ước lượng các đại lượng tích ma trận vectơ A T k q và chuẩn các vectơ cột củaA k cao, tương đương phương pháp SVD rút gọn, trong truy vấn dữ liệu, phương pháp sử dụng các vectơ Lanczos cho thấy có tiềm năng áp dụng cho các ứng dụng mà trong đó cần tính tích xấp xỉ hạng thấp của ma trận với một vectơ tùy ý, chẳng hạn ứng dụng nhận diện khuôn mặt [22].
Kỹ thuật chia để trị trên cột và hàng trước đó mặc dù hiệu quả, nhưng còn nhiều khả năng khai thác khác bằng cách sắp xếp lại ma trận thưa Điều này dẫn đến nhiều kỹ thuật chia để trị hơn, như trong các tài liệu [2], [9] Ngoài ra, có thể xem xét những thuật toán phân chia dữ liệu khác ngoài PDDP.
Luận văn cũng mới dừng lại ở các tập dữ liệu cố định Trong thực tế, các tập dữ liệu có thể thường xuyên được cập nhật Vì vậy tìm cách áp dụng các kỹ thuật trên để giải quyết bài toán dữ liệu được cập nhật, [23], cũng là một hướng đi cần quân tâm trong tương lai.
[1] R Abbey, J Diepenbrock, A Langville, C Meyer, S Race, and D Zhou,Data clustering via principal direction gap partitioning, 2012.
[2] C Aykanat, A Pinar, and ăU V Cá atalyăurek, “Permuting sparse rectangular matrices into block-diagonal form,” SIAM Journal on Scientific Computing, vol 25, no 6, pp 1860–1879, 2004.
[3] M Berry and M Browne,Understanding Search engines: Mathematical Mod- eling and Text etrieval.SIAM, 2005.
[4] D Boley, “Principal direction divisive partitioning,”Data Mining and Knowl- edge Discovery, vol 2, no 4, pp 325–344, 1998.
[5] J Chen and Y Saad, “Divide and conquer strategies for effective information retrieval,” Proceedings of the 2009 SIAM International Conference on Data Mining (SDM), pp 449–460, 2009.
[6] J Chen and Y Saad, “Lanczos vectors versus singular vectors for effective di- mension reduction,”IEEE Transactions on Knowledge and Data Engineering, vol 21, no 8, pp 1091–1103, 2009.
[7] S Deerwester, S Dumais, G Furnas, T Landauer, and R Harshman, “Indexing by latent semantic analysis.,”Journal of the American Society for Information Science 41, pp 391–407, 1990.
[8] G H Golub and C F Van Loan, Matrix Computations The Johns Hopkins
[9] B Hendrickson and T G Kolda, “Partitioning rectangular and structurally un- symmetric sparse matrices for parallel processing,”SIAM Journal on Scientific Computing, vol 21, no 6, pp 2048–2072, 2000.
[10] J Liesen and Z Strakos, Krylov subspace methods principles and analysis.
[11] C D Manning, P Raghavan, and H Sch¨utze,Introduction to Information Re- trieval Cambridge, UK: Cambridge University Press, 2008.
[12] D M W Powers, “Evaluation: From precision, recall and f-measure to roc, informedness, markedness and correlation,” Computing Research Repository, vol abs/2010.16061, 2020.
[13] S Qaiser and R Ali, “Text mining: Use of tf-idf to examine the relevance of words to documents,”International Journal of Computer Applications, vol 181, no 1, pp 25–29, 2018.
[14] S Ross,Introduction to Probability Models Elsevier Science, 2014.
[15] Y Saad, “On the rates of convergence of the lanczos and the block-lanczos methods,” SIAM Journal on Numerical Analysis, vol 17, no 5, pp 687–706,
[16] Y Saad,Iterative methods for sparse linear systems.SIAM, 2003.
[17] J Scott and M T˚uma,Algorithms for Sparse Linear Systems Basel: Birkh¨auser,
[18] H D Simon, “Analysis of the symmetric Lanczos algorithm with reorthogo- nalization methods,”Linear Algebra and its Applications, vol 61, pp 101–131,
[19] H D Simon, “The Lanczos algorithm with partial reorthogonalization,”Math- ematics of Computation, vol 42, no 165, pp 115–142, 1984.