Trong thuật toán này, mỗi trang web được xem như một trạng thái trong mô hình Markov và xác suất chuyển từ một trang web sang trang web khác được tính dựa trên số lượng liên kết đến tran
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
-BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
Đề tài 15 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
Giáo viên phụ trách: Đặng Văn Vinh
TP HỒ CHÍ MINH, tháng 5 năm 20233
1
Trang 2Danh sách thành viên LỚP: L18 NHÓM:
Trang 3MỤC LỤC
LỜI MỞ ĐẦU
A Cơ sở lý thuyết
1.Giới thiệu chung về Mô hình Markov
2.Sử dụng các mô hình Markov
3.Định nghĩa về thuật toán Google PageRank
4.PageRank và mối liên hệ xích Markov
B Ứng dụng của mô hình Markov trong thuật toán Google Pagerank.
C Viết code bằng matlab để giải ví dụ thực tế của Markov
1.Code matlab và kết quả
2.Giải thích code
D Kết luận
E Các tài liệu tham khảo
3
Trang 4LỜI MỞ ĐẦU
Thuật toán xếp hạng nổi tiếng PageRank của Google được phát triển trên nền tảng toán học là mô hình xích Markov Việc hiểu rõ ý tưởng, cũng như cơ sở toán học củaứng dụng của mô hình Markov trong thuật toán Google Pageranksẽ được chúng em tìm hiểu và trình bày dưới đây
Bên cạnh đó, nhóm chúng em xin được gửi lời cảm ơn đến Trường Đại học Bách khoa - ĐHQG - HCM đã tạo điều kiện cho chúng em có cơ hội được tiếp cận kiến thức của môn Đại số tuyến tính
Nhóm chúng em xin đặc biệt cảm ơn Thầy Đặng Văn Vinh, người đã giảng dạy, truyền đạt những kiến thức cực kỳ hữu ích của môn Đại số tuyến tính, đến với chúng em trong suốt khoảng thời gian học tập trực tuyến tại nhà Nhóm được thầy phân công thực hiện Đề tài số 15:Ứng dụng của mô hình Markov trong thuật toán Google Pagerank.Viết chương trình dùng thuật toán trên
Bản chất của môn Đại số tuyến tính là môn học có tính ứng dụng cao, được áp dụng rộng rãi ở các lĩnh vực khoa học Tuy nhiên, với vốn kiến thức còn nhiều hạn chế của chúng em, việc sai sót trong việc tìm hiểu về đề tài này là điều không thể tránh khỏi Chúng em rất mong được nhận những lời góp ý từ Thầy để cả nhóm nói chung, các thành viên trong nhóm nói riêng ngày càng tiến bộ hơn
Chúng em xin chân thành cảm ơn
Trang 5A Cơ sở lý thuyết
1.Giới thiệu chung về Mô hình Markov
Phân tích Markov là một kỹ thuật ước tính xác suất các sự kiện xảy ra trong tương lai bằng việc phân tích xác suất đã biết trong hiện tại Kỹ thuật này được ứng dụng rất rộng rãi trong quản trị kinh doanh, kế toán, marketing, kỹ thuật bao gồm việc phân tích sự thay đổi thị phần, dự báo các khoản nợ khó đòi và xác định tình trạng hỏng hóc của máy móc thiết bị trong tương lai Những phân tích Markov hỗ trợ cho những nhà quản trị đưa ra những quyết định có cơ sở khoa học và có hiệu quả
Dự đoán các trạng thái tương lai thì cần phải biết khả năng hay xác suất của hệ thống chuyển từ trạng thái này sang trạng thái khác Các xác suất này thường được tập hợp và trình bày dưới dạng ma trận Ma trận xác suất chuyển đổi cho biết khả năng hệ thống sẽ thay đổi từ một thời kỳ đến một thời kỳ kế tiếp Đó là quá trình Markov và nó cho phép chúng ta dự đoán các trạng thái tương lai Mô hình quá trình Markov hữu ích trong việc nghiên cứu sự phát triển của hệ thống qua các chu trình lặp lại Các chu trình lập lại thông thường là các thời kỳ liên tiếp khi người ta không thể xác định một cách chắc chắn trạng thái của hệ thống tại một bất kỳ một thời
kỳ nhất định Thay vào đó, xác suất chuyển đổi được sử dụng để mô tả cách thức hệ thống chuyển đổi từ một thời kỳ này sang một thời kỳ kế tiếp Do đó, chúng ta quan tâm đến xác suất của hệ thống ở một trạng thái nhất định tại một thời kỳ cụ thể
2.Sử dụng các mô hình Markov
Có ba vấn đề cơ bản để giải quyết bằng HMM:
+Cung cấp cho mô hình các tham số, tính xác suất của dãy đầu ra cụ thể Giải bằng thuật toán tiến trước
+Cung cấp cho mô hình các tham số, tìm dãy các trạng thái (ẩn) có khả năng lớn nhất mà có thể sinh ra dãy đầu ra đã cung cấp Giải bằng thuật toán Viterbi
+Cung cấp dãy đầu ra, tìm tập hợp có khả năng nhất của chuyển tiếp trạng thái và các xác suất đầu ra Giải bằng thuật toán Baum-Welch
5
Trang 63.Định nghĩa về thuật toán Google PageRank.
Thuật toán PageRank của Google được sử dụng để xếp hạng trang web theo độ quan trọng của chúng Trong thuật toán này, mỗi trang web được xem như một trạng thái trong mô hình Markov và xác suất chuyển từ một trang web sang trang web khác được tính dựa trên số lượng liên kết đến trang web đó Mỗi trang web có một điểm số PageRank, được tính bằng cách sử dụng phương pháp lặp đơn giản để tính toán xác suất ở mỗi trạng thái
Với mỗi trang web, xác suất chuyển đến một trang web khác được tính bằng
tỷ lệ giữa số lượng liên kết đến trang web khác và tổng số liên kết trên trang web hiện tại Các trang web có nhiều liên kết đến và từ các trang web khác sẽ có xếp hạng cao hơn trong thuật toán PageRank
Tóm lại, ứng dụng mô hình Markov trong thuật toán Google PageRank cho phép tính toán xếp hạng của các trang web dựa trên sự phụ thuộc vào các trang web khác thông qua các liên kết
4.PageRank và mối liên hệ xích Markov
Mô hình xích Markov được sử dụng trong thuật toán Google PageRank để tính toán thứ hạng của các trang web trên internet Các trang web được coi như là các trạng thái trong mô hình xích Markov và các liên kết giữa các trang web được sử dụng để xác định ma trận xác suất chuyển đổi
Thuật toán PageRank sử dụng mô hình xích Markov để tính toán xác suất một người dùng sẽ đến được tới một trang web nhất định khi họ di chuyển qua các trang web khác bằng cách nhấp vào các liên kết Thuật toán tính toán thứ hạng của các trang web dựa trên xác suất một trang web được truy cập sau một số lượng lớn các bước ngẫu nhiên
Một ví dụ về mô hình xích Markov được sử dụng trong thuật toán PageRank là khi một người dùng bắt đầu tại một trang web bất kỳ, và sau đó họ di chuyển đến một trang web khác thông qua các liên kết Mỗi trang web có một xác suất chuyển đổi tới một trang web khác, được tính dựa trên số lượng và chất lượng của các liên kết đến trang đó Khi một người dùng nhấp vào một liên kết, họ chuyển đến trang web mới và quá trình lại được lặp lại
Mô hình xích Markov giúp cho thuật toán PageRank tính toán thứ hạng của các trang web dựa trên quá trình này Các trang web có xác suất cao hơn để được truy cập sau một số lượng lớn các bước ngẫu nhiên sẽ có thứ hạng cao hơn trong kết quả tìm kiếm của Google
Trang 7Recommandé pour toi
Bead bens 2122 week1 1o - Its important because it's a knowledge I want to share to my fellow students
Bmat week 1-9 omsim
466203745 Life Insurance Corporation Of vs Smt Asha Goel Anr on 13 December 2000 pdf
Lesson 13 Public Accountability
Suite du document ci-dessous
12
33
6
5
Trang 8B Một số ví dụ cụ thể về việc sử dụng mô hình Markov trong thuật toán Google Pagerank:
Đề bài: Cho một trang web có 3 trang: A, B, C Xây dựng một ma trận xác suất chuyển trạng thái W như sau:
B 1/3 0 1/3
Hãy tính toán PageRank cho các trang trên trang web này bằng phương pháp lặp Chọn giá trị damping factor d = 0.85 và số lần lặp n = 20
Để tính PageRank cho trang web này bằng phương pháp lặp, ta có thể làm theo các bước sau:
1 Xây dựng ma trận xác suất chuyển trạng thái W, trong đó mỗi phần tử W(i,j) tương ứng với xác suất trang j được truy cập từ trang i
2 Khởi tạo vectơ trọng số ban đầu cho các trang trên trang web Trong trường hợp này, ta có thể khởi tạo vectơ trọng số v = [1/3; 1/3; 1/3]
3 Thiết lập giá trị damping factor (d) và số lần lặp (n) cho thuật toán
4 Tính ma trận E với giá trị tất cả phần tử bằng nhau và bằng 1/3 (vì trang web có 3 trang)
5 Tính ma trận L = d*W + ((1-d)/3)*E, trong đó E là ma trận được tính ở bước 4
6 Sử dụng vòng lặp for để tính trọng số mới của các trang trên trang web bằng cách nhân vectơ trọng số v với ma trận L n lần, trong đó n là số lần lặp được thiết lập ở bước 3
7 Hiển thị kết quả tính được ở bước 6 Đó là p = [0.0409 0.0457 0.4537]
Trên đây là một số ví dụ minh họa cho ứng dụng của mô hình Markov trong thuật toán Google Pagerank Mô hình Markov là một công cụ quan trọng để mô hình hóa các mạng lưới phức tạp và tính toán các thông số quan trọng của chúng, bao gồm xếp hạng Pagerank
Trang 9C Viết code bằng matlab để giải ví dụ thực tế của Markov
1.Code matlab và kết quả
a Code
% Khai báo ma trận A
W = [0 1/2 1/2; 1/3 0 1/3; 0 0 1];
% Tính số trang web và xác suất ban đầu cho mỗi trang
N = size(W,1);
v = ones(1,N)/N;
n = 20;
% Tính Pagerank
d = 0.85; % Hệ số giảm
L = d.*W+ (1-d)/N.*ones(N);
for i = 1:n
v=v*L;
end
% In kết quả Pagerank
fprintf('Pagerank:\n');
for i = 1:N
fprintf('Trang web %d: %.4f\n', i, v (i));
end
b Kết quả
8
Trang 102.Giải thích code
a Khai báo ma trận A
W = [0 1/2 1/2; 1/3 0 1/3; 0 0 1];
b Tính số trang web và xác suất ban đầu cho mỗi trang
N = size(W,1);
v = ones(1,N)/N;
n = 20;
- Với “N” là số trang web được tính bằng cách đếm số dòng của ma trận W( size (A,1))
- “v” là xác suất ban đầu của mỗi trang web, vì mỗi trang web có xác xuất ban đầu bằng nhau nên ta sẽ có mỗi trang web là 1/N, và lệnh ones(1,N)
là gọi ra 1 ma trận 1 dòng và N cột với giá trị mỗi vị trí là 1
- “n” là số lần lập ta muốn xét
c Tính Pagerank
d = 0.85;
L = d.*W+ (1-d)/N.*ones(N);
Trang 11for i = 1:n
v=v*L;
end
- Ở bước này là bước tính pagerank, ta áp dụng công thức L = d.*W+ (1-d)/N.*ones(N) vì khi chuyển tiếp ta sẽ có xác xuất đi theo như trên hoặc thoát ra ngoài và đi vào một trang ngẫu nhiên xác suất người chọn tiếp là d vì thế có một xác suất 1-d người ta chọn trang khác, khi này xác suất chia đều cho tất cả nên đó là ma trận vuông cấp N tượng trưng cho tất cả các trường hợp và chia cho N để tổng xác suất là 1
- Sau khi có ma trận chuyển tiếp hoàn chỉnh, ta sử dụng vòng lặp for để tính markov của xác suất này sau n lần thao tác
- Khi kết thúc bước này ta được một ma trận b sau n lần lập, cũng là ma trận xác suất của mỗi trang sau n lần thao tác
d In kết quả Pagerank
fprintf('Pagerank:\n');
for i = 1:N
fprintf('Trang web %d: %.4f\n', i, v (i));
end
- Bước này ta chỉ cần in các giá trị ra tiếp là xong.%d tức là xuất giá trị số nguyên ứng với i; %.4f\n với phần “.4f” là lấy giá trị thực sau dấu “.” 4
số và \n là xuống dòng mới Hàm fprintf là một hàm xuất dữ liệu ra với phần trong dấu nháy đơn không có biểu tượng “%” phía trước, và phần
% sau đó là một cấu trúc lệnh để xuất giá trinh lấy trong biến ra theo thứ
tự nào xuất hiện trước lấy trước ví dụ trong bài fprintf('Trang web %d:
%.4f\n', i, v (i)) là %d là của i, %.4f\n là của v(i)
10
Trang 12D.Kết Luận
-Ưu điểm của mô hình Markov trong thuật toán Google PageRank:
+Tính toán dựa trên xác suất: Mô hình Markov tính toán dựa trên xác suất, cho phép tính toán chính xác xác suất một trang web được truy cập thông qua các liên kết trên các trang web khác
+Đánh giá chất lượng trang web: Thuật toán PageRank đánh giá chất lượng của một trang web dựa trên số lượng và chất lượng các liên kết trên các trang web khác Điều này giúp đảm bảo rằng các trang web có chất lượng cao hơn được xếp hạng cao hơn + Khả năng xử lý lượng dữ liệu lớn: Mô hình Markov có khả năng xử lý lượng dữ liệu lớn, cho phép Google tính toán PageRank cho hàng triệu trang web
-Tuy nhiên, mô hình Markov cũng có một số khuyết điểm:
+ Phụ thuộc vào số lượng liên kết: Thuật toán PageRank phụ thuộc vào số lượng và chất lượng các liên kết trên các trang web khác Điều này có nghĩa là các trang web mới hoặc ít được liên kết có thể không được xếp hạng cao
+ Không đánh giá chất lượng nội dung: Thuật toán PageRank không đánh giá chất lượng nội dung của một trang web, chỉ đánh giá chất lượng của các liên kết trên các trang web khác Điều này có nghĩa là các trang web có nội dung chất lượng cao nhưng ít được liên kết có thể không được xếp hạng cao
E.Tài Liệu Tham Khảo
1.Đặng Văn Vinh,Giáo trình Đại số tuyến tính,NXB Đại học Quốc gia TP Hồ Chí Minh,2020
2.Ma Trận Chuyển Vị (2023), Ma Trận Chuyển Vị - Wikipedia Tiếng Việt, chỉnh sửa lần cuối 18/5/2022
3.PageRank (2023), PageRank - Wikipedia Tiếng Việt, chỉnh sửa lần cuối 19/9/2018
4 Lê Quang Tiến: “PageRank và mối liên hệ xích Markov”
https://thetalog.com/machine-learning/page-rank/
Trang 135.ChatGPT -https://openai.com/blog/chatgpt
6 Oliver Knill Math 19b, Linear Algebra, Probability and Statistics, Spring, 2011 https://people.math.harvard.edu/~knill/teaching/math19b_2011/handouts.html
7 Dustin Stansbury “A Brief Introduction to Markov Chains”
https://theclevermachine.wordpress.com/tag/time-homogeneous-markov-chain/
12