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
6 trang |
Chia sẻ: oanhnt | Lượt xem: 1697 | Lượt tải: 2
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