Tải bản đầy đủ (.docx) (30 trang)

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

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 (659.8 KB, 30 trang )

ĐẠ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

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
Giảng viên hướng dẫn: PGS. TS. ĐỖ VĂN NHƠN
Học viên thực hiện: NGUYỄN PHƯƠNG ANH
Lớp: Cao học Khóa 6 MSHV: CH1101159
TP. Hồ Chí Minh, tháng 01 năm 2013
LỜ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ọc
Cô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ực
hiệ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, em
rấ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
NHẬN XÉT
(Của giảng viên hướng dẫn)























MỤC LỤC
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
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 đến
PageRank người ta thường nghĩ đến ngay Google PageRank. Đó là một hệ thống xếp
hạ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 URL
trong 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 Stanford
bở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 theo

cá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ới
website đó, 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ột
cá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ọng
củ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 độ ả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. 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ía
cạ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ùng
củ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ựa
và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ông
khai.
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 kinh
doanh 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 khi
cạ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
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 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. Đồng
thờ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ạng
trang. 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 trang
Yahoo 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ô danh
nà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ương
phá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ức
PageRank thô, gọi r(i) là hạng tương ứng với trang i:


=
)(
)(/)()(
iBj
jNjrir
Ta có thể viết các phương trình này dưới dạng r =A
T
r trong đó:
+ r là vector [r(1),…,r(n) ] trong đó các thành phần tương ứng là các hạng của
các trang Web.
+ A là ma trận kích thước n.n trong đó các phần tử

jij
Na /1=
nếu có liên kết
từ i đến j, và a
ij
= 0 nếu ngược lại. Như vậy có thể thấy vector PageRank r chính là
vector riêng của ma trận A
T
.
Như ta đã thấy ở trên việc tính toán mức độ quan trọng hay hạng trang theo thuật
toán PageRank có thể được thực hiện thông qua việc phân tích các liên kết của trang
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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
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ác
trang 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 trang
liê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ải
quyế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 A
T
. 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 ma
trậ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ính
toán vector PageRank là phương pháp luỹ thừa. Các công việc tính toán sẽ được làm
như sau:
• s← vector bất kỳ
• r←A
T
s
• Nếu

esr <−
thì kết thúc, khi đó ta nhận được r là vector PageRank.

sr −
phải tuân theo một chuẩn nào đó như chuẩn Euclide hay chuẩn bình
phươ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 Web
lập thành một đồ thị liên thông. Trên WWW có rất nhiều các trang Web mà chúng
khô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ả. Đối
vớ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ất
khó đượ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ợp
với thực tế. Công thức PageRank được sửa đổi có dạng như sau:


−+∗=
i
Bj
ndjNjrdir /)1()(/)()(
Việc thêm “hệ số hãm” d (thường được chọn d=0.85) có ý nghĩa như sau: bổ sung
thêm giá trị PageRank vào cho các trang không có link ra ngoài. Ta cũng nhận thấy
khi 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, trong
vò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ớn
lắm.
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh

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
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ất
trong 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ác
trong cùng máy tìm kiếm, việc tính toán nhanh vector PageRank có thể giúp giảm
thiể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ều
vector PageRank, mỗi vector hướng tới một tiêu đề khác nhau. Việc tính toán nhiều
vector 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ủa
WWW. 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ận
dụng những trang hội tụ trước và kết quả của những trang đã hội tụ đó có thể không
cầ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àm
tă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ột
cả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ính
toá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òng
lặp thứ k. Ta cần tính toán
)()1(

.
kk
rAr =
+
(*)
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, A
N
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 A
c
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ụ.
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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
Tương tự, ta cũng chia vactor r
(k)
ra thành hai vector
)(k
N
r
tương ứng với những
thành phần của r
(k)
đã hội tụ còn
)(k
C
r
tương ứng với những thành phần của r
(k)
chưa

hội tụ.
Vậy ta có thể viết lại ma trận A và r
(k)
dưới dạng như sau:








=
)(
)(
)(
k
C
k
N
k
r
r
r










=
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
đã hội tụ do vậy ta không cần tính
1+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
)(k
C
rA
nữa.
)()1(
)1(
*
k
C
k
C
k
NN
k
N
rr
rAr
=
=
+
+
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ận
con A
N
sẽ khó có thể thực hiện được trong mỗi vòng lặp. Hơn nữa không có cách
hiệ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 A
C
không được sử dụng trong việc tính toán PageRank nên ta có thể định
nghĩa một ma trận








=
0
'
N
A
A










=

k
C
k
C
r
r
0
. Với những định nghĩa này phương trình
(*) có thể được viết như sau:
k
C
kk
rrAr

+

=
+ )()1(
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 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:







=
′′
elseA
Ciif
A
ij
0






=
′′
else
Ciifr
r
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ên
việ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ện
cho 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ững
giá 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:








=
CCCN
NNNN
AA
AA
A
với A
NN
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ới
những trang chưa hội tụ, A
CN
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 A
NC
, A
CC
. Vì
r
C
và A
NC
r
C
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( k
CCN
k
NNN
k
N
rArAr +=
+
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
P
ageRank



phương


pháp

tìm

kiếm

hiện

đang

được áp

dụng

trên

máy

tìm
kiếm

Google.

Tuy

nhiên phương

pháp

này


chỉ

quan

tâm

đến

các

liên

kết


không

quan

tâm

đến

nội

dung

của


trang

Web



chứa liên

kết

đó,

do

vậy



thể
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 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



cần

phải
đưa

ra

một


phương

pháp



tốc

độ

nhanh

như

phương pháp

PageRank



lại


quan

tâm

đến

nội


dung

của trang

Web

thông

qua

"chủ

đề"

của

nó.

Hơn

nữa,

nếu
khai

thác

được


mối

quan

tâm

của

người

dùng

đối

với các

trang

Web

trong

việc
tính

độ

phù

hợp


của

trang Web

với

câu

hỏi

người

dùng

thì

việc

đó

càng


ý 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,

đó



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ội
dung 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ội
dung 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
, ,c
n

; gọi

T
j



tập

hợp

những

trang

Web

theo

chủ

đề

c
j
. Mỗi
lớp

tương


ứng

với

một

vector

PageRank

của chủ

đề



mỗi

thành

phần



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




sử
dụng =[1/N], thuật toán sử dụng vector trong đó:







=
j
jj
ij
Ti
TiT
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ủ
đề; D
jt
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ử



truy
vấn

q,

gọi

q’




phạm

vi

ngữ cảnh

của

q

[4,

5].



tả



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




q.

Trường

hợp

truy

vấn

q

được

đặt

bằng

cách



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



câu

truy

vấn

hoặc phạm

vi

ngữ

cảnh

của

câu


truy

vấn;

(iii)

Đầu

ra


xác

suất

để

đầu

vào

thuộc

mỗi

chủ

đề.
Dưới


đây



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



từ
khoá

thứ

i

trong

ngữ

cảnh q

. Với mỗi c
j,
xác suất đề q



c
j
là:
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 12
P(c
j

|q

) = ≈ P(c
j
).π.P(q
i

|c
j
)
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ộc
mỗ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 được

tính toán như sau:
s
qd =

j
P(c
j
|q

).rank
jd
1.3 Ví dụ về PageRank
1.3.1
Ví dụ 1
PageRank sau n bước lặp:
       
       
       
       
       
PageRank: Max: 0.241; Total: 1.541; Mean: 0.220
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 13
1.3.2
Ví dụ 2
PageRank sau n bước lặp:
       
       
       
       

       
PageRank: Max: 0.839; Total: 2.248; Mean: 0.321
1.3.3
Ví dụ 3
PageRank sau n bước lặp:
       
       
       
       
       
       
       
       
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 14
PageRank: Max: 1.689; Total: 7.000; Mean: 1.000
1.3.4
Ví dụ 4
PageRank sau n bước lặp:
       
       
       
       
       
       
       
       
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án
mộ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ính
toá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 truy
vấ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ọc
Stanford, không phải là phương pháp duy nhất để xác định kết quả tìm kiếm. Thực
vậ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.
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 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ác
nữa, do thuật toán PageRank không quan tâm đến nội dung của trang Web có chứa
câ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ủa
ngườ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ông
chính xác thông tin, và có thể có người thuê các trang Web danh tiếng liên kết đến
trang 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 web
của người dùng. PageRank của Google đánh giá độ quan trọng của một trang web
dự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 Analysis
Algorithm). Phương pháp này đánh giá trang độ quan trọng của một trang web dựa
trê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ếm
trự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ùng
tìm kiếm. Nhưng Microsoft và những cộng sự cho rằng PageRank đã không làm tốt
trong 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.
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 16
2 Hypertext Induced Topics Search (HITS)
2.1 Mô tả thuật toán HITS
Thuật toán này dựa trên việc lựa chọn các trang Web và kết hợp chúng thành một
đồ thị các trang Web. Sau đó phân tích các liên kết trong đồ thị con đó để xác định
được trang nào là trang “authority”, trang nào là trang “hub” đối với truy vấn được
đưa vào. Tập hợp các trang Web này có thể được chọn bằng cách như sau: đầu tiên
chọn một số trang web bất kỳ có chứa xâu ký tự của truy vấn gọi là tập mở đầu, sau
đó cứ loang dần ra những trang gần kề, nghĩa là những trang có liên kết với những
trang trong tập mở đầu, công việc kết thúc ta sẽ nhận được một tập hợp các trang
Web. Việc loang này sẽ được dừng khi vượt quá giới hạn nào đó: như là kích cỡ cho
trước của tập hợp các trang Web kết quả, hoặc nguồn các trang trong tập mở đầu
không còn nữa. Gọi tập kết quả nhận được là S.
+ Đánh số các trang trong tập kết quả S từ 1 đến n.
+ Gọi B(i) là số trang Web có liên kết tới trang i.
+ Gọi F(i) là số trang Web được trang i trỏ tới.
Các chỉ số “authority” a
i
và “hub” h
i
cho mỗi trang Web sẽ được tính trong các
bước I và O. Trong bước I: chỉ số a
i
của trang i sẽ được tính bằng tổng các chỉ số
“hub” của những trang trỏ tới i. Trong bước O: chỉ số h
i
của trang i sẽ được tính bằng
tổng của các chỉ số “authority” mà nó trỏ tới. Điều này phần nào thể hiện được ý

tưởng ta nói ở trên về sự liên quan giữa chỉ số “hub” và “authority”.
I:


=
i
Bj
ji
ha
O:


=
i
Fj
ji
ah
Trước tiên a
i
, h
i
sẽ được gán các giá trị bất kỳ sau đó các bước I, O sẽ được tính,
quá trình này sẽ được thực hiện cho đến khi các chỉ số a
i
và h
j
hội tụ.
Nếu ta gọi A là ma trận kề biểu diễn liên kết giữa các trang Web với a
ij
=1 nếu

trang i có liên kết đến trang j và bằng 0 nếu ngược lại. Như vậy các bước I và O có
thể được viết lại dưới dạng ma trận
a=Ah (1)
và h=A
T
a (2)
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 17
trong đó vector a=[a
1
,…,a
n
] có các thành phần đại diện cho các chỉ số “authority”
của các trang Web trong tập S còn vector h=[h
1
,…,h
n
] có các thành phần đại diện cho
các chỉ số “hub” của các trang Web trong tập S.
Từ (1) và (2) ta có thể thấy được a=AA
T
a và h=A
T
Ah nên vector a và h chính là
các vector riêng của ma trận AA
T
cùng ma trận A
T
A.
Thuật toán HITS dưới dạng mã giả như sau:

Cho 1 truy vấn tìm kiếm q, HITS xây dựng một tập hợp các trang web như sau:
1/ Dùng một search engine để tìm kiếm q.
2/ Lấy t (t=200 theo Kleinberg) trang webs có thứ hạng cao nhất. Tập các web
này gọi là Root Set W.
3/ Mở rộng W bằng cách lấy tất cả các trang web được bất kỳ một trang nào trong
W trỏ đến và bất kỳ một trang nào (d=50) trỏ đến một trang trong W. Tập các trang
web này gọi là Base Set W (1000-5000 trang).
4/ Mỗi trang web trong S được gán 1 authority score và 1 hub score, tất cả bằng
1.
5/ Xác định số phần tử n của S.
6/ Dùng đồ thị G=(V,E) để biểu diễn S, dùng ma trận kề L:






=
otherwise
Ejiif
L
ij
0
),(1
7/ Gọi authority score của trang i là a(i), và hub score của trang i là h(i)


=
i
Bj

ji
ha


=
i
Fj
ji
ah
Tất cả các a(i) sẽ được biểu diễn như các thành phần tương ứng thứ i trong vector
cột a
a = (a(1),a(2), …,a(n))
T
Tương tự, vector cột h:
h = (h(1),h(2), …,h(n))
T
 a = L
T
h
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 18
h = La
8/ Ký hiệu a
k
và h
k
là vector authority và vector hub ở bước lặp thứ k
Cập nhật a
k
và h

k
:
a
k
= L
T
.L.a
k-1
, h
k
= L.L
T
.h
k-1
với: a
o
= h
o
= (1,…,1)
HITS-Iterate(G)
a
o
= h
o
= (1,…1);
k = 1;
Repeat
a
k
= L

T
.L.a
k-1;
h
k
= L.L
T
.h
k-1;
normalize a
k
;
normalize h
k
;
Until (a
k
và h
k
không còn thay đổi);
return a
k
và h
k
;
2.2 Argos - A Search Engine Interface
2.2.1 Giới thiệu
Argos là một Java based interface được thiết kế để cung cấp những phương thức
cho việc tìm kiếm trên internet thông qua search engine.
Website: />2.2.2 Những đặc trưng

Dễ dàng sử dụng API. Bạn cung cấp một chuỗi truy vấn và sẽ được trả kết quả
tìm kiếm cho java.util.Iterator
Tiện lợi để mở rộng bằng các lớp đã được thiết kế.
Nhiều Search Engine được hỗ trợ trong Argos, bao gồm Blogdigger, Feedster,
Del.icio.us, Google, MSN và Yahoo.
Có thể kết hợp những kết quả tìm kiếm được từ nhiều Search Engine.
2.2.3 Phiên bản
Phiên bản release gần đây nhất của Argos là 0.1 (tháng 04/2005), phiên bản này
được xem như là bản Alpha.
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 19
Argos có thể dùng dưới Apache Licence v2. Tuy nhiên mỗi search engine đều có
terms of use riêng.
2.2.4 Các engine hỗ trợ
2.2.4.1 Blogdigger
Website: />Classname: org.jvnet.argos.blogdigger.BlogdiggerWebSearcher
2.2.4.2 Del.icio.us
Website:
Classname: org.jvnet.argos.delicious.DeliciousPopularTagSearcher
org.jvnet.argos.delicious.DeliciousRecentTagSearcher
2.2.4.3 Feedster
Website: />Classname: org.jvnet.argos.feedster.FeedsterSearcher
2.2.4.4 Google
Website: normal search: />Classname: org.jvnet.argos.google.GoogleWebSearcher
2.2.4.5 MSN Search
Website:
Classname: org.jvnet.argos.msn.MSNWebSearcher
2.2.4.6 Yahoo
Website: normal search:
Classname: org.jvnet.argos.yahoo.YahooWebSearcher

2.3 Giảm kích thước ma trận
2.3.1 Nguyên nhân
Do số lượng các trang web sử dụng trong thuật toán HITS rất lớn nên chúng ta
phải dùng phương pháp giảm kích thước ma trận kề của đồ thị để cho việc tính toán
được nhanh hơn với sai số có thể chấp nhận được.
Và phương pháp sử dụng để giảm kích thước của ma trận trong việc cài đặt thuật
toán HITS là sử dụng phương pháp phân tích giá trị suy biến.
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 20
2.3.2 Phân tích giá trị suy biến (SVD)
SVD dựa vào một định lý trong đại số tuyến tính được phát biểu rằng một ma trận
A có thể được chuyển hóa thành ba ma trận nhân với nhau, một ma trận trực giao U,
một ma trận đường chéo S, và một chuyển vị của ma trận trực giao V.
X
mn
= U
mn
S
mn
V
nn
T
với U
T
.U = I, V
T
.V = I. Ma trận trực giao U và V chứa những véc-tơ suy biến trái
và phải của X, và đường chéo của ma trận S chứa những giá trị suy biến của X. Sử
dụng phương pháp SVD, kích thước của dữ liệu có thể được giảm bằng cách chiếu
dữ liệu vào trong một không gian được nối bởi những vector riêng trái tương ứng với

k giá trị riêng lớn nhất:
X
SVD
= U
k
T
.X
với U
k
có kích thước dxk và chứa k véc-tơ suy biến. SVD được tính qua rất nhiều
giai đoạn và theo [6] thì phương pháp SVD tính chính xác hơn khi giảm kích thước
của dữ liệu so với phương pháp Random Projection.
Ví dụ: X = U.S.V
T
1 1 1 0 0 0.18 0
2 2 2 0 0 0.36 0
1 1 1 0 0 0.18 0 9.64 0 0.58 0.58 0.58 0 0
5 5 5 0 0 = 0.90 0 X 0 5.29 X 0 0 0 0.71 0.71
0 0 0 2 2 0 0.53
0 0 0 3 1 0 0.80
0 0 0 3 1 0 0.27
Giảm kích thước ma trận:
1 1 1 0 0 0.18
2 2 2 0 0 0.36
1 1 1 0 0 0.18
5 5 5 0 0 ~ 0.90 X 9.64 X 0.58 0.58 0.58 0 0
0 0 0 2 2 0
0 0 0 3 1 0
0 0 0 3 1 0
Suy ra:

1 1 1 0 0 1 1 1 0 0
2 2 2 0 0 2 2 2 0 0
1 1 1 0 0 1 1 1 0 0
5 5 5 0 0 ~ 5 5 5 0 0
0 0 0 2 2 0 0 0 0 0
0 0 0 3 1 0 0 0 0 0
0 0 0 3 1 0 0 0 0 0
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 21
3 Cài đặt thuật toán
3.1 Hướng dẫn sử dụng chương trình
Để có thể chạy được chương trình, các bước cần phải thực hiện:
- Cài đặt IDE Netbeans và phần mềm Maple.
- Đặt biến môi trường để Java có thể kết nối với Maple: Click chuột phải vào
MyComputer  Properties (có thể dùng phím tắt Windows+Break)  Advanced
(nếu là Win XP, còn Win Vista hay Win 7 thì chọn Advanced system settings) 
Environment Variables. Ở mục System Variables, tìm dòng có chữ “Path”  chọn
dòng này rồi click Edit  trên dòng có chứa “Variable Value” di chuyển đến cuối ->
đặt dấu chấm phẩy (;) rồi paste đường dẫn thư mục bin.win trong thư mục cải đặt của
Maple vào (thường là C:\Program Files\Maple 12\bin.win), chọn OK, sau đó khởi
động lại máy (chú ý bước khởi động lại máy quan trọng vì sau khi khởi động
Windows mới nhận được biến môi trường mới thêm vào).
Tạo thư mục HITS trong ổ C (C:/HITS). Sau đó mở file HITS.mw bằng Maple,
click vào nút có kí hiệu là “!!!” (Excute the entire worksheet) để Maple build thành
package HITS, sau khi build xong package sẽ nằm trong thư mục C:/HITS.
Dùng IDE Netbeans để mở project HITS (project Netbeans đính kèm), sau đó
nhấn F6 để Run project.
Giao diện của chương trình:
Trước tiên người dùng sẽ nhập vào chuỗi truy vấn, text field bên dưới chuỗi truy
vấn là kết quả các trang web tìm được của search engine (trong chương trình dùng

GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 22
search engine là Live Search của Microsoft) và mỗi trang tìm được sẽ dùng search
engine để tìm những trang trỏ đến trang này đồng thời mỗi trang tìm được cũng sẽ
được phân tích để trích xuất ra các trang mà trang này trỏ đến.
Text field “Vertices & Adjacency Matrix of the Web Graph” hiển thị tất cả các
trang web trong đồ thị và ma trận kề của đồ thị. Dưới text field này label hiển thị thời
gian thực hiện quá trình thu thập các trang web.
Tiếp theo là các thông số do người dùng lựa chọn để giảm kích thước của ma trận
dùng phương pháp SVD. Label “original kxk-dimensional:” là ma trận ban đầu tính
toán xử lý trong đồ thị các trang web có kích thước kxk, label “projected to dxd
dimensional: k(k<=d):” là ma trận có kích thước kxk do người dùng chọn giảm xuốn
để tính toán.
Sau khi click button “Compute Auths & Hubs Scores” sẽ thực hiện tính toán
authorities scores và hubs scores của các trang web và hiển thị kết quả lên text field
Authorities và Hubs, đồng thời 2 label Authorities và Hubs cũng hiển thị số vòng lặp
tính authorities scores và hubs scores đến khi hội tụ. Cuối cùng là hiển thị thời gian
tính toán lên lên label “Total Time:”.
3.2 Cài đặt thuật toán
Chương trình cài đặt thuật toán HITS sử dụng ngôn ngữ Java và Maple, IDE
Netbeans. Dùng Maple để cài đặt những xử lý trong đồ thị và ma trận, giảm kích
thước của ma trận bằng phương pháp SVD (Maple có hỗ trợ tính toán sẵn các vector
U, S, V
T
từ ma trận X), tính vetor hubs, vector authorities, còn Java thì sử dụng
Argos để triển khai các thủ tục dùng Search Engine là Live Search của Microsoft để
tìm kiếm truy vấn và tìm kiếm các trang web như trong thuật toán HITS yêu cầu.
Java sẽ kết nối với Maple để thực hiện các xử lý trong Maple và lấy kết quả để hiển
thị lên form.
Các hàm chính cài đặt thuật toán HITS trong Java (chủ yếu xử lý tìm kiếm truy

vấn và tìm kiếm các trang web) như sau:
- Dùng 1 search engine để tìm kiếm truy vấn query. Lấy t (t = 200 theo
Kleinberg) trang webs có thứ hạng cao nhất. Tập các web này gọi là Root Set W.
- Mở rộng W bằng cách lấy tất cả các trang web được bất kỳ 1 trang web nào
trong W trỏ đến và bất kỳ 1 trang nào (d = 10) trỏ đến một trang trong W. Tập các
trang này gọi là Base Set S (1000-5000).
- Tìm những trang trỏ đến trang page bằng cách đưa câu truy vấn là địa chỉ của
trang đó cho search engine tìm kiếm, loại bỏ trang đầu vì thường là chính trang đó,
sau đó lấy những trang còn lại (d trang với d=10)
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 23
Các hàm chính cài đặt thuật toán HITS trong Maple (cài đặt những xử lý trong đồ
thị và ma trận, giảm kích thước của ma trận bằng phương pháp SVD (Maple có hỗ
trợ tính toán sẵn các vector U, S, V
T
từ ma trận X), tính vector hubs, vector
authorities) như sau:
- Tính authority scores và hub scores:
L: ma trận kề của G
Lt: L
T
ma trận chuyển vị của L
LtL: ma trận chuyển vị của L nhân với ma trận L
LLt: Ma trận L nhân với ma trận chuyển vị của L
rowdim: lấy số dòng hoặc số cột của ma trận L (vì L là ma trận vuông)
e: epsilon
ao và ho: vector authority và vector hub trước khi lặp
ak và hk: vector authority và vector hub ở bước lặp thứ k, tương tự với a
k-1
và h

k-1
d: Do ma trận L
T
.L

và L.L
T
có kích thước rất lớn nên chúng ta dùng phương pháp
phân tích giá trị suy biến (SVD) để giảm kích thước của 2 ma trận trên nhằm cho
việc tính toán nhanh hơn, ví dụ như ma trận L
T
.L

và L.L
T
có kích thước là rowdim x
rowdim thì sẽ giảm còn lại là rowdim x d (d < rowdim)
ULtL và VLtL: ma trận trực giao chứa véc-tơ suy biến trái và phải của LtL
SLtL: đường chéo của SLtL chứa giá trị suy biến của LtL
ULLt và VLLt: ma trận trực giao chứa véc-tơ suy biến trái và phải của LLt
SLLt: đường chéo của SLLt chứa giá trị suy biến của LLt
USLtL: ULtL nhân với ma trận với các giá trị suy biến SLtL nằm trên đường
chéo của ma trận, các giá trị còn lại của ma trận này bằng 0
USLLt: ULLt

nhân với ma trận với các giá trị suy biến SLLt nằm trên đường
chéo của ma trận, các giá trị còn lại của ma trận này bằng 0
d: số dòng và cột của ma trận sau khi giảm(do người dùng nhập vào)
k: đếm số lần lặp khi ak hội tụ
j: đếm số lần lặp khi hk hội tụ


 ! "#
 
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 24
$$$$%&'$$($)$()$*$(*$$$$$+$$$+$$
$*$ #
Định nghĩa một số epsilon nhỏ là điều kiện dừng cho việc lặp a
k
và h
k
thay đổi
không đáng kể, điều kiện là |a
k
– a
k-1
| < e.
,-,,.#
Chuyển đồ thị G thành ma trận kề L, ma trận này được index theo thứ tự abc của
địa chỉ trang web
/)01&2#
Lấy số dòng của ma trận L
%&'&0/ !3%4&'05&06#
*,#
,#
Khởi tạo a
0
= h
0
= (1, ,1) (Ma trận 1 cột và d dòng)

&2$.$.#
(&2$.$.#
)#)*7.
()(#)*7.
L
T
: Ma trận chuyển vị của L
&0/ !30556#
Ma trận L
T
.L
&0/ !3&2&28 9 16$#
Tính ma trận ULtL, SLtL, VtLtL, dùng phương pháp phân tích giá trị suy biến
SVD
$$+&0/ !3&08 + 856$883::$::$:+:6#
Ma trận USLtL có kích thước là rowdim x rowdim, như sau khi đã giảm kích
thước (dùng phương pháp Phân tích giá trị suy biến) xuống còn d x d, sau đó ma trận
này sẽ thay cho LtL nhân với vector authority a
k-1
có kích thước d x 1 để tính
authority scores, kết quả sẽ là ma trận a
k
có kích thước d x 1, sau đó chuyển vị và
nhân lại với ma trận VtLtL có kích thước d x rowdim được vector authority scores
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh
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 25
    !5&0/ !3&2&28 9 16&0/ !38!&26
$3 6$3 6$&0/ !34&0 &263 6$$#
Ma trận L.L
T

&0/ !3&2&28 9 16$#
Tính ma trận ULLt, SLLt, VtLLt
$$+&0/ !3&08 + 856$883::$::$:+:6#
Cách tính tương tự ma trận USLtL
    !5&0/ !3&2&28 9 16&0/ !38!&26
$3 6$3 6$&0/ !34&0 &263 6$$#
a
k
và h
k
là vector authority và vector hub ở bước lặp thứ k
*&0/ !3&2&28 9 16$)#
(*&0/ !3&2&28 9 16$()#
Normalize a
k
và h
k
theo chuẩn Euclide
**;&0/ !3&2'6*$<8 &0#
(*(*;&0/ !3&2'6(*$<8 &0#
**=.#
 =.#
Bắt đầu lặp tính a
k
và h
k
cho đến khi a
k
và h
k

thay đổi không đáng kể, tức là sẽ lặp
cho đến khi khoảng cách của 2 vector a
k
và a
k-1
(tương tự cho h
k
và h
k-1
) này bé hơn
một số epsilon nhỏ.
%(& 807 8 8534&506*$)>
)*#
a
k
= L
T
.L.a
k-1
;
 *&0/ !3&2&28 9 16$)#
Normalize a
k
bằng cách lấy mỗi phần tử của a
k
chia cho c

với c =
 **;&0/ !3&2'6*$<8 &0#
 **=.#

#
GVHD: PGS. TS. Đỗ Văn Nhơn Học viên: Nguyễn Phương Anh

×