Tải bản đầy đủ (.doc) (10 trang)

Nghiên cứu giải thuật pagerank của google

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (255.27 KB, 10 trang )

1.
GIỚI THIỆU
ABSTRACT
Là một trong những giải thuật phân tích liên kết, PageRank ra đời sau
HITS nhưng những gì mà nó đóng góp là không nhỏ. Dựa vào giải thuật
PageRank mà Google đã thay đổi quan niệm của mọi người về ứng dụ
tìm kiếm, cũng như tầm quan trọng của nó ngày nay. Tuy đã hơn 10 năm
trôi qua và đã xuất hiện hàng loạt các phát triển hay các thuật toán tương
tự như TrustRank của Yahoo! Hay BrowseRank của Microsoft, nhưng vị
trí số một của cỗ máy tìm kiếm Google trong cộng đồng vẫn chưa tỏ ra bị
lung lay.
1.1. Khái niệm
Google đã mô tả về PageRank như sau:
(*) “PageRank dựa vào những tính chất dân chủ tự nhiên riêng biệt của
web bằng cách sử dụng cấu trúc liên kết rộng lớn như là một dụng cụ đo
giá trị cá nhân của trang web. Trên thực tế, Google sẽ xem một liên kết
từ trang A đến trang B như một bình chọn (vote), A sẽ là nhân tố để bình
chọn cho B. Tuy nhiên, Google xem xét nhiều hơn là chỉ dựa trên khối
lượng bình chọn, hoặc số liên kết mà trang nhận được; nó còn phân tích
về trang tác động (thực hiện) đến bình chọn. Bình chọn được thực hiện
(vote cast) bởi các trang càng ‘quan trọng’ thì trọng số càng ‘nặng’ và
làm cho các trang khác cũng trở nên ‘quan trọng’.”

1
Hình 1.1. Mô hình đồ thị có hướng với các trang được xem là đỉnh và có
trọng số PageRank và khả năng web surfer tại mỗi đỉnh.
Ở hình trên (trích từ [1]), trang C có PageRank cao hơn trang E mặc
dù có ít liên kết trỏ đến nó hơn bởi liên kết trỏ đến C có giá trị cao hơn rất
nhiều. Web surfer chọn một liên kết ngẫu nhiên trên mỗi trang nhảy đến
trang E là 8.1%. Khả năng nhảy đến một trang trong toàn bộ trang một
cách ngẫu nhiên là 15%; 15% hay 85% (xem mục 2.5.1) này được xem


như một nhân tố hãm (damping factor) bởi không có nó, quá trình duyệt
ngẫu nhiên (random web surfer) sẽ kết thúc ngay trên trang A, B, hay C;
điều này khiến cho các trang khác sẽ có giá trị PageRank là 0. Ngoài ra,
trang A được giả định liên kết tất cả các trang bởi nó không có outgoing
link (xem mục 2.4.1).
Đây chính xác là ý tưởng về Rank Prestige trong Social Network.
Nói cách khác, kết quả của PageRank từ một “lá phiếu” (ballot) giữa
tất cả các trang khác trong World Wide Web cho biết độ quan trọng của
một trang web như thế nào. Một liên kết trỏ đến một trang tính như một
bình chọn hỗ trợ. PageRank của một trang web được định nghĩa bởi sự đệ
quy và phụ thuộc vào số lượng và độ đo PageRank của tất cả các trang
liên kết đến nó, còn gọi là các liên kết nội (incoming link). Một trang
được liên kết với nhiều trang khác với giá trị PageRank cao sẽ có một thứ
hạng cao. Nếu không có liên kết nào đến trang web, sẽ không có bất kì sự
2
hỗ trợ đánh giá nào cho trang web đó. Google sẽ gán một trọng số
trong khoảng từ 0 đến 10 cho mỗi trang web trên internet; dựa vào đó
PageRank sẽ cho biết tầm quan trọng của một site trong con mắt của
Google.
PageRank bắt nguồn từ lý thuyết xác suất (theoretical probability)
định giá trên Logarithmic Scale, tương tự như Richter Scale.
Ngoài ra, một liên kết từ một trang này đến các trang khác còn mang
hàm ý về authority của các trang mà nó liên kết đến. Hay nói cách khác,
càng nhận nhiều incoming link thì độ prestige của trang web càng tăng.
Bất kì một trang nào cũng có độ prestige riêng, do đó bất kì một trang nào
liên kết đến các trang khác cũng đều sở hữu độ prestige riêng của nó. Như
vậy, một trang A có độ prestige cao hơn khi trỏ đến trang C nào đó sẽ
“quan trọng” hơn một trang B nào đó cũng trỏ đến C nhưng có độ
prestige thấp hơn A. Nói cách khác, một trang sẽ là “quan trọng” nếu nó
được trỏ đến bởi một trang “quan trọng” khác. Nhờ cơ chế đánh giá này

nên PageRank tránh được nguy cơ bị spamdexing và spoofing so với
HITS.

1.2. Lịch sử
PageRank được phát triển tại đại học Stanford bởi Larry Page (do đó
giải thuật mới được đặt tên là Page-Rank) và sau đó được Sergey Brin
tiếp tục nghiên cứu và ứng dụng trong một dự án nghiên cứu về một loại
công cụ tìm kiếm mới. Dự án này được bắt đầu từ năm 1995, và kết quả
của nó là sự ra đời của Google vào năm 1998. Không lâu sau đó Page và
Brin thành lập công ty Google, cung cấp công cụ tìm kiếm mang tên
Google. Trong khi chỉ một trong nhiều yếu tố xác định thứ hạng của kết
quả tìm kiếm thì PageRank tiếp tục cung cấp các cơ sở khác phục vụ cho
công cụ tìm kiếm trên web này.
PageRank phát triển dựa trên công trình Citation Analysis của Eugene
Garfield vào những năm 1950 tại đại học Pennsylvania, các nhà sáng lập
Google cũmg đã từng trích dẫn công trình của Garfield trong paper gốc
của họ. Giải thuật PageRank phát triển dựa trên việc phân tích liên kết
giữa các trang (web link analysis). Web Link Analysis lần đầu tiên được
phát triển phải kể đến giải thuật HITS của Jon Kleinberg và nhóm của
ông khi làm việc với dự án CLEVER của IBM’s Almaden Research
Center. Bên cạnh HITS và PageRank, hiện cũng có những thuật giải Link
Analysis khác như TrustRank của Yahoo! hay BrowseRank của
Microsoft….

2.
TÌM HIỂU
2.1. Ý tưởng gốc
Tùy theo rank prestige, độ “quan trọng” của trang i sẽ được tính bởi
tổng các giá trị PageRank của tất cả các trang trỏ đến trang i. Do một
trang có thể trỏ đến nhiều trang khác, nên độ prestige của nó cũng phải

3
được chia sẻ với các trang đó.
Xem web như là một đồ thị có hướng G = (V, E), gọi n là tổng số các
trang thu thập được.
Điểm PageRank của một trang i, kí hiệu là P(i) sẽ được định nghĩa bởi
công thức sau:
với O
j
là số lượng outgoing link của trang j.
Với n trang web thu thập được, chúng ta có một hệ thống gồm n
phương trình tuyến tính với n chưa biết. Ta có thể sử dụng ma trận kề
(adjacency matrix) để diễn đạt chúng. Như vậy mỗi cột trong ma trận sẽ
biểu diễn cho một trang (tương ứng một đỉnh trong đồ thị) và cho ta biết
các trang trỏ đến nó. Hay nói cách khác ta sẽ có P là một vector cột để
biểu diễn cho các giá trị PageRank của từng trang:
Ma trận kề biểu diễn cho đồ thị sẽ có các giá trị tại mỗi ô sau:
Phương trình tính PageRank lúc này sẽ là:
Đây là một phương trình đặc biệt thuộc một hệ thống đặc trưng
(eigensystem), tại đó P là một vector đặc trưng (eigenvector) tương ứng
với giá trị đặc trưng (eigenvalue) là 1. Điều đó chứng tỏ rằng khi một số
điều kiện được thỏa mãn, 1 là giá trị đặc trưng lớn nhất và PageRank
vector P là một vector đặc trưng chính (principal eigenvector). Để tìm P,
ta có thể sử dụng một phương pháp toán học được gọi là Power Iteration
(còn gọi là igenvalue algorithm). Power Iteration [3] được định nghĩa đơn
giản như sau: cho trước một ma trận A, giải thuật sẽ tạo ra một giá trị đặc
trưng
λ
và một vector đặc trưng v khác 0, dạng A
ν
=

λ
V ; có thể sử dụng
khi A là một ma trận lớn tuy nhiên nó chỉ tìm một giá trị đặc trưng duy
nhất (có trị tuyệt đối lớn nhất) và có thể chậm.
Vấn đề đặt ra là phương trình (4) sẽ không được thỏa mãn nếu đồ thị
không đáp ứng được các điều kiện. Để giới thiệu về các điều kiện ở trên
và cải thiện phương trình (4), ta sẽ sử dụng chuỗi Markov (Markov chain)
xây dựng lại phương trình trên.

2.2. Chuỗi Markov (Markov chain)
4
Trong một chuỗi Markov, mỗi trang web hoặc một node trong đồ thị
được xem như một trạng thái (state). Lúc này một liên kết được xem như
một nút chuyển trạng thái, tức dựa vào một liên kết một trạng thái này có
thể chuyển sang một trang thái khác dựa vào một xác suất. Mô hình
framework Web Surfer này tương tự quá trình thống kê ngẫu nhiên, tại đó
quá trình duyệt ngẫu nhiên đến một trang web được xem như là một
chuyển trạng thái.
Gọi O
i
là số lượng outgoing link của node i trong đồ thị biểu diễn mối
liên hệ của các trang, xác suất của mỗi nút chuyển trạng thái là 1/O
i
nếu
giả định rằng Web Surfer click vào trang i một cách ngẫu nhiên (button
“back” không được sử dụng và không cho phép nhập URL).
Ma trận ác suất chuyển trạng thái A có dạng như sau:

với A
ij

biểu diễn cho xác xuất chuyển trạng thái i (trang i) sang trạng thái
j (trang j), A
ij
được mô tả tương tự phương trình (3).
Tương tự như định nghĩa ma trận kề biểu diễn đồ thị web, ta cũng có
vector cột biểu diễn một trạng thái trong ma trận xác xuất chuyển trạng
thái A nxn như sau:
Từ đó, ta có:
Ma trận A thỏa phương trình (7) thì được gọi là stochastic matrix (lý
thuyết xác suất thống kê) thuộc chuỗi Markov. Stochastic matrix [4] là
một ma trận biến thiên ngẫu nhiên, có 3 loại:

Right stochastic matrix: mỗi hàng trong ma trận hai chiều đều
được biểu diễn bởi các số thực, và tổng của chúng phải bằng 1.

Left stochastic matrix: mỗi cột trong ma trận hai chiều đều phải
biểu diễn bởi một con số không phải số thực, và tổng của chúng cũng
phải bằng 1.

Doubly stochastic matrix: tất cả các thành phần trong ma trận
không phủ định và tổng các hàng và các cột là 1.
Ở chuỗi Markov tồn tại một câu hỏi như sau:
“Nếu p
0
là vector đầu tiên, thì xác xuất của m chuyển trạng thái trong
chuỗi Markov tại trạng thái thứ j là bao nhiêu?”
Do đó, ta phải xác định xác suất mà hệ thống cấp cho trạng thái j sau
1 bước chuyển trạng thái bằng phương trình sau:
với A
ij

(1) là xác suất chuyển trạng thái từ i sang j sau một bước trạng thái
5
(1 lần duyệt từ i sang j) và A
ij
(1) = A
ij
. Do đó dựa vào chuỗi Markov, ta
có thể viết lại phương trình (4) lại như sau:
hay tổng quát là:
Một chuỗi Markov hữu hạn được định nghĩa bởi một ma trận biến
thiên A có duy nhất một sự phân phối xác suất không đổi nếu A tối giản
(irreducible) và không tuần hoàn (aperiodic). A tối giản khi từ bất kì một
trạng thái i nào cũng có thể chuyển sang một trạng thái j bất kì và ngược
lại, do A là ma trận kề biểu diễn đồ thị có hướng các trạng thái, nên A tối
giản đồng nghĩa với A là đồ thị liên thông mạnh.
Định nghĩa liên thông: một đồ thị vô hướng gọi là liên thông
(connected) nếu mọi cặp đỉnh (u, v) ta đều có u đến được v; một đồ thị có
hướng gọi là liên thông mạnh (strongly connected) nếu với mỗi cặp đỉnh
(u, v) ta đều có u đến được v và ngược lại; một đồ thị có hướng gọi là
liên thông yếu (weakly connected) khi phiên bản vô hướng của nó là đồ
thị liên thông.

2.3. Steady-State Probability
Sự phân bố xác suất không đổi có nghĩa là sau một loạt các bước
chuyển trạng thái, p
k
sẽ đạt đến một trạng thái xác suất ổn định (steady-
state probability) có vector xác suất

bất chấp đến việc lựa chọn vector

ban đầu (vector p
0
), phương trình (11) biểu diễn điều đó:
Trở lại thuật toán PageRank, khi ta đã đạt đến trạng thái ổn định, ta có
p
k
= p
k-1
=
π
; do đó ta có phương trình:
Lúc này,
π
trở thành vector đặc trưng chính của ma trận A
T
với giá trị
đặc trưng là 1. Trong PageRank, được sử dụng như là vector P. Dựa vào
đây, ta một lần nữa thu được phương trình (4): P = A
T
.T
Câu hỏi được đưa ra là liệu có hợp lý khi xem P =
π
? Sử dụng
π
như
là một PageRank vector là hợp lý và trực quan vì:

Nó phản ánh xác suất lâu dài (long-run probability) khi trang web
được duyệt đến một cách ngẫu nhiên.


Một trang có độ prestige cao nếu xác suất của việc ghé thăm nó là
cao.
Trở lại đồ thị web, ta xem xét liệu các điều kiện ở trên đã thỏa mãn?
Tức A có phải là một ma trận biến thiên không? Và liệu nó đã được tối
6
giản và không tuần hoàn? Câu trả lời là không có bất kì yếu tố nào được
thỏa mãn, tuy nhiên ta vẫn cần sử dụng ý kiến này để tạo ra mô hình
PageRank thực.

2.4. Xét các yếu tố
2.4.1. A là Stochastic Matrix?
Ta bắt đầu xem xét từng yếu tố. Đầu tiên là tìm câu trả lời cho câu hỏi
“A có phải là ma trận biến thiên không?”
Nếu sử dụng phương trình (3) để định nghĩa cho ma trận A:

ta thấy sẽ không thỏa mãn được phương trình (7)
Σ
n
j = 1
A
i j
= 1 vì có rất
nhiều trang web không có outgoing link, mô tả trong ma trận chuyển
trạng thái bằng các hàng chỉ toàn giá trị 0 (các trang hay các node như
vậy còn được gọi là dangling page). Do đó A không phải là một ma trận
biến thiên.
Lấy ví dụ về một đồ thị web như sau:

Đồ thị trên sẽ được biểu diễn trên ma trận kề như sau:


Nhìn ma trận kề ta nhận thấy node hay trang 5 không có outgoing link
tương ứng với đồ thị. Để giải quyết vấn đề này ta thực hiện hai bước sau:

Xóa toàn bộ các trang không có outgoing link trong quá trình tính
toán PageRank, xem như những trang này không tác động trực tiếp
đến thứ hạng của các trang khác.

Thêm vào tập các outgoing link từ tất cả các trang khác. Nói cách
7
khác, ta xem như những trang không có outgoing link đều trỏ đến tất
cả các trang trong đồ thị.
Lúc này, hàng thứ 5 trong ma trận kề sẽ được biểu diễn lại như sau:
Ta thấy giá trị các cột trong hàng 5 đều bằng nhau, xem như xác suất
trỏ đến tất cả các trang trong đồ thị từ trang 5 là như nhau.

2.4.2. A có Inrreducible?
Như vậy, yếu tố A là ma trận biến thiên đã không thỏa, tiếp theo ta xét
xem: “Ma trận A đã được tối giản chưa?”
Như đã xác định ở trên, ma trận A tối giản là khi nó là đồ thị liên
thông mạnh. Nhưng ma trận A không thể hiện được điều đó vì một số
node u, v không có đường đi giữa chúng (trường hợp node 3 và 4 ở ví dụ
trên).

2.4.3. A có Aperiodic?
Một trạng thái i trong chuỗi Markov là tuần hoàn có nghĩa là tồn tại
một chu kì cho phép chuỗi Markov đi qua. Ta có định nghĩa: một trạng
thái i là tuần hoàn với một khoảng thời gian thực hiện chu kì (period) k >
1 với k là con số nhỏ nhất (chu kì ngắn nhất) trong số các đường đi bắt
đầu từ i có thể quay về i. Một trạng thái tuần hoàn được gọi là periodic và
không tuần hoàn gọi là aperiodic (ví dụ k = 1), và một chuỗi Markov là

không tuần hoàn khi tất cả trạng thái đều không tuần hoàn (đồ thị không
có chu kì).
Sau đây là một ví dụ về chuỗi Markov tuần hoàn với k = 3:
Ma trận tương ứng với đồ thị trên là:
8

2.5. Công thức hoàn chỉnh
2.5.1. Cải tiến PageRank
Để giải quyết hai vấn đề tối giản và không tuần hoàn, ta thêm vào một
liên kết từ một trang đến mọi trang và gán cho mỗi liên kết một xác suất
chuyển trạng thái nhỏ, còn gọi là tham số d. Nhờ vào đó, ta sẽ thỏa mãn
cả hai yêu cầu trên. Sau khi thêm liên kết vào, tại mỗi trang sự duyệt ngẫu
nhiên có hai chọn lựa là ngẫu nhiên nhảy đến một trang khác (trạng thái
khác) với xác suất d hoặc là với xác suất 1 – d. Từ đây, ta viết lại phương
trình (4):
với E là ee
T
(e là vector cột có tất cả giá trị là 1) đồng nghĩa với E là một
ma trận nxn với tất cả giá trị các ô là 1.

2.5.2. Công thức cuối cùng
Công thức (13) thỏa mãn hai điều kiện tối giản và không tuần hoàn, do đó
là một ma trận biến thiên. Ta có thể rút gọn phương trình
(13) với e
T
P = n để có phương trình sau:
Lúc này, PageRank của trang i sẽ là:
Phương trình (15) tương ứng với công thức được đưa ra trong paper:
Ngoài ra, tham số d còn được gọi là nhân tố hãm (damping factor), có
giá trị là một số thực trong khoảng từ 0 đến 1. Trong paper, tác giả đã sử

dụng d = 0.85.

2.5.3. Tính PageRank
Để tính PageRank, ta sử dụng phương pháp Power Iteration đã giới thiệu
tại 2.1:

9
3. KẾT LUẬN
Qua bài viết, ta đã tìm hiểu bản chất cũng như các ngóc ngách của
thuật toán PageRank nguyên thủy. Tuy hiện giờ, Google đã qua nhiều lần
cải tiến giải thuật, thêm vào các mô hình hỗ trợ như sandbox, nhưng cốt
lõi của thuật toán vẫn không thay đổi.
Cũng cần phải nhấn mạnh rằng, tính đến thời điểm hiện tại của bài
viết này, trên thế giới cũng đang xuất hiện những công trình tìm kiếm
khác (Wolframe Alpha [6], MapTube [7], …) với hy vọng sẽ thay đổi
được quan niệm của người dùng về ứng dụng tìm kiếm như Google đã
làm cách đây hơn 10 năm. Hy vọng ta sẽ sớm chứng kiến một bước
chuyển mới về các ứng dụng tìm kiếm trong một tương lai không xa.

10

×