Giải pháp tính hạng trang khai thác cấu trúc Block của Web và áp dụng vào máy tìm kiếm

35 270 0
Giải pháp tính hạng trang khai thác cấu trúc Block của Web và áp dụng vào máy tìm kiếm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mở đầu Ngày nay, với tác động to lớn mạnh mẽ mạng Internet tới đời sống kinh tế, trị văn hóa người, lĩnh vực khai phá liệu Web trở thành lĩnh vực nghiên cứu thời sự, thu hút quan tâm nhiều nhà nghiên cứu Khai phá liệu Web điểm hội tụ nhiều lĩnh vực nghiên cứu như: sở liệu, truy xuất thông tin (information retrival), trí tuệ nhân tạo, lĩnh vực nhỏ học máy (machine learning) xử lý ngôn ngữ tự nhiên Một lĩnh vực nghiên cứu quan tâm khai phá Web việc xây dựng công cụ tìm kiếm Web Bởi bối cảnh xã hội thông tin ngày nay, nhu cầu nhận thông tin cách nhanh chóng, xác ngày trở nên cấp thiết Để tìm thông tin có ích người dùng, đặc biệt với người dùng thiếu kinh nghiệm hoàn toàn việc đơn giản Với công cụ tìm kiếm, khả người dùng duyệt Web định vị trang Web quan tâm trở nên dễ dàng nhiều Tuy nhiên nay, phát triển thay đổi với tốc độ nhanh Internet, công cụ tìm kiếm phải đối mặt với toán nan giải tốc độ Trong có toán tốc độ tính toán hạng cho trang Web, thực thi nhiệm vụ tính toán độ “quan trọng” cho trang thông tin kết tìm so với yêu cầu tìm kiếm người dùng Vì kích thước World Wide Web vô lớn, lên tới hàng tỉ trang web, trang Web không trạng thái tĩnh mà luôn thay đổi Do tính hiệu thời gian trở nên quan trọng Nếu phép tính PageRank cho tập trang web sở liệu không đủ nhanh, hệ thống tìm kiếm không cung cấp chất lượng tìm kiếm tốt cho người dùng Ý thức lĩnh vực nghiên cứu có nhiều triển vọng, chọn hướng nghiên cứu “Giải pháp tính hạng trang khai thác cấu trúc Block Web áp dụng vào máy tìm kiếm” cho đề tài khóa luận tốt nghiệp Khóa luận tập trung nghiên cứu toán tính hạng trang web (PageRank) máy tìm kiếm: cấu trúc, thuật toán tiêu chuẩn đánh giá trình Chúng áp dụng lý thuyết để sâu phân tích mã nguồn, tìm hiểu chế thực thi trình tính PageRank máy tìm kiếm Vinahoo, máy tìm kiếm tiếng Việt mã nguồn mở với nhiều tính ưu việt Từ việc nghiên cứu này, đề xuất giải pháp áp dụng khái niệm thành phần liên thông ma trận liên kết Web Vinahoo, đồng thời thực việc cài đặt thử nghiệm mã nguồn máy tìm kiếm Nội dung khóa luận tổ chức thành bốn chương với nội dung giới thiệu Chương với tên gọi “Tổng quan khai phá liệu web máy tìm kiếm” trình bày nội dung nghiên cứu khai phá web, thuận lợi khó khăn lĩnh vực Phần cuối chương trình bày thành phần máy tìm kiếm “Một số thuật toán tính hạng trang điển hình” tiêu đề chương Phần đầu chương giới thiệu tổng quan toán xêp hạng trang Web máy tìm kiếm thuật toán tính PageRank Việc phân tích nhu cầu tăng tốc độ tính toán PageRank máy tìm kiếm, số thuật toán cải tiến từ phương pháp PageRank với đánh giá trình bày phần cuối chương Chương với tên gọi “Thuật toán sử dụng cấu trúc Block theo thành phần liên thông” tập trung nghiên cứu giải pháp khai thác cấu trúc Web Chương giới thiệu khái niệm, số vấn đề lý thuyết, chứng minh đánh giá thuật toán CCP sử dụng cấu trúc Chương với tiêu đề “Giải pháp tính hạng trang cải tiến cho máy tìm kiếm Vinahoo” giới thiệu thành phần tính PageRank module đánh số Vinahoo, cải tiến, cài đặt đánh giá kết thực nghiệm Chương Tổng quan khai phá liệu Web máy tìm kiếm 1.1 Khai phá liệu Web 1.1.1 Tổng quan khai phá liệu Web Ngày nay, phát triển nhanh chóng mạng Internet Intranet sinh khối lượng khổng lồ liệu dạng siêu văn (dữ liệu Web) Trong năm gần Intrnet trở thành kênh khoa học, thông tin kinh tế, thương mại quảng cáo Một lý cho phát triển chi phí thấp để trì trang Web Internet So sánh với dịch vụ khác đăng tin hay quảng cáo tờ báo hay tạp chí, trang Web "đòi" rẻ nhiều cập nhật nhanh chóng tới hàng triệu người dùng khắp nơi giới Có thể nói Internet từ điển Bách khoa toàn thư với nội dung hình thức đa dạng Nó xã hội ảo, bao gồm thông tin mặt đời sống kinh tế, xã hội trình bày dạng văn bản, hình ảnh, âm WWW Tri thức Hình Khai phá Web, công việc không dễ dàng Tuy nhiên, Internet môi trường đa phương tiện động bao gồm kết hợp sở liệu không đồng nhất, chương trình giao tiếp người dùng Rõ ràng, khai phá liệu text lĩnh vực nhỏ môi trường Khai phá liệu Internet, hay thường gọi khai phá web việc cần khai phá nội dung trang văn bản, phải khai thác nguồn lực nói mối quan hệ chúng Khai phá Web, giao thoa khai phá liệu Word-Wide-Web, phát triển mạnh mẽ bao gồm nhiều lĩnh vực nghiên cứu sở liệu, trí tuệ nhân tạo, truy xuất thông tin (information retrival) nhiều lĩnh vực khác Các công nghệ Agent-base, truy xuất thông tin dựa khái niệm (concept-based), truy xuất thông tin sử dụng case-base reasoning tính hạng văn dựa đặc trưng (features) siêu liên kết thường xem lĩnh vực nhỏ khai phá web Khai phá Web chưa định nghĩa cách rõ ràng chủ đề tiếp tục mở rộng Tuy vậy, hiểu khai phá web việc: trích thành phần quan tâm hay đánh giá có ích thông tin tiềm từ tài nguyên hoạt động liên quan tới World-Wide Web[9] Hình thể phân loại lĩnh vực nghiên cứu quen thuộc khai phá Web Người ta thường phân khai phá web thành lĩnh vực chính: khai phá nội dung web (web content mining), khai phá cấu trúc web (web structure mining) khai phá sử dụng web (web usage mining) KHAI PHÁ DỮ LIỆU WEB Khai phá nội dung Web Khai phá nội dung trang Web Khai phá cấu trúc Web Tối ưu kết trả Khai phá mẫu truy cập Khai phá sử dụng Web Phân tích xu hướng cá nhân Hình 2: Các nội dung khai phá Web 1.1.2 Các lĩnh vực khai phá liệu Web 1.1.2.1 Khai phá nội dung Web Phần lớn tri thức World-Wide Web chứa nội dung văn Khai phá nội dung web (web content mining) trình xử lý để lấy tri thức từ nội dung trang văn mô tả chúng Có hai chiến lược khai phá nội dung web: khai phá trực tiếp nội dung trang web, nâng cao khả tìm kiếm nội dung công cụ khác máy tìm kiếm - Khai phá nội dung trang web(Web Page summarization): liên quan tới việc truy xuất thông tin từ văn có cấu trúc, văn siêu liên kết, hay văn bán cấu trúc Lĩnh vực liên quan chủ yếu tới việc khai phá thân nội dung văn - Tối ưu kết trả (search engine result summarization): Tìm kiếm kết Trong máy tìm kiếm, sau tìm trang Web thoả mãn yêu cầu người dùng, công việc không phần quan trọng, phải xếp, chọn lọc kết theo mức độ hợp lệ với yêu cầu người dùng Quá trình thường sử dụng thông tin tiêu đề trang, URL, content-type, liên kết trang web để tiến hành phân lớp đưa tập kết tốt cho người dùng 1.1.2.2 Khai phá cấu trúc web Nhờ vào kết nối văn siêu liên kết, World-Wide Web chứa đựng nhiều thông tin thông tin bên văn Ví dụ, liên kết trỏ tới trang web mức độ quan trọng trang web đó, liên kết từ trang web thể trang có liên quan tới chủ đề đề cập trang Và nội dung khai phá cấu trúc Web (web structure mining) trình xử lý nhằm rút tri thức từ cách tổ chức liên kết tham chiếu trang web 1.1.2.3 Khai phá sử dụng web Khai phá sử dụng web (web usage mining) hay khai phá hồ sơ web (web log mining) việc xử lý để lấy thông tin hữu ích hồ sơ truy cập Web Thông thường web server thường ghi lại tích lũy liệu tương tác người dùng nhận yêu cầu truy cập Việc phân tích hồ sơ truy cập web web site khác dự đoán tương tác người dùng họ tương tác với Web tìm hiểu cấu trúc Web, từ cải thiện thiết kế hệ thống liên quan Có hai xu hướng khai phá sử dụng web General Access Pattern Tracking Customizied Usage tracking - Phân tích mẫu truy cập (General Access Pattern tracking): phân tích hồ sơ web để biết mẫu xu hướng truy cập Các phân tích giúp cấu trúc lại site phân nhóm hiệu hơn, hay xác định vị trí quảng cáo hiệu nhất, gắn quảng cáo sản phẩm định cho người dùng định để đạt hiệu cao - Phân tích xu hướng cá nhân (Cusomized Usage tracking): Mục đích để chuyên biệt hóa web site cho lớp đối tượng người dùng Các thông tin hiển thị, độ sâu cấu trúc site định dạng tài nguyên, tất chuyên biệt hóa cách tự động cho người dùng theo thời gian dựa mẫu truy cập họ 1.1.3 Khó khăn khai phá Web World Wide Web hệ thống lớn phân bố rộng khắp, cung cấp thông tin lĩnh vực khoa học, xã hội, thương mại, văn hóa, Web nguồn tài nguyên giàu có cho Khai phá liệu Những quan sát sau cho thấy Web đưa thách thức lớn cho công nghệ Khai phá liệu [6] 1.1.3.1 Web lớn để tổ chức thành kho liệu phục vụ Dataming Các CSDL truyền thống có kích thước không lớn thường lưu trữ tập trung, kích thước Web lớn, tới hàng terabytes thay đổi liên tục, phân tán nhiều máy tính khắp nơi giới Một vài nghiên cứu kích thước Web[6] đưa số liệu sau: Hiện Internet có khoảng tỷ trang Web cung cấp cho người sử dụng Kích thước trung bình trang 5-10KB tổng kích thước WWW 10 terabyte Còn tỷ lệ tăng trang Web thật gây ấn tượng Hai năm gần số trang Web tăng gấp đôi còng tiếp tục tăng hai năm tới Nhiều tổ chức xã hội đặt hầu hết thông tin công cộng họ lên Web Như việc xây dựng kho liệu (datawarehouse) để lưu trữ, chép hay tích hợp liệu Web gần 1.1.3.2 Độ phức tạp trang Web lớn nhiều so với tài liệu văn truyền thống khác Các liệu CSDL truyền thống thường loại liệu đồng (về ngôn ngữ, định dạng,…), liệu Web hoàn toàn không đồng Dữ liệu Web bao gồm nhiều loại ngôn ngữ khác (cả ngôn ngữ diễn tả nội dung lẫn ngôn ngữ lập trình), nhiều loại định dạng khác (text, HTML, PDF, hình ảnh, âm thanh,…), nhiều loại từ vựng khác (địa email, liên kết, mã nén (zipcode), số điện thoại ) Nói cách khác, trang Web thiếu cấu trúc thống Chúng coi thư viện kỹ thuật số rộng lớn, nhiên số lượng khổng lồ tài liệu thư viện không xếp theo tiêu chuẩn đặc biệt nào, không theo phạm trù nào, Điều thử thách lớn cho việc tìm kiếm thông tin cần thiết thư viện 1.1.3.3 Web nguồn tài nguyên thông tin có độ thay đổi cao Web thay đổi độ lớn mà thông tin trang Web cập nhật liên tục Theo kết nghiên cứu [6] 500.000 trang Web tháng 23% trang thay đổi hàng ngày, khoảng 10 ngày 50% trang tên miền biến mất, nghĩa địa URL không tồn Tin tức, thị trường chứng khoán, công ty quản cáo trung tâm phục vụ Web thường xuyên cập nhật trang Web họ Thêm vào kết nối thông tin truy cập ghi cập nhật 1.1.3.4 Web phục vụ cộng đồng người dùng rộng lớn đa dạng Internet nối với khoảng 50 triệu trạm làm việc [6], cộng đồng người dùng nhanh chóng lan rộng Mỗi người dùng có kiến thức, mối quan tâm, sở thích khác Nhưng hầu hết người dùng kiến thức tốt cấu trúc mạng thông tin, ý thức cho tìm kiếm, dễ bị "lạc" khối liệu khổng lồ mạng chán tìm kiếm mà nhận mảng thông tin không hữu ích 1.1.3.5 Chỉ phần nhỏ thông tin Web thực hữu ích Theo thống kê [6], 99% thông tin Web vô ích với 99% người dùng Web Trong phần Web không quan tâm lại bị búi vào kết nhận tìm kiếm Vậy ta cần phải khai phá Web để nhận trang web chất lượng cao theo tiêu chuẩn người dùng? Như thấy điểm khác việc tìm kiếm CSDL truyền thống với vviệc tìm kiếm Internet Những thách thức đẩy mạnh việc nghiên cứu khai phá sử dụng tài nguyên Internet 1.1.4 Thuận lợi khai phá Web Bên cạnh thử thách trên, khai phá Web có thuận lợi: Web bao gồm trang mà có liên kết trỏ từ trang tới trang khác Khi tác giả tạo liên kết từ trang ông ta tới trang A có nghĩa A trang có hữu ích với vấn đề bàn luận Nếu trang nhiều liên kết từ trang khác trỏ đến chứng tỏ trang quan trọng Vì thông tin liên kết trang cung cấp lượng thông tin giàu có mối liên quan, chất lượng, cấu trúc nội dung trang Web, nguồn tài nguyên lớn cho khai phá Web Một máy chủ Web thường đăng ký ghi đầu vào (Weblog entry) cho lần truy cập trang Web Nó bao gồm địa URL, địa IP, timestamp Dữ liệu Weblog cung cấp lượng thông tin giàu có trang Web động Thực phân tích hồ sơ truy cập ta rút thống kê xu hướng truy cập Web, cấu trúc Web nhiều thông tin hữu ích khác 1.2 Tổng quan máy tìm kiếm 1.2.1 Nhu cầu Như đề cập phần trên, Internet kho thông tin khổng lồ phức tạp Thông tin trang Web đa dạng mặt nội dung hình thức Tuy nhiên với đa dạng số lượng lớn thông tin nảy sinh vấn đề tải thông tin Cùng với thay đổi phát triển hàng ngày hàng nội dung số lượng trang Web Internet vấn đề tìm kiếm thông tin người sử dụng lại ngày khó khăn Đối với người dùng phần nhỏ thông tin có ích, chẳng hạn có người quan tâm đến trang Thể thao, Văn hóa mà không quan tâm đến Kinh tế Người ta tìm tự kiếm địa trang Web chứa thông tin mà cần, đòi hỏi cần phải có trình tiện ích quản lý nội dung trang Web cho phép tìm thấy địa trang Web có nội dung giống với yêu cầu người tìm kiếm Định nghĩa [14]:Máy tìm kiếm (search engine) hệ thống xây dựng nhằm tiếp nhận yêu cầu tìm kiếm người dùng (thường tập từ khóa), sau phân tích yêu cầu tìm kiếm thông tin sở liệu tải xuống từ Web đưa kết trang web có liên quan cho người dùng Cụ thể, người dùng gửi truy vấn, dạng đơn giản danh sách từ khóa, máy tìm kiếm làm việc để trả lại danh sách trang Web có liên quan có chứa từ khóa Phức tạp hơn, truy vấn văn đoạn văn nội dung tóm tắt văn Một số máy tìm kiếm điển hình nay: Yahoo, Google, Alvista, ASPSeek 1.2.2 Cấu trúc hoạt động máy tìm kiếm Một máy tìm kiếm xem ví dụ hệ thống truy xuất thông tin Information Retrival (IR)[14] Một hệ thống truy xuất thông tin IR thường tập trung vào việc cải thiện hiệu thông tin lấy cách sử dụng việc đánh số dựa từ khóa (term-base indexing)[11] kỹ thuật tổ chức lại câu truy vấn (query refomulation technique)[12] Quá trình xử lý văn dựa từ khóa ban đầu trích từ khóa văn sử dụng từ điển xây dựng trước, tập từ dừng, qui tắc (stemming rule)[14] chuyển hình thái từ dạng từ gốc Sau từ khóa lấy ra, hệ thống thường sử dụng phương pháp TF-IDF (hoặc biến thể nó) để xác định mức độ quan trọng từ khóa Do đó, văn biểu diễn tập từ khóa độ quan trọng chúng Mức độ tương tự đo câu truy vấn văn tích vô hướng hai vector từ khóa tương ứng Để thể mức độ hợp lệ văn câu truy vấn, văn lấy biểu diễn dạng danh sách xếp hạng dựa độ đo mức độ tương tự chúng câu truy vấn Hình miêu tả cấu trúc máy tìm kiếm Mặc dù thực tế, máy tìm kiếm có cách thực thi riêng, dựa chế hoạt động mô tả Kho trang web Bé t×m duyÖt Hình 3: Mô hình cấu trúc máy tìm kiếm - Module dò tìm (crawler): chương trình có chức cung cấp liệu cho máy tìm kiếm hoạt động Module thực công việc duyệt Web, theo liên kết trên Web để thu thập nội dung trang Web Các chương trình dò tìm cung cấp địa URL xuất phát, đọc trang web tương ứng, phân tích tìm URL có trang web Sau tìm duyệt cung cấp địa URL kết cho điều khiển dò tìm (crawl control) Bộ điều khiển định xem URL duyệt gửi lại kết cho dò tìm Các dò tìm sau tải trang web lưu kết vào kho trang web (page repository) Quá trình lặp lại đạt tới điều kiện kết thúc - Module đánh mục (indexing): module có nhiệm vụ duyệt nội dung trang web tải về, đánh mục cho trang cách ghi lại địa URL trang web có chứa từ sở liệu Kết sinh bảng mục lớn Nhờ có bảng mục này, máy tìm kiếm cung cấp tất địa URL trang web theo truy vấn từ khóa người dùng Thông thường tạo mục tạo mục nội dung mục cấu trúc (structure index) Chỉ mục nội dung chứa thông tin từ xuất trang web Chỉ mục cấu trúc thể mối liên kết trang web, tận dụng đặc tính quan trọng liệu web liên kết Nó dạng đồ thị gồm nút cung, nút đồ thị tương ứng với trang web, cung nối từ nút A tới nút B tương ứng siêu liên kết từ trang web A đến trang web B - Module phân tích tập (Collection Analysis Module) hoạt động dựa vào thuộc tính module truy vấn Ví dụ truy vấn đòi hỏi việc tìm kiếm hạn chế số website đặc biệt, giới hạn tên miền công việc nhanh hiệu Module sử dụng thông tin từ hai loại mục (chỉ mục nội dung mục cấu trúc) module đánh số cung cấp với thông tin từ khóa trang web thông tin tính hạng để tạo mục tiện ích - Module truy vấn (query engine): module chịu trách nhiệm nhận yêu cầu tìm kiếm người sử dụng Module thường xuyên truy vấn sở liệu đặc biệt bảng mục để trả danh sách tài liệu thỏa mãn yêu cầu người dùng Do số lượng trang web lớn, thông thường người dùng đưa vào vài từ khóa câu truy vấn nên tập kết thường lớn Vì xếp hạng (ranking) có nhiệm vụ xếp tài liệu theo mức độ hợp lệ với yêu cầu tìm kiếm hiển thị kết cho người sử dụng Khi muốn tìm kiếm trang web vấn đề đó, người sử dụng đưa vào số từ khóa liên quan để tìm kiếm Module truy vấn dựa theo từ khóa để tìm kiếm bảng mục nội dung địa url có chứa từ khóa Sau đó, module truy vấn chuyển trang web cho module xếp hạng để xếp kết theo mức độ giảm dần tính hợp lệ trang web câu truy vấn hiển thị kết cho người sử dụng 10 π = πP (4) Nói cách khác việc tính vector riêng ma trận P, vector riêng ứng với giá trị riêng λ=1 Tuy nhiên việc tính vector riêng đảm bảo ma trận P thoả mãn số tính chất chặt chẽ ma trận chuyển Markov Trong thực tế trang Web, việc giả thiết đồ thị liên thông không hợp lí tồn trang liên kết tới trang khác Do vậy, hàng ứng với trang Web ma trận kề P bao gồm toàn số 0, nên điều kiện không tồn phân phối xác suất dừng ổn định P hay nói cách khác vector riêng PageRank Chính vậy, để tồn xác suất dừng ổn định ma trận Markov P (xem thêm [12]) cần phải sửa đổi ma trận P cho phù hợp Định nghĩa ma trận (1 − α ) ~ P = αP + J n (5) < α < ( α thường chọn 0.85) J ma trận gồm toàn phần tử Khi đó, thay tính vector riêng ma trận P ta tính vector riêng π = (π , , π n ) ma trận P~ cho công thức ~ π = πP (6) Và tổng thành phần vector π = (π , , π n ) : n ∑π i =1 i =1 (7) Hay nói cách khác π = vector cột gồm toàn phần tử Ta có điều vector π phân bố xác suất dừng ma trận chuyển Markov, bắt buộc tổng thành phần vector phải Trong trình tính toán vector riêng, phương pháp lặp đơn sử dụng phương pháp cho kết khả quan sau 20 vòng lặp [1,2] Với phương pháp trên, dễ dàng nhận thấy ma trận P ma trận thưa, công việc tính toán có nhiều thao tác thừa Trong mục bàn khái niệm cấu trúc Block theo thành phần liên thông ma trận liên kết Web việc sử dụng thành phần liên thông để giảm tính toán dư thừa 21 3.2 Một số vấn đề lý thuyết Khi khảo sát mô hình Markov [13], nhận thấy lý thuyết xác suất, trạng thái chia lớp khác Những trạng thái chuyển qua lại coi lớp Khái niệm lớp trạng thái mô hình Markov giống với khái niệm thành phần liên thông lý thuyết đồ thị Hơn nữa, việc sử dụng ma trận kề biểu diễn đồ thị trang Web dẫn tới ý tưởng sử dụng khái niệm cấu trúc Block (khối) theo thành phần liên thông tính toán hạng trang với số lợi sau: - Khi sử dụng toàn ma trận P để tính toán vector riêng phương pháp PageRank [1,2], số phép tính chi phí lớn Như biết, với phép nhân ma trận thời gian tính toán O(n3) n số trang Web Nhưng đưa ma trận kề biểu diễn đồ thị dạng khối biểu diễn cho thành phần liên thông thời gian tính toán giảm nhiều Thật vậy, giả sử có k thành phần liên thông, với khối, thời gian tính toán nhỏ O(nmax ) nmax=max{n1,…,nk}và tổng thời gian tính toán nhỏ kO(nmax ) , nhỏ nhiều so với thời gian tính toán ta sử dụng toàn ma trận lớn Như vậy, phương pháp đề xuất có thời gian tính toán lý thuyết hiệu phương pháp PageRank Hơn nữa, kết hợp phương pháp với phương pháp hỗ trợ tính toán MAP hay phương pháp ngoại suy [9,10] thời gian tính toán giảm đáng kể - Sử dụng thành phần liên thông “thực sự” làm giảm số vòng lặp tính toán không giống phương pháp tính toán ma trận theo khối phương pháp ma trận thành phần nhỏ dựa tiêu chí host [11] Phương pháp tính toán ma trận theo khối giúp giảm thời gian tính toán sử dụng kĩ thuật tính toán để song song hoá mà không làm giảm số vòng lặp Phương pháp chia ma trận thành Block thành phần theo tiêu chí host giảm số vòng lặp lại chia làm hai bước thêm chi phí xử lý theo khối, khối chia theo host lớn Phương pháp CCP khắc phục điểm trên: cài đặt không cần sử dụng nhiều kĩ thuật tính toán ma trận theo khối; nữa, giảm số vòng lặp khối thành phần liên thông có cỡ nhỏ khối chia theo tiêu chí host [11] 22 - Trong phương pháp đề xuất, cần phải tìm kiếm thành phần liên thông việc tìm thành phần liên thông đồ thị tiến hành dễ dàng với thời gian đa thức O(n+m) với n số đỉnh m số cạnh đồ thị [8] Do vậy, thời gian chi phí với việc tìm kiếm thành phần liên thông không đáng kể - Khi đưa tính toán với khối thành phần liên thông song song hoá trình tính toán Với thành phần liên thông khác tính toán, giao cho xử lý khác Việc song song hoá tiến hành tự nhiên mà không cần phải áp dụng kỹ thuật phức tạp, nữa, song song hoá, đẩy nhanh thời gian tính toán lên Nhận xét Như vậy, phương pháp đề xuất có số lợi điểm sau (so với số phương pháp nghiên cứu): • Giảm thời gian tính toán việc lặp tính toán ma trận giảm dựa việc phân chia đồ thị trang Web thành phần liên thông • Có thể kết hợp dễ dàng với phương pháp hỗ trợ tính toán ma trận • Có thể áp dụng song song hoá cách tự nhiên mà không cần phải sử dụng nhiều kĩ thuật lập trình Khi sử dụng phương pháp chia ma trận kề thành khối ma trận nhỏ đại diện cho thành phần liên thông trình tính toán phải giải số vấn đề sau: - Tính toán hạng trang để kết đạt đắn? - Việc tính toán thành phần liên thông hiệu quả? Chúng ta xem xét việc giải vấn đề trên khía cạnh lý thuyết mục sau 3.2.1 Tính toán hạng trang với Block theo thành phần liên thông Như đề cập trên, tính toán thành phần liên thông giá trị hạng trang PageRank hay nói cách khác vector riêng trang tính nào? 23 Giả sử đồ thị G có k thành phần liên thông, ma trận P viết dạng k khối đặt đường chéo sau: ⎛ P1 L ⎞ ⎜ ⎟ P=⎜ M O M ⎟ ⎜0 L P ⎟ k ⎠ ⎝ (8) Pi ma trận kề cỡ nixni ứng với thành phân liên thông thứ i, i = 1, k ; k ∑n i =1 i =n Định nghĩa ma trận (1 − α ) ~ Pi = αPi + Ji ni với i = 1, k Ji ma trận cỡ nix ni (9) Công thức tính vector riêng với khối ma trận Pi ~ π i = π i Pi (10) Định lý: Với giả thiết (5,6,7,8,9,10), ta có π =( n n1 π , , k π k ) n n (11) ~ vector riêng ma trận P Chứng mình: Để chứng minh π =( n n1 π , , k π k ) n n ~ vector riêng ma trận P ta phải chứng minh: π thoả mãn phương trình vector riêng (6) Thay (11) vào phương trình (6), ta được: ⎡ ⎛ P1 L ⎞ ⎟ 1−α (1 − α ) ⎤ ~ ⎡ ⎢ ⎜ J ⎥ = π ⎢α ⎜ M O M ⎟ + π = πP = π ⎢αP + n n ⎣ ⎦ ⎢⎣ ⎜⎝ L Pk ⎟⎠ 24 ⎤ ⎥ J⎥ ⎥⎦ 1−α 1−α ⎡ J 12 ⎢α P1 + n J 11 n ⎢ 1−α nk k nk k ⎢ − α J 21 n1 n1 J 22 α P2 + ⇔ ( π , , π ) = ( π , , π ) n n ⎢ n n n n M M ⎢ ⎢ 1−α J L k1 ⎢⎣ n 1−α ⎤ J 1k ⎥ n ⎥ (12) 1−α J 2k ⎥ L n ⎥ O M ⎥ 1−α L α Pk + J kk ⎥ ⎥⎦ n L J ij = (1) n xn ma trận gồm toàn phần tử có cỡ nixnj i j Nhân vế phải (12), xét thành phần thứ nhất, ta được: n n1 n1 n 1−α 1−α 1−α J 11 ) + π J 21 + + k π k J k1 π = π (αP1 + n n n n n n n (13) i Mà với khối Pi có vector riêng tương ứng π thoả mãn phương trình (10) 1−α ⎤ Ji ⎥ ni ⎦ (14) ni i ni i ⎡ 1−α ⎤ π = π ⎢αPi + Ji ⎥ n n ⎣ ni ⎦ (15) ~ ⎡ π i = π i Pi = π i ⎢αPi + ⎣ ⇔ Xét trường hợp cụ thể i=1, ta được: ⇔ n1 n1 ⎡ 1−α ⎤ π = π ⎢αP1 + J1 ⎥ n n ⎣ n1 ⎦ (16) Từ (13,16) ta được: n n1 ⎡ n − α ⎤ n1 1−α 1−α 1−α J ⎥ = π (αP1 + J 11 ) + π J 21 + + k π k J k1 (17) π ⎢αP1 + n ⎣ n1 n n n n n ⎦ n J1 = J11 ⇔ π J 11 = n n1 π J 11 + + k π k J k1 n n k ⇔ 1n1 = 1n1 ∑n i =1 n i mà k ∑n i =1 i = n , 1n1 vector hàng n1 cột gồm toàn phần tử ⇔ 1n1 = 1n1 25 Vậy ta (13) Tương tự, ta xét với thành phần tiếp theo, π i với i = 2, k thoả mãn (đpcm) 3.2.2 Thuật toán CCP Phương pháp sử dụng cấu trúc Block theo thành phần liên thông toán tính hạng trang chia làm bước: - Bước 1: Chia đồ thị thành phần liên thông với ma trận kề tương ứng - Bước 2: Tính toán PageRank cho trang thành phần liên thông dựa việc tính toán vector riêng ma trận kề thành phần liên thông - Bước 3: Tổ hợp hạng trang cuối dựa hạng trang nhận sau bước công thức (11) Trong trình tính toán, để hiệu quả, coi làm việc với trường hợp trung bình, có nghĩa xét thành phần liên thông với số đỉnh trung bình Do cần giải hai trường hơp: thành phần liên thông có số đỉnh vượt nhỏ ngưỡng trung bình Để giải trường hợp này, cần đưa hai số để làm ngưỡng, gọi max Khi đó, ∀Pi i = 1, k ta cần ≤ ni ≤ max ; ni ≤ ghép thành phần liên thông có số đỉnh tương tự để thành phần liên thông có số đỉnh thoã mãn điều kiện, ni ≥ max cần phải tách thành phần liên thông thành thành phần liên thông nhỏ để thoả mãn điều kiện Tuy nhiên tách hợp thành phần liên thông, hạng trang thay đổi phải xử lý vấn đề Từ đề xuất cách giải sau hai trường hợp: - Trường hợp gộp: Đây trường hơp đơn giản, PageRank trang tính toán lấy từ thành phần liên thông sau gộp Trong trường hợp này, cần gộp cho số đỉnh thành phần liên thông vừa đủ lớn (min thử nghiệm với nhiều số để đưa số tối ưu nhất) - Trường hợp tách: Đối với trường hợp này, vấn đề lý thuyết khó khăn so với trường hợp Khi tách thành phần liên thông lớn thành thành phần liên thông nhỏ, thành phần nhỏ có liên hệ định với nhau, ta cần phải thể sử dụng liên hệ để kết nhận cuối xác Giả sử từ thành phần liên thông tách 26 thành m khối (mỗi khối tự liên thông) khối có liên kết tới (vì tách từ thành phần liên thông lớn) • Bước 1: Chúng ta tính hạng cho tất trang thành phần liên thông nhỏ bình thường • Bước 2: Coi thành phần liên thông nhỏ nút đồ thị, đồ thị gồm m nút số liên kết tới nút tổng số liên kết có đồ thị Hạng nút đồ thị xây dựng số liên kết tới nút chia cho tổng số liên kết đồ thị Tại lại chọn hạng trang cho nút đồ thị vậy? Khi ta chọn giá trị tổng tất hạng đồ thị (thoả mãn điều kiện tổng xác suất) • Bước 3: Do m khối, khối có vector PageRank riêng, tổng thành phần vector PageRank khối 1, gộp lại tổng thành phần m vector ứng với khối m Do vậy, để tổng thành phần vector PageRank m khối 1, ta lấy PageRank đại diện khối nhân với PageRank thành phần Hệ số min, max số đỉnh trung bình khối thử nghiệm để tìm hệ số tối ưu Chương giới thiệu mô hình máy tìm kiếm Vinahoo áp dụng thử nghiệm thuật toán Modified Adaptive PageRank cho toán tính hạng trang máy tìm kiếm Vinahoo 27 Chương Giải pháp tính hạng trang cải tiến cho máy tìm kiếm Vinahoo 4.1 Tính toán PageRank Vinahoo Trong [1], tác giả trình bày kỹ cấu trúc, CSDL, mã nguồn máy tìm kiếm Vinahoo Ở đây, tập trung trình bày module đánh số thực thi tính toán PageRank 4.1.1 Mô hình thực thi module đánh số Trong máy tìm kiếm Vinahoo, trình tính toán PageRank cho trang web tích hợp module index Đầu tiên module tiến hành trình crawler để tải nội dung trang web Quá trình có tương tác với đối tượng Internet, hệ quản trị sở liệu SQL sở liệu chứa file nhị phân tạm Sau đó, trình index tiến hành đánh số ngược cho url tải lưu cấu trúc liệu thuận tiện cho việc tìm kiếm url theo từ khóa module tìm kiếm sau này, tính giá trị PageRank cho trang Quá trình sử dụng đầu vào nội dung trang web cập nhật file nhị phân tạm, thông tin có file nhị phân cũ Nó thực việc xếp url theo từ khóa kết hợp với nội dung cũ url file nhị phân, cuối tính hạng cho trang Web dựa vào liên kết trang 4.1.2 Quá trình tính toán PageRank Vinahoo 4.1.2.1 Cấu trúc hàng đợi url Vinahoo Vinahoo sử dụng cấu trúc liệu bảng băm để làm hàng đợi lưu url cần index Lý cấu trúc bảng băm thuận tiện cho việc tìm kiếm phần tử danh sách Vì trình kiểm tra URL có mặt hàng đợi hay chưa dễ dàng Các URL hàng đợi nhóm theo site, url thuộc site nhóm vào danh sách FIFO gọi CSiteUrls Việc nhóm URL theo site có tác ưu điểm làm giảm việc xử lý tên miền DNS, giảm số lần phải kết nối tới server, làm giảm số lần phải duyệt file robots.txt Do làm giảm đáng kể thời gian duyệt Web Khi có url thuộc vào site cần đưa vào hàng đợi, url thêm vào cuối danh sách url site thuộc vào Toàn hàng đợi bảng băm CsiteUrls có trỏ trỏ tới site duyệt 28 Khi cần lấy url để duyệt tiếp, url đỉnh danh sách site trích Cấu trúc hàng đợi sau: CSiteUrls CSiteUrls CSiteUrls m_current Hình6: Cấu trúc hàng đợi CSiteQueue Vinahoo Trong đó: CsiteUrls danh sách chiều mảng chứa url thuộc site Và CurlLinks mảng gồm 100 url liên tiếp CUrlLinks CUrlLinks CUrlLinks m_first m_last Hình7: Cấu trúc phần tử CSiteUrl 4.1.2.2 Qúa trình tính toán PageRank Vinahoo Đối với máy tìm kiếm Vinahoo, sau đánh mục trang Web sở liệu, trình tính toán PageRank thực Trong Vinahoo, đại lượng PageRank coi giá trị hạng giá trị PageRank lấy trực tiếp để làm tiêu chí hiển thị có thứ tự trang hình cho người dùng Công thức tính PageRank sử dụng công thức tính PageRank đơn giản Các trang tính PageRank lần lượt, giá trị PageRank lưu vào file nhị phân Hạng trang Vinahoo tính theo công thức đệ qui Hàm thực PageRank là: CalsRanks( CSQLDatabase *database) 4.1.2.3 Nhu cầu đẩy nhanh tốc dộ tính toán PageRank Như đề cập chương trước, việc xếp hạng trang Web CSDL phận quan trọng hệ thống tìm kiếm Chất lượng module ảnh hưởng trực tiếp tới bước sau trình tìm kiếm Một tính chất quan trọng module tính hiệu thời gian Nếu trình tính PageRank không đủ nhanh, làm gia tăng thời gian chết phận khác máy tìm kiếm Như hệ thống tìm kiếm không cung cấp chất 29 lượng tìm kiếm tốt cho người dùng Việc nâng cao tốc độ tính toán PageRank có tác dụng tăng thêm mức độ tính toán vectơ thành phần, hướng tới việc xếp hạng trang Web quan tâm tới tiêu chí người dùng 4.2.3 Đề xuất giải pháp 4.2.3.1 Cài đặt Modified Adaptive PageRank Phần trình bày đề xuất cài đặt thuật toán tính hạng Modified Adaptive PageRank máy tìm kiếm Vinahoo Hiện tại, modul index Vinahoo cài đặt thuật toán tính PageRank đơn giản Chúng tiến hành thay modul tính toán PageRank modul tương ứng với thuật toán Modified Adaptive PageRank, số lý sau: - Modified Adaptive PageRank phát triển dựa thuật toán PageRank - thuật toán cài đặt phần mềm Vinahoo Khả tích hợp Modified Adaptive PageRank vào Vinahoo có độ thành công cao - Modified Adaptive PageRank đẩy mạnh tốc độ tính toán, giảm tính toán dư thừa Để tận dụng tối đa lớp sẵn có Vinahoo[1], [2] không xây dựng ma trận An x n lý thuyết, mà áp dụng công thức đệ qui đưa thêm vào phương pháp Modified Adaptive PageRank Để đánh dấu hội tụ trang, có hai cách: - Cách thứ nhất: Thêm thuộc tính cho UrlRank với tách Url hội tụchưa hội tụ hai file riêng biệt lưu trữ - Cách hai: Khi lưu trữ lưu thêm thuộc tính hội tụ converged hội tụ, ngược lại Qua so sánh ưu nhược điểm cách, thấy việc lưu hạng trang hai file tíết kiệm nhớ lưu trữ thêm thuộc tính hội tụ Tuy nhiên, lưu trữ cần lưu trữ toàn PageRank URL theo thứ tự lưu trữ urlID, điều giúp trình đọc ghi liệu thuận tiện đơn giản Do vậy, lưu theo hai file khác lại cần có thông số urlID kèm với giá trị RageRank Điều không tíết kiệm nhớ, tính toán không đơn giản đồng thời không tận dụng tốt mã nguồn có Vinahoo 30 Do vậy, chọn cách thêm thuộc tính đánh dấu hội tụ UrlRank lưu PageRank Url ta lưu thêm giá trị converged - để đánh dấu giá trị hạng trang hội tụ ⎧1 giá trị PageRank trang hội tụ Converged = ⎨ ⎩0 ngược lại 4.2 Kết thực nghiệm đánh giá a Cách thức tiến hành thực nghiệm Thực nghiệm tiến hành với máy tìm kiếm Vinahoo, máy tính cấu hình Pentium 4HT 3.0GHz, 512MB RAM Các thực nghiệm tiến hành môi trường Internet thực sự, với trang Web lấy từ website http://www.ets.org/ (đây trang chủ tổ chức giáo dục phụ trách thi chứng tiếng Anh TOEFL) Sau crawl liệu, sở liệu lưu trữ 2368 trang Web với tổng số liên kết 37490 Các thuật toán thử nghiệm PageRank bình thường, MAP CCP b Kết thử nghiệm Sau số kết chạy thử nghiệm chương trình, so sánh thời gian số vòng lặp chi phí chọn sau chia trung bình lần thử nghiệm thuật toán Thời gian tính toán PageRank Thời gian(s) 2.59 2.5 1.65 1.5 0.5 Thuật toán PageRank MAP CCP Hình 8: Biểu đồ thể thời gian tính toán PageRank thuật toán 31 Qua biểu đồ ta thấy thời gian tính toán PageRank theo thuật toán MAP giảm 36% so với thuật toán toán PageRank thông thường Vòng lặp tính toán PageRank Số vòng lặp 18 16 14 12 10 17 10 PageRank MAP CCP Thuật toán Hình 9: Biểu đồ thể số vòng lặp cần thiết tính toán PageRank thuật toán Tiến hành thử nghiệm câu truy vấn thuật toán, kết nhận sau hai câu truy vấn: “TOEFL” “TEST” cho bảng Bảng Kết nhận hai truy vấn “TOEFL” “TEST” ứng với thuật toán PageRank MAP TOEFL 10 ets.org/stoefl.html ets.org/ellrsc/css/twocolumns.css ets.org/toefl/contact.html ets.org/ell/testpreparation/toeflindex.html ets.org/itp/ ets.org/toefl/nextgen/index.html ets.org/legal/copyright.html ets.org/scoreitnow/index.html ets.org/itp/academics/ ets.org/criterion/ell/academics/index.html ets.org/stoefl.html ets.org/ellrsc/css/twocolumns.css ets.org/toefl/contact.html ets.org/ell/testpreparation/toeflindex.html ets.org/itp/ ets.org/toefl/nextgen/index.html ets.org/legal/copyright.html ets.org/scoreitnow/index.html ets.org/itp/academics/ ets.org/ell/testpreparation/toefl/ TEST ets.org/ell/testpreparation/toeflindex.html ets.org/etseurope/testinfo.html ets.org/praxis/prxdsabl.html ets.org/praxis/prxorder.html ets.org/criterion/elementary.html ets.org/ell/testpreparation/toeflindex.html ets.org/etseurope/testinfo.html ets.org/praxis/prxdsabl.html ets.org/praxis/prxorder.html ets.org/criterion/elementary.html 32 Kết luận Kết đạt khóa luận Thông qua việc tìm hiểu, nghiên cứu công trình nghiên cứu liên quan toán tính hạng trang máy tìm kiếm, khóa luận hoàn thành số kết sau đây: - Trình bày phân tích chi tiết thuật toán PageRank áp dụng toán tính hạng trang máy tìm kiếm - Trình bày nội dung bao gồm việc phân tích hai thuật toán Modified Adaptive PageRank Topic-sensitive PageRank nhằm nâng cao hiệu tính toán PageRank - Phân tích chi tiết chế hoạt động máy tìm kiếm tiếng Việt mã nguồn mở Vinahoo - Một kết quan trọng khóa luận đề xuất giải pháp sử dụng cấu trúc Block theo thành phần liên thông ma trận liên kết Web việc tính PageRank máy tìm kiếm Vinahoo - Hơn nữa, khóa luận cài đặt thuật toán Modified Adaptive PageRank vào máy Vinahoo đạt số kết bước đầu tương đối khả quan Tuy nhiên hạn chế thời gian hoàn thành khóa luận nên chương trình cài đặt chưa cài đặt hoàn chỉnh thuật toán CCP sử dụng cấu trúc Block theo thành phần liên thông ma trận liên kết Web việc tính PageRank máy tìm kiếm Vinahoo Hướng phát triển Khai phá cấu trúc web vào máy tìm kiếm toán tính hạng trang ngày trở thành lĩnh vực nghiên cứu đầy tiềm năng, hướng nghiên cứu khóa luận là: - Tiếp tục hoàn thiện chương trình cài đặt thuật toán CCP sử dụng cấu trúc Block theo thành phần liên thông ma trận liên kết Web việc tính PageRank máy tìm kiếm Vinahoo - Nghiên cứu sâu tối ưu min, max, trung bình, cách chia block phát triển phương pháp theo hướng song song hoá 33 Tài liệu tham khảo [1] Bùi Quang Minh Máy tìm kiếm Vinahoo Báo cáo kết nghiên cứu thuộc Đề tài khoa học đặc biệt cấp ĐHQGHN mã số QG-02-02, 2002 [2] Đỗ Thị Diệu Ngọc, Nguyễn Hoài Nam, Nguyễn Yến Ngọc, Nguyễn Thu Trang Giải pháp tính hạng trang cải tiến cho máy tìm kiếm Vinahoo Chuyên san “Các công trình nghiên cứu - triển khai Viễn thông CNTT”, Tạp chí Bưu Viễn thông, 14, 4-2005, 65-71 [3] Phạm Thị Thanh Nam, Bùi Quang Minh, Hà Quang Thụy Giải pháp tìm kiếm trang Web tương tự máy tìm kiếm Vinahoo Tạp chí Tin học Điều khiển học, 20(4), 293-304, 2004 [4] Andrew Y Ng, Alice X Zheng, and Michael I Jordan Stable algorithms for link analysis In Proceedings of the 24th Annual International ACM SIGIR Conference ACM, 2001 [5] Jon Kleinberg Authoritative sources in a hyperlinked environment Journal of the ACM, 46(5):604-632, November 1999 [6] Jiawei Han, Micheline Kamber, Data Mining: Concepts and Techniques Morgan Kaufmann Publishers, 2001, trang 435-443 [7] Kir Kolyshkin Vinahoo Manual Cung cấp http://www.Vinahoo.org 2002.The Anatomy of large scale Hypertextual Web Search Engine [8] Page, L., Brin, S., Motwani, R and Winograd, T 1998 The PageRank citation ranking: bringing order to the Web Technical report, Stanford University [9] Raymond Kosala, Hendrik Blockeel Web Mining Research: A Survey Department of Computer Science, Katholieke Uiniversiteit Leuven, Heuverlee, Belgium, trang 601-602 [10] Sepandar Kamvar, Taher Haveliwala, and Gene Golub (2003) Adaptive Methods for the Computation of PageRank Technical report, Stanford University [11] Sepandar D Kamvar, Taher H Haveliwala, Christopher D Manning Gene H Golub (2003) Exploiting the Block Structure of the Web for Computing PageRank Technical report, Stanford University 34 [12] S D Kamvar, T H Haveliwala, C D Manning, and G H Golub Extrapolation methods for accelerating PageRank computations In Proceedings of the Twelfth International World Wide Web Conference, 2003 [13] Sheldon Ross Introduction to probability models, 8th Edition Academic Press, January 2003 [14] Shian - Hua Lin, Meng Chang Chen, Jan-Ming Ho, ACIRD: Intelligent Internet Document Organization and Retrival IEEE transaction on knowledge and data engineering VOL 14, NO May/June 2002 [15] Taher H Haveliwala Topic-Sensitive PageRank WWW2002, May 7–11, 2002, Honolulu, Hawaii, USA (ACM 1581134495/02/0005) [16] Taher H Haveliwala Topic-Sensitive PageRank: A Context-Sensitive Ranking Algorithm for Web Search, 2003 [17] Taher H Haveliwala Efficient Computation of PageRank Technical report, Stanford University, 1999 [18] http://www.google.com 35

Ngày đăng: 21/11/2016, 02:35

Tài liệu cùng người dùng

Tài liệu liên quan