Ví dụ về truy vấn theo mô hình Boolean: Với term thứ nhất, ta có danh sách thứ nhất các document thỏa mãn yêu cầu. Với term thứ 2, ta cũng có một danh sách khác thỏa mãn yêu cầu. Một câu truy vấn chỉ có chứa term 1, sẽ cho ra kết quả là dòng thứ nhất. Truy vấn chỉ có chứa term 2, ta sẽ có dòng thứ 2. Nếu truy vấn là cả 3 term, tìm kiếm theo kiểu AND, ta sẽ có kết quả là dòng thứ 4, chỉ chứa có 3 term. Tương tự với những truy vấn khác
Yêu cầu công việc ở bước này là: Cần phải làm thật nhanh công việc tìm kiếm những văn bản phù hợp với câu truy vấn.
Như vậy, người ta sẽ đối mặt với các vấn đề là:
c. Độ dài Invert là quá lớn :
Nếu có quá nhiều văn bản có chứa một hoặc một số term nào đó mà những term này không phải là stopword để có thể bỏ đi được, lúc đó độ dài danh sách Invert với term đó sẽ rất lớn. Ta cần phải duyệt qua tất cả danh sách Invert này để tìm xem văn bản nào là phù hợp với yêu cầu. Do vậy, việc làm này sẽ mất rất nhiều thời gian. Người ta có thể giảm thời gian bằng cách chia các Invert ra nhiều phần để xử lý song song. Tất nhiên, việc ghép lại các kết quả cũng đòi hỏi những kỹ thuật lập trình nhất định. Khi chia ra thành các phần nhỏ hơn, người ta sẽ đưa chúng vào nhiều máy chủ khác nhau để xử lý. Bởi vì, Invert thường được lưu lên đĩa cứng và được đọc một ít lên Ram. Tốc độ của Chip có thể được cải thiện đáng kể bằng cách thêm Chip, nhưng tốc độ đọc ổ cứng lại bị hạn chế vì ổ cứng thuộc về cơ, điện. Khi đó, trong toàn hệ thống, bộ phận chậm nhất sẽ là ở ổ cứng. Dù tốc độ xử lý của Chip có lớn đến đâu mà tốc độ
ổ cứng chậm thì thời gian tìm kiếm vẫn sẽ lớn. Nếu chia Invert ra nhiều máy, người ta có thể sử dụng năng lực đọc, ghi của nhiều máy chủ đồng thời với mục tiêu là để thời gian tìm kiếm cho hệ thống giảm xuống. Có nhiều cách và nhiều nền tảng cho việc xử lý song song, công nghệ như phân tán là một công nghệ có thể được sử dụng trong trường hợp này..
d. Công thức chọn văn bản phù hợp tốn nhiều thời gian:
Ta cần phải duyệt qua toàn bộ các Invert để tìm ra văn bản phù hợp với truy vấn của người sử dụng. Với mỗi phần tử Invert có chứa số ID văn bản được duyệt qua, ta cần phải kiểm tra xem văn bản đó có phù hợp với truy vấn không? Tùy theo mô hình Search sử dụng mà ta sẽ phải có những công thức khác nhau để kiểm tra xem văn bản đó có phù hợp hay không. Nếu công thức tính điểm cho từng văn bản quá phức tạp, thời gian xử lý của mỗi văn bản cũng sẽ tăng lên và sẽ làm chậm hệ thống. Có một số mô hình, người ta không thể đưa toàn bộ giá trị của văn bản về một con số mà phải đưa cả 2 văn bản vào để tính độ tương quan giữa các văn bản với nhau trên cùng một truy vấn thì thời gian cho mỗi so sánh truy vấn lại càng tăng lên. Bởi vì, lúc đó để giảm độ dài Invert, người ta đã phân tán chúng ra nhiều Server khác nhau, cho nên việc gọi các văn bản và so sánh chúng cũng đòi hỏi tài nguyên và thời gian.
1.9. XẾP HẠNG KẾT QUẢ TÌM KIẾM
Kết quả thu được thường là rất nhiều do truy vấn của người dùng thường ngắn và ít term mà số trang Web có liên quan đến những term đó thì quá lớn. Việc đưa kết quả nào cho người dùng xem trước là công việc rất khó khăn và chính điều này là một trong các bí mật công nghệ của các công ty. Có rất nhiều kỹ thuật để xếp hạng các kết quả nhưng ý tưởng chính của chúng xoay quanh một số tiêu chí như: số lần xuất hiện của term trong trang Web, vị trí xuất hiện, hạng của trang Web nói chung (căn cứ vào cấu trúc liên kết Web). Các kỹ thuật của IR được sử dụng ở đây khá nhiều (tất nhiên là có sự sửa đổi cho thích hợp). Đó là việc đánh giá mức độ liên quan giữa tài liệu và câu truy vấn (các mô hình đánh giá trong IR như mô hình không gian vector, mô hình xác suất, mô hình ngữ nghĩa, …)
Khi áp dụng IR, cần phải chú ý một số vấn đề như sau: Kích thước của Web là rất lớn và luôn thay đổi
Nhiều khi nội dung các trang Web không đủ để mô tả đặc trưng của nó (ví dụ như trường hợp trang chủ của Search Engine không có từ “Search engine”. Hơn nữa, các nhà quản trị và thiết kế Web có xu hướng thêm các thông tin thừa vào Web để làm cho nó thỏa mãn tiêu chí tìm kiếm nào đó nhằm đạt được thứ hạng cao trong kết quả tìm kiếm. Vì thế chỉ dựa vào nội dung của trang Web để tìm kiếm sẽ chịu các ảnh hưởng trên.
Cấu trúc liên kết (link structured) của các trang Web chứa đựng nhiều thông tin quan trọng có thể giúp ích rất nhiều cho việc xếp hạng các kết quả. Có thể coi trang Web A “tham khảo” trang Web B nếu A có liên kết đến B. Một vài giải thuật đã được xây dựng dựa trên phát hiện này (Link analysis algorithms)
1.9.1. PageRank
PageRank[23] đã được trình bày ở phần crawler, nhưng đó là đánh giá hạng của các trang Web nói chung. Những vấn đề đã nêu hỗ trợ cho các chiến lược lựa chọn trang Web của crawler để khám phá. PageRank được đưa ra bởi hai tác giả của Google
để đánh giá mức độ quan trọng của trang Web. Một cách trực giác thì trang Web
Yahoo có vẻ như quan trọng hơn trang Web của trang Web của nhóm cơ sở dữ liệu trường đại học Standford (db.standford.edu).
1.9.1.1. PageRank đơn giản
Ký hiệu tập các trang Web là dãy số 1, 2, …, m. Gọi N(i) là tập các liên kết đi ra từ trang Web i và B(i) là tập các trang Web có liên kết đến trang Web i. Hạng của trang Web i được ký hiệu là r(i), được định nghĩa như sau:
) ( ) ( / ) ( ) ( i B j j N j r i r (6)
Phép chia cho N(j) thể hiện rằng sự nổi tiếng, quan trọng của một trang Web được chia đều cho các trang Web mà nó có liên kết tới.
Biểu diễn bằng ngôn ngữ đại số tuyến tính, ta có:
r = ATr (7)
với r là vector m x 1(r = [r(1), r(2), …, r(m)]), còn A là ma trận với các thành phần aij = 1/N(i) nếu trang Web i liên kết đến trang Web j, ngược lại aij = 0. Khi đó, vector hạng của các trang Web là một eigenvector của ma trận AT.
1.9.1.2. Random sufer model (RSM)
Định nghĩa của PageRank đơn giản kéo đưa đến một mô hình dựa trên các bước đi ngẫu nhiên (random walks) mà người ta gọi là Random Surfer Model (RSM). Tưởng tượng người dùng lướt Web bằng cách chọn ngẫu nhiên các liên kết trên các trang Web mà họ viếng thăm. Cách lướt ngẫu nhiên này tương đương với việc di chuyển ngẫu nhiên trên một đồ thị có hướng. Đây là bài toán tổ hợp chính tắc. Nó thể hiện rằng vector PageRank là phân bố xác suất của di chuyển ngẫu nhiên. PageRank của một trang Web là xác suất để người duyệt Web ngẫu nhiên viếng thăm nó.
Như trên đã nói, việc tính toán PageRank tương đương với tính các thành phần của eigenvector của ma trận AT. Một trong những phương pháp tính toán được đưa ra là phương pháp tương tác (power interaction). Trong phương pháp này, bất cứ vetor khởi đầu nào đều được nhân với ma trận đã cho một cách liên tục cho tới khi nó hội tụ. Phương pháp được diễn tả như sau:
1. s một vector bất kỳ 2. r AT x s
3. if ║ r – s║ < ε end. R là vector PageRank 4. s r, goto 2
Hình 17. PageRank đơn giản và PageRank có sửa đổi (d=0.8)
Hình 22(a) minh họa cho PageRank đơn giản. Rất dễ nhận ra nó thỏa mãn các định nghĩa PageRank. Chẳng hạn như, nút 2 có hạng là 0.286 và 2 liên kết ngoài. Một nửa hạng của nó (0.143) được truyền cho nút 1 và một nửa cho nút 3. Vì nút 3 không có liên kết từ nút nào khác nữa nên hạng của nó là 0.143. Nút 1 nhận được 0.143 từ nút 2, cộng thêm 0.123/2 từ nút 3 và 0.143/2 từ nút 5 nên hạng của nó là 0.286. Nút 1 có hạng cao nhất vì nó có nhiều liên kết đến nhất. Nút 2 có cùng hạng với nút 1 vì bất cứ ai viếng thăm 1 sẽ viếng thăm 2. Chú ý rằng tổng hạng của các trang Web = 1.0.
1.9.1.4. Practical PageRank
PageRank đơn giản là xác định khi đồ thị liên kết là kết nối vững chắc. Tuy nhiên Web không đạt được điều đó. Có hai vấn đề liên quan nảy sinh là: rank sinks và
rank leaks.
Bất cứ chùm trang Web nào trong đồ thị Web mà không có liên kết nào trỏ ra ngoài tạo nên rank sink. Một trang Web riêng lẻ mà không có liên kết ra ngoài gọi là rank leak. Tuy nhiên, về mặt kỹ thuật mà nói, rank leak là trường hợp đặc biệt của rank sink. Rank leak mang đến một vấn đề khác. Trong rank sink, nút không nằm
trong nó có hạng bằng 0, có nghĩa là không thể nhận ra mức độ quan trọng của những nút đó (radom surfer sẽ không viếng thăm được).
Để giải quyết vấn đề này, người ta đưa ra PageRank cải tiến. Loại bỏ hết các nút leak với mức độ = 0 và gọi d là nhân tố phân rã (decay factor, damp factor) với 0 < d <1. Lúc này chỉ có d phần của hạng của trang Web được phân bố cho các trang Web mà nó chỉ tới. Phần còn lại được chia đều cho tất cả các trang Web. Từ đó, PageRank cải tiến được tính toán bởi công thức:
m d j N j r d i r i B j / ) 1 ( ) ( / ) ( * ) ( ) ( (8)
với m là tổng số nút trong đồ thị liên kết. Cũng có thể thấy PageRank đơn giản chỉ là trường hợp riêng của PageRank cải tiến (tổng quát) với d = 1.
Trong mô hình RSM, sự cải tiến dựa trên việc người duyệt Web cảm thấy chán một cách thường xuyên và nhảy sang một trang Web ngẫu nhiên khác thay vì tiếp tục theo các liên kết trên các trang đã viếng thăm. Nhân tố d ở trên cho biết người duyệt Web ngẫu nhiên hay chán như thế nào (càng nhỏ thì càng mau chán).
Hình 22 (b) minh họa cho PageRank cải tiến với d = 0.8. So với đồ thị (a) thì liên kết 5 1 bị bỏ đi. Nút 4 và 5 bây giờ có hạng cao hơn các nút khác, chứng tỏ radom surfer có xu hướng viếng thăm 4 và 5. Tuy nhiên, các nút khác bây giờ đều có hạng khác 0.
1.9.1.5. Sự hội tụ của PageRank
Với mục đích áp dụng phương pháp power interaction một cách thực tế, người ta không cần thiết phải tính toán đến khi PageRank hội tụ mà chỉ cần qua một số bước tính toán là được. Về lý thuyết mà nói thì sự hội tụ của phương pháp tùy thuộc vào
eigenvalue gap, được định nghĩa là sự khác biệt về mô-đu-lô (modulus) của hai thành phần lớn nhất trong ma trận đã cho. Khi một số điều kiện thỏa mãn thì trong vòng 100 vòng tính toán, PageRank sẽ hội tụ với kết quả chấp nhận được Thực tế là khi PageRank thay đổi ít sau 1 lần tính toán thì có thể dừng.
1.9.1.6. Sử dụng PageRank vào xếp hạng
Search Engine sử dụng cả các kỹ thuật IR và PageRank để trả lời các truy vấn. Sau khi đã tìm ra danh sách các trang Web thỏa mãn một truy vấn, Search Engine tính toán cả điểm IR (IR score), tùy thuộc mô hình sử dụng (ví dụ mô hình VSM) và PageRank của các trang đó. Sự kết hợp của IR score và PageRank sẽ cho kết quả cuối cùng.
1.9.2. HITS
Phần này trình bày một giải thuật quan trọng khác gọi là HITS[18, 19] (Hypertext Induced Topic Search). Giải thuật này được đề xuất bởi Kleinberg. Tương
phản với PageRank, đánh giá xếp hạng toàn cục (global rank) cho mỗi trang Web, HITS là một kỹ thuật đánh giá dựa trên truy vấn. Thay vì dùng một điểm xếp hạng, HITS sử dụng hai điểm xếp hạng là authority và hub. Khái niệm authority và hub gắn liền với một truy vấn cụ thể.
Authority pages: Là các trang Web rất gần với một truy vấn cụ thể nào đó. Ví dụ trang chủ của trường đại học Standford thích hợp cho truy vấn “Standford University” và là một trang authority đối với truy vấn này.
Hub pages: Là những trang Web không cần thiết phải có nội dung gần với truy vấn nhưng có nhiều liên kết tới các trang authority. Ví dụ „Searchenginewatch.com” là trang Web hub cho truy vấn “Search engine” vì nó liên kết đến nhiều trang Web như các trang chủ của các Search Engine chẳng hạn. Có hai lý do để quan tâm đến trang hub: thứ nhất, các trang hub có thể dùng làm kết quả trả về cho người dùng, thứ hai là các trang hub được dùng để tính toán trên các trang authority.
Trang hub trỏ đến nhiều trang authority và trang authoriy được liên kết đến bởi nhiều trang hub. Đó chính là mối liên quan giữa hai loại trang Web này.
Giải thuật HITS
Ý tưởng chính của giải thuật là xác định tập con trọng tâm của đồ thị Web và tiến hành phân tích liên kết trên tập con này nhằm tìm ra các trang authority và các trang hub ứng với một truy vấn cụ thể. Đồ thị con được chọn tùy thuộc vào truy vấn của người dùng. Tập con đó (thường là vài ngàn trang), không phản ánh hết được toàn bộ các trang Web liên quan nhưng nó giảm được đáng kể lượng công việc phải làm trong pha tiếp theo.
Xác định đồ thị con trọng tâm (forcused subgraph)
Đồ thị này được sinh ra bằng cách định hình một tập gốc R (root set). R là một tập ngẫu nhiên các trang Web có chứa xâu truy vấn. Tập này được mở rộng bằng cách thêm vào các trang hàng xóm của R (neighborhood). Giải thuật tính toán tập này như sau:
1. R tập t trang Web có chứa xâu truy vấn 2. S R
3. Với mỗi trang p thuộc R
(a) Thêm các trang được liên kết đến bởi p vào S
(b) Thêm các trang Web có liên kết đến p vào S (tối đa là d trang) 4. Đồ thị tạo bởi S chính là đồ thị con trọng tâm
Giải thuật nhận t và d là hai đầu vào. Đầu vào t giới hạn kích thước của tập gốc, trong khi d giới hạn số các trang Web được thêm vào đồ thị con (điều khiển sau đó sẽ giới hạn được sự ảnh hưởng của những trang Web quá phổ biến như Yahoo nếu như
nó xuất hiện trong tập gốc). Tập mở rộng S có thể bao gồm các trang authority vì dường như các trang authority được liên kết đến bởi ít nhất một vài trang trong tập gốc. Tương tự như thế, có thể có nhiều trang hub được thêm dần vào S.
Phân tích liên kết (Link Analysis)
Pha phân tích liên kết của giải thuật HITS sử dụng thuộc tính ủng hộ lẫn nhau (mutually reinforcing) để xác định các trang hub và authority từ tập mở rộng S. Giả sử
S = 1, 2, …, n. B(i) là tập các trang Web có liên kết tới i. F(i) biểu diễn tập các trang Web mà i liên kết tới. Giải thuật phân tích liên kết sẽ đánh giá điểm authority ai và điểm hub hi cho mỗi trang trong tập S. Ban đầu, các điểm số này được gán giá trị bất kỳ. Giải thuật này là giải thuật lặp, thực hiện 2 thao tác trong mỗi bước (I và O). Trong thao tác I, điểm authority của mỗi trang được cập nhật bằng tổng các điểm hub của tất cả các trang trỏ tới nó. Trong thao tác O, điểm hub của mỗi trang được cập nhật bằng tổng điểm authority của các trang mà nó liên kết tới:
I step: ) (i B j j i h a (9) O step : ) (i F j j i a h (10)
Vòng lặp được thực hiện cho tới khi các điểm số hội tụ: 1. Khởi tạo ai và hi (1 ≤ i ≤ n) bởi các giá trị bất kỳ 2. Lặp cho tới khi hội tụ
(a) Thực hiện thao tác I (b) Thực hiện thao tác O
(c) Chuẩn hóa iai2 1 và ihi2 1
3. Kết thúc.