Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang muốn website của mình tăng thứ hạng trong danh sách kết quả tìm kiếm của Google,hãy nâng cao
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
TIẾU LUẬN LẬP TRÌNH SYMBOLIC:
Tìm hiểu các thuật toán
TP Hồ Chí Minh, tháng 01 năm 2013
Trang 2LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc đến PGS TS Đỗ Văn Nhơn, trường Đại họcCông Nghệ Thông Tin, ĐHQG TP.HCM đã tận tình hướng dẫn, cung cấp kiến thức,truyền đạt những kinh nghiệm quí báu giúp em hoàn thành tốt bài tiểu luận này
Xin cám ơn cha, mẹ, các anh, chị em trong gia đình đã hỗ trợ, lo lắng và động viên.Đồng thời, xin cám ơn tất cả các bạn đã ủng hộ, giúp đỡ chúng tôi trong quá trình thựchiện bài tiểu luận này
Dù đã có nhiều cố gắng nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, emrất mong nhận được sự đóng góp ý kiến của các Thầy giáo, Cô giáo và các bạn để đềtài này được hoàn thiện hơn
Em xin chân thành cảm ơn!
Tp Hồ Chí Minh, tháng 01 năm 2013
Học viên
Trang 3NHẬN XÉT
(Của giảng viên hướng dẫn)
Trang 4
MỤC LỤC
Trang 5Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang
1 Thuật toán PageRank
1.1 Giới thiệu về PageRank
1.1.1 Định nghĩa
PageRank hay Ranking viết tắt là PR tạm dịch là thứ hạng trang Khi nói đếnPageRank người ta thường nghĩ đến ngay Google PageRank Đó là một hệ thống xếphạng trang Web của các máy tìm kiếm nhằm sắp xếp thứ tự ưu tiên đường dẫn URLtrong trang kết quả tìm kiếm
PageRank™ là một thương hiệu của Google, được phát triển ở Đại học Stanfordbởi Larry Page và Sergey Brin (2 nhà đồng sáng lập Google Inc) trong một dự án vềcông cụ tìm kiếm năm 1995 PageRank là chỉ số xếp hạng của một trang web theocách nhìn của Google có giá trị thay đổi từ 0 đến 10
Chỉ số PageRank của một website nào đó không chỉ phụ thuộc vào số liên kết tớiwebsite đó, mà còn nó còn dựa vào mức độ quan trọng của các liên kết đó Nói mộtcách khác, chỉ số PageRank của một website nào đó là kết qủa bầu chọn của tất cảcác trang web khác trên toàn thế giới WWW cho website đó về mức độ quan trọngcủa trang Mỗi liên kết ngược là 1 phiếu bầu Các phiếu bầu này có mức độ ảnhhưở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 Website nào có chỉ số PageRank cao thì chứng tỏ
đó là website chất lượng quan trọng
Google kiểm tra số lần mà từ khóa xuất hiện trên trang và xem xét tất cả các khíacạch khác về nội dung của trang (và cả nội dung tìm kiếm tốt nhất cho người dùngcủa các trang liên kết tới nó) để xác định kết quả
Kết luận, Google PageRank là hệ thống kiểm định giá trị liên kết nhận được, dựavào số lượng và chất lượng liên kết, để quyết định tầm quan trọng của trang web.Ngoài ra PageRank còn tính dựa trên những yếu tố khác mà Google không côngkhai
1.1.2 Những lợi ích của PageRank
Google PageRank hiện nay được coi là chỉ số đáng tin cậy nhất đánh giá giá trịmỗi trang web Một trang web có chỉ số Google PageRank cao sẽ đem lại ấn tượngđáng tin cậy cho khách truy cập, điều này đặc biệt có ý nghĩa với các website kinhdoanh thương mại điện tử
Google PageRank ảnh hưởng trực tiếp tới vị trí hiển thị của mỗi trang web khicạnh tranh thứ hạng hiển thị trong danh sách kết quả tìm kiếm của Google Nếu bạn
Trang 6Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang
muốn website của mình tăng thứ hạng trong danh sách kết quả tìm kiếm của Google,hãy nâng cao Google PageRank cho các trang web trong website của bạn
Google PageRank là một công cụ hỗ trợ các webmaster quản trị website Đồngthời, một trang web có Google PageRank cao phần nào chứng minh năng lực quản trịtốt của webmaster website đó
1.2 Thuật toán PageRank
Page và Brin đã đưa ra một thuật toán nhằm giúp cho công việc tính toán hạngtrang Thuật toán này dựa trên ý tưởng rằng: nếu có links từ trang A đến trang B thì
có thể coi như là một sự tiến cử của trang A đối với trang B Điều này cũng có thểthấy được một cách trực quan rằng nếu một trang Web nào đó được liên kết với trangYahoo thì chắc chắn sẽ quan trọng hơn việc nó được liên kết với một trang vô danhnào đó Giả sử ta có một tập các trang Web với các liên kết giữa chúng, khi đó ta cómột đồ thị với các đỉnh là các trang Web và các cạnh là các liên kết giữa chúng
1.2.1 Thuật toán PageRank
Trước tiên chúng ta giới thiệu một định nghĩa về PageRank thể hiện những điều
ta xem xét ở trên và bàn về khía cạnh tính toán nó trước khi đạt được một phươngpháp có thể được áp dụng trong thực tế Công việc được tiến hành như sau:
+ Đánh số các trang Web có được từ 1,2 … đến n
+ Gọi N(i) là số liên kết ra ngoài của trang thứ i
+ Gọi B(i) là số các trang Web có liên kết đến trang i
Giả sử rằng các trang Web tạo thành một đồ thị liên thông Khi đó với công thứcPageRank thô, gọi r(i) là hạng tương ứng với trang i:
(
i B j
j N j r i
r
Ta có thể viết các phương trình này dưới dạng r =ATr trong đó:
+ r là vector [r(1),…,r(n) ] trong đó các thành phần tương ứng là các hạng củacác trang Web
Trang 7Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang
Web đó Nếu nó có những liên kết quan trọng trỏ tới thì rất có thể nó là quan trọng.Tuy nhiên việc tính toán hạng trang lại phụ thuộc vào việc biết được hạng của cáctrang Web có liên kết tới nó, và như vậy muốn tính hạng trang này lại phải xem trangliên kết tới nó có hạng là bao nhiêu và có thể gây ra việc lặp vô hạn rất khó để giảiquyết Điều này được thực hiện khi ta đưa về các vector hạng, ta có thể tính toánđược các hạng trang thông qua việc tính toán vector riêng của ma trận AT Trong đại
số tuyến tính có khá nhiều các phương pháp có thể tính được vector riêng của matrận, tuy nhiên có một phương pháp khá tiện và có thể được áp dụng vào việc tínhtoán vector PageRank là phương pháp luỹ thừa Các công việc tính toán sẽ được làmnhư sau:
• s← vector bất kỳ
• r←ATs
• Nếu
e s
r− <
thì kết thúc, khi đó ta nhận được r là vector PageRank
• r−s phải tuân theo một chuẩn nào đó như chuẩn Euclide hay chuẩn bìnhphương
• Nếu không thì r←s, quay lại bước 2
Trong thực tế không phải lúc nào chúng ta cũng gặp trường hợp các trang Weblập thành một đồ thị liên thông Trên WWW có rất nhiều các trang Web mà chúngkhông hề có trang nào liên kết tới hay không liên kết tới trang Web nào khác cả Đốivới những trang không có liên kết tới trang khác khi tính toán PageRank của nó sẽ rấtkhó được tính toán do tập hợp các liên kết ra ngoài là N(i)=0, do vậy sẽ không tínhđược PageRank Điều này có thể làm cho quá trình tính toán gặp nhiều khó khăn.Một điều nữa là bất kỳ trang web nào ra đời cũng đều có ý nghĩa của nó, không cótrang nào có ý nghĩa (hạng) bằng 0 cả, cho dù trang đó của cá nhân thì nó cũng có ýnghĩa riêng cho người đó Do vậy cần phải cải tiến công thức PageRank cho phù hợpvới thực tế Công thức PageRank được sửa đổi có dạng như sau:
∑
∈
−+
∗
=
i
B j
n d j
N j r d i
r() ( )/ ( ) (1 )/
Việc thêm “hệ số hãm” d (thường được chọn d=0.85) có ý nghĩa như sau: bổ sungthêm giá trị PageRank vào cho các trang không có link ra ngoài Ta cũng nhận thấykhi d=1 thì công thức sẽ quay lại trường hợp PageRank thô
Page và Brin [2] cũng đã chỉ ra rằng các giá trị này có thể hội tụ khá nhanh, trongvòng khoảng 50 vòng lặp chúng ta có thể nhận được kết quả với sai số không lớnlắm
Trang 8Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang
1.2.2 Thuật toán Adaptive PageRank
PageRank là một trong những thuật toán thịnh hành nhất và có hiệu quả nhấttrong công việc tìm kiếm các thông tin trên Internet hiện nay, và thuật toán đó cũngđang được tìm kiếm trong máy Google Như chúng ta đã xem xét ở trên, PageRank
sẽ tìm cách đánh giá hạng các trang thông qua các liên kết giữa các trang Web Việcđánh giá này có thể được thực hiện thông qua việc tính toán vector riêng của ma trận
kề biểu diễn cho các trang Web Nhưng với kích cỡ khổng lồ của mình, WWW cóthể làm cho công việc tính toán này tốn rất nhiều ngày Cần phải tăng được tốc độtính toán này lên vì hai lý do:
+ Cần có được kết quả sớm để đưa được những thông tin sang các bộ phận kháctrong cùng máy tìm kiếm, việc tính toán nhanh vector PageRank có thể giúp giảmthiểu thời gian chết của những bộ phận đó
+ Hiện nay, các phương pháp nghiên cứu mới đều tập trung vào việc đánh giádựa trên những tiêu chí do cả người dùng quan tâm, do vậy cần phải tính toán nhiềuvector PageRank, mỗi vector hướng tới một tiêu đề khác nhau Việc tính toán nhiềuvector này cũng đòi hỏi mỗi vector thành phần được tính toán nhanh chóng
Việc tăng cường tốc độ tính toán có thể vấp phải nhiều khó khăn kích thước củaWWW Vì vậy trong [3], đã giới thiệu một cách để giúp đỡ cho quá trình tính toánđược nhanh hơn Phương pháp này xuất phát từ ý tưởng sau: khi cài đặt chương trình
và chạy, các trang Web có tốc độ hội tụ không giống nhau Vậy chúng ta có thể tậndụng những trang hội tụ trước và kết quả của những trang đã hội tụ đó có thể khôngcần phải tính lại nữa Như vậy ta có thể giảm được những tính toán dư thừa và làmtăng được hiệu suất tính toán của hệ thống Thực sự như vậy thuật toán này là mộtcải tiến của thuật toán PageRank, thuật toán này có thể làm tăng được tốc độ tínhtoán bằng cách giảm đi những tính toán dư thừa
1.2.2.1 Adaptive PageRank
Giả sử việc tính toán vector PageRank của chúng ta đã được thực hiện đến vònglặp thứ k Ta cần tính toán
) ( ) 1
r + =
(*)gọi C là tập hợp các trang Web đã hội tụ đến mức được chấp nhận nào đó và N làtập các trang Web chưa hội tụ Khi đó ta chia ma trận A ra làm hai ma trận con, AN
cỡ m.n là ma trận kề đại diện cho những liên kết của m trang chưa hội tụ, còn Ac cỡ(n-m).n là ma trận kề đại diện cho những liên kết của (n-m) trang đã hội tụ
Trang 9Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang
Tương tự, ta cũng chia vactor r(k) ra thành hai vector
k C
k N k
r
r r
và = C
N
A
A A
ta có thể viết lại phương trình (*) như sau:
) ( )
1 (
) 1 (
k
C
k N C
N k
C
k N
r
r A
A r
r
Do những thành phần của
k C
r
nữa và nhưvậy việc tính toán sẽ giảm đi do không phải tính toán A C r (k) nữa
) ( ) 1 (
) 1
k C
k C
k N N
k N
r r
r A r
=
=
+ +
1.2.2.2 Những cải tiến của phương pháp này
Theo [3], việc giảm những tính toán của phương pháp PageRank giúp chúng ta cóthể tính toán nhanh hơn tuy nhiên đây chưa phải là đến đích cuối cùng cần đạt được
◦ Filter-Based Adaptive PageRank
Vì ma trận A có kích cỡ cực lớn nên việc sắp xếp lại ma trận A để tạo ma trậncon AN sẽ khó có thể thực hiện được trong mỗi vòng lặp Hơn nữa không có cáchhiệu quả để phớt lờ đi những đầu vào không cần thiết (những liên kết tới các trang đãhội tụ) do vậy trong thực tế việc cài đặt thuật toán có thể được thực hiện như sau:
Do AC không được sử dụng trong việc tính toán PageRank nên ta có thể định
k A r r
r( + 1 ) = ′ ( )+ ′
Trang 10Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang 10
Những định nghĩa trên cũng có thể được mô tả theo một cách khác:
Định nghĩa ma trận A như sau:
C i if A
k k C
0
) (
Nghĩa là đối với ma trận A” nhận được thưa hơn rất nhiều so với ma trận A nênviệc tính toán sẽ trở nên nhanh hơn so với khi chúng ta sắp xếp lại ma trận đại diệncho các phần tử đã hội tụ hay chưa hội tụ
◦ Modified Adaptive PageRank
Trong thuật toán Adaptive PageRank tốc độ tính toán được tăng nhanh lên do đãgiảm đi được những tính toán dư thừa bằng cách không tính những giá trị đã hội tụ.Trong [3] đã đưa ra những thử nghiệm tính toán dư thừa bằng cách không tính nhữnggiá trị đã hội tụ
Chúng ta có thể viết lại ma trận A một cách kỹ hơn như sau:
NN NN
A A
A A A
với ANN là ma trận kề đại diện cho những liên kết của các trang chưa hội tụ tớinhững trang chưa hội tụ, ACN là ma trận kề đại diện cho những liên kết của các trang
đã hội tụ tới những trang chưa hội tụ và tương tự cho các phần tử khác ANC, ACC Vì
rC và ANCrC không thay đổi sau vòng lặp thứ k vì chúng đã hội tụ, nên phương trình(*) có thể được viết lại:
) ( )
( )
1
C CN
k N NN
k
N A r A r
Ma trận A đã được chia nhỏ ra đồng thời không phải tính lại giá trị
một số ma trận con do vậy công việc tính toán được giảm đi đáng kể
1.2.2.3 Topic-sensitive PageRank
PageRank là phương pháp tìm kiếm hiện đang được áp dụng trên máy tìmkiếm Google Tuy nhiên phương pháp này chỉ quan tâm đến các liên kết màkhông quan tâm đến nội dung của trang Web có chứa liên kết đó, do vậy có thể
Trang 11Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang 11
dẫn tới những sai lạc trong thông tin tìm kiếm được Yêu cầu đặt ra là cần phảiđưa ra một phương pháp có tốc độ nhanh như phương pháp PageRank và lại cóquan tâm đến nội dung của trang Web thông qua "chủ đề" của nó Hơn nữa, nếukhai thác được mối quan tâm của người dùng đối với các trang Web trong việctính độ phù hợp của trang Web với câu hỏi người dùng thì việc đó càng
có ý nghĩa Taher H Haveliwala [5,6] đề xuất phương pháp mới nhằm đáp ứng
yêu cầu trên, đó là phương pháp PageRank theo chủ đề (Topic sensitive
PageRank) Các tác giả sử dụng khái niệm "phạm vi ngữ cảnh" để biểu thịmối quan tâm của người dùng Trong [4], thuật toán tìm kiếm trang Web có nộidung tương tự cho một cách tiếp cận khác khi đề cập tới xem xét khía cạnh nộidung trang Web trong bài toán tìm kiếm
Thuật toán gồm hai bước được mô tả sơ bộ như dưới đây
Tại bước đầu tiên, các trang Web trong cơ sở dữ liệu được phân thành các lớp
theo chủ đề c 1 ,c 2 , ,cn; gọi Tj là tập hợp những trang Web theo chủ đề cj Mỗi
lớp tương ứng với một vector PageRank của chủ đề mà mỗi thành phần là giá trịPageRank của mỗi trang trong lớp
Vector PageRank của chủ đề được tính như bình thường tuy nhiên thay vì sử
dụng =[1/N], thuật toán sử dụng vector trong đó:
T i
T i T v
0
|
|/1
Gọi là vector các từ khóa, gồm tất cả các từ khóa trong các tài liệu của các chủđề; Djt là số lần xuất hiện của từ khóa t trong tất cả các tài liệu của chủ đề c j
Bước thứ hai được thực hiện trong thời gian hỏi- đáp Giả sử có truy
vấn q, gọi q’ là phạm vi ngữ cảnh của q [4, 5] Mô tả sơ bộ khái niệm
phạm vi ngữ cảnh như sau Với truy vấn thông thường (từ hộp thoại) thì thì
q’ chính là q Trường hợp truy vấn q được đặt bằng cách tô sáng từ khoá q trong
trang Web u thì q’ sẽ chứa các từ khoá trong u bao gồm cả q Sau đó tính xác suất để q’ thuộc về các chủ đề khác nhau Sử dụng thuật toán phân lớp Bayes
với (i) Tập huấn luyện gồm những trang được liệt kê trong các chủ đề; (ii)Đầu vào là câu truy vấn hoặc phạm vi ngữ cảnh của câu truy vấn; (iii) Đầu ra làxác suất để đầu vào thuộc mỗi chủ đề
Dưới đây là một số công thức của một số giá trị xác suất nói trên Gọi q i ’ là từ
khoá thứ i trong ngữ cảnh q ’ Với mỗi c j, xác suất đề q ’∈
c j là:
Trang 12Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang 12
P(cj|q’) = ≈ P(cj).π.P(qi’|cj)
Trong đó P(q i ’ |c j ) được tính từ vector các từ khóa được xác định tại bước 1 Giá
trị P(c j ) được xác định hoặc là các giá trị bằng nhau cho mọi chủ đề (các chủ đề
đồng khả năng) hoặc tính toán thống kê qua tham chiếu tới các trang Web thuộcmỗi chủ đề của tập hợp người dùng
Theo [5,6], với kí hiệu rank jd là hạng của văn bản d cho bởi vector PR(d, ) – vector PageRank của chủ đề c j thì độ quan trọng s qd dựa theo câu truy vấn đượctính toán như sau:
Trang 13Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang 13
Trang 14Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang 14
PageRank: Max: 1.689; Total: 7.000; Mean: 1.000
PageRank: Max: 1.000; Total: 7.000; Mean: 1.000
1.4 Ưu điểm và nhược điểm của PageRank
1.4.1 Ưu điểm
PageRank là một thuật toán tốt, tốc độ tìm kiếm rất nhanh, PageRank sẽ tính toánmột giá trị toàn cục cho tất cả các trang Web một cách độc lập với các câu truy vấn.Hơn nữa quá trình tính toán lại được tiến hành một cách ngoại tuyến, nghĩa là tínhtoán trong cơ sở dữ liệu của mình, do vậy sẽ đỡ mất thời gian Đối với các câu truyvấn liên quan đến khoa học hay nghiên cứu thì PageRank cho kết quả rất tuyệt vời vìnhững tài liệu này thường được trích dẫn nhiều từ tài liệu khác
Google nhấn mạnh rằng PageRank, được trao bằng sáng chế cho Đại họcStanford, không phải là phương pháp duy nhất để xác định kết quả tìm kiếm Thựcvậy, Google cho biết họ sử dụng kết quả của hơn 200 phương pháp khác nhau đểđánh giá toàn thể cấu trúc Web và xác định những trang nào là quan trọng nhất
Trang 15Tiểu luận: Tìm hiểu các thuật toán xếp hạng trang web và cài đặt ứng dụng sử dụng Maple Trang 15
1.4.2 Nhược điểm
Các vấn đề trên WWW không chỉ có về khoa học mà còn có nhiều chủ đề khácnữa, do thuật toán PageRank không quan tâm đến nội dung của trang Web có chứacâu truy vấn, nên đôi khi sẽ đưa ra những trang Web không phù hợp với yêu cầu củangười dùng Hơn nữa, thuật toán này chỉ quan tâm đến các liên kết, vậy cứ trang nào
có nhiều liên kết tới thì trang đó có thể có thứ hạng cao Điều này dẫn tới việc khôngchính xác thông tin, và có thể có người thuê các trang Web danh tiếng liên kết đếntrang Web của họ để họ được hưởng chỉ số PageRank cao
PageRank không tính đến độ tiếp cận thường xuyên và thời gian ở lại trang webcủa người dùng PageRank của Google đánh giá độ quan trọng của một trang webdựa trên phương pháp xử lí gọi là Thuật toán phân tích liên kết (Link AnalysisAlgorithm) Phương pháp này đánh giá trang độ quan trọng của một trang web dựatrên những liên kết trên internet
Việc đánh giá thích đáng sự tìm kiếm trên internet rất quan trọng với những công
ty như Google, Yahoo và Microsoft bởi điều này cho phép những công ty tìm kiếmtrực tuyến hàng đầu này đặt quảng cáo của họ theo đúng như những gì người dùngtìm kiếm Nhưng Microsoft và những cộng sự cho rằng PageRank đã không làm tốttrong việc đánh giá độ quan trọng của trang web do kết quả của PageRank có thể bịlợi dụng và thổi phồng một cách không chính xác