Tải bản đầy đủ (.pdf) (92 trang)

SONG SONG hóa THUẬT TOÁN PAGERANK và ỨNG DỤNG

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 (5.2 MB, 92 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH

KHÓA LUẬN TỐT NGHIỆP
SONG SONG HÓA THUẬT TOÁN
PAGERANK VÀ ỨNG DỤNG

Giáo viên hướng dẫn : PGS.TS. Nguyễn Phi Khứ
Sinh viên thực hiện : Trần Hoàng Anh
Lớp

: CNTN02

TPHCM-2011


2

LỜI CẢM ƠN

Em xin chân thành cảm ơn Ban giám hiệu, Khoa Khoa học máy tính
trường Đại Học Công Nghệ Thông Tin ñã tạo ñiều kiện thuận lợi ñể em ñược
học tập và tham gia làm khoá luận tốt nghiệp.

Em xin chân thành cảm ơn thầy Nguyễn Phi Khứ ñã tận tình chỉ bảo,
hướng dẫn, hỗ trợ về vật chất và tinh thần cho em trong quá trình làm khoá
luận.

Mặc dù em ñã nỗ lực hoàn thành báo cáo khoá luận song vẫn không tránh
khỏi thiếu sót kính mong sự góp ý của các thầy cô và các bạn.



TPHCM, ngày 18/7/2011
Sinh viên: Trần Hoàng Anh


3

Nhận Xét Của Giáo Viên Hướng Dẫn

....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................


4

Nhận Xét Của Giáo Viên Phản Biện


....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................


5

MỤC LỤC

LỜI CẢM ƠN ............................................................................................................. 2
LỜI MỞ ĐẦU ............................................................................................................. 9
1. TỔNG QUAN ........................................................................................................ 10
1.1

Đặt Vấn Đề ...................................................................................................... 10


1.2

Các Nghiên Cứu Gần Đây............................................................................... 11

1.3

Mục Tiêu Đề Tài ............................................................................................. 12

1.4

Phạm Vi Đề Tài ............................................................................................... 13

1.5

Phương Pháp Nghiên Cứu............................................................................... 13

2. CƠ SỞ LÝ THUYẾT............................................................................................. 14
2.1

Bộ Máy Tìm Kiếm Và Vai Trò Của Thuật Toán Xếp Hạng Trang Web ...... 14

2.1.2

Tại sao lại chúng ta sử dụng bộ máy tìm kiếm web? ............................... 14

2.1.3

Các thành phần chính của bộ máy tìm kiếm ............................................ 15

2.1.4


Hoạt ñộng của bộ máy tìm kiếm .............................................................. 17

2.1.5

Vai trò của thuật toán xếp hạng trang web ............................................... 19

2.2

Thuật Toán Xếp Hạng PageRank.................................................................... 19

2.2.1

Cơ sở của thuật toán ................................................................................. 19

2.2.2

Chuyển sang ma trận ................................................................................ 20

2.2.3

Mô hình chuỗi Markov ............................................................................. 22

2.2.4

Mô hình Random Surfer ........................................................................... 26

2.2.5

Phương pháp Power Method .................................................................... 28


2.2.6

Tốc ñộ hội tụ của phương pháp Power Method ....................................... 30

2.3

Tính Toán Song Song ..................................................................................... 31

2.3.1

Giới thiệu tính toán song song ................................................................. 31

2.3.2

Các ñịnh luật cơ bản ................................................................................. 32


6

2.3.3

Các mô hình tính toán song song ............................................................. 34

2.3.4

Các yêu cầu của thuật toán song song ...................................................... 39

2.3.5


Phương pháp thiết kế thuật toán song song .............................................. 39

2.3.6

Độ phức tạp thuật toán song song ............................................................ 41

3. LẬP TRÌNH SONG SONG ................................................................................... 44
3.1

Các Mô Hình Lập Trình Song Song ............................................................... 44

3.2

Mô Hình Truyền Thông Điệp ......................................................................... 46

3.2.1

Cơ chế gửi nhận thông ñiệp ..................................................................... 46

3.2.2

Kiến trúc lập trình truyền thông ñiệp ....................................................... 48

3.2.3

Truyền thông theo nhóm .......................................................................... 49

3.3

Giao Thức MPI ............................................................................................... 54


3.3.1

Các hàm cơ bản ........................................................................................ 54

3.3.2

Các hàm truyền thông nhóm .................................................................... 57

4. SONG SONG HÓA PAGERANK ........................................................................ 62
4.1

Cấu Trúc Dữ Liệu ........................................................................................... 62

4.2

Thiết Kế Thuật Toán ....................................................................................... 63

4.3

Hệ Thống Và Giải Thuật ................................................................................. 66

4.4

Phân Tích Độ Phức Tạp .................................................................................. 70

4.4.1

Độ phức tạp về thời gian .......................................................................... 70


4.4.2

Độ phức tạp về không gian....................................................................... 73

5. CHƯƠNG TRÌNH THỬ NGHIỆM ...................................................................... 74
5.1

Hệ Thống ......................................................................................................... 74

5.1.1

Môi trường cài ñặt .................................................................................... 74

5.1.2

Dữ liệu thử nghiệm................................................................................... 74

5.2

Cài Đặt Hệ Thống Song Song ......................................................................... 75

5.2.1

Chuẩn bị hệ thống..................................................................................... 75

5.2.2

Cài ñặt phần mềm ..................................................................................... 76



7

5.2.3

Chạy chương trình song song ................................................................... 77

5.3

Chương Trình Thử Nghiệm ............................................................................ 80

5.4

Kết quả Và Nhận Xét ...................................................................................... 84

5.4.1

Phương pháp thí nghiệm .......................................................................... 84

5.4.2

Kết quả và nhận xét .................................................................................. 85

6. KẾT LUẬN VÀ ĐỀ NGHỊ ................................................................................... 87
6.1

Kết Luận .......................................................................................................... 87

6.2

Đề Nghị ........................................................................................................... 89


Tham Khảo ................................................................................................................... 90


8

DANH MỤC HÌNH VẼ

Hình 1: Cấu trúc công cụ tìm kiếm............................................................................... 17
Hình 2: Đồ thị thể hiện một mạng gồm 6 trang web .................................................... 21
Hình 3: Biểu diễn ma trận phân phối xác suất H .......................................................... 21
Hình 4: Đồ thị thể hiện ñịnh luật Amdahl.. .................................................................. 33
Hình 5: Hệ thống theo mô hình SPMD ........................................................................ 34
Hình 6: Hệ thống ña trình ............................................................................................. 35
Hình 7: Hệ thống theo nguyên lý hình ống .................................................................. 37
Hình 8: Hệ thống theo mô hình MPMD ....................................................................... 38
Hình 9: Mô hình thiết kế thuật toán song song............................................................. 40
Hình 10: Mô hình ñường ống ....................................................................................... 48
Hình 11: Mô hình vòng tròn ......................................................................................... 49
Hình 12: Quá trình Broadcast ....................................................................................... 50
Hình 13: Quá trình Reduce ........................................................................................... 51
Hình 14: Quá trình Scatter ............................................................................................ 52
Hình 15: Quá trình Gather ............................................................................................ 53
Hình 16: Tổng quan các hàm chuyển dịch dữ liệu ....................................................... 59
Hình 17: Tổng quan hàm xử lý dữ liệu nhóm .............................................................. 61
Hình 18: Cấu trúc dữ liệu mạng thô ............................................................................. 62
Hình 19 : Cấu trúc dữ liệu ñã qua xử lý ....................................................................... 63
Hình 20: Mô hình ñối tượng tính toán cơ bản .............................................................. 63
Hình 21a: Phương pháp kết hợp theo khối ................................................................... 64
Hình 22: Phương pháp két hợp theo vòng tròn ............................................................ 65

Hình 23: Mô hình hệ thống song song hóa PageRank ................................................. 67
Hình 24: Thuật toán song song hóa PageRank ............................................................. 69
Hình 25: Đăng ký tài khoản bằng giao diện ................................................................. 78
Hình 26: Giao diện chương trình thử nghiệm............................................................... 81
Hình 27: Thiết lập thí nghiệm mới ............................................................................... 82
Hình 28: Thực hiện thí nghiệm..................................................................................... 83
Hình 29: Bảng kết quả thử nghiệm của hệ thống 2 CPU trên cùng một máy .............. 85
Hình 30: Bảng kết quả thử nghiệm của hệ thống 4 CPU trên hai máy ........................ 86


9

LỜI MỞ ĐẦU

PageRank là thuật toán sắp xếp dựa trên liên kết ñược sử dụng
bởi bộ máy tìm kiếm Google. Thuật toán sẽ tính ñiểm mỗi trang
web trên mạng, khi người sử dụng thực hiện truy vấn, các trang
web trả về sẽ ñược sắp xếp theo ñiểm ñược tính trước ñó, trang
web có ñiểm số cao xuất hiện trước, trang web có ñiểm số thấp
xuất hiện sau. Điều này giúp người xử dụng có thể nhanh chóng
tiếp cận với những trang web ñược bộ máy tìm kiếm xem là tốt
hơn và từ ñó sẽ tiết kiệm ñược thời gian tìm kiếm. Tuy nhiên, các
trang web và liên kết trên mạng thay ñổi liên tục, số ñiểm của mỗi
trang web cũng phải ñược liên tục ñược tính lại ñể trả lại kết quả
sắp xếp chính xác nhất, ñiều này ñặt ra yêu cầu phải cải tiến thuật
toán ñể thực hiện nhanh hơn với dữ liệu ngày càng lớn hơn. Trong
nghiên cứu này, em chọn giải pháp song song hóa, chia nhỏ khối
lượng tính toán trên một mạng các máy tính song song qua ñó rút
ngắn ñược thời gian tính toán. Em cũng ñưa ra mô hình hệ thống,
thuật toán và thực hiện thử nghiệm với dữ liệu mạng WikiVote và

Stanford. Kết quả bước ñầu khá khả quan.


1. Tổng Quan

10

1. TỔNG QUAN

1.1 Đặt Vấn Đề

Ngày nay với sự phát triển nhanh chóng của mạng toàn cầu, bộ máy tìm kiếm
(search engine) ñã trở thành công cụ thiết yếu ñể nhanh chóng tiếp cận và khai thác
lượng thông tin khổng lồ trên mạng. Tuy nhiên, một truy vấn ñơn giản có thể trả lại
hàng chục ngàn trang web kết quả và có lẽ không người sử dụng nào có ñủ thời gian
ñể lướt qua hết lượng kết quả lớn này ñể tìm thông tin mình muốn. Để giúp người xử
dụng tiết kiệm thời gian tìm kiếm, các công cụ tìm kiếm sẽ ñánh giá ñể sắp xếp các kết
quả tìm kiếm trước khi trả lại cho người dùng, các trang web ñược ñánh giá là tốt hơn
sẽ ñược hiển thị trước, các trang web ñược ñánh giá kém hơn sẽ ñược hiển thị sau giúp
người dùng nhanh chóng tiếp cận ñược với những nguồn thông tin tốt. Các trang web
ñược ñánh giá bằng bộ sắp xếp (ranker) [1] sử dụng một thuật toán xếp hạng. Với bộ
máy tìm kiếm Google, bộ sắp xếp xử dụng thuật toán PageRank.

Thuật toán PageRank là thuật toán sắp xếp dựa trên liên kết [2,3,4]. Một trang
web ñược ñánh giá dựa trên ñiểm số, ñiểm số này phụ thuộc vào các trang web mà nó
có liên kết tới cũng như các trang web có liên kết tới nó. Dựa trên ý tưởng này, ta có
thể kể ñến một thuật toán sắp xếp khác cũng khá nổi tiếng là HITS [5]. Điểm khác biệt
cơ bản giữa hai thuật toán là với mỗi truy vấn của người sử dụng, HITS dựa trên truy
vấn của người dùng ñể lấy ra một tập các trang web kết quả và tính ñiểm các trang này
ngay tại thời ñiểm truy vấn, trong khi ñó PageRank không phụ thuộc vào truy vấn của



1. Tổng Quan

11

người dùng mà thực hiện tính ñiểm cho tất cả các trang web vào thời ñiểm trước ñó.
Do ñó, sử dụng thuật toán PageRank, bộ máy tìm kiếm có thời gian trả lời truy vấn
nhanh hơn, ñiều này ñặc biệt quan trọng với những bộ máy tìm kiếm lớn có số truy
vấn nhiều như Google. Tuy nhiên, thuật toán PageRank cũng có mặt hạn chế là ñiểm
ñược tính không phải ở thời ñiểm truy vấn nên kết quả sắp xếp có thể chưa chính xác.
Để khắc phục hạn chế này, bộ máy tìm kiếm sử dụng thuật toán PageRank phải thực
hiện tính toán lại ñiểm liên tục ñể ñưa ra kết quả chính xác. Điều này dẫn ñến yêu cầu
cải tiến thuật toán ñể tính toán nhanh hơn với khối lượng dữ liệu ngày càng lớn hơn.

1.2

Các Nghiên Cứu Gần Đây

Nhiều nghiên cứu về thuật toán PageRank ñã ñược thực hiện. David Gleich và
Paul G. Constantine ñã thực hiện các nghiên cứu về tham số damping factor của thuật
toán PageRank [6,7]. Trong khi ñó, Ilse C. F. Ipsen và Teresa M. Selee thực hiện
nghiên cứu về các trang web ñặc biệt gọi là dangling node ñể tăng tốc ñộ tính toán. Về
mặt lý thuyết toán, P. Sargolzaei và F. Soleymani ñã nghiên cứu khá toàn diện về các
vấn ñề toán của thuật toán PageRank[10], Taher H. Haveliwala và Sepandar D.
Kamvar ñã sử dụng công cụ toán học ñể tìm ra tốc ñộ hội tụ của thuật toán PageRank
[8]. Về mặt ứng dụng, Yushi Jing ñã áp dụng thuật toán PageRank ñể xây dựng một hệ
thống tìm kiếm ảnh lớn [9]. Tuy nhiên các nghiên cứu này cũng chưa thật sự giải quyết
triệt ñể bài toán tăng tốc tính toán thuật toán PageRank do bị giới hạn bởi các tài
nguyên máy tính như bộ nhớ, tốc ñộ xử lý, dẫn ñến yêu cầu phải tìm ra một giải pháp

cả về phần cứng lẫn phần mềm ñể có thể giải quyết triệt ñể bài toán này.


1. Tổng Quan

12

1.3

Mục Tiêu Đề Tài

Mục tiêu của ñề tài nguyên cứu là tìm ra một giải pháp tăng tốc thuật toán
PageRank dựa trên các cải tiến cả về phần cứng và phần mềm.

Tính toán song song là một nhánh của tính toán hiệu năng cao (HPC) [12] ứng
dụng ñể tăng tốc ñộ tính toán với những bài toán phức tạp có dữ liệu lớn. Kỹ thuật này
ñược sử dụng trong nhiều ứng dụng như: dự báo thời tiết, mô phỏng vật lý và ngày
càng ñược sử dụng nhiều trong các tính toán khoa học. Trong tính toán song song,
khối lượng tính toán của bài toán sẽ ñược chia ñều cho các máy tính trong mạng do ñó
cần phải có một thuật toán song song ñể thực hiện nhiệm vụ này. Một thuật toán song
song phải thỏa các tính chất sau [13] : (1)Tính ñồng thời: các nhiệm vụ phải ñược thực
hiện ñồng thời không chờ ñợi lẫn nhau (2)Tính mở rộng: càng tăng thêm số lượng máy
tính, thời gian thực hiện càng nhanh (3)Tính cục bộ: mỗi máy cần xử dụng tài nguyên
cục bộ trên máy tránh tối ña việc truyền tải dữ liệu từ máy khác (4)Tính phân chia:
thuật toán phải có khả năng phân chia nhiệm vụ phức tạp thành càng nhiều nhiệm vụ
con có thể thực hiện ñồng thời càng tốt.

Nghiên cứu sẽ bao gồm thực hiện song song hóa thuật toán PageRank trên
một mạng máy tính song song giá rẻ hay còn gọi là PC Cluster. Mô hình hệ thống,
thuật toán cũng ñược ñề nghị và thực hiện thử nghiệm với dữ liệu mạng WikiVote và

Stanford. Trong quá trình thử nghiệm, thuật toán ñược cài ñặt theo cả giải thuật tuần tự
và giải thuật song song ñể so sánh hiệu quả cũng nhưng kiểm tra ñộ chính xác của
thuật toán.


1. Tổng Quan

13

1.4

Phạm Vi Đề Tài

Đề tài tập trung thực hiện tăng tốc tính toán thuật toán PageRank bằng hệ thống
song song qua việc tính toán các dữ liệu liên kết mạng ñể tính ra số ñiểm của mỗi
trang web qua ñó có thể xếp hạng các trang web. Đề tài không thực hiện mô phỏng lại
toàn bộ một bộ máy tìm kiếm.

1.5

Phương Pháp Nghiên Cứu

Quá trình nghiên cứu ñược chia làm hai giai ñoạn là nghiên cứu lý thuyết và
thực nghiệm. Giai ñoạn nghiên cứu sẽ tập trung vào các kiến thức nền tảng, từ ñó phân
tích và tìm ra phương pháp giải quyết vấn ñề. Giai ñoạn thực nghiệm sẽ thực hiện cài
ñặt ñể thử nghiệm phương pháp ñược ñưa ra.
Các nguồn chính ñể thu thập thông tin là từ mạng internet, các bài báo khoa
học. Phần lớn các tài liệu này là bằng tiếng Anh do các tài liệu tiếng Việt và các
nghiên cứu về song song hóa ở nước ta chưa nhiều.



2. Cơ Sở Lý Thuyết

14

2. CƠ SỞ LÝ THUYẾT

2.1

Bộ Máy Tìm Kiếm Và Vai Trò Của Thuật Toán Xếp Hạng
Trang Web

Các bộ máy tìm kiếm là cơ sở cho việc hình thành các thuật toán sắp xếp trang
web. Do ñó việc hiểu ñược sự ra ñời, các thành phần cơ bản và quá trình hoạt ñộng của
bộ máy tìm kiếm sẽ giúp ta hiểu ñược vai trò và tầm quan trọng của các thuật toán sắp
xếp trang web.

2.1.2 Tại sao lại chúng ta sử dụng bộ máy tìm kiếm web?

Trong thời ñại ngày nay, thông tin là nhu cầu thiết yếu ñối với mọi người trên
mọi ngành nghề, mọi lĩnh vực. Mỗi phút trôi qua hàng triệu triệu, hàng tỉ lượng thông
tin ñược ñưa lên Internet khiến nó ngày càng thêm vô tận. Điều này khiến cho Internet
là một nguồn tài nguyên, nguồn tham khảo thông tin to lớn nhưng cũng ñặt ra những
thách thức trong việc tìm kiếm những nguồn tài nguyên này. Việc ra ñời các bộ máy
tìm kiếm là ñiều cần thiết hơn bao giờ hết vì nó giúp chúng ta có thể tìm kiếm nhanh
chóng và chính xác bất cứ thông tin gì trên mạng Internet. Do ñó bộ máy tìm kiếm
web ñã trở thành công cụ không thể thiếu của chúng ta trong thời ñại này.


2. Cơ Sở Lý Thuyết


15

2.1.3 Các thành phần chính của bộ máy tìm kiếm

Bộ máy tìm kiếm bao gồm ba thành phần chính là bộ thu thập thông tin, bộ lập
chỉ mục và bộ tìm kiếm thông tin. Các bộ phận này hoạt ñộng liên tục từ lúc khởi ñộng
hệ thống, chúng phụ thuộc lẫn nhau về mặt dữ liệu nhưng ñộc lập với nhau về mặt
hoạt ñộng.

a. Bộ thu thập thông tin – Web Crawler

Để có thể tìm kiếm nhanh chóng các thông tin trên mạng Internet, bộ máy tìm
kiếm phải thực hiện lưu trữ các nội dung của mạng Internet. Điều này ñược thực hiện
bằng bộ thu thập thông tin. Về bản chất, bộ thu thập thông tin là một trình duyệt web
tự ñộng khám phá ra các trang mới bằng cách lần theo các liên kết trong trang web
hiện tại. Khi tìm ñược trang web mới, bộ thu thập thông tin sẽ gửi nội dung trang web
cho bộ lập chỉ mục ñể phân tích và lưu trữ các thông tin cần thiết.

b. Bộ lập chỉ mục – Indexer

Bộ lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện
việc phân tích, trích chọn những thông tin cần thiết (các từ khóa, liên kết) từ những dữ
liệu mà web crawler thu thập ñược và tổ chức thành cơ sở dữ liệu riêng ñể có thể tìm
kiếm trên ñó một cách nhanh chóng, hiệu quả. Hệ thống chỉ mục là danh sách các từ
khoá, chỉ rõ các từ khoá nào xuất hiện ở trang nào, ñịa chỉ nào.


2. Cơ Sở Lý Thuyết


16

Thông tin ñược lưu trữ cũng khác nhau với những bộ máy tìm kiếm khác nhau.
Ví dụ trong bộ máy tìm kiếm Google, bộ thu thập thông tin sẽ lưu lại một phiên bản
của trang web hay còn gọi là cache, trong khi với công cụ tìm kiếm Alta Vista, bộ thu
thập thông tin chỉ lưu lại tất cả các từ khóa trên mỗi trang web.

c. Bộ tìm kiếm thông tin – Search Engine

Bộ tìm kiếm tương tác với người xử dụng thông qua giao diện web, có nhiệm
vụ tiếp nhận và trả về những tài liệu thoả yêu cầu của người xử dụng. Mỗi lần người
sử dụng thực hiện nhập thông tin cần tìm và thực hiện tìm kiếm, bộ máy tìm kiếm sẽ
thực hiện một truy vấn xuống dữ liệu ñã thu thập và lập chỉ mục trước ñó. Sau khi thực
hiện truy vấn bộ tìm kiếm thông tin sẽ trả lại một loạt các trang web có chứa chuỗi mà
người dùng nhập vào. Tập các trang web kết quả cũng sẽ ñược xử lý trước khi trả về
kết quả cuối cùng cho người dùng.

Ngày nay, các bộ máy tìm kiếm thông tin không chỉ có thể trả lời các truy vấn
chính xác theo từ khóa mà còn có thể hiểu ý nghĩa thực sự của câu hỏi thông qua
những câu chữ do người dùng cung cấp. Điều này ñược thể hiện qua chức năng sửa lỗi
chính tả, tìm cả những hình thức biến ñổi khác nhau của một từ. Ví dụ : khi nhập từ
khóa “tiếng An” bộ máy tìm kiếm có thể tự ñộng diễn giải thành từ “tiếng Anh” và hỏi
người sử dụng xem có phải họ muốn tìm từ “tiếng Anh” hay không.


2. Cơ Sở Lý Thuyết

17

2.1.4 Hoạt ñộng của bộ máy tìm kiếm


Để bộ máy tìm kiếm có thể tìm kiếm các thông tin cần thiết như trang web, tài
liệu, tập tin trên mạng internet. Bộ máy tìm kiếm ñó phải có ñược các thông tin cần
thiết về tình hình của mạng Internet như cập nhật các trang web, tài nguyên mới trong
mạng hay cập nhật các trang web hay tài nguyên không còn tồn tại trong mạng nữa.
Điều này ñược thực hiện tự ñộng bởi bộ thu thập thông tin (crawler).

Hình 1: Cấu trúc công cụ tìm kiếm


2. Cơ Sở Lý Thuyết

18

Bộ thu thập thông tin sẽ tự ñộng lần theo các liên kết trên trang web hiện tại ñể
thu thập thêm những trang web khác. Máy chủ URL (URL Server) sẽ gửi một danh
sách của các URL (ñịa chỉ trang web) ñược thu thập tới Máy chủ lưu trữ (Store
Server). Máy chủ lưu trữ sau ñó sẽ nén và lưu trữ các trang web tìm thấy vào kho lưu
trữ (repository). Mỗi trang web sẽ có một số phân biệt gọi là docID ñược gán bất cứ
khi nào có một URL mới ñược tìm thấy
Bộ ñánh chỉ mục (Indexer) và bộ sắp xếp (Sorter) sẽ thực hiện ñọc mỗi trang
web lưu trữ và chuyển thành một tập hợp các từ khóa gọi là hits list. Sau ñó, các hits
list này sẽ sẽ ñược chuyển vào một tập hợp các thùng chứa (Barrel) ñể tạo thành tập
các chỉ mục ñược sắp xếp. Bộ ñánh chỉ mục cũng thực hiện phân tất cả các liên kết của
mỗi trang web và chứa các thông tin quan trọng về chúng trong anchors file. Các tập
tin này sẽ chứa các thông tin ñể xác ñịnh nơi một liên kết bắt ñầu và trỏ tới.
Bộ phân giải URL sẽ ñọc các anchors file và chuyển thành các URL tương ñối
ví dụ như các trang web con nằm trong một trang web lớn sẽ có URL tương ñối của
trang web lớn ñó. Bộ phân giải cũng sinh ra một cơ sở dữ liệu các liên kết với các cặp
trang web nguồn và ñích ñược thay bằng các docID tương ứng. Cơ sở dữ liệu này cung

cấp các thông tin cần thiết ñể sử dụng các thuật toán sắp xếp dựa trên liên kết như
PageRank. Bộ sắp xếp sẽ lấy thông tin trong các thùng chứa nơi mà các trang web ñã
ñược sắp xếp theo docID và tạo ra các chỉ mục mục ngược (inverted index) theo
wordID trong mỗi trang web. Các chỉ mục ngược này ñược bộ máy tìm kiếm sử dụng
ñể tìm ra các trang web có chứa từ khóa hoặc cụm từ khóa tương ứng.
Sau khi tìm ñược một tập các trang web phù hợp với nội dung tìm kiếm. Tập
kết quả trả về này sẽ ñược sắp xếp theo một thuật toán sắp xếp trang web. Ví dụ, với
công cụ tìm kiếm Google ñó là thuật toán PageRank.


2. Cơ Sở Lý Thuyết

19

2.1.5 Vai trò của thuật toán xếp hạng trang web

Việc sắp xếp các trang web kết quả rất quan trọng vì với lượng thông tin khổng
lồ trên mạng ngày nay thì việc trả lại hàng trăm ngàn thậm chí hàng triệu kết quả tìm
kiếm là ñiều có thể. Do ñó, nếu kết quả không ñược sắp xếp thì sẽ gây khó khăn rất lớn
cho người sử dụng. Quá trình sắp xếp các trang web kết quả ñược thực hiện bằng một
thuật toán xếp hạng trang web. Mỗi công cụ tìm kiếm sử dụng một thuật toán xếp hạng
khác nhau và thuật toán xếp hạng trang web ñược xem như là thành phần quan trọng
nhất, quyết ñịnh sự thành công hay thất bại của công cụ tìm kiếm.

2.2 Thuật Toán Xếp Hạng PageRank

2.2.1 Cơ sở của thuật toán

Cấu trúc của mạng toàn cầu có thể ñược mô tả bằng mô hình ñồ thị có hướng.
Trong ñó, mỗi trang web là một ñỉnh và liên kết giữa hai trang web là một cung có

hướng giữa hai ñỉnh. Điểm số của một ñỉnh(trang web) phụ thuộc vào các ñỉnh mà nó
có cung trỏ tới và các ñỉnh có cung trỏ tới nó. Quy luật tính ñiểm ở ñầy là nếu trang
web trỏ tới N trang khác thì trang web ñó phải chia ñều ñiểm hiện tại của mình cho các
trang web mà nó trỏ tới. Nói cách khác, một trang web ñược nhiều trang web khác trỏ
tới thì sẽ có ñiểm số cao và ñược ñánh giá là tốt hơn. Tuy nhiên, ñôi khi trang web chỉ
ñược một vài trang web có ñiểm số cao trỏ tới lại có ñiểm số cao hơn trang web ñược
nhiều trang web bình thường trỏ tới.


2. Cơ Sở Lý Thuyết

20

Gọi u là một trang web bất kỳ trong mạng, Bu là tập hợp các trang web trỏ tới u.
Đặt Nu là số lượng các liên kết trỏ ra ngoài của u. Gọi PR(u) là chỉ số PageRank của u,
ta có công thức ñơn giản thể hiện quy luật tính ñiểm ở trên như sau:

PR(u) =

PR(v)
v∈Bu Nv



2.2.2 Chuyển sang ma trận

Để chuyển công thức cơ sở sang dạng ma trận, chúng ta sẽ tạo một ma trận xác
suất H từ tập các trang web trong ñó mỗi vị trí trong ma trận thể hiện khả năng ñể
người dùng chuyển từ một trang web này sang trang web khác theo liên kết. Gọi Ni là
tổng số liên kết mà trang web i trỏ tới trang web khác, ta có công thức như sau




Hij =

ே௜

, Nếu có liên kết từ i tới j

0, Nếu không có liên kết từ i tới j

Ví dụ ta thực hiện tạo ma trận kề H cho mạng 6 trang web và 10 liên kết dưới ñây.


2. Cơ Sở Lý Thuyết

21

Hình 2: Đồ thị thể hiện một mạng gồm 6 trang web

H=

0

1/2

1/2

0


0

0

0

0

0

0

0

0

1/3

1/3

0

0

1/3

0

0


0

0

0

1/2

0

0

0

0

1/2

0

1/2

0

0

0

1


0

0

Hình 3: Biểu diễn ma trận phân phối xác suất H

Ta có những nhận xét sau:
1. Ma trận H là ma trận rất thưa hay nói cách khác là có rất nhiều giá trị không do
mỗi trang web chỉ có một lượng rất nhỏ liên kết tới các trang khác. Do ñó có thể


2. Cơ Sở Lý Thuyết

22

giảm chi phí ta chỉ cần lưu các phần tử khác 0 của ma trận mà không cần phải
lưu toàn bộ ma trận.
2. Trang web có toàn bộ dòng mang giá trị bằng 0 (như dòng số hai trong ví dụ
trên) ñược gọi là dangling node. Các dangling node làm sai lệch kết quả tính
toán do ñó phải tìm cách ñể loại bỏ dangling node khỏi ma trận H.

2.2.3 Mô hình chuỗi Markov

Chúng ta sẽ tính ñiểm số cho mỗi trang web dựa vào các thông tin trong ma trận
H. Giả sử một người sử dụng truy cập vào một tập hợp các trang web ngẫu nhiên theo
một thứ tự ngẫu nhiên. Điểm số của môi trang web sẽ ñược ñịnh nghĩa như là một xác
suất mà người sử dụng sẽ truy cập vào trang ñó từ trang web trước ñó hay nói cách
khác trạng thái hiện tại chỉ liên quan ñến trạng liền trước nó mà không phụ thuộc vào
các trạng thái trước ñó. Tương tự như thế, nếu có hàng triệu người ñang lướt web trong
cùng một thời ñiểm thì ñiểm số của một trang web bằng với phần trăm số người truy

cập vào trang web ñó trong thời ñiểm bất kỳ. Từ ñây, ta có thể xem hoạt ñộng lướt
web của người sử dụng có thể ñược mô hình hóa thành một chuỗi Markov với ma trận
phân phối xác suất là H. Do ñó, ta có thể coi vector ñiểm số hay nói cách khác là
vector xác suất truy cập vào mỗi trang web là vector hội tụ (stationary vector) cho một
chuỗi Markov.

Một vector phân phối có ñặc ñiểm là tổng các thành phần trong vector có giá trị
luôn ñúng bằng 1. Vector phân phối là vector phân phối xác suất rời rạc nếu tất cả các
phần tử mang giá trị dương và có tổng là 1. Cụ thể với vector m như sau:


2. Cơ Sở Lý Thuyết

23

0

m=

.60
.20
.20

Vector m ñược xem là vector phân phối xác suất cho một tập hợp gồm bốn
trang web trong ñó một người dùng bình thường có xác suất 60% truy cập vào trang
hai và 20% truy cập vào trang ba và bốn. Do ||m||1 = ∑ ݉݅ = 1 nên vector m là vector
hội tụ rời rạc.
Một chuỗi Markov ñược ñịnh nghĩa như là một chuỗi các vector xác suất m0,
m1, m2,.. sao cho :
mk+1T = mkTP (với k=0,1,2,..)

Từ ñó ta có :
m1T = m0TP, m2T = m1TP, m3T = m2TP, ...
Mỗi phần tử của vector mk thể hiện xác suất trong ñó một người sử dụng truy cập một
trang cụ thể tại bước k. Cứ tiếp tục thực hiện lặp tiếp tục mk+1T = mkTP thì ta sẽ có
vector m sẽ hội tụ ở một vector hội tụ q, ñộc lập với vector m khởi ñầu m0.
qTP = qT
Vector hội tụ q có thể ñược xem như là xác suất phân phối ổn ñịnh của mỗi
trang web trong mạng. Ví dụ ở lúc bắt ñầu ta có tập hợp bốn trang web với xác suất
ñược thống kê là m0.


2. Cơ Sở Lý Thuyết

24

0

.60

m0 =

.20
.20

và cuối cùng hội tụ ở

.10

.50


q=
.15
.25

Ở lúc bắt ñầu, ta có thể thấy trang web 1 không có người truy cập. Tuy nhiên sau khi
tính lại với ma trận xác suất và có ñược vector hội tụ, ta nhận ñược xác suất với trang
1. Điều nay chứng tỏ vẫn có khả năng truy cập tới trang 1, tuy nhiên do một số yếu tố
ngẫu nhiên mà chưa có người sử dụng truy cập ñến.
Theo công thức cơ bản, ta có ñiểm số của một trang web ñược tính bằng tổng
ñiểm số của các trang web trỏ tới nó chia cho số liên kết ngoài của các trang web ñó.
Áp dụng với ma trận ta có như sau:
Pr1 = H11Pr1 + H21Pr2 + ... + Hn1Prn
Pr2 = H12Pr1 + H22Pr2 + ... + Hn2Prn
.....


2. Cơ Sở Lý Thuyết

25

Prn = H1nPr1 + H2nPr2 + ... + HnnPrn
Gọi π = (Pr1, Pr2, ... Prn) là vector chứa toàn bộ ñiểm số của các trang web, ta có công
thức cơ sở (1) ñược viết lại như sau:
π = HT π
Chúng ta nhận thấy π là vector riêng của ma trận HT với trị riêng là λ = 1. Do ñó, việc
tính vector ñiểm số hay nói cách khác là tìm vector hội tụ của chuỗi Markov chỉ là
công việc tìm vector riêng tương ứng với trị riêng ñược biết trước λ = 1 của ma trận
HT.

Một ma trận ngẫu nhiên (stochastic) P là ma trận có các tất cả các phần tử Pij

>=0 có tổng các phần tử trên mỗi hàng bằng 1. Một chuỗi Markov là tối giản
(irreducible) nếu mỗi trang thái ñều có thể nhảy ñến ñược từ tất cả các trạng thái khác.
Khi ma trận P dương hay nói cách khác là tất cả các phần tử Pij > 0 thì ñiều kiện trên
ñược ñảm bảo do tất cả các phần tử ñều lớn hơn không và bất cứ trạng thái nào cũng
có thể ñược nhảy ñến trong một bước.Do ñó, nếu P dương thì chuỗi Markov là tối
giản. Một chuỗi Markov tối giản sẽ ñảm bảo cho việc tồn tại một vector hội tụ phù
hợp. Điều này ñược chứng minh bởi ñịnh lý Perron – Frobenius:

“ Nếu một ma trận vuông A dương, ngẫu nhiên và tối
giản thì nó có một trị riêng ñơn giản là 1 và vector
riêng tương ứng. Tất cả các trị riêng khác ñều nhỏ
hơn 1.“


×