Đề tài Máy tìm kiếm liên hợp (meta search engine)

Một máy tìm kiếm (search engine) [1] thường có 3 thành phần chính: thứnhất là web crawling, thành phần chuyên thu thập các trang web có trên Internet; thứhai là indexing, thành phần rút trích các đặc trưng của các các trang web (ví dụtiêu đề, từkhóa tiêu biểu) và lưu trữvào cơsởdữliệu đểphục vụcho nhu cầu tìm kiếm sau này; và thứba là searching, thành phần tìm các trang web phù hợp/liên quan/thỏa mãn (relevant) nhu cầu của người dùng (thông qua việc gõ vào các từkhóa trong ô tìm kiếm). Có thểthấy, thành phần đầu tiên là một trong các thành phần quan trọng nhất của một máy tìm kiếm. Bởi vì, nếu một trang không được thu thập thì nó sẽkhông bao giờ được liệt kê trong kết quảtìm kiếm. Ngoài ra, ngay cảkhi một trang được thu thập, nó cần phải được thu thập nhanh nhất, ngay khi mới được cập nhật. Lấy một ví dụ, giảsửbạn muốn tìm các tin tức cập nhật và các bài bình luận Euro mới nhất thông qua máy tìm kiếm XYZ, thì web crawler của máy tìm kiếm XYZ phải có khảnăng cập nhật ngay các thông tin vừa xuất hiện trên Internet. Một vấn đềkhác đó là phương pháp lưu trữbởi vì lưu trữthông tin của cảtrăm tỉ trang web (Google mới thông báo họ đã đạt đến xửlí 1,000 tỉtrang web vào tháng 07.2008) sao cho an toàn, và đáp ứng nhanh nhất cho nhu cầu tìm kiếm là việc không đơn giản. Một trong những lí do mà Google thống trịthịtrường tìm kiếm hiện nay là khảnăng thu thập trang web cực nhanh, đồng thời có hệthống lưu trữphân tán cực lớn (450,000 servers theo số liệu ko chính thức năm 2000). Chính vì lí do này mà trên thếgiới, sốlượng các máy tìm kiếm có thểcạnh trạnh với Google chỉcó thể đếm trên đầu ngón tay gồm Yahoo, Microsoft, Ask. Khi không thểcạnh tranh kiểu này, meta search engine (tạm dịch l

pdf6 trang | Chia sẻ: oanhnt | Lượt xem: 1620 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Đề tài Máy tìm kiếm liên hợp (meta search engine), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
MÁY TÌM KIẾM LIÊN HỢP (META SEARCH ENGINE) Lê Đình Duy Khoa CNTT, ĐH KHTN Tp. HCM ledduy@ieee.org Một máy tìm kiếm (search engine) [1] thường có 3 thành phần chính: thứ nhất là web crawling, thành phần chuyên thu thập các trang web có trên Internet; thứ hai là indexing, thành phần rút trích các đặc trưng của các các trang web (ví dụ tiêu đề, từ khóa tiêu biểu) và lưu trữ vào cơ sở dữ liệu để phục vụ cho nhu cầu tìm kiếm sau này; và thứ ba là searching, thành phần tìm các trang web phù hợp/liên quan/thỏa mãn (relevant) nhu cầu của người dùng (thông qua việc gõ vào các từ khóa trong ô tìm kiếm). Có thể thấy, thành phần đầu tiên là một trong các thành phần quan trọng nhất của một máy tìm kiếm. Bởi vì, nếu một trang không được thu thập thì nó sẽ không bao giờ được liệt kê trong kết quả tìm kiếm. Ngoài ra, ngay cả khi một trang được thu thập, nó cần phải được thu thập nhanh nhất, ngay khi mới được cập nhật. Lấy một ví dụ, giả sử bạn muốn tìm các tin tức cập nhật và các bài bình luận Euro mới nhất thông qua máy tìm kiếm XYZ, thì web crawler của máy tìm kiếm XYZ phải có khả năng cập nhật ngay các thông tin vừa xuất hiện trên Internet. Một vấn đề khác đó là phương pháp lưu trữ bởi vì lưu trữ thông tin của cả trăm tỉ trang web (Google mới thông báo họ đã đạt đến xử lí 1,000 tỉ trang web vào tháng 07.2008) sao cho an toàn, và đáp ứng nhanh nhất cho nhu cầu tìm kiếm là việc không đơn giản. Một trong những lí do mà Google thống trị thị trường tìm kiếm hiện nay là khả năng thu thập trang web cực nhanh, đồng thời có hệ thống lưu trữ phân tán cực lớn (450,000 servers theo số liệu ko chính thức năm 2000). Chính vì lí do này mà trên thế giới, số lượng các máy tìm kiếm có thể cạnh trạnh với Google chỉ có thể đếm trên đầu ngón tay gồm Yahoo, Microsoft, Ask. Khi không thể cạnh tranh kiểu này, meta search engine (tạm dịch là máy tìm kiếm liên hợp [2][3]) là một giải pháp khác mà nhiều người muốn nhắm tới. 1. Giới thiệu về meta search engine 1.1. Thế nào là meta search engine Một meta search engine không tự xây dựng bất cứ thành phần nào trong ba thành phần kể trên của một máy tìm kiếm thông thường. Thay vào đó, với mỗi câu truy vấn (query) của người dùng, meta search engine sẽ chuyển nó đến các máy tìm kiếm khác (tạm gọi là máy tìm kiếm nguồn) như Google, Yahoo và sau đó xử lí kết quả trả về từ các máy tìm kiếm này trước khi trả ra kết quả cho người dùng. Hình 1: Minh họa một meta search engine. (Hình lấy từ [4]). 1.2. Điểm mạnh Meta search engine không phải tốn tài nguyên cho việc thu thập và lưu trữ các trang web (theo Yahoo, con số này có thể lên đến hàng trăm triệu đô la). Thay vào đó meta search engine chủ yếu tập trung vào phát triển các thuật toán xử lí kết quả từ các máy tìm kiếm khác. Các thuật toán xử lí thông thường gồm có gom cụm (clustering) để loại bỏ trùng lắp (duplicate elimination), và phân tích ngữ nghĩa (semantic analysis) để có thể cho kết quả gần với yêu cầu của người dùng nhất. Số lượng các trang web trên Internet rất lớn, một máy tìm kiếm không thể thu thập và xử lí toàn bộ. Do đó, việc sử dụng kết quả tìm kiếm từ nhiều nguồn dữ liệu của các máy tìm kiếm khác nhau, meta search engine giúp tăng cơ hội cho người dùng tìm được thông tin họ cần, đặc biệt là các thông tin chuyên biệt. 1.3. Điểm yếu - Thứ nhất, tốc độ của các meta search engine thường chậm vì phải chờ kết quả trả về từ các máy tìm kiếm khác. Nếu một meta search engine gửi câu truy vấn đến càng nhiều máy tìm kiếm, tốc độ càng chậm. - Thứ hai, khả năng tìm kiếm nâng cao như các máy tìm kiếm thông thường khác bị hạn chế. Các toán tử tìm kiếm AND, OR và tìm kiếm theo cụm từ (phrase) có thể không được hỗ trợ. Hơn nữa, việc diễn dịch câu truy vấn nguyên thủy của người dùng cho phù hợp với cú pháp qui định của các máy tìm kiếm khác nhau có thể làm mất đi tính chính xác ban đầu. - Thứ ba, kết quả trả về của meta search engine chưa chắc tốt hơn kết quả của một máy tìm kiếm (ví dụ Google). Có hai lí do: thứ nhất là các máy tìm kiếm lớn đều đã có thuật toán rất phức tạp và hiệu quả để tối ưu hóa kết quả tìm kiếm; thứ hai meta search engine chỉ được biết một phần dữ liệu của các máy tìm kiếm nó truy vấn tới thông qua kết quả trả về mà thôi. Thông tin ít hơn sẽ làm cho các máy tìm kiếm khó địch lại các máy tìm kiếm nguyên thủy. Nếu máy tìm kiếm X cho kết quả trả về quá tốt, hơn hẳn Y và Z, kết hợp 3 thứ này có thể sẽ ra một thứ tệ hơn kết quả của X. Đây cũng chính là lí do mà nhiều người không thích dùng meta search engine cho các nhu cầu tìm kiếm thông thường (general web search). Tuy nhiên, kết hợp các kết quả của các máy tìm kiếm khác ko quá tốt (ví dụ blog, diễn đàn và sách trực tuyến) thì có thể sẽ giúp cho kết quả tốt hơn. - Thứ tư, việc gửi câu truy vấn đến các máy tìm kiếm khác phải chịu hai sự hạn chế: thứ nhất là kết quả trả về cho mỗi lần truy vấn ít (ví dụ Google chỉ cho phép tối đa 32 kết quả), thứ hai là số lượng câu truy vấn gửi đi trong ngày bị giới hạn (ví dụ Google SOAP API trước đây chỉ cho phép tối đa 1,000 câu truy vấn/ngày). Những hạn chế này được đặt ra để đảm bảo rằng meta search engine không thể nào vượt qua được các máy tìm kiếm mà nó dựa vào. 2. Các bước chính xây dựng một meta search engine 2.1. Chọn các máy tìm kiếm nguồn Các máy tìm kiếm nguồn là các máy mà meta search engine sẽ gửi các câu truy vấn của người dùng đến đó và sau đó xử lí kết quả trả về từ các máy tìm kiếm này. Các máy tìm kiếm nguồn mạnh như Google, Yahoo và Microsoft thường là một trong những lựa chọn đầu tiên khi xây dựng một meta search engine. Tuy nhiên, như đã nói ở trên, với các máy tìm kiếm rất mạnh như vậy, nếu không có thuật toán xử lí kết quả hiệu quả sẽ rất khó thuyết phục người dùng sử dụng meta search engine thay cho các máy tìm kiếm nguồn trên. Một giải pháp khác là chọn các lĩnh vực chuyên biệt ví dụ như sức khỏe (ví dụ Mamma Health Search Engine - Ngoài ra, để đảm bảo meta search engine có thể cung cấp kết quả toàn diện (comprehensive) hơn việc chỉ dùng một máy tìm kiếm, nên chọn các máy tìm kiếm nguồn sao cho kết quả trả về từ chúng càng đa dạng (diverse) càng tốt. Các máy tìm kiếm thông dụng hiện nay như Google, Yahoo và Microsoft đều cung cấp các API (chuẩn lập trình giao tiếp ứng dụng) để người dùng có thể gửi câu truy vấn và nhận kết quả về dưới dạng các đối tượng (objects) đã được đóng gói sẵn giúp cho việc truy xuất các thành phần dữ liệu thuận tiện hơn. Các API thông dụng gồm có Google Ajax API của Google, Yahoo Search BOSS (Build Your Own Search Service) của Yahoo và Live Search SOAP API của Microsoft. Hình 2: Minh họa hoạt động của meta search engine dùng Yahoo BOSS. (Hình lấy từ Yahoo). 2.2. Xử lí kết quả trả về từ các máy tìm kiếm nguồn Khi người dùng tìm đến máy tìm kiếm, họ cần tìm thông tin phù hợp cho nhu cầu của mình một cách nhanh nhất. Việc chỉ dùng một máy tìm kiếm có thể cho kết quả không đầy đủ (vì phần còn lại có thể nằm ở máy tìm kiếm khác), hoặc kết quả phù hợp không nằm ở trên cùng (ví dụ, một vài trang đầu tiên). Phát triển các thuật toán sáng tạo và hiệu quả để xử lí các kết quả trả về từ các máy tìm kiếm nguồn là điểm nhấn tạo nên sự khác biệt của các meta search engine. Phạm vi của các thuật toán này có thể liệt kê ở đây: - Tiền xử lí: Các kết quả trả về từ các máy tìm kiếm nguồn có thể sẽ trộn lẫn giữa các link được trả tiền (để được xếp hạng cao) và các link không trả tiền, đồng thời có thể có rất nhiều kết quả trùng lắp. Loại bỏ trùng lắp và phân loại các link là các thao tác tiền xử lí cơ bản của các meta search engine. - Kết hợp và chỉnh thứ tự xếp hạng: Các meta search engine cần phải có các thuật toán hiệu quả để từ việc kết hợp các kết quả tìm kiếm từ nhiều nguồn khác nhau, có thể hiểu được đâu là kết quả phù hợp nhất với người dùng, từ đó trả về kết quả theo thứ tự xếp hạng mới. Một ví dụ, nếu bạn đặt mục tiêu là tìm kiếm quán ăn ở Tp. HCM, có thể khi người dùng gõ "bún bò" vào, Google sẽ ko hiểu được họ hỏi về cái gì, cách chế biến bún bò hay quán bún bò. Nếu bạn biết chắc người dùng vào meta search engine của bạn để tìm quán ăn hơn là cách chế biến, bạn có thể làm tốt hơn Google. - Hỗ trợ tinh chỉnh truy vấn: Để có thể tìm ra kết quả phù hợp nhanh nhất, người dùng phải biết chính xác các từ khóa liên quan đến nhu cầu tìm kiếm của mình được máy tìm kiếm hỗ trợ. Nếu chưa biết rõ từ khóa, thì việc đưa ra các hỗ trợ từ các từ khóa ban đầu sẽ rất hữu ích. Lấy ví dụ, khi bạn muốn tìm kiếm với từ khóa “tủ lạnh”, các máy tìm kiếm có thể hỗ trợ bạn bằng cách đưa ra thêm các tinh chỉnh ví dụ như: “đồ điện lạnh gia dụng” hoặc “sản xuất tại Nhật”. 2.3. Máy tìm kiếm tùy chỉnh Google (Google CSE - Custom Search Engine) Google vừa cung cấp một công cụ gọi là Google CSE trong đó cho phép người dùng tự tay xây dựng một máy tìm kiếm cho chính mình dựa trên công nghệ tìm kiếm của Google. Nói một cách đơn giản, với mỗi câu truy vấn, bạn sẽ nhận được kết quả trả về từ Google để xử lí. Với những gì mà Google CSE cung cấp, bạn có thể xây dựng cho mình một meta search engine chỉ trong vài phút. Bạn có thể giới hạn lại những site nào bạn quan tâm trong meta search engine của bạn (Google CSE cho phép bạn chỉ định tối đa 5,000 sites). Hạn chế trong việc dùng Google CSE đó là bạn chỉ có thể có được tối đa 32 kết quả trả về cho một câu truy vấn, đồng thời phải giữ nguyên kết quả trả về (kể cả quảng cáo) từ phía Google mà không được gộp chung với các kết quả của các máy tìm kiếm khác. Google đã quá thông minh khi đưa ra giải pháp này. Bản chất là Google đã lợi dụng công sức của bạn trong việc tinh chỉnh kết quả tìm kiếm cho phù hợp với người dùng, để từ đó thu hút người dùng và quảng cáo một cách gián tiếp cho Google. 2.4. Helios - Meta Search Engine mã nguồn mở Helios là meta search engine mã nguồn mở được các nhà khoa học Ý và Mỹ phát triển. Helios hỗ trợ hầu hết các công đoạn xử lí của một meta search engine như thu thập (retrieve), phân tách (parsing), xử lí (combine, re-rank) và trình bày kết quả. Số lượng các máy tìm kiếm nguồn mà Helios hỗ trợ lên đến 16 và khá đa dạng từ tìm kiếm thông thường trên Web như Google, Yahoo, đến tìm kiếm tin tức, sách và tài liệu khoa học. Thông tin và mã nguồn có thể xem ở đây: 3. Một số meta search engine thông dụng 3.1. Dogpile Hình 3: Giao diện của Dogpile. Dogpile là sản phẩm của InfoSpace. Đặc điểm của Dogpile là khả năng phân loại rất tốt các link trả tiền và không trả tiền, đồng thời công nghệ IntelliFind rất hiệu quả trong việc xử lí các kết quả trả về để cho kết quả phù hợp với người dùng [5][6][7]. 3.2. Clusty Hình 3: Giao diện của Clusty. Clusty là sản phẩm của Vivisimo. Đặc điểm nổi bật của Clusty và các sản phẩm khác của Vivisimo là thuật toán gom cụm (clustering) các kết quả tìm kiếm. Với các nhóm được gom lại, người dùng có thể có được cái nhìn rộng hơn về các chủ đề mà họ đang tìm kiếm. 3.3. KartOO Hình 4: Giao diện của KartOO. Đặc điểm nổi bật của KartOO so với các meta search engine khác là khả năng cung cấp kết quả dưới dạng giao diện hình ảnh trực quan (visual interface). 3.4. Các meta search engine khác Có thể kể ra ở đây bao gồm [5]: SurfWax, Mamma, Jux2, IxQuick, qbSearch, Excite, Search.com. 4. Tương lai nào cho meta search engine Nếu bạn có hứng thú với việc xây dựng các meta search engine, các câu hỏi sau cần được đặt ra và phân tích một cách nghiêm túc: - Một là, bạn chọn các máy tìm kiếm nào để gửi câu truy vấn đi. Chọn nhiều máy tìm kiếm có thể sẽ làm cho thời gian trả kết quả về chậm. Chọn máy tìm kiếm ko phải Google có thể sẽ cho kết quả tệ hơn và người dùng sẽ chuyển sang dùng Google cho tiện. - Hai là, lĩnh vực chuyên biệt mà bạn nhắm vào. Cho đến nay tìm kiếm tổng quát trên web vẫn là thông dụng nhất, hơn cả tìm kiếm ở blog, diễn đàn, nhạc. Nếu bạn muốn kiếm tiền từ máy tìm kiếm của mình, tìm kiếm tổng quát trên web sẽ có cơ hội hơn vì lượng người dùng nhiều hơn. Google hiện nay đang thống trị thị trường tìm kiếm Web do chất lượng tìm kiếm hầu như hơn hẳn các máy tìm kiếm khác. Dùng Google CSE như là công nghệ nền (background) có thể là một lựa chọn tốt vì nếu người dùng click vào quảng cáo trên trang kết quả trả về từ meta search engine của bạn, bạn vẫn có thể kiếm tiền được từ Google. Nhưng lúc đó phải kiểm tra xem đối tượng mà meta search engine của bạn là gì và meta search engine của bạn có cách nào để cho kết quả tốt hơn kết quả của Google cho cùng một câu truy vấn. - Ba là, đâu là vũ khí chính của bạn? Bạn cần phải có thuật toán hiệu quả để xử lí và cho kết quả tốt hơn kết quả trả về từ các máy tìm kiếm nguồn mà bạn dựa vào. Thành công của các meta search engine nổi tiếng hiện nay đều đến từ các thuật toán này. Đối với người Việt, các thuật toán thể hiện tốt nhất ngữ nghĩa tiếng Việt; văn hóa, hành vi và thói quen tìm kiếm của người Việt, sẽ là vũ khí chính. Đây cũng là điều mà Yahoo Việt Nam đang cố gắng xúc tiến thông qua chuyến thăm của Phó Chủ Tịch Cấp Cao Lương Vĩnh Tước tháng 7 vừa qua. Tham khảo: [1] [2] [3] [4] [5] [6] [7] Lê Đình Duy