Các chiến lược lựa chọn trang Web trong quá trình crawl

Một phần của tài liệu xây dựng một công cụ tìm kiếm thực sự (Trang 32 - 37)

1. MỤC ĐÍC H

1.5.2.Các chiến lược lựa chọn trang Web trong quá trình crawl

Không phải mức độ cập nhật thông tin giữa các trang Web là như nhaụ Sẽ có những trang được nhiều người quan tâm và đọc nhiều, nó sẽ có nhiều thông tin, cập nhật nhanh hơn và có doanh thu tốt hơn và đó lại chính là tiền đề để nó tiếp tục đầu tư Server, đường truyền mạng, người quản trị, người biên tập nội dung…để nó vẫn mãi là những trang quan trọng. Ngược lại, có những trang ít quan trọng hơn vì nó có ít người quan tâm hơn, ít thông tin hơn và do đó nó cũng chẳng cần phải được đầu tư nhiều về mọi mặt.

Trong khi đó, người ta không thể cập nhật toàn bộ các trang Web ngay lập tức được, bởi vì lý do chi phí, số Server dùng Crawler là hữu hạn, và chắc chắn, nó ít hơn rất nhiều số Websitẹ Do đó nó dẫn đến những điều sau:

Năng lực xử lý là hữu hạn. Các Crawler chắc chắn phải được bố trí phân tán [18] trên toàn cấu, chúng không chỉ phải xử lý việc phân tích các trang mà còn phải thực hiện các lệnh với một hệ thống phân tán.

Băng thông là hữu hạn, bởi vì số máy là hữu hạn nên số Card mạng và đường truyền cho chúng là hữu hạn. Ngoài ra, băng thông đường truyền này còn phải được sử dụng cho việc chia sẻ thông tin giữa các cụm máy chủ Crawler

Dung lượng kho chứa cũng là một vấn đề khó khăn. Tuy rằng, với sự phát triển của công nghệ lưu trữ, giá thành trên một TB đã giảm xuống đáng kể, một dung lượng kho chứa để chứa toàn bộ dữ liệu trên thế giới này cũng không quá caọ Tuy nhiên, để quản lý một dung lượng dữ liệu khổng lồ như thế, quản lý số máy móc lớn như thế, cũng đòi hỏi rất nhiều kỹ thuật khó để vượt qua

Do đó người ta sẽ phải tính toán mực độ ưu tiên của các trang Web. Các trang Web “quan trọng” sẽ được quan tâm và Crawler về trước, được cập nhật thường xuyên hơn so với những trang ít quan trọng hơn. Và chính điều này sẽ tác động lên “chất lượng” (mức độ có ý nghĩa) của phần Web site được crawl so với toàn bộ Web site trên mạng.

1.5.2.1. Các hệ đo mức độ quan trọng (importance metrics)

Không thể coi các trang Web có mức độ quan trọng như nhau, có thể hình dung một cách đơn giản như sau, nếu như Search Engine thuộc về một chủ đề nào đó thì các trang Web thuộc về chủ đề đó đương nhiên phải quan trọng hơn các trang khác (ví dụ như Search Engine tìm kiếm các bài báo khoa học thì các bài báo khoa học đương nhiên là quan trọng). Một trong những cách đo độ quan trọng của các trang Web là đo, đếm số lượng các trang Web có liên kết đến trang Web hiện tại làm độ đo mức độ quan trọng cho nó.

Giả sử trang Web cần đánh giá mức độ quan trọng là p, chúng ta có thể định

nghĩa mức độ quan trọng của nó I(p) theo một trong các tiêu chí sau (các tiêu chí có

thể được kết hợp để tăng độ chính xác):

ạ Mức độ tương tự so với câu hỏi định hướng (driving query) Q:

Q được sử dụng để định hướng quá trình crawl. I(p) được xác định dựa trên

mức độ tương đương (textual similiraty, một khái niệm trong lý thuyết về Information Retrieval) giữa pQ. Ký hiệu mức độ quan trọng trong trường hợp này là IS(p) hoặc là IS(p, Q).

Để tính toán mức độ tương tự, có thể xem mỗi tài liệu p như một vector n chiều

(w1, w2, … wn ). Trong đó wi là đại diện cho sự ý nghĩa của từ thứ i trong tài liệụ Nếu như không có từ đó trong tài liệu thì wi =0. Một cách tính wi đơn giản đó là nhân số lần xuất hiện của từ này trong tài liệu với tần số nghịch (chu kỳ) idf của từ đó trong tất cả

các tài liệu (trong trường hợp của Search Engine là toàn bộ Web). idf có giá trị bằng

nghịch đảo của số lần xuất hiện từ thứ i trong toàn bộ các tài liệụ Như vậy các từ ít

xuất hiện sẽ có giá trị idf cao còn các từ xuất hiện nhiều có idf thấp. Ngoài ra, vị trí xuất hiện của từ đó trong tài liệu cũng ảnh hưởng đến ý nghĩa của từ đó, chẳng hạn như các từ xuất hiện ở tiêu đề trang HTML được đánh giá cao hơn các từ khác. Trong

trường hợp không sử dụng idf để tính toán mức độ tương đương, có thể sử dụng các

thông tin mang tính chất “cục bộ” (local) chỉ gồm pQ thay vì dùng các thông tin

mang tính chất “toàn cục” (global).

Trong quá trình crawl, crawler không thấy hết toàn bộ các trang Web. Vì vậy,

chúng phải ước lượng giá trị của idf dựa trên những trang Web đã được tìm về hoặc

dựa trên giá trị idf đã được tính toán trước đó tại một số thời điểm xác định. Ước lượng

mức độ quan trọng của p trong trường hợp này được ký hiệu là IS’(p). Dễ thấy được

nếu như không sử dụng idf để tính toán mức độ quan trọng thì IS(p)=IS’(p).

b. Backlink count[8]:

Giá trị của I(p) được tính bằng số lượng các liên kết đến p xuất hiện trên toàn

bộ Web. Ký hiệu của I(p) sử dụng độ đo này là IB(p). Nghiễm nhiên là các trang Web

được tham khảo bởi nhiều Web site có mức độ quan trọng hơn các trang Web ít được (adsbygoogle = window.adsbygoogle || []).push({});

tham khảọ IB(p) rất hữu ích cho việc xếp hạng các kết quả trong tìm kiếm (ranking).

Cũng giống như IS(p), IB(p) có thể được tính dựa trên các trang Web đã được tìm về

thay vì toàn bộ Web và lúc đó được ký hiệu là IB’(p).

c. PageRank[9]:

Trong khi tính IB(p), các liên kết được đánh giá ngang bằng nhau, liên kết từ

trang chủ của Yahoo cũng được đánh giá ngang bằng với liên kết từ một trang Web cá nhân nào đó. Tuy nhiên Yahoo là một Web site quan trọng (có giá trị IB rất cao) nên các trang Web mà nó liên kết tới thường là các trang Web quan trọng. Với cách nhìn

này thì các liên kết từ các trang Web quan trọng phải được coi trọng hơn các liên kết

khác trong quá trình tính IB(p). Hệ PageRank, định nghĩa một cách đệ quy mức độ

quan trọng của trang Web bởi mật độ tổng tất cả mức độ quan trọng của các trang Web

có liên kết đến nó. Tương tự, IR’(p) tính toán dựa trên các trang Web đã được biết bởi

crawler.

Nếu như một trang Web nào đó không có liên kết đến các trang khác thì mức độ quan trọng của nó được chia đều cho các trang Web.

Giả sử p được liên kết đến bởi các trang Web t1, t2, …, tnc1, c2, …, cn là các liên kết ra ngoài từ các trang Web tương ứng ti. Gọi dyếu tố damp(damping factor, sẽ được trình bày chi tiết hơn trong mục). Khi đó IR(p) được tính như sau:

IR(p) = (1-d) + d [ IR(t1)/c1 + IR(t2)/c2 +.. . + IR(tn)/cn ]. (1)

Để tính toán được IR(p), ban đầu người ta coi tất cả các trang Web có IR như

nhau và bằng 1. Sau một vài bước tính toán làm mịn theo công thức trên sẽ cho ta giá trị của IR(p).

Ý tưởng ra đời của PageRank là sự tưởng tượng cách một người dùng lướt Web như thế nào khi xuất phát từ một trang Web bất kỳ. Người dùng sẽ lựa chọn các liên kết trên trang Web này một cách ngẫu nhiên và lần theo các liên kết đó. Khi bắt gặp một trang Web không có liên kết đến bất cứ trang nào thì người dùng sẽ lựa chọn một trang Web ngẫu nhiên khác. Có một vài nhân tố quyết định đến sự ngẫu nhiên trong

việc lựa chọn trang Web kế tiếp và ở đây, giá trị damp d được xác định một cách trực

giác để đánh giá các nhân tố nàỵ Tuy nhiên, càng về sau này, các công cụ tìm kiếm tốt như Google có sử dụng chương trình Google Analytics, Alexa có cũng có những công cụ để có thể tính toán, thống kê được một cách khá chính xác việc truy cập các trang Web của người sử dụng

d. Forward link count[17]

IF(p) đếm số liên kết đi ra từ trang Web. IF(p) cũng quan trọng bởi vì một trạng Web có nhiều liên kết ra ngoài có thể là một Web directorỵ Khác với các hệ đo trước đây, IF(p) có thể tính chính xác từ trang Web p, do vậy IF(p) = IF’(p).

ẹ Location

IL(p) là một hàm tính toán độ quan trọng của p dựa trên vị trí của p (được thể

hiện qua URL của nó). Thông thường các trang Web có URL dạng “.com“ hay có

chứa từ “home“ được đánh giá cao bởi vì nó thường là trang gốc. Các URL có ít ký

hiệu “/“ cũng vậỵ

Các hệ đo trên có thể kết hợp với nhau theo nhiều cách để cho được kết quả sát

với yêu cầu cụ thể hơn. Chẳng hạn có thể tính IC(p) = k1.IS(p, Q) + k2.IB(p), với k1,

1.5.2.2. Các kiểu crawlers (crawler models)

Mục đích của những người làm về Search Engine là thiết kế các crawler sao (adsbygoogle = window.adsbygoogle || []).push({});

cho nếu có thể thì viếng thăm các trang Web có giá trị I(p) cao hơn trước. Tất nhiên là

crawler chỉ có thể biết được I’(p) nhưng có thể căn cứ vào đó mà dự đoán được I(p).

Ba mô hình được đưa ra sau đây sẽ minh họa chi tiết hơn:

Crawl and Stop[9]: Với mô hình này, crawler C khởi đầu với trang p0 và dừng

lại sau K trang Web được tìm về. K là một con số cố định tùy thuộc vào số lượng các

trang Web mà C có thể tải về trong một lần làm việc. Crawler lý tưởng trong trường

hợp này sẽ lần lượt viếng thăm r1, r2, …, rK, với r1 là trang Web có giá trị mức độ quan trọng cao nhất. Các trang Web r1, r2, …, rK được gọi là các trang “hot” (hot pages). Thường thì chỉ có M trang Web trong số K trang ở trên có giá trị I(r) ≥ I(rK). Giá trị

PCS(C) = M/K được gọi là hiệu năng (perforrmance) của crawler C. Thực tế là không

thể biết chính xác giá trị xếp hạng của tất cả các trang Web nên M sẽ được tính toán

dựa trên xếp hạng ước lượng của chúng. Crawler lý tưởng sẽ có hiệu năng bằng 100%.

Crawler dù thế nào thì cũng có xu hướng viếng thăm toàn bộ Web, đôi khi viếng thăm

lại các trang Web đã qua, hiệu năng lúc này được tính bằng K/T với T là tổng số trang

Web trên mạng (Mỗi trang Web được viếng thăm có xác suất K/T là trang hot, vì thế

số trang Web mong đợi khi mà crawler dừng lại là K2/T).

Crawl and Stop with Threshold[9] (ngưỡng): Vẫn giả sử rằng crawler C viếng

thăm K trang Web và G là một giá trị gọi là mục tiêu quan trọng (impotance target).

Trang Web nào có I(p) ≥ G được coi là trang hot. Giả sử H là số lượng các trang hot

(H xác định với giả thiết biết được xếp hạng của tất cả các trang). Hiệu năng của C

trong trường hợp này PST(C) được tính bằng phần trăm số trang hot HC viếng

thăm trước khi kết thúc phiên làm việc. Nếu K < H, hiệu năng của crawler lý tưởng sẽ

K/H, còn nếu K ≥ H thì hiệu năng của crawler lý tưởng sẽ là 100%. Crawler ngẫu

nhiên (purely random crawler) viếng thăm lại các trang Web với hy vọng sẽ viếng thăm (H/T).K trang hot trước khi dừng lạị Hiệu năng của nó là K/T.

Limited Buffer Crawl[9]: Giả sử crawler C có thể lưu trữ B trang Web trong bộ đệm (buffer). Khi bộ đệm đầy, crawler phải quyết định bỏ ra ngoài một số trang Web

để nhường chỗ cho các trang Web khác. Crawler lý tưởng sẽ loại ra các trang có I(p)

thấp nhất. Cho phép crawler tiến hành crawl toàn bộ Web (T trang). Tới khi kết thúc

quá trình crawl, phần trăm các trang hot trong bộ đệm cho ta hiệu năng PBC(C). Để xác

định một trang có phải là hot hay không có thể căn cứ vào giá trị G như ở trên hoặc

dựa vào giá trị I(rB) với rB là trang Web có mức độ quan trọng thứ B. Hiệu năng của crawler lý tưởng và ngẫu nhiên tương tự như trường hợp trên.

1.5.2.3. Thứ tự crawl các URLs

Crawler cất các URLs mà nó bắt gặp trong quá trình crawl và hàng đợi rồi lần lượt lấy chúng ra theo một quy tắc nào đó để tiến hành tải các trang Web tương ứng (adsbygoogle = window.adsbygoogle || []).push({});

về. Có bốn chiến lược crawl : crawl theo chiều rộng (breath-first crawling), crawl theo chiều sâu (depth-first crawling), crawl ngẫu nhiên (random crawling) crawl có thứ tự (priority crawling).

ạ Crawl theo chiều rộng (Breath-first crawling)[5]

Crawl theo chiều rộng thực hiện tìm kiếm hết các trang Web gần, qua ít liên kết trung gian từ trang xuất phát trước rồi mới đến các trang Web xa hơn. Hình vẽ sau đây minh họa cho quá trình crawl với trang xuất phát nằm ở trung tâm, trang nào đậm màu hơn có nghĩa là được tìm đến trước

Hình 12. Mô phỏng tìm kiếm theo chiều rộng

Tìm kiếm theo chiều rộng là phương pháp áp dụng cho hầu hết các crawler. Khi một crawler thực hiện tìm và tải về song song trên nhiều server khác nhau, việc sử dụng tài nguyên của các Web server được chia đều, tránh hiện tượng tập trung vào một Web server, gây nên một số vấn đề về lạm dụng tài nguyên của server.

b. Crawl theo chiều sâu (Depth-first crawling)[11, 12]

Theo phương pháp này crawler sẽ lần theo liên kết đầu tiên trên trang đầu tiên, sau đó đến liên kết đầu tiên trên trang tiếp theo và cứ như thế đến khi không còn liên kết nào nữa thì quay lại liên kết thứ hai trên trang đầu tiên. Một vài crawler đơn giản áp dụng phương pháp này bởi vì phương pháp này dễ lập trình. Hình sau đây minh họa cho phương pháp này:

Hình 13. Mô phỏng tìm kiếm theo chiều sâu

c. Radom crawling

Theo phương pháp này, việc lựa chọn các URLs mang tính chất ngẫu nhiên. Crawler sẽ lựa chọn ngẫu nhiên các URLs để viếng thăm. Tất cả các URLs được đối xử như nhau, không có một yếu tố nào tác động lên thứ tự viếng thăm URLs.

d. Priority crawling

Đối với phương pháp này, cần phải có một quy tắc rõ ràng để lấy các URLs ra

và các hệ thứ tự (orderring metrics) đã ra đời vì lý do nàỵGiả sử Crawler sử dụng hệ

O, crawler sẽ lấy URL ugiá trị sắp xếp (ordering value) O(u) cao nhất trước tiên. Hệ thứ tự sử dụng các thông tin mà crawler đã biết (các trang Web đã được tìm về) để tính O(u).

Thứ tự ở đây gắn liền với mức độ quan trọng của các trang Web mà URLs chỉ tớị Nếu ta sử dụng IB(p) để xác định thứ tự crawl thì O(u) = IB’(p) với u là URL chỉ

đến trang Web p. Khi đó crawler được gọi là backlink-based crawler. Tương tự có

pagerank-based crawler, similarity-based crawler, …

Một phần của tài liệu xây dựng một công cụ tìm kiếm thực sự (Trang 32 - 37)