Phương pháp sử dụng cấu trúc Block theo thành phần liên thông trong bài toán tính hạng trang có thểđược chia làm các bước:
- Bước 1: Chia đồ thị ra các thành phần liên thông với các ma trận kề tương
ứng.
- Bước 2: Tính toán PageRank cho các trang trong mỗi thành phần liên thông dựa trên việc tính toán vector riêng của ma trận kề của thành phần liên thông đó.
- Bước 3: Tổ hợp hạng trang cuối cùng dựa trên hạng trang nhận được sau bước 2 như trong công thức (11).
Trong quá trình tính toán, để được hiệu quả, chúng ta sẽ coi như chỉ làm việc với trường hợp trung bình, có nghĩa là xét các thành phần liên thông với số đỉnh trung bình. Do vậy chúng ta cần giải quyết hai trường hơp: đó là thành phần liên thông có số đỉnh vượt quá hoặc nhỏ hơn ngưỡng trung bình. Để giải quyết các trường hợp này, cần
đưa ra hai số để làm ngưỡng, gọi là min và max. Khi đó, ∀Pi i=1,k ta cần
max
min≤ni ≤ ; nếu ni ≤minthì sẽ ghép những thành phần liên thông có sốđỉnh tương tự đểđược một thành phần liên thông có số đỉnh thoã mãn điều kiện, nếu ni ≥maxthì cần phải tách thành phần liên thông này ra thànhnhững thành phần liên thông nhỏ hơn
để thoả mãn điều kiện. Tuy nhiên khi tách và hợp các thành phần liên thông, hạng của các trang sẽ thay đổi và chúng ta sẽ phải xử lý vấn đề này. Từ đây đề xuất cách giải quyết như sau đối với hai trường hợp:
- Trường hợp gộp: Đây là trường hơp đơn giản, PageRank của các trang sẽ được tính toán và lấy ra từ thành phần liên thông sau khi được gộp. Trong trường hợp này, chúng ta chỉ cần gộp sao cho số đỉnh của thành phần liên thông vừa đủ lớn hơn min. (min ởđây có thể thử nghiệm với nhiều sốđểđưa ra được số min tối ưu nhất).
- Trường hợp tách: Đối với trường hợp này, vấn đề lý thuyết sẽ khó khăn hơn so với trường hợp trên. Khi chúng ta tách một thành phần liên thông lớn thành một thành phần liên thông nhỏ, thì giữa những thành phần nhỏ này có những liên hệ nhất
định với nhau, và ta cần phải thể hiện hoặc sử dụng những liên hệ này để kết quả nhận
thành m khối (mỗi khối đều tự liên thông) và giữa các khối này có những liên kết nào
đó tới nhau (vì được tách ra từ một thành phần liên thông lớn).
• Bước 1: Chúng ta tính hạng cho tất cả các trang trong mỗi thành phần liên thông nhỏ như bình thường.
• Bước 2: Coi mỗi thành phần liên thông nhỏ như một nút của đồ
thị, chúng ta sẽđược một đồ thị gồm m nút và số liên kết tới mỗi nút cũng như tổng số liên kết có trong đồ thị. Hạng của mỗi nút trong đồ thị mới được xây dựng này sẽ bằng số liên kết tới chính nút đó chia cho tổng số liên kết trong đồ thị. Tại sao lại chọn hạng trang cho mỗi nút trong đồ thị như vậy? Khi ta chọn giá trị như
vậy thì tổng tất cả các hạng trong đồ thị mới này sẽ bằng 1 (thoả
mãn điều kiện là tổng các xác suất).
• Bước 3: Do trong m khối, mỗi khối có vector PageRank riêng, và tổng các thành phần của vector PageRank của mỗi khối này đều bằng 1, do vậy khi gộp lại tổng các thành phần của m vector ứng với các khối sẽ bằng m. Do vậy, để tổng thành phần của các vector PageRank của m khối bằng 1, ta sẽ lấy PageRank đại diện của mỗi khối nhân với PageRank thành phần.
Hệ số min, max cũng như số đỉnh trung bình của mỗi khối sẽ được thử
nghiệm để tìm ra được hệ số tối ưu.
Chương tiếp theo giới thiệu mô hình máy tìm kiếm Vinahoo và áp dụng thử
nghiệm thuật toán Modified Adaptive PageRank cho bài toán tính hạng trang trong máy tìm kiếm Vinahoo.