MultiBooks - Tổng hợp IT - PC part 21 pot

6 263 0
MultiBooks - Tổng hợp IT - PC part 21 pot

Đang tải... (xem toàn văn)

Thông tin tài liệu

4.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 M 1 có bậc (m 1 x n 1 ) và M 2 có bậc (m 2 x n 2 ), sau đó ta gọi tích (M 1 x M 2 ) là xác định rõ ràng nếu n 1 = m 1 . Bậc của ma trận tích (M 1 x M 2 ) là (m 1 x n 2 ). 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 (M 1 x M 2 ) của hai ma trận là định nghĩa tốt. Nếu thì tích (M 1 x M 2 ) 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à M T có được nhờ chuyển hàng M thành cột M T . Hàng thứ nhất của M thành cột thứ nhất của M T , hàng thứ m của M thành cột thứ m của M T . Do vậy, M T là ma trận (n x m). Thí dụ, Error! Ta 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 x T y=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 (M T M) 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 M T 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: Ma 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 B T ), 2. A là ma trận trực giao bậc (M x M), có nghĩa là A T A=I, 3. B là ma trận trực giao (N x N), có nghĩa là B T B=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ó thành SVD TSD T , 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à D T 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 D T 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) = D T (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à: Thô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 d 1 và d 2 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! Trướ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=(x 1 , ,x w ) và y=(y 1 , ,y w ) 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! . 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ữ 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ỏ 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

Ngày đăng: 08/07/2014, 09:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan