Tính toán hạng trang với các Block theo thành phần liên thông Như đã đề cập ở trên, khi tính toán trên các thành phần liên thông thì giá trị

Một phần của tài liệu Giải pháp tính hạng trang khai thác cấu trúc Block của web và áp dụng vào máy tìm kiếm (Trang 24 - 29)

Chương 3. Thuật toán sử dụng cấu trúc Block theo thành phần liên thông

3.2. Một số vấn đề lý thuyết

3.2.1. Tính toán hạng trang với các Block theo thành phần liên thông Như đã đề cập ở trên, khi tính toán trên các thành phần liên thông thì giá trị

hạng trang PageRank hay nói cách khác là vector riêng đối với các trang được tính thế nào?

Giả sử đồ thị G có k thành phần liên thông, khi đó ma trận P có thể được viết dưới dạng k khối được đặt trên đường chéo chính như sau:

⎟⎟

⎜⎜

=

Pk

P P

L M O M

L 0

1 0

(8)

trong đó Pi là ma trận kề cỡ nixni ứng với thành phân liên thông thứi, i=1,k;

n n

k

i i =

∑=1

Định nghĩa các ma trận

i i i

i J

P n

P~ =α + (1−α)

với i=1,k và Ji là ma trận cỡ nix ni (9) Công thức tính vector riêng với từng khối ma trận Pi là

πiiP~i (10) Định lý: Với những giả thiết ở trên (5,6,7,8,9,10), ta có

( ,..., )

1

1 k k

n n n

n π π

π =

(11) chính là vector riêng của ma trận P~.

Chứng mình:

Để chứng minh ( ,..., )

1

1 k k

n n n

n π π

π =

là vector riêng của ma trận P~thì ta phải chứng minh: π thoả mãn phương trình vector riêng (6).

Thay (11) vào phương trình (6), ta được:

⎥⎥

⎢⎢

⎡ + −

⎟⎟

⎜⎜

⎥⎦=

⎢⎣ ⎤

⎡ + −

=

= J

P n P

n J P P

k

α α α π

α π π

π 1

0 ) 0

1 (

~ 1

L M O M

L

(12)

trong đó Jij =(1)nixnj là ma trận gồm toàn phần tử 1 và có cỡ nixnj. Nhân vế phải của (12), và xét thành phần thứ nhất, ta được:

1 21

2 2 11 1

1 1

1 1 ( 1 ) 1 ... k k1 Jk

n n

J n n n

J n P n

n n n

n π = π α + −α + π −α + + π −α (13)

Mà với mỗi khối Pi có vector riêng tương ứng là πi thoả mãn phương trình (10)

⎢ ⎤

⎡ + −

=

= i

i i i i i

i J

P n

P π α α

π

π ~ 1 (14)

⎢ ⎤

⎡ + −

=

i

i i i i

i i J

P n n

n n

n π π α 1 α (15)

Xét trường hợp cụ thể i=1, ta được:

⎢ ⎤

⎡ + −

=

⇔ 1

1 1 1 1 1

1 1

n J n P

n n

n π π α α (16)

Từ (13,16) ta được:

1 21

2 2 11 1

1 1 1 1 1 1

1 1

1 ...

1 ) 1 (

k k

k J

n n

J n n n

J n P n

n J n P n

n

n π α α ⎥ = π α + −α + π −α + + π −α

⎢ ⎤

⎡ + − (17)

1 11

1 1 11

1 ...

11 1

k k J k

J J

n J n

n

J n π π

π = + +

⇔=

n n

k

i i n n

∑=

=

⇔1 1 . 1

1

1 mà k n n

i i =

∑=1

, 1n1là vector hàng n1cột gồm toàn phần tử 1

1

1 1

1n = n

⎥⎥

⎥⎥

⎥⎥

⎢⎢

⎢⎢

⎢⎢

+ −

− + −

− + −

=

kk k

k

k k

k k k k

n J P n J

n J n J

P n J

n J n J

n J P n

n n

n n

n n

n

α α α

α α α

α

α α

α α

π π

π π

1 1

1 1

1

1 1

1

) ,..., (

) ,..., (

1

2 22

2 21

1 12

11 1

1 1 1 1

L L

M O

M M

L L

Vậy ta được (13) đúng.

Tương tự, ta xét với các thành phần tiếp theo, πi với i=2,k cũng thoả mãn (đpcm) 3.2.2 Thuật toán CCP

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 được cuối cùng là chính xác. Giả sử từ một thành phần liên thông chúng ta tách ra

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.

Chương 4. Giải pháp tính hạng trang cải tiến cho máy

Một phần của tài liệu Giải pháp tính hạng trang khai thác cấu trúc Block của web và áp dụng vào máy tìm kiếm (Trang 24 - 29)

Tải bản đầy đủ (PDF)

(36 trang)