II. Vn đ so k hp câu truy vn và tài li u 31
5. Th ut toán PageRank ca Google: 35
PageRank là gì?
PageRank là m t thu t tốn đ c s d ng trong công c tìm ki m Google, đ c phát tri n t i i h c Stanford b i Larry Page và Sergey Brin trong nghiên c u c a h “The Anatomy of a Large-Scale Hypertextual Web Search Engine”.
Hình 3: Minh h a liên k t gi a các site s d ng trong PageRank Thu t toán d a trên m t gi thuy t ph bi n trong gi i hàn lâm,
đó là t m quan tr ng c a m t bài báo đ c quy t đnh b i s các trích d n t bài báo đó c a các bài báo khác. Brin và Page đã đ n gi n gi thuy t này đ dùng cho trang Web: “T m quan tr ng c a m t trang
Web đ c quy t đnh b i s l ng các hyperlink tr đ n nó t các trang Web khác”.
Ch s PageRank c a m t trang web là k t qu b u ch n c a t t c các trang web khác trên toàn th gi i cho website đó v m c đ
quan tr ng c a trang. M i 1 liên k t ng c là 1 phi u b u. Các phi u b u này có m c đ nh h ng khác nhau, s khác nhau đó ph thu c vào ch t l ng ( hay tính quan tr ng ) c a m i trang đ t liên k t ng c.
M t trang đ c liên k t đ n b i các trang có PageRank cao s nh n đ c PageRank cao. N u 1 trang web khơng có liên k t nào đ n thì s khơng có phi u b u nào.
Google tính đi m cho các trang web trên m ng t 0-10. Ch s PageRank này cho bi t trang web có quan tr ng hay khơng theo cách nhìn nh n c a Google. Website nào có ch s PageRank cao ch ng t website đó có ch t l ng cao và quan tr ng. Vì th , khi tìm ki m, Google s u tiên cho các site có PageRank cao.
T t nhiên khi tìm ki m khơng ph i c website có PageRank cao là s đ c x p trang đ u tiên, đi u này còn ph thu c vào vi c b n mu n tìm ki m gì và nhi u y u t khác. Google k t h p PageRank v i m t s heuristics khác đ cho ra k t qu phù h p nh t.
Thu t toán PageRank.
Coi trang A có các trang T1, T2, …, Tn tr t i nó. Tham s c n d có th đ c đ t giá tr trong kho ng 0 đ n 1. Chúng ta th ng đ t
d= 0.85. C(A) đ c đnh ngh a là s link mà trang A tr đ n.
PageRank c a trang A đ c tính theo cơng th c:
1 1 R( ) R( ) R( ) (1 ) ( ) ( ) n n P T P T P A d d C T C T ⎛ ⎞ = − + ⎜ + + ⎟ ⎝ K ⎠
Chú ý r ng t ng t t c PageRank c a t t c các trang web là m t s c đnh.
PageRank PR(A) có th đ c tính tốn b ng cách s d ng 1
thu t toán l p đ n gi n.
Trong đó:
PR(A) - PageRank c a trang A PR(Tn) - PageRank c a trang Tn C(Tn) - S các link đi ra c a trang Tn
(1-d) - Th hi n r ng t ng PageRank t t c các trang web là m t s c đ nh. Ngồi ra cịn có ý ngh a là n u 1 trang web mà khơng có trang nào tr t i nó thì nó s có PR < 0.15
Ta th y PageRank c a m t trang web đ c tính b ng t ng c a PageRank c a t t c các trang tr t i nó (incoming links), chia cho s các link đi ra c a trang đó ( outgoing links).
Ý ngh a thu t toán.
Trên quan đi m c a Search Engine, đ nh ngh a thu t tốn PageRank cho ta th y có 2 y u t nh h ng đ n v trí c a trang web c a b n trên Google. ó là:
• S l ng các link đi đ n ( incoming links): Thơng th ng thì càng nhi u link đi đ n càng t t. Có 1 đi m đáng chú ý mà thu t tốn ch ra đó là: N u 1 trang khơng có link tr đ n có th gây ra nh h ng ng c l i đ n PageRank c a trang web mà nó tr t i ( C(T) = 0 ).
• S l ng các link đi ra c a các trang web tr t i ( outgoing links): Càng ít càng t t, có ngh a là n u có 2 trang web tr t i
trang c n tính PageRank, 1 trang có 5 link đi ra và 1 trang có 10 link đi ra thì PageRank đ c tính t trang có 5 link đi ra s g p đơi trang có 10 link đi ra.
Lê Nguy n ồn Trí – 0851010294 37/70 Võ Nguy n Minh Tuân - 0851010308
Có th th y thu t tốn PageRank khơng liên quan gì đ n các câu truy v n tìm ki m. Nó ch đ n thu n là m t ph n c a thu t toán x p h ng c a Google.
Có l cách t t nh t đ xem xét PageRank là coi nó nh là 1 y u t b sung, đ c x lý trên các k t qu tìm ki m c a Google sau khi t t c các tính tốn khác đã hồn t t.
Thu t tốn tìm ki m c a Google tr c tiên s ti n hành tìm ki m trên các trang mà nó đã đánh ch m c, sau đó s tính tốn PageRank trên các trang k t qu tìm ki m đ đ a ra danh sách k t qu có s p x p cu i cùng. Các trang có PageRank cao h n s đ c s p x p v trí cao h n.
PageRank đ c tính tốn nh th nào.
ây là công vi c khá ph c t p. PageRank c a m i trang ph thu c vào PageRank c a các trang tr t i nó. Nh ng ta l i khơng th bi t PageRank c a các trang đó cho đ n khi tính đ c PageRank c a các trang tr t i các trang đó…Có th th y d ng nh thu t toán t o thành 1 vịng l p vơ t n mà khơng th tính tốn đ c.
Nh ng th c t chúng ta không làm nh v y. Chúng ta s tính tốn PageRank c a 1 trang mà không c n bi t giá tr cu i cùng c a PageRank c a trang đó.
i u này nghe có v khơng h p lý, nh ng v c b n, m i l n ch y thu t toán chúng ta s đ n g n h n v i giá tr c l ng cu i cùng. Vì v y t t c cơng vi c ph i làm là ghi nh giá tr m i l n tính tốn và l p l i phép toán cho đ n khi k t qu thay đ i trong m t giá tr
đ nh cho phép.
Hãy xem xét m t ví d đ n gi n nh t: có 2 trang web, m i trang l i tr đ n trang kia.
M i trang có 1 link đi ra ( outgoing links). C(A) = C(B) = 1.
Tr ng h p 1
Ban đ u chúng ta ch a bi t đ c PageRank c a t ng trang, vì th ta s đ t b ng 1, sau đó th c hi n phép tính:
d = 0.85
PR(A) = (1-d) + d(PR(B)/1)
PR(B) = (1-d) + d(PR(A)/1)
Theo ví d trên ta tính đ c:
PR(A) = 0.15 + 0.85*1 = 1 PR(B) = 0.15 + 0.85*1 = 1
Nh n th y k t qu không thay đ i so v i PageRank đã c l ng, cho th y PageRank d đoán ban đ u là chính xác.
Chú ý: Ta tính đ c giá tr t t h n cho PR(A) sau phép tính th nh t, vì th ta s s d ng k t qu này trong phép tính th 2 L p l i: PR(A) = 0.15 + 0.85*0.2775 = 0.385875 PR(B) = 0.15 + 0.85*0.385875 = 0.47799375 L p l i: PR(A) = 0.15 + 0.85*0.47799375 = 0.5562946875 PR(B) = 0.15 + 0.85*0.5562946875 = 0.622850484375
C ti p t c nh v y, giá tr c a PageRank c a m i trang s liên t c thay đ i sau m i l n tính tốn. V n đ đ t ra là có th c s PageRank c a m i trang s ti n đ n 1.0? Li u có th PageRank c a m i trang có th v t quá 1.0 hay khơng? Chúng ta có th ki m tra k t qu bài toán t i ph n ph l c. Sau các b c l p thì PageRank c a A và B đ u ti n t i n đ nh và PageRank trung bình b ng 1.
Tr ng h p 3
Chúng ta s th l i v i 1 giá tr c l ng ban đ u l n h n cho PageRank c a m i trang. Gi s c l ng PageRank c a m i trang ban đ u là 40.
Lê Nguy n ồn Trí – 0851010294 39/70 Võ Nguy n Minh Tuân - 0851010308 Q trình tính tốn qua m i vịng l p: PR(A) = 0.15 + 0.85*40 = 34.15 PR(B) = 0.15 + 0.85*34.15 = 29.1775 L p l i: PR(A) = 0.15 + 0.85*29.1775 = 24.950875 PR(B) = 0.15 + 0.85*24.950875 = 21.35824375 Th y r ng các giá tr này đ u gi m d n và s ti n t i 1.0. Nh n xét.
Không ph thu c vào giá tr c l ng ban đ u, khi thu t tốn PageRank n đnh thì giá tr trung bình c a PageRank c a t t c các trang b ng 1.0
T c là:
Th nh t, m c dù chúng ta không th thay đ i t ng PageRank
c a t t c các trang web nh ng chúng ta có th tác đ ng đ n
PageRank riêng bi t c a t ng trang. Ví d , ta mu n h u h t l t truy c p vào site thông qua trang ch c a mình, t c là ta mu n trang ch có PageRank cao h n so v i nh ng trang khác trong site. Cho r ng t t c PageRank c a các trang đ u h p l và đ c chia đ u cho các link
đi ra c a trang. Khi đó đi u ta mong mu n là b t kì trang nào v i
nhi u liên k t ngoài ( external link) s có PageRank th p h n so v i các trang khác trong site, nh m gi m t i thi u s PageRank b “th t thốt” ra các site ngồi.
Th hai, n u cho r ng b t kì m t trang m i nào trong ch m c c a Google đ u b t đ u v i PageRank b ng 1, do đó có 1 cách làm t ng t ng PageRank c a site, đó là t ng s l ng trang. 1 site v i 10 trang s có PageRank b ng 10, sau đó s đ c phân ph i l i qua các hyperlink c a nó. 1 site v i 12 trang s có PageRank b ng 12. Vì v y chúng ta có th t ng PageRank c a 1 site m t cách t ng th b ng cách t o ra các n i dung m i (ví d : thêm trang), sau đó đi u khi n s phân b t ng PageRank này qua các chi n l c liên k t n i gi a các trang trong site.
K t lu n.
Thu t toán PageRank trên th c t r t đ n gi n. Nh ng khi m t phép tính đ n gi n đ c th c hi n hàng nghìn ( ho c hàng t ) l n thì thu t tốn tr lên r t ph c t p.
PageRank ch là 1 ph n trong chi n l c s p x p th t k t qu tìm ki m c a Google. Nh ng nó là m t tiêu chí khơng th thi u trong vi c s p x p th t d li u.