78
IT4853 Tìm kiếm và trình diễn thông tin Chương 8: Các xu hướng phát triển Máy tìm kiếm trong mạng toàn cầu Nguyễn Bá Ngọc

8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

Embed Size (px)

Citation preview

Page 1: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

IT4853 Tìm kiếm và trình diễn thông tin

Chương 8: Các xu hướng phát triển

Máy tìm kiếm trong mạng toàn cầuNguyễn Bá Ngọc

Page 2: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

2

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

Page 3: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

3

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

Page 4: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

4

Tổng quan tìm kiếm trên Web

Page 5: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

5

Tìm kiếm là hoạt động thường xuyên nhất trên Web

Page 6: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

6

Máy tìm kiếm có vai trò thúc đẩy sự phát triển của web

Đơn giản hóa việc tìm kiếm tài liệu trên web → Đồng thời là động lực thúc đẩy người dùng đưa nội

dung lên web Có nên đưa ra thông tin nếu không ai đọc nó? Có nên đưa ra nội dung nếu không thu được lợi nhuận từ

những nội dung đó? Ai đó phả trả phí vận hành cho web

Máy chủ, thiết bị mạng, việc biên soạn nội dung v.v. Ngày nay phần lớn chi phí được trả nhờ quảng cáo trong tìm

kiếm Tìm kiếm giúp giải quyết vấn đề kinh phí vận hành web

Page 7: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

7

Tìm kiếm trên Web vs. trường hợp tổng quát

Có thể coi Web là một bộ dữ liệu lớn, phong phú và được biên soạn bởi rất nhiều người → nhiều tài liệu trùng lặp – cần phát hiện những tài liệu này

Bất kỳ ai cũng có thể đưa thông tin lên web → nhiều spam – cần phát hiện spam

Web rất lớn → cần xác định quy mô của web

Page 8: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

8

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

Page 9: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

9

Thế hệ đầu của quảng cáo trong tìm kiếm: Goto (1996)

Page 10: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

10

Thế hệ đầu của quảng cáo trong tìm kiếm: Goto (1996)

Kết quả tìm kiếm được xếp hạng theo giá – thu nhập tối đa cho Goto.

Không phân biệt giữa quảng cáo/tài liệu. Chỉ hiển thị một danh sách kết quả duy nhất!

Không xếp hạng theo sự phù hợp, . . .

Page 11: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

11

Thế hệ tiếp theo của quảng cáo trong tìm kiếm: Google (2000/2001)

Phân biệt rõ ràng kết quả tìm kiếm và quảng cáo

Page 12: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

12

Hai danh sách xếp hạng: tài liệu phù hợp (trái) và quảng cáo (phải)

SogoTrade xuất hiện trong kết quả tìm kiếm

SogoTrade trong mục quảng cáo

Công cụ tìm kiếm có xếp hạng tài liệu được quảng cáo cao hơn tài liệu không quảng cáo?

Tất cả công cụ tìm kiếm lớn đều tuyên bố không.

Page 13: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

13

Xếp hạng nội dung quảng cáo như thế nào?

Page 14: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

14

Quảng cáo được xếp hạng như thế nào?

Nhà quảng cáo đặt giá cho từ khóa – đấu giá. Hệ thống mở: Bất kỳ ai cũng có thể tham gia đặt giá cho

từ khóa. Nhà quảng cáo chỉ phải trả tiền khi ai đó mở quảng cáo. Quảng cáo được xếp hạng như thế nào? Giá phải trả khi

người dùng mở quảng cáo được xác định như thế nào? Tương tự đấu giá với giá thứ hai Đây có thể là lĩnh vực nghiên cứu quan trọng bậc nhất đối với

máy tìm kiếm (computational advertising). Thu thêm một xu từ mỗi quảng cáo sẽ bổ xung hàng tỉ lợi nhuận

cho công cụ tìm kiếm.

Page 15: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

15

Quảng cáo được xếp hạng như thế nào?

Nếu xếp hạng theo giá được trả như trong Goto Ý tưởng không tốt: truy vấn và quảng cáo có thể không ăn khớp về nội

dung Ví dụ: quảng cáo thuốc đau bụng khi tìm kiếm các món ngon?

Có thể xếp hạng dựa trên giá và sự phù hợp Thông số chính để đánh giá sự phù hợp là số lần mở liên kết

Số lần mở liên kết (CTR) Kết quả: Quảng cáo không phù hợp sẽ bị xếp hạng thấp hơn

Mong muốn: Sự hài lòng của người dùng và doanh thu của hệ thống sẽ là cực đại nếu người dùng luôn tìm được thông tin hữu ích.

Các tiêu chí xếp hạng khác: địa điểm, thời gian trong ngày, chất lượng và tốc độ tải trang web, v.v.

Tiêu chí xếp hạng chính: phù hợp với truy vấn

Page 16: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

16

Đấu giá với giá thứ hai theo Google

bid: giá tối đa được trả cho một lần mở quảng cáo CTR: tỉ lệ bấm quảng cáo: (số lần bấm quảng cáo / số

lần hiển thị quảng cáo). CTR thể hiện sự phù hợp. Xếp hạng quảng cáo: bid × CTR: tổng hợp (i) giá

được trả (ii) mức độ phù hợp của quảng cáo rank: xếp hạng paid: giá thứ hai được trả bởi nhà quảng cáo

Page 17: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

17

Đấu giá với giá thứ hai theo Google

Đấu giá với giá thứ hai: Nhà quảng cáo trả chi phí tối thiểu để duy trì vị trí của họ trong đấu giá và thêm 1 xu (0.01$).

price1 × CTR1 = bid2 × CTR2 (kết quả là rank1=rank2)

price1 = bid2 × CTR2 / CTR1

p1 = bid2 × CTR2/CTR1 = 3.00 × 0.03/0.06 = 1.50p2 = bid3 × CTR3/CTR2 = 1.00 × 0.08/0.03 = 2.67p3 = bid4 × CTR4/CTR3 = 4.00 × 0.01/0.08 = 0.50

Page 18: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

18

Những từ khóa được định giá caoTheo http://www.cwire.org/highest-paying-search-terms/$69.1 mesothelioma treatment options$65.9 personal injury lawyer michigan$62.6 student loans consolidation$61.4 car accident attorney los angeles$59.4 online car insurance quotes$59.4 arizona dui lawyer$46.4 asbestos cancer$40.1 home equity line of credit$39.8 life insurance quotes$39.2 refinancing$38.7 equity line of credit$38.0 lasik eye surgery new york city$37.0 2nd mortgage$35.9 free car insurance quote

Page 19: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

19

Quảng cáo trong tìm kiếm: ba bền đều có lợi?

Công cụ tìm kiêm thu lợi mỗi khi ai đó mở quảng cáo.

Người dùng chỉ mở quảng cáo nếu họ thực sự quan tâm. Công cụ tìm kiếm sẽ phạt những quảng cáo sai

lệch và không phù hợp. Kết quả là người dùng thường hài lòng với những

gì họ tìm thấy sau khi mở quảng cáo. Nhà quảng cáo tìm thấy những khách hàng

mới với chi phí tối thiểu.

Page 20: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

20

Bằng cách nào có thể đánh lừa hệ thống?

Page 21: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

21

Không phải cả ba bên đều có lợi: Đầu cơ từ khóa

Mua một từ khóa trên Google Sau đó chuyển hướng lưu lượng tới bên thứ ba

(đối tác trả giá cao hơn giá bạn phải trả Google) Ví dụ, chuyển tới một trang chứa rất nhiều quảng

cáo Ad spammers luôn phát minh nhiều sảo thuật

mới. Công cụ tìm kiếm cần thời gian để bắt kịp

Page 22: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

22

Không phải cả ba bên đều có lợi: Sự vi phạm thương hiệu

Ví dụ: geico Một thời gian trong năm 2005: Từ khóa tìm

kiếm “geico” trên Google bị mua bởi những đối thủ. Geico đã thất bại trong trường hợp này ở Mỹ.

Louis Vuitton cũng đã gặp tình huống tương tự ở châu Âu.

Tham khảo http://google.com/tm complaint.html

Page 23: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

23

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

Page 24: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

24

Phát hiện trùng lặp Trên Web có rất nhiều nội dung trùng lặp. Gấp nhiều lần so với những bộ dữ liệu khác Trùng lặp tuyệt đối

Dễ dàng loại bỏ ví dụ, sử dụng hàm băm

Trùng lặp gần Quá nhiều trên web Khó phát hiện

Người dùng cảm thấy phiền phức khi phải nhận những tài liệu (gần) giống nhau.

Một tài liệu dù rất phù hợp sẽ bị coi là không phù hợp nếu xuất hiện ngay bên dưới một kết quả trùng lặp.

Chúng ta cần loại bỏ những tài liệu trùng lặp (gần).

Page 25: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

25

Ví dụ trùng lặp gần

Page 26: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

26

Phát hiện trùng lặp gần

Tính độ tương đồng dựa trên “cú pháp” (thay vì ngữ nghĩa)

Tính độ tương đồng ngữ nghĩa là rất phức tạp Có thể coi những tài liệu có cùng nội dung nhưng

được diễn đạt với những từ khác nhau không phải trùng lặp.

Sử dụng ngưỡng θ để kết luận “trùng lặp (gần)”. Ví dụ, hai tài liệu được coi là trùng lặp gần nếu độ

tương đồng > θ = 80%.

Page 27: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

27

Biểu diễn mỗi văn bản như một tập shingles

Một shingle đơn giản là một n-gram trên từ. Shingles được sử dụng như những tham số để đo độ tương

đồng cú pháp giữa các tài liệu. Ví dụ, với n = 3, “a rose is a rose is a rose” sẽ được biểu diễn

như tập các shingles sau: { a-rose-is, rose-is-a, is-a-rose }

Chúng ta có thể tham chiếu các shingles với các giá trị số trong khoảng 1..2m bằng tổng kiểm soát (fingerprint).

Từ đây: ký hiệu sk là tổng kiểm soát của shingle k trong khoảng 1..2m.

Chúng ta định nghĩa độ tương đồng của hai tài liệu là hệ số Jaccard của hai tập shingle.

Page 28: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

28

Nhắc lại: Hệ số Jaccard

Thường được sử dụng để đo độ chồng lấn của hai tập hợp Cho A và B là hai tập hợp Hệ số Jaccard:

JACCARD(A,A) = 1 JACCARD(A,B) = 0 nếu A ∩ B = 0 A và B không nhất thiết có cùng kích thước. Luôn nhận một giá trị trong khoảng [0, 1]

Page 29: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

29

Ví dụ hệ số Jaccard

Ba tài liệu:

d1: “Jack London traveled to Oakland”

d2: “Jack London traveled to the city of Oakland”

d3: “Jack traveled from Oakland to London”

Dựa trên những shingle với kích thước 2 (2-grams

hoặc bigrams), hãy tính hệ số Jaccard J(d1, d2) và J(d1,

d3)?

Page 30: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

30

Ví dụ hệ số Jaccard

Ba tài liệu:

d1: “Jack London traveled to Oakland”

d2: “Jack London traveled to the city of Oakland”

d3: “Jack traveled from Oakland to London”

Dựa trên những shingle với kích thước 2 (2-grams hoặc

bigrams), hãy tính hệ số Jaccard J(d1, d2) và J(d1, d3)?

J(d1, d2) = 3/8 = 0.375

J(d1, d3) = 0

*Lưu ý: hệ số Jaccard rất nhạy cảm với trật tự từ

Page 31: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

31

Biểu diễn mỗi văn bản như một sketch

Số lượng shingle trên tài liệu là rất lớn. Để tăng tốc độ tính toán chúng ta sẽ sử dụng sketch –

một tập con được lựa chọn khéo léo từ các shingles của văn bản.

Kích thước của một sketch là cố định, v.d., n = 200 . . . . . . và được định nghĩa bởi một tập hợp các thao tác trộn

π1 . . . π200. Sketch của d được định nghĩa là:

< mins ∈d π1(s),mins ∈d π2(s), . . . ,mins∈d π200(s) >

(một vec-tơ 200 số).

Page 32: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

32

Phép trộn và giá trị cực tiểu: Ví dụ

tài liệu 1: {sk} tài liệu 2: {sk}

Chúng ta sử dụng mins∈d1 π(s) = mins∈d2 π(s) như một phép thử: liệu d1 và d2 có phải trùng lặp gần? Trong trường hợp này: hoán vị π khẳng định: d1 ≈ d2

Page 33: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

33

Tính hệ số Jaccard cho sketches

Sketches: Bây giờ mỗi tài liệu là một vec-tơ với n = 200 số.

Sẽ dễ xử lý hơn so với không gian đa chiều của shingles

Nhưng chúng ta tính hệ số Jaccard bằng cách nào?

Page 34: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

34

Tính hệ số Jaccard cho sketches (2)

Chúng ta tính hệ số Jaccard bằng cách nào?

Đặt U là hợp của tập các shingles của d1 và d2, còn I là giao Có |U|! phép trộn trên U Với s′ ∈ I , có bao nhiêu phép trộn π để

argmins∈d1 π(s) = s′ = argmins∈d2 π(s)? Trả lời: (|U| − 1)! Có (|U| − 1)! phép trộn cho mỗi s trong I ⇒ |I |(|U| − 1)! phép trộn thỏa mãn

argmins∈d1 π(s) = argmins∈d2 π(s) Như vậy, tỉ lệ phép trộn thỏa mãn

mins∈d1 π(s) = mins∈d2 π(s) là:

Page 35: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

35

Ước lượng hệ số Jaccard

Tỉ lệ phép trộn thành công bằng hệ số Jaccard. Phép trộn π là thành công nếu mins ∈d1 π(s) = mins ∈d2 π(s)

Quá trình lấy ngẫu nhiên một tổ hợp và kết luận 1 (thành công) hoặc 0 (không thành công) là phép thử Bernoulli.

Ước lượng xác suất thành công: tỉ lệ thành công trong n phép thử Bernoulli. (n = 200)

sketch của chúng ta dựa trên sự lựa chọn ngẫu nhiên các hoán vị.

Như vậy, để tính hệ số Jaccard, đếm số lượng k hoán vị thành

công cho < d1, d2 > và chia cho n = 200.

k/n = k/200 được coi như J(d1, d2).

Page 36: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

36

Cài đặt

Chúng ta sử dụng hàm băm như một phép trộn:hi : {1..2m} → {1..2m}

Xét tất cả shingles sk trong hợp của hai tập theo thứ tự bất kỳ

Với mỗi hàm băm hi và văn bản d1, d2, . . .: giữ chỗ cho giá trị cực tiểu đã được tìm thấy

Nếu hi (sk) nhỏ hơn cực tiểu đã được tìm thấy: cập nhật giá trị tương ứng

Page 37: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

37

Ví dụ

sketches cuối cùng

Page 38: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

38

Bài tập

Page 39: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

39

Lời giải (1)

sketches cuối cùng

h(x) = 5x + 5 mod 4g(x) = (3x + 1) mod 4

Page 40: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

40

Lời giải (2)

Page 41: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

41

Tổng hợp về Shingling

Đầu vào: N tài liệu Lựa chọn kích thước n-gram cho shingling, ví dụ, n =

5 Sử dụng 200 phép trộn ngẫu nhiên (hàm băm) Tính N sketches: ma trân 200 × N theo dạng như

trong slide trước, mỗi phép trộn một dòng, mỗi văn bản một cột

Tính độ phù hợp theo cặp Kết luận trùng lăp gần với độ tương đồng > θ Chỉ đánh chỉ mục một tài liệu từ mỗi lớp tương đương

Page 42: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

42

Phương pháp hiệu quả phát hiện trùng lặp gần

Phương pháp ước lượng hệ số Jaccard cho từng cặp tài liệu đơn lẻ đã xét là rất hiệu quả.

Nhưng chúng ta vẫn cần phải ước lượng O(N2) hệ số với N là số trang web.

Giải pháp 1: hàm băm cục bộ (LSH)Andoni, Alexandr, Mayur Datar, Nicole Immorlica, Piotr Indyk, and

Vahab Mirrokni. 2006. Locality-sensitive hashing using stable distributions. In Nearest Neighbor Methods in Learning and Vision: Theory and Practice. MIT Press. 314, 519, 522, 524,527

Giải pháp khác: sắp xếp (Henzinger 2006)Henzinger, Monika R., Allan Heydon, Michael Mitzenmacher, and

Marc Najork. 2000. On near-uniform URL sampling. In Proc. WWW, pp. 295–308. North-Holland. DOI: dx.doi.org/10.1016/S1389-1286(00)00055-4. 442, 524, 527, 528

Page 43: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

43

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

Page 44: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

44

Thu gom dữ liệu khó tới đâu?

Máy tìm kiếm trên web phải tự động thu gom tài liệu.

Thu thập nội dung tài liệu là dễ dàng hơn trong nhiều hệ tìm kiếm khác. ví dụ, đánh chỉ mục tất cả tệp trên ổ đĩa cứng: chỉ

thực hiện duyệt đệ quy trên hệ thống tệp Nhưng đối với tìm kiếm trên web, cần nhiều

thời gian hơn để thu thập tài liệu Nhưng đó có thực sự là khó khăn chính đối với

thiết kế/xây dựng hệ thống?

Page 45: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

45

Thao tác thu thập thông tin cơ bản

Khởi tạo hàng đợi với URLs của những trang mầm

Lặp Lấy URL từ hàng đợi Nạp và đọc trang web Tách URLs từ trang web Thêm URLs vào hàng đợi

Giả thuyết cơ bản: Web như đồ thị liên kết chặt chẽ.

Page 46: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

46

Thảo luận: Điểm hạn chế của bộ thu thập này là gì?

urlqueue := (some carefully selected set of seed urls) while urlqueue is not empty: myurl := urlqueue.getlastanddelete() mypage := myurl.fetch() fetchedurls.add(myurl) newurls := mypage.extracturls() for myurl in newurls: if myurl not in fetchedurls and not in urlqueue: urlqueue.add(myurl) addtoinvertedindex(mypage)

Page 47: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

47

Hạn chế của bộ thu thập đơn giản

Quy mô: chúng ta cần phân tán quá trình thu thập Chúng ta không thể đánh chỉ mục mọi thứ: cần lựa chọn một tập

con. Bằng cách nào?

Trùng lặp: cần tích hợp khả năng phát hiện trùng lặp Spam và bẫy thu thập: cần tích hợp chức năng phát hiện spam Sự lịch thiệp: chúng ta cần đặt thời gian nghỉ giữa những yêu cầu

gửi tới một trang, dù quá trình thu thập có thể kéo dài (nhiều giờ, nhiều ngày)

Tính cập nhật: chúng ta cần thu thập lại theo chu kỳ. Kích thước web rất lớn, chúng ta chỉ có thể thu gom lại thường xuyên

một tập nhỏ. Một lần nữa, vấn đề lựa chọn tập con hoặc ưu tiên

Page 48: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

48

Quy mô của bài tóan thu thập

Nạp 20,000,000,000 trang mỗi tháng . . . . . . chúng ta cần nạp khoảng 8000 trang mỗi

giây! Thực tế: có thể cần nhiều hơn vì nhiều trang

chúng ta thu được sẽ trùng lặp, không tải được, spam v.v.

Page 49: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

49

Bộ thu thập (Crawler) phải làm gì?

Bền vững Xử lý bẫy thu gom, trùng lặp, trang rất lớn, các trang sinh tự động v.v.

Lịch thiệp Không truy cập một trang quá thường xuyên Chỉ thu thập những nội dung được cho phép: robots.txt

Page 50: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

50

Robots.txt

Giao thức hạn chế quyền truy cập của bộ thu gom (“robots”) trong một địa chỉ web, được thiết lập từ 1994

Ví dụ: User-agent: * Disallow: /yoursite/temp/ User-agent: searchengine Disallow: /

Page 51: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

51

Ví dụ robots.txt (nih.gov)User-agent: PicoSearch/1.0Disallow: /news/information/knight/Disallow: /nidcd/...Disallow: /news/research_matters/secure/Disallow: /od/ocpl/wag/User-agent: *Disallow: /news/information/knight/Disallow: /nidcd/...Disallow: /news/research_matters/secure/Disallow: /od/ocpl/wag/Disallow: /ddir/Disallow: /sdminutes/

Page 52: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

52

Khuyến cáo đối với bộ thu thập dữ liệu web

Thiết kế hệ thống phân tán Có thể mở rộng: cần hỗ trợ khả năng tăng tốc

độ thu thập bằng cách thêm nhiều máy Nạp những trang chất lượng cao trước Thao tác liên tục: thu thập phiên bản mới của

những trang đã được thu thập

Page 53: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

53

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

Page 54: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

54

Đường biên URL

Page 55: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

55

Đường biên URL

Đường biên URL là cấu trúc dữ liệu lưu trữ và quản lý URLs mà chúng ta đã thấy, nhưng chưa được thu thập.

Có thể bao gồm nhiều trang từ một máy chủ Chánh nạp tất cả cùng lúc

Cần sử dụng triệt để các phân luồng thu thập

Page 56: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

56

Kiến trúc thu thập cơ bản

Page 57: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

57

Chuẩn hóa URL

Có những URLs được trích rút từ một tài liệu là những URLs tương đối.

Ví dụ, trong http://mit.edu, địa chỉ aboutsite.html tương đương với: http://mit.edu/aboutsite.html

Trong quá trình đọc tài liệu, chúng ta phải chuẩn hóa (mở rộng) tất cả các địa chỉ URLs tương đối.

Page 58: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

58

Nội dung đã xem

Với mỗi trang được nạp: kiểm tra liệu nội dung đã có trong chỉ mục

Kiểm tra dựa trên tổng kiểm soát hoặc shingles

Bỏ qua những tài liệu có nội dung đã được đánh chỉ mục

Page 59: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

59

Thu gom phân tán

Chạy nhiều phân luồng thu thập, có thể thực hiện ở những nút khác nhau Có thể phân tán theo vị trí địa lý

Phân chia các máy chủ đang bị thu thập tới các nút khác nhau

Page 60: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

60

Những trung tâm dữ liệu của Google (wazfaring. com)

Page 61: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

61

Thu gom dữ liệu phân tán

Page 62: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

62

Đường biên URL: Hai điểm cần lưu ý

Sự lịch thiệp: Không truy cập một máy chủ web quá thường xuyên Ví dụ, chèn một khoảng thời gian giữa hai yêu cầu

thành công được gửi đến cùng một máy chủ Tính cập nhật: Thu gom một vài trang (ví dụ,

trang tin tức) thường xuyên hơn những trang khác

Đây là vấn đề không dễ dàng: hàng đợi ưu tiên đơn giản sẽ không giải quyết được vấn đề này.

Page 63: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

63

Đường biên URL của Mercator

Page 64: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

64

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

Page 65: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

65

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

Hàng đợi phía trước quản lý độ ưu tiên.

Page 66: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

66

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

Hàng đợi phía trước quản lý độ ưu tiên.

Hàng đợi phía sau đảm bảo sự lịch thiệp.

Page 67: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

67

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

Hàng đợi phía trước quản lý độ ưu tiên.

Hàng đợi phía sau đảm bảo sự lịch thiệp.

Các hàng đợi là FIFO.

Page 68: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

68

Đường biên URL của Mercator: Hàng đợi phía trước

Page 69: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

69

Đường biên URL của Mercator: Hàng đợi phía trước

Bộ ưu tiên gán cho mỗi URL một độ ưu tiên – số nguyên trong khoảng từ 1 đến F.

Page 70: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

70

Đường biên URL của Mercator: Hàng đợi phía trước

Bộ ưu tiên gán cho mỗi URL một độ ưu tiên nguyên trong khoảng từ 1 đến F.

Sau đó thêm URL vào hàng đợi tương ứng

Page 71: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

71

Đường biên URL của Mercator: Hàng đợi phía trước

Bộ ưu tiên gán cho mỗi URL một độ ưu tiên nguyên trong khoảng từ 1 đến F.

Sau đó thêm URL vào hàng đợi tương ứng

Giải thuật tham lam để gán độ ưu tiên: tốc độ cập nhật, PageRank v.v.

Page 72: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

72

Đường biên URL của Mercator: Hàng đợi phía trước

Chọn từ hàng đợi phía trước được yêu cầu bởi hàng đợi sau

Lấy một hàng đợi phía trước và từ đó chọn URL kế tiếp: Theo vòng, ngẫu nhiên, hoặc phương pháp tối ưu hơn

Nhưng có sự ưu tiên đối với hàng đợi có mức ưu tiên cao

Page 73: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

73

Đường biên URL của Mercator: Hàng đợi phía sau

Page 74: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

74

Đường biên URL của Mercator: Hàng đợi phía sau

Nguyên tắc 1. Mỗi hàng đợi phía sau được đảm bảo khác rỗng cho tới khi kết thúc thu thập.

Nguyên tắc 2. Mỗi hàng đợi phía sau chỉ chứa những URL từ một máy chủ.

Duy trì một bảng tham chiếu các máy chủ tới các hàng đợi phía sau.

Page 75: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

75

Đường biên URL của Mercator: Hàng đợi phía sau

Hệ thống còn lưu trong bộ nhớ heap một thời gian đợi cho mỗi hàng đợi phía sau

Thời gian đợi là thời gian te sớm nhất có thể gửi yêu cầu tới máy chủ tương ứng của hàng đợi phía sau.

Thời gian te sớm nhất được xác định thông qua đặc điểm thời gian của URL được xử lý cuối cùng

Page 76: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

76

Đường biên URL của Mercator: Hàng đợi phía sau

Bộ thu thập giao tiếp với hàng đợi phía sau như thế nào? Lặp (i) lấy URL từ q hiện tại

ra khỏi bộ nhớ (q là một hàng đợi phía sau)

và (ii) nạp URL u vào đầu hàng đợi q

Page 77: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

77

Đường biên URL của Mercator: Hàng đợi phía sau Nếu u là URL cuối cùng, và q

trở thành rỗng Lặp (i) lấy những URL u

từ hàng đợi phía trước và (ii) thêm u vào hàng đợi phía sau tương ứng của nó

Nếu u không có hàng đợi phía sau tương ứng, thì (i) tạo một hàng đợi mới (ii) đưa u vào đó và (iii) thiết lập thời gian đợi cho hàng đợi mới tạo.

Page 78: 8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

78

Bẫy thu thập

Bẫy thu thập là các máy chủ cố tình sinh một thứ tự vô hạn các trang liên kết

Đối với những bẫy thu thập tinh vi rất khó có thể phân biệt những nội dung như thế với các trang web động.