Thí dụ, Cho trước ma trận M bậc m x n, đổi chỗ transpose M ký hiệu là MT có được nhờ chuyển hàng M thành cột MT.. Phân chia giá trị khác thường SVD của FreqT là bộ ba A, S, B trong đó: 1
Trang 14.3.1 Nền tảng của phân chia giá trị khác thường (SVD)
Error!
Nhớ lại rằng ma trận M được gọi là ma trận bậc (m x n) nếu có m hàng và n cột Nếu ma trận M1 có bậc (m1 x n1) và M2 có bậc (m2 x n2), sau đó ta gọi tích (M1 x
M2) là xác định rõ ràng nếu n1 = m1 Bậc của ma trận tích (M1 x M2) là (m1 x n2) Thí dụ, hãy xem xét hai ma trận A và B như sau:
A có bậc (2x2) và B có bậc (2x3) Ta gọi (A x B) là xác định rõ ràng và có bậc (2x3)
Error!
Tổng thể, giả sử tích (M1 x M2) của hai ma trận là định nghĩa tốt Nếu
thì tích (M1 x M2) là ma trận sau:
Error!
trong đó,
Error!
Thí dụ,
Cho trước ma trận M bậc (m x n), đổi chỗ (transpose) M ký hiệu là MT có được nhờ chuyển hàng M thành cột MT Hàng thứ nhất của M thành cột thứ nhất của MT, hàng thứ m của M thành cột thứ m của MT
Do vậy, MT là ma trận (n x m) Thí dụ,
Trang 2Ta sẽ sử dụng cách biểu diễn véctơ để đề cập đến ma trận bậc (1x m) Hai véctơ x
và y của cùng bậc được gọi là trực giao (orthogonal) nếu xTy=0 Thí dụ,
x=(10, 5, 20)
y=(1, 2, -1)
Error!
Hai véctơ trên là trực giao vì:
Error!
Ma trận M được gọi là trực giao nếu (MTM) là ma trận đơn vị Thí dụ hãy xem xét
ma trận:
Dễ dàng thấy rằng ma trận MT x M là ma trận đồng nhất, do vậy nó là trực giao
Ma trận M là ma trận chéo (diagonal) nếu bậc của M là (m x m) và với mọi 1£
i, j £ m, thì
i ¹ j ® M(i, j) = 0
Error!
Nói cách khác, M là ma trận chéo nếu nó là ma trận vuông và mọi phần tử không nằm trên đường chéo của nó có giá trị 0 Chú ý rằng không đòi hỏi các phần tử trên đường chéo phải khác 0 Thí dụ ma trận A, B dưới đây là ma trận chéo còn ma trận
C là không:
Trang 3Ma trận chéo M bậc (m x m) được gọi là không tăng (nonincreasing) nếu với mọi
1£ i, j £ m, thì
i £ j ® M(i, j) ³ M(j, j)
Nói cách khác, nếu đi theo đường chéo từ đỉnh xuống đáy thì các giá trị giảm dần Theo thí dụ trên, B là ma trận chéo không tăng, nhưng ma trận A không phải như vậy
Giả sử FreqT là bảng tần số bất kỳ (nó là ma trận bậc M x N) Phân chia giá trị khác thường (SVD) của FreqT là bộ ba (A, S, B) trong đó:
1 FreqT=(A x S x BT),
2 A là ma trận trực giao bậc (M x M), có nghĩa là ATA=I,
3 B là ma trận trực giao (N x N), có nghĩa là BTB=I,
4 S là ma trận chéo được gọi là ma trận khác thường (singular matrix)
Error!
Rõ ràng là cho trước ma trận bất kỳ M bậc (m x n), thì có thể tìm ra SVD (A, S, B) của M, trong đó S là ma trận chéo không tăng Thí dụ, SVD của ma trận
Error!
được cho bởi
Tại đây, giá trị bất thường là 5 và 2, và dễ thấy rằng ma trận bất thường là không tăng
Error!
Ý tưởng cơ bản của LSI là cho trước ma trận tần số FreqT, ta có thể phân chia nó
Trang 4thành SVD TSDT, trong đó S là không tăng (hình 4.4a) Tuy nhiên nếu FreqT có bậc (M x N) thì T có kích thước (M x M), S có bậc (M x R), trong đó R là bậc của FreqT, và DT có bậc (R x N)
Cái hay của LSI là ta có thể làm giảm khó khăn cơ bản bằng giới hạn các giá trị đơn có ý nghĩa nhất từ ma trận khác thường S như trên hình 4.4b Việc này được thực hiện như sau:
1 Chọn số nguyên k nhỏ hơn R
2 Thay thế S bởi S*, nó là ma trận (k x k), trong đó S*(i, j) = S(i, j) với 1£i, j£k
3 Thay thế ma trận DT kích thước (R x N) bằng ma trận D*T kích thước (k x N), trong đó D*T(i, j) = DT(i, j) nếu 1£ i £k và 1£ j £N
4 Tương tự, thay thế ma trận T có kích thước (M x M) bằng ma trận T* có kích thước (M x K)
Nói cách khác, LSI bỏ đi các giá trị ít ý nghĩa nhất và giữ lại phần còn lại của ma trận Gọi tích T*S*D*T là Freq* Nền tảng của kỹ thuật LSI là ở chỗ nếu chọn k một cách hợp lý thì k hàng xuất hiện trong ma trận đơn S* biểu diễn k khái niệm quan trọng nhất (từ quan điểm khai thác) xuất hiện trong toàn bộ tập tài liệu
Error!
Để thấy rõ LSI làm giảm kích thước theo cách này như thế nào, hãy khảo sát thí dụ đơn giản Giả sử FreqT có SVD sau:
Error!
Người thiết kế hệ thống khai thác tài liệu có thể đặt giá trị 3 làm mức ngưỡng (chú
ý rằng trong ma trận đơn trong phân chia trên đây có các giá trị đơn thứ tư và thứ năm rất nhỏ so với cái khác) Do vậy, người thiết kế CSDL tài liệu phải chọn cẩn thận để giảm kích thước ma trận bằng làm giảm hai hàng cột cuối của ma trận đơn Kết quả là:
Trang 5Thông thường, kích thước ma trận đơn trong miền lớn vừa phải là 200 Hãy khảo sát ý nghĩa của nó như sau
1 Kích thước của bảng tần số gốc là (M x N), trong đó M là tổng số khái niệm
và N là tổng số tài liệu Dễ dàng có đến M = 1 triệu và N=10,000 ngay CSDL tài liệu nhỏ
2 Bây giờ kích thước của ba ma trận sau khi đã giảm thiểu kích thước của ma trận đơn, giả sử còn 200:
· Kích thước của ma trận thứ nhất là M x R Với các số trên đây ta có 1 triệu x
200 = 200 triệu đầu vào
· Kích thước ma trận đơn là 200 x 200 = 40,000 đầu vào (Sự thật trong 40,000 đầu vào thì chỉ 200 cần phải lưu trữ; toàn bộ các đầu vào còn lại có giá trị 0)
· Kích thước ma trận cuối cùng là R x N Với các số trên đay ta có 200 x
10,000 = 2 triệu đầu vào
Cuối cùng ta có khoảng 202 triệu đầu vào trong bảng sau khi áp dụng SVD
3 Ngược lại, (M x N) gần tới 10 tỷ, nói cách khác SVD làm giảm đáng kể không gian sử dụng khoảng 1/50 so với bảng tần số gốc
Chú ý rằng: Trong nhiều trường hợp ma trận gốc M x N là ma trận rải rác, nó có
thể lưu trữ được bởi vì số phần tử nhỏ hơn M x N rất nhiều Trong trường hợp này phân chia SVD lại làm tăng tổng số lưu trữ
Tính toán thực sự của SVD kết hợp với ma trận là câu hỏi phức tạp trong lý thuyết
ma trận, do vậy ta không đi chi tiết ở đây May thay, ta không phải làm việc đó tiếp theo, vì thuật toán SVD nổi tiếng có sẵn trong các thư viện MATLAB và
LAPPACK (http://usi.utah.edu/software/math/pub/LAPACK/lug/node55.html)
4.3.2 Khai thác tài liệu sử dụng SVD
Giả sử ta đã tạo ra một biểu diễn SVD, TS* x D*T, của bảng tần số Hãy quan sát biểu diễn này để trả lời hai câu hỏi sau: Cho trước hai tài liệu d1 và d2 trong kho lưu trữ, tính “tương tự” của chúng như thế nào? Cho trước xâu ký tự/tài liệu truy vấn Q, n tài liệu nào trong kho lưu trữ mà chúng “thích hợp nhất” với truy vấn đó?
Error!
Trang 6Trước hết, nhắc lại khái niệm tích vô hướng của hai véctơ (có cùng độ dài) Giả sử x=(x1, ,xw) và y=(y1, ,yw) là hai véctơ giá trị thực Tích vô hướng của x và y
được tính như sau:
Tính tương tự của hai tài liệu
Error!