1.2 Xch Markov hữu hạn trạng thái đồng nhất thời gian Xích Markov là một mô hình toán học mô t quá trình chuyển dịch từ một trạng thái sang một trạng thái khác dựa trên một số quy luậ
Trang 11
LỚP L10 - NHÓM 9
Ging viên hướ ng d n: Nguy n H u Hi p ẫ ễ ữ ệ
Năm học: 2019-2020
Trang 22
DANH SÁCH THÀNH VIÊN MSSV 1 Nguyễn Hoàng Sơn 1914955
2 Lê Minh Tài 1914999
3 Đoàn Nhậ t Tân 1915042
4 Lê Duy Tân 1915048
5 Nguyễn Văn Tân 1915064
6 Hoàng Ng c Thành ọ 1915131 7 Vũ Xuân Thành 1915171
8 Cao Minh Th ng ắ 1915214
9 Hoàng Đứ c Th ng ắ 1915222
10 L i Xuân Th ng ạ ắ 1915224
Trang 33
Mục lục:
I Đề tài bài tập lớn 4
II Giới Thi u Google PageRank 4
III. Cơ sở lý thuyế 4 t 1) Xích Markov và phân b dố ừng 4
1.1 Gii thi u v x ch Markov 4
1.2 Xch Markov hữu hạn trạng thái đồng nhất thời gian 5
1.3 Phân b d ng 5
2) Thuật to n Gooogle Pagerank 7
2.1 Pagerank l g ? Mô t Pagerank 7
2.2 Một ý tưởng chưa hon tất – BadRank 8
2.3 Thu ật toán PageRank 10
3) Phương php tnh 11
4) Kết luận 13
IV Code MatLab 14
1) Code v gi i thch code 14
2) Chy th 15
V Ti li u tham kh o 17
Trang 44
I Đề tài bài tập l n ớ
1 Ứng d ng cụ ủa mô hình Markov trong thu t toán Google PageRank ậ
2 Viết chương trình dùng thuật toán trên
II Giới Thi u Google PageRank
PageRank là m t thu t toán phân tích liên kộ ậ ết (link) được phát triển tại đạ ọc i h Stanford (M ) bỹ ởi Larry Page (do đó gii thu t mậ ới được đặt tên là PageRank)
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 đầ ừ năm u t
1995, và k t qu c a nó là sế ủ ự ra đờ ủa Google vào năm 1998 Không lâu sau i c
đó 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 ẫ ủ trang g c c a hố ủ ọ
Gii 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) PageRank c a Google hi n th trên GoogleToolbar là mủ ể ị ột
số nguyên t 0 cừ ho đến 10 Đơn vị PageRank có t l logarithmic d a trên ỷ ệ ự khối lượng link trỏ đến cũng như chất lượng của những trang Web chứ đường link xuất phát này PageRank là thước đo duy nhất mà Google cung cấp cho Webmaster để đánh giá mức độ phổ biến c a trang PageRank sủ ẽ nh hưởng tới th h ng trên trang k t qu tìm kiứ ạ ế ếm Thường thì trang có PageRank càng cao thì v trí cị ủa nó trên trang k t qu tìm kiế ếm càng được ưu tiên
III Cơ sở lý thuyết
1) Xích Markov và phân b dố ừng
1.1 Gi i thi u v x ch Markov
Trong toán h c, mọ ột xích Markov, đặt theo tên nhà toán học người Nga Andrei Andreyevich Markov, là m t quá trình ng u nhiên th i gian rộ ẫ ờ ời
Trang 55
rạc v i tính ch t Markov Trong mớ ấ ột quá trình như vậy, quá kh không ứ liên quan đến việc tiên đoán tương lai mà việc đó chỉ phụ thuộc theo kiến
thức về hi n tạ ệ i
1.2 Xch Markov hữu hạn trạng thái đồng nhất thời gian
Xích Markov là một mô hình toán học mô t quá trình chuyển dịch từ một trạng thái sang một trạng thái khác dựa trên một số quy luật xác suất nhất định
Nếu gi định rằng biến ngẫu nhiên trạng thái quan sát được là biến ngẫu nhiên rời rạc, hay {1,…,k} trạng thái, lúc này mô hình của chúng ta là X t
xích Markov hữu hạn trạng thái Xác suất có điều kiện chuyển dịch khi biết trạng thái hiện tại P(X t+1 |X t ) có thể viết lại dưới dạng ma trận k×k, được gọi là ma trận chuyển dịch , với P p ij là xác suất chuyển dịch từ trạng thái j sang trạng thái Mỗi cột của ma trận i P có tổng bằng 1, vì vậy ma
trận này được gọi là ma trận ngẫu nhiên
Khi mà ma trận chuyển dịch độc lập với thời gian, nghĩa là quá khứ, hiện tại, tương lai chúng ta chỉ có duy nhất một ma trận chuyển dịch thôi, chúng ta gọi đây là một xích Markov đồng nhất thời gian
1.3 Phân b d ng
Hệ mà chúng ta đang xét là một xích Markov h u h n ữ ạ trạng thái đồng nhất th i gian Phân b xác su t chuy n trờ ố ấ ể ạng thái có thể được bi u diể ễn dưới d ng m t ma tr n, gạ ộ ậ ọi là ma trận chuy n tr ng th P, v i thành phể ạ ái ớ ần thứ (i,j) là xác su t chuy n d ch t ấ ể ị ừ trạng thái j sang tr ng thái i ạ
P ij =P(X =i|X t+1 t =j)
π =P×π t+1 t
( π à l ma tr n bi u di n theo vector cậ ể ễ ột, kích thước k×1 )
Nếu lP à ma trận chuy n c a m t xể ủ ộ ích Markov, thì phần t thứ (i,j) c a ủ
ma trận P n cho x c ta á suất chuy n d ch tể ị ừ trạng thái sang tr ng thái sau j ạ i
n thực hi n ệ
π1 = P× π0
π2 = P× = P×Pπ1 × π0 = P2× π0
…
πn = Pn× π0
Ví d :Cho ma trụ ận chuy n tr ng th i P v ma tr n gi ể ạ á à ậ á trị ban đầu X 0
Trang 66
P= (0,0,8515 0,0,0595.); X0= (300
X n = P × X n
0
X1= (280 X6= (226,21 X21= ( 200.92 599 08 )
X 2= (264 X7= (220,97 X22= ( 200.74 599 26 )
X3= (251,2548,8) X8= (216,77583 22, ) X23= ( 200.59
X4= (240,96559 04, ) X9= (213,42586 57, ) X24= ( 200.47 599 53 )
X5= (231,76567 23, ) ……… X25= ( 200.38 599 62 )
Ta nh n th y rậ ấ ằng khi c ng ln à ớn, các ma trận π n dường như hội tụ d n về ầ một ma tr n c ậ ó giá trị ổn định
- Định l Perron Frobenius:
“Nu ma trận P l ma trận ngu nhiên cột (tng thnh phn tng cột
b ng 1) v P l ma tr ận dương (c t ng th nh ph n pij > 0) th ma
tr ận P ch c duy nh t m t phân b d ng (duy nh t m t vector riêng ấ ộ ấ ộ
ng v i tr riêng bng 1) Tất c các tr riêng cn lại nh hơn 1.”
Ta nhận th y r ng nấ ằ ếu ma tr n chuy n trậ ể ạng th i P c a xích Markov h u há ủ ữ ạn trạng thái đồng nhất th i gian ờ thỏa các điều ki n cệ ủa định l thì ma tr n P tậ ồn tại duy nh t m t phân b d ng Hay n i c ch kh c, ấ ộ ố ừ ó á á πn = P n × π 0 (khi n → ∞)
hội tụ d n v duy nh t m t ma trầ ề ấ ộ ận π*
lim
𝑛→∞𝑃𝑛× πo = 𝜋∗
- Phân b dố ừng là m t vector thộ ỏa mãn phương trình
Pπ*=π*
Người ta gọi đây là trạng thái cân bằng, và phân bố lúc này là phân bố dừng của xích Markov h u hữ ạn trạng thái đồng nh t th i gian ấ ờ
đây ta quay về bài toán trị riêng, vector riêng của ma tr n P với trị ậ riêng λ=1 Trong bài toán tr riêng, vector riêngị , một tr riêng có th có rị λ ể ất nhiều vector riêng, hơn nữa P chưa chắc có trị riêng λ=1 Nhưng định l
Trang 77
Perron Frobenius ở trên đã chứng minh r ng, nh ng ma tr n thằ ữ ậ ỏa điều kiện trên thì sẽ chắc chắn có tr riêng là 1 và duy nh t m t vector riêng ị ấ ộ ứng với λ=1
2) Thuật to n Gooogle Pagerank
2.1 Pagerank l g ? Mô t Pagerank
a) Khái ni m thuật to n pagerank á
PageRank là thu t toán tìm kiậ ếm được phát tri n bể ởi hai nhà đồng sáng lập Google là Larry Page và Sergey Brin v i gi thuyớ ết: “Sự ớ l n m nh c a mạ ủ ột trang web có thể được đánh giá bở ối s hyperlink (siêu liên kết) được trỏ đến trang web”
Thuật toán PageRank là m t thu t toán h c x p h ng dộ ậ ọ ế ạ ựa trên phân tích đồ thị liên k t giế ữa các trang web, mỗi trang web sẽ được xem như một đỉnh, mỗi liên kết s ẽ được xem như một cạnh của đồ thị
b) tưởng th nh l p page rank ậ
- Gi s chúng ta có t ập k trang web được đánh số từ 1,…k, PageRank của
trang web i được tính d a trên các liên kự ết trang web khác đến nó (trang web
j liên k t trế ỏ đến i), nhưng không phi bất kì liên kết nào cũng cũng được tính điểm như nhau, chúng ta mong muốn một thuật toán th t công bậ ằng Thuật toán PageRank được xây d ng dự ựa trên hai tưởng cơ bn như sau:
+ Trang web A tr liên kỏ ết đến B, n u A là m t trang web x p h ng cao thì ế ộ ế ạ phi giúp B có x p hế ạng cao hơn ( Rank B đồng biến với Rank A)
+ Trang web A tr liên kỏ ết đến B, lượng trang web mà A trỏ đến càng nhiều thì giúp B tăng thứ hạng càng ít(Rank B ngh ch bi n v i s link tr ị ế ớ ố ỏ đi của A)
- Thuật toán PageRank giống như mộ ớp h c nho nh vt l ọ ỏ ậy vậy, khi đó giáo viên chính là thu t toán cuậ ối cùng đánh giá lớp học đó, các bạn trong lớp viết
ra tên những người bạn mà mình đánh giá cao kèm theo tên của mình Kết qu cuối cùng công b cho c l p công bố ớ ằng nhất là khi:
+ Một bạn trong lớp được đánh giá cao, bạn ấy đánh giá cao mộ ạt b n khác trong lớp thì điều đó phi đáng tin cậy hơn một bạn khác ít được đánh giá cao hơn
+ Một bạn đánh giá quá nhiều bạn thì có v lẻ ập trường không v ng, chúng ta ữ
sẽ gim b t m t ni m tin vào nhớ ộ ề ững đánh giá này
c) Mô t
Trang 88
- Pagerank là phân b xác suố ất, được s d ụng để thể hiện kh năng khi một người click chu t ngộ ẫu nhiên vào đường link và s tẽ ới được trang web c ụ thể
- Pagerank có thể được tính cho t t c cấ ác trang web Khi bắt đầu tính toán thì
sự phân b ổ đó được chia đều cho tất c các trang web trong h ệ thống
- Các tính toán Pagerank c n m t s l n ầ ộ ố ầ “lặp đi lặ ại” qua các trang web để p l
có th ể đạt được giá trị ự th c tế m t cách thi t thộ ế ực hơn
- Xác su t có giá tr t ấ ị ừ 0 đến 1 V i giá tr ớ ị 0.5 được hiểu là “50% xác suất” của
một việc gì đó có thê xy ra Trong Pagerank, 0.5 có nghĩa là 50% ác su t x ấ một người nào đó click vào một link ngẫu nhiên để ó thể c chuyển đến trang web đó (giá trị pagerank của trang web đó là 0.5)
2.2 Một ý tưởng chưa hon tất – BadRank
a) Thuật toán BadRank
Đặt L =1 nij ếu như trang web j có liên kết đến trang web i, ngược lại L =0 ij
Ta coi như không có liên kết từ trang web n chj đế ính nó ( p ij = 0 v i i=jớ ) Lúc này ta có m j là tổng s liên k t mà web ố ế j trỏ đến các trang web khác
Với hai tưởng xây dựng thuật toán được nêu trên, chúng ta có thể “tạm” định nghĩa độ đo BadRank như sau:
𝑅 = ∑𝑖 𝑚𝑙𝑖𝑗
𝑗𝑅𝑗 𝑘
𝑖=1
Công thức trên thỏa mãn hai tưởng về thuật toán ban đầu:
- Nó đồng biến với p j: nếu như trang web j là m t trang web n i ti ng và có ộ ổ ế liên kết đến với i thì s ẽ tăng mức xếp hạng của i
- Nghịch biến với m j: nếu như trang web j có quá nhiều liên kết tới các trang
web khác thì uy tín mà j đóng góp cho i càng ít
b) Thuật toán được đơn gin hóa
- Gi s m t nhóm g m 4 trang web: A, B, C, D nh ng liên k ộ ồ ữ ết t m t trang ừ ộ đến chính nó không được tính, mỗi trang web có 1 đường dẫn duy nhất đến 1 trang web khác Giá tr Pagerank cị ủa các trang ban đầu được cho là bằng nhau T ng giá tr Pagerank trên tổ ị ất c các trang là t ng s trang web tổ ố ại thời điểm đó, do đó mỗi trang trong ví d này s có mụ ẽ ột pagerank ban đầu tương đương với 1 Tuy nhiên trong phần còn lại và các ví dụ của bài này s có giá ẽ trị tương đối từ 0 đến 1 Do đó giá trị ban đầu cho mỗi trang là 0.25 Pagerank chuy n t mể ừ ột trang đến các trang khác bằng các đường link, trong
Trang 99
những bước tính tiếp theo giá trị sẽ được chia đều cho tất c các liên kết đi Nếu các liên k t duy nh t trong hế ấ ệ thống t các trang B, C và D t i A, mừ ớ ỗi liên k t s chuy n giá tr b ng 0.25 Pagerank A khi tính trong l n ti p theo, ế ẽ ể ị ằ ầ ế tổng c ng là 0,75 ộ
R(A)=R(B) + R(C) + R(D)= 0,75
- Khác v i ví dớ ụ trên, B có liên kết đến trang C và A, trong khi D có các link đến c ba trang Như vậy trong bước tiếp theo, trang B sẽ chuyển t i m t n ộ a giá tr cị ủa mình, tương đương với 0.125 t i trang A và 0.125 t i trang C Khi ớ ớ trang D có 3 liên k t trế ỏ đi, có nghĩa nó sẽ chuy n 1/3 giá tr cể ị ủa mình, tương đương với 0.083 t i A ớ
R(A)=𝑅(𝐵)
2 +𝑅(𝐶)1 +𝑅(𝐷)3
PageRank c a trang s bủ i ẽ ằng PageRank R j của trang web j trỏ đến i chia cho
số link trỏ đi cL j ủa trang web j
R(A)=𝑅(𝐵) 𝐿(𝐵)+𝑅(𝐶)𝐿(𝐶)+𝑅(𝐷)𝐿(𝐷) Công th c chung, giá tr ứ ị Pagerank đối v i b t k trang i có th ớ ấ ỳ ể tính như sau:
𝑅 = ∑𝑖 𝑚𝑙𝑖𝑗
𝑗𝑅𝑗
𝑘
𝑖=1
c) Diễn gii BadRank dưi dạng xích Markov
Mỗi trang web có thể xem như một tr ng thái T i m i trang web ạ ạ ỗ j có m j liên kết khác nhau, xem xác su t mà chúng ta chuy n sang trang web khác là ấ ể 𝟏
𝒎 𝒋 Giờ chúng ta có th ể diễn gii BadRank dưới dạng xích Markov h u h n tr ng ữ ạ ạ thái đồng nhất th i gian: ờ
Ma tr n chuy n dậ ể ịch P v i xác su t chuy n d ch tr ng thái: ớ ấ ể ị ạ
- Nếu có liên k t t sang ế ừj i, P ij = 𝒎𝟏
𝒋
Trang 1010
- Ngược lại, P ij =0
Khi đó, ma trận chuy n x c ể á suất P được tính bằng công thức: P=LxM -1
Trong đó:
• L l à ma trận kích c k×k l à ma trận k v i ề ớ phần t
+ l =1 nij ếu trang web j có link đến trang web i
+ l =0 n u trang web j không cij ế ó link đến trang web i
+ Trang web j không c ó link đến ch nh n (l =0 khi i=j) í ó ij
• M là ma trậ chén o kích c k×k v i c c ớ á phầ mj à ốn t l s liên k t ế trỏ đi c a ủ trang web j
a) Mô t dưi dạng công thc
Thuật toán PageRank ch nh sỉ a nho nh lỏ ại tưởng ban đầ –u BadRank, b ng cách thêm m t tham sằ ộ ố d (được g i là Damping ọ Factor)
- Nếu có liên k t t ế ừ j đến i:𝑃𝑖𝑗=1−𝑑𝑘 +𝑚𝑑𝑗
- Ngượ ạc l i: P =ij 1−𝑑
𝑘
Với k l t ng s trang web, 0<d<1 Google s d ng à ổ ố ụ d=0,85
• Lý thuy t PageRank cho rế ằng, ngay c m ột người dùng gi thi t click ế ngẫu nhiên vào các trang web cuối cùng cũng sẽ ừ d ng lại Xác suất người dùng ti p t c click trong b t cế ụ ấ ứ bước nào được gọi là yếu tố damping Có nhiều nghiên cứu đã th các giá tr yị ếu t damping, giá trố ị ước lượng bằng 0.85 là người dùng sẽ tiếp tục lướt web Công th c tính Pagerank có ứ tính đến yếu tố damping s dụng mô hình khi người dùng bất kỳ sẽ cm thấy chán sau m t vài l n click và chuyển đến vài trang web khác một ộ ầ cách ngẫu nhiên Như vậy:
R(A)= 1 − 𝑑
𝑘 + 𝑑 (𝑅(𝐵)𝐿(𝐵)+𝑅(𝐶)𝐿(𝐶)+𝑅(𝐷)𝐿(𝐷)+ )
• Công th c trên s dứ ụng mô hình khi người dùng ng u nhiên c m thẫ ấy chán sau khi click và được chuyển đến m t s trang ng u nhiên Giá tr ộ ố ẫ ị Pagerank thể hiện những cơ hội mà người dùng ng u nhiên sẫ ẽ được chuyển đến trang đó bằng cách click vào các đường link Mô hình này có thể được hiểu tương tự như Markov chain, trong đó các tỉnh là các trang web, quá trình di chuy n có xác suể ất ngang nhau được coi như các link
Trang 1111
giữa các trang web Nếu như trang web không có đường link đến các trang khác, nó s thành ngõ cẽ ụt và vi c truy c p ng u nhiên s d ng l i ệ ậ ẫ ẽ ừ ạ Nhưng nếu người dùng đến trang không có các link khác, thì người dùng
sẽ chọn ng u nhiên mẫ ột trang khác để tiếp t c truy c p Khi tính ụ ậ Pagerank, nh ng trang không có link trữ ỏ đi các trang khác sẽ được gi đnh có link trỏ đến tất c các trang c n l ại Và như vậy giá tr Pagerank ị
sẽ được chia đều cho các trang khác Nói một cách khác, để công bằng với nh ng trang web có link ữ trỏ đi, thì các truy c p ng u nhiên sậ ẫ ẽ được thêm vào t t c ấ những trang trong Web, v i xác ớ suất d=0.85
b) Mô t dưi d ng ma tr n ạ ậ
- Từ công th c trên, ta cứ ó thể ì t m ra ma tr n chuy n x c suậ ể á ất Q có chứa yếu tố damping như sau:
Q = 1−𝑑
𝑘 𝐸 + 𝑑𝐿𝑀−1
Trong đó:
+ E l ma à trận vuông c vk ới c c ph n t á ầ đều b ng ằ 1
+ L, M l 2 ma trà ận được định ngh a giĩ ống như ở phần BadRank + k l t ng s trang web à ổ ố
- Chứng minh công thức:
+ d l x c su t m à á ấ à ngườ ùi d ng ti p t c click v o link c a c c trang web ế ụ à ủ á + 1-d l x c suà á ất người d ng c m th y chán sau m t vài l n click và ù ấ ộ ầ chuyển đến trang web khác m t cách ng u nhiên X c su t nộ ẫ á ấ ày được chia đều cho tất c các trang web (k trang web)
+ P=LxM -1 l ma trà ận chuyển x c suá ất khi chưa có yếu tố damping + Ta đã biết, khi thêm y u t damping v o th x c suế ố à ì á ất ngườ ùi d ng click vào link trên trang web ch c n l 85% , 15% c n lỉ à ại người dùng s ẽ chuyển đến 1 trang web ng u nhiên trên tẫ ổng số k trang web
+ vậy phần t p ij (xác xu t t trang sang trang ) trong ma tr n chuyấ ừ j i ậ ển trạng thái P s nhân v i xác su t 0,85 vẽ ớ ấ à được c ng thêm xộ ác suất ngẫu nhiên có giá trị 0,15
𝑘 Ta sẽ được ma trận Q à l ma tr n chuy n tr ng thậ ể ạ ái khi c y u t damping ó ế ố
3) Phương php tnh