DANH MỤC THUẬT NGỮ ĐƯỢC SỬ DỤNG Anchor Text Đoạn văn bản nhúng vào một địa chỉ liên kết Breadth-First Crawler Bộ hệ thống thu thập thông tin bằng cách tìm kiếm theo chiều rộng Classifica
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRẦN BÌNH THÀNH
ỨNG DỤNG KỸ THUẬT HỌC MÁY TRONG CÔNG CỤ TÌM KIẾM THÔNG TIN THEO LĨNH VƯC CHUYÊN SÂU
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KHOA HỌC CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
Tiến sĩ: TRẦN ĐỨC KHÁNH
Hà Nội – Năm 2010
Trang 2MỤC LỤC
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Lịch sử tìm hiểu 2
3 Mục đích tìm hiểu, đối tượng, phạm vi tìm hiểu của luận văn 2
3.1 Mục đích tìm hiểu 2
3.2 Đối tượng tìm hiểu 3
3.3 Phạm vi tìm hiểu 3
4 Các luận điểm cơ bản và đóng góp mới của luận văn 4
4.1 Các luận điểm cơ bản 4
4.2 Đóng góp mới của luận văn 4
5 Phương pháp tìm hiểu 5
5.1 Phương pháp đọc và tìm hiểu tài liệu 5
5.2 Phương pháp thực nghiệm khoa học 5
5.3 Phương pháp so sánh - đối chiếu 5
6 Cấu trúc của luận văn 5
NỘI DUNG 7
CHƯƠNG I .7
TỔNG QUAN VỀ MÁY TÌM KIẾM THÔNG TIN THEO LĨNH VỰC CHUYÊN SÂU 7
1.1 Hệ thống tìm kiếm tổng quát 8
1.1.1 Kiến trúc chung của các hệ thống tìm kiếm 8
1.1.1.1 Bộ thu thập thông tin (Crawler) 8
1.1.1.2 Bộ lập chỉ mục (Indexer) 8
1.1.1.3 Bộ tìm kiếm thông tin (Searcher) 8
1.1.2 Nguyên lý làm việc chung của hệ thống tìm kiếm 9
1.1.2.1 Web crawling (Thu thập thông tin) 9
1.1.2.2 Indexing (Đánh chỉ mục) 9
Trang 31.1.3 Các vấn đề cần phải giải quyết đối với hệ thống tìm kiếm 10
1.2 Một số cách đánh giá chất lượng crawler 10
1.3 Hệ thống tìm kiếm theo lĩnh vực chuyên sâu 11
1.3.1 Tại sao phải xây dựng hệ thống tìm kiếm theo lĩnh vực chuyên sâu 11
1.3.2 Nguyên lý và kiến trúc của hệ thống tìm kiếm theo lĩnh vực chuyên sâu 13
1.3.2.1 Nguyên lý 13
1.3.2.2 Kiến trúc chung 13
CHƯƠNG II 17
CƠ SỞ LÝ THUYẾT VÀ GIẢI PHÁP ĐỂ XÂY DỰNG CÔNG CỤ THU THẬP THÔNG TIN THEO LĨNH VỰC CHUYÊN SÂU 17
2.1 Tổng quan về Học tăng cường và thuật toán Q-learning 17
2.1.1 Khái niệm về học tăng cường 17
2.1.2 Thuật toán Q-learning 19
2.1.3 Ví dụ minh họa cho thuật toán Q-learning 22
2.1.4 Nhận xét 30
2.1.5 Quan hệ giữa học tăng cường và bài toán crawler 30
2.1.6 Các khó khăn khi áp dụng Học tăng cường vào thực tế 30
2.1.7 Giải thuật Crawling theo lĩnh vực chuyên sâu 32
2.1.7.1 Anchor text và các đặc trưng để phân biệt các trang web 33
2.1.7.2 Ánh xạ: Tập các từ → giá trị Q 34
2.1.7.3 Xây dựng tập huấn luyện của crawler dựa trên Hadoop của Nutch 35
2.1.7.4 Huấn luyện crawler 41
2.1.7.5 Quá trình hoạt động của crawler 41
2.2 Phân loại văn bản bằng phương pháp vector hỗ trợ 43
2.2.1 Khái niệm về phân loại văn bản 43
2.2.2 Vai trò của phân loại văn bản và các yếu tố tác động đến kết quả phân loại văn bản trong bài toán crawl 43
Trang 42.2.3.1 Biểu diễn văn bản 44
2.2.3.2 Trích rút đặc trưng 48
2.2.4 Bộ phân loại vector hỗ trợ (Support Vector Machine – SVM) 50
2.2.4.1 Trường hợp phân tách tuyến tính 52
2.2.4.2 Siêu phẳng lề mềm 53
2.2.4.3 Tách phi tuyến 54
2.2.4.3 Ví dụ 56
2.2.4.4 Huấn luyện SVM 57
2.2.4.5 Giải bài toán tối ưu hóa bằng phương pháp Sequential Minimal Optimization (SMO) 58
2.2.4.6 Phân loại đa lớp bằng phương pháp Direct Acyclic Graph Support Vector Machines 58
2.2.5 Xây dựng bộ phân loại tài liệu với SVM ứng dụng cho bộ crawler trong hệ thống tìm kiếm thông tin theo lĩnh vực chuyên sâu 60
2.2.5.1 Các giải thuật và phương pháp được sử dụng để phát triển mô hình 60
2.2.5.2 Các biện pháp nâng cao hiệu quả cho máy phân lớp 61
2.3 Sử dụng automata kết hợp xác suất thống kê để tách từ tiếng Việt 62
2.3.1 Các hướng tiếp cận để tách từ 62
2.3.2 Khái quát về automata hữu hạn trạng thái xác định 62
2.3.3 Xây dựng đồ thị biểu diễn cụm từ 64
2.3.4 Giải quyết nhập nhằng 66
2.3.5 Xây dựng bộ tách từ tiếng Việt 68
2.3.5.1 Xây dựng từ điển từ vựng tiếng Việt 68
2.3.5.2 Xây dựng automata đoán nhận âm tiết tiếng Việt 69
2.3.5.3 Xây dựng automata đoán nhận từ vựng tiếng Việt 70
2.3.5.4 Xây dựng automata để mã hóa từ láy 70
2.3.5.5 Xây dựng automata đoán nhận tên riêng 72
2.3.5.6 Xây dựng modul cắt cụm từ 73
Trang 5CHƯƠNG III 77
CÀI ĐẶT THỬ NGHIỆM CÔNG CỤ THU THẬP THÔNG TIN THEO LĨNH VỰC CHUYÊN SÂU VÀ BÀN LUẬN 77
3.1 Phương hướng cài đặt hệ thống tìm kiếm thông tin theo lĩnh vực chuyên sâu 77
3.2 Kiến trúc của Nutch 78
3.3 Hoạt động của Nutch crawler 78
3.3.1 Cấu trúc thư mục làm việc của Nutch 79
3.3.2 Phiên làm việc của Nutch Crawler 82
3.3.3 Phiên làm việc của Nutch Crawler có ứng dụng học tăng cường 83
3.4 Kết quả thử nghiệm và bàn luận 85
3.4.1 Kết quả thử nghiệm của việc tách từ tiếng Việt 85
3.4.1.1 Kết quả trên Dantri 85
3.4.1.2 Kết quả trên VnExpress 86
3.1.4.3 Kết quả trên Vietnamnet 86
3.4.1.4 Kết quả trung bình 87
3.4.2 Kết quả thử nghiệm với bộ phân loại tài liệu với SVM cho các tài liệu tiếng Việt 87
3.4.2.1 Bộ dữ liệu tin tức gồm 3 chủ đề: "pháp luật", "đời sống" và "giáo dục", được lấy từ báo điện tử vnexpress.net 88
3.4.2.2 Phân loại 2 lớp với bộ dữ liệu lấy từ trang Dantri 89
3.4.3 Kết quả thử nghiệm cho hệ thống thu thập thông tin 89
3.4.3.1 Thử nghiệm trên trang báo điện tử VNExpress với chuyên mục sức khỏe 90
3.4.3.2 Thử nghiệm trên 24h với chuyên mục tuyển dụng Công nghệ thông tin 91
KẾT LUẬN VÀ KIẾN NGHỊ 94
TÀI LIỆU THAM KHẢO 95
Trang 6Bảng 1.1: Kết quả tách từ trung bình với dữ liệu từ Dantri .86
Bảng 1.2: Kết quả tách từ trung bình với dữ liệu từ VnEpxress 86
Bảng 1.3: Kết quả tách từ trung bình với dữ liệu từ Vietnamnet 86
Bảng 1.4: Kết quả trung bình của việc tách từ tiếng Việt, từ hai nguồn dữ liệu Vietnamnet và VnExpress 87
Bảng 1.5: Kết quả thử nghiệm SVM với 3 chủ đề Pháp luật, Đời sống và Giáo dục .88
Bảng 1.6: Kết quả thử nghiệm phân loại tài liệu tiếng Việt 2 lớp .89
DANH MỤC HÌNH VẼ Hình 1.1: Kiến trúc tổng quát của một hệ thống tìm kiếm 8
Hình 1.2: Minh họa cho hiệu quả của hệ thống tìm kiếm theo lĩnh vực chuyên sâu 12
Hình 1.3: Minh họa hoạt động của các loại crawler trên một đồ thị link .13
Hình 1.4: Mô hình kiến trúc của hệ thống tìm kiếm theo lĩnh vực chuyên sâu do nhóm SE2010 đề xuất .16
Hình 2.1: Quan hệ giữa tác tử và môi trường trong học tăng cường 17
Hình 2.2: Đồ thị mô hình hóa trạng thái 22
Hình 2.3: Đồ thị trạng thái khởi động ban đầu 22
Hình 2.4: Đồ thị trạng thái sau khi đã kết thúc giải thuật .29
Hình 2.5: Minh họa việc chuyển trạng thái của Crawler .31
Hình 2.6: Ví dụ về quan hệ giữa anchor text và URL 33
Hình 2.7: Mô phỏng giá trị Q cho từng link .34
Hình 2.8: Mô hình thuật toán MapReduce 35
Hình 2.9: Minh họa về Out-link và In-link 38
Hình 2.10: Minh họa cho việc cập nhật Score cho các Inlink (đường nét đứt) 39
Trang 7Hình 2.12: Quá trình hoạt động của bộ crawl 42
Hình 2.13: Mô hình bài toán phân loại văn bản 43
Hình 2.14: Minh học cách biểu diễn văn bản theo vector trọng số .45
Hình 2.15: Mô hình không gian vector với 3 tài liệu và 3 khái niệm .45
Hình 2.16: Minh họa về góc giữa các vector tài liệu 47
Hình 2.17: Ý tưởng của phương pháp Support Vector Machine .51
Hình 2.18: Mặt siêu phẳng tách các mẫu dương khỏi mẫu âm .52
Hình 2.19: Minh họa cho trường hợp siêu phẳng lề mềm .53
Hình 2.20: Minh họa cho việc sử dụng ánh xạ phi tuyến φ .54
Hình 2.21: Đồ thị của hàm phân biệt các lớp .57
Hình 2.22: Ý tưởng của giải thuật Direct Acyclic Graph Support Vector Machines 59
Hình 2.23: Mô hình bộ phân loại tài liệu với SVM 60
Hình 2.24: Mô hình tiền xử lý mẫu huấn luyện 61
Hình 2.25: Đồ thị biểu diễn cụm từ có sự nhập nhằng .64
Hình 2.26: Một tình huống nhập nhằng cần được xử lý .65
Hình 2.27: Từ điển biễu diễn dạng cây 68
Hình 2.28: Từ điển đã được tối thiếu hóa .69
Hình 2.29: Mô hình xây dựng automata đoán nhận âm tiết tiếng Việt 70
Hình 2.30: Mô hình xây dựng automata đoán nhận từ vựng tiếng Việt .70
Hình 2.31: Minh họa bộ chuyển trạng thái hữu hạn f1 cho lớp a .71
Hình 2.32: Minh họa bộ chuyển trạng thái hữu hạn f2 với 2 từ láy thuộc lớp b .71
Hình 2.33: Minh họa bộ chuyển trạng thái hữu hạn f2 với 3 từ láy thuộc lớp b .71
Hình 2.34: Minh họa bộ chuyển trạng thái hữu hạn f với 4 từ láy thuộc lớp c 723 Hình 2.35: Mô hình quá trình đoán nhận tên riêng sử dụng automata .73
Hình 2.36: Minh họa cho hoạt động của modul cắt cụm từ 74
Hình 2.37: Kiến trúc bộ tách từ tiếng Việt 75
Hình 3.1: Kiến trúc một máy tìm kiếm dựa trên Nutch .78
Trang 8Hình 3.3: Cấu trúc thư mục làm việc của Nutch Crawler .80
Hình 3.4: Phiên làm việc của Nutch Crawler .82
Hình 3.5: Phiên làm việc của Nutch Crawler có ứng dụng học tăng cường .84
Hình 3.6: Biểu đồ kết quả tách từ với dữ liệu từ Dantri .85
Hình 3.7: Biểu đồ kết quả tách từ với dữ liệu từ VnExpress 86
Hình 3.8: Biểu đồ kết quả tách từ với dữ liệu từ Vietnamnet 87
Hình 3.9: Biểu đồ kết quả phân loại văn bản 2 lớp .89
Hình 3.10: Kết quả thử nghiệm trên VNExpress với chuyên mục sức khỏe .91
Hình 3.11: Kết quả thử nghiệm trên 24h với chuyên mục "tuyển dụng công nghệ thông tin" .92
Trang 9DANH MỤC THUẬT NGỮ ĐƯỢC SỬ DỤNG
Anchor Text Đoạn văn bản nhúng vào một địa chỉ liên kết
Breadth-First Crawler Bộ (hệ thống) thu thập thông tin bằng cách tìm
kiếm theo chiều rộng Classification/ classifier Phân lớp/ lớp
Crawler Bộ thu thập thông tin
Direct Acyclic Graph Support
Vector Machines (DAGSVM)
Phương pháp vector hỗ trợ đồ thị không tuần hoàn hoàn toàn
Domain-specific seach engine Máy tìm kiếm thông tin theo lĩnh vực chuyên sâu Focused Crawler Hệ thống thu thập thông tin tập trung được giới
thiệu bởi [3]
General search engine Máy tìm kiếm tổng quát
Hadoop Thư viện cho mô hình lập trình MapReduce
Indexer Bộ đánh chỉ mục
In-link Địa chỉ liên kết trỏ tới một trang web
Intelligent crawler hoặc
intelligent spider
Bộ tìm kiếm thông minh
Karash – Kuhn – Tucker
(KKT)
Điều kiện để bài toán tối ưu hóa có nghiệm
Link Địa chỉ liên kết của một trang web
Map File Định dạng lưu trữ được đánh chỉ mục của Hadoop MapReduce Một mô hình lập trình song song
Minimal Deterministic
Finite-state Automata (MDFA)
Automata hữu hạn trạng thái xác định tối thiểu
Nutch Thư viện mã nguồn mở bằng ngôn ngữ Java để
xây dựng máy tìm kiếm của hãng Apache Online search Tìm kiếm trực tuyến
Trang 10Optimal Orthogonal Centroid
Feature Selection (OCFS)
Phương pháp lựa chọn đặc trưng trọng tâm trực giao tối ưu
Out-link Địa chỉ liên kết xuất phát từ một trang web
Reinforcement learning (RL) (Phương pháp) học tăng cường
Retrieval system rank Thứ hạng của hệ thống sau khi cập nhật
Score Điểm (độ ưu tiên) cho một liên kết hoặc một trang
web Search engine Máy tìm kiếm thông tin
Searcher Bộ tìm kiếm thông tin đã được đánh chỉ mục
Sequence File Định dạng dữ liệu theo kiểu tuần tự của Hadoop Sequential Minimal
Optimization (SMO)
Phương pháp tối ưu hóa tuần tự cực tiểu
Support Vector Machine -
(SVM)
Phương pháp phân loại vector hỗ trợ
Uniform Resource Locator -
(URL)
Đường dẫn, được cấu tạo bởi 5 thành phần chính, bao gồm: tên giao thức, dịch vụ World Wide Web (www), tên miền, cổng và phần phụ
Vector Space Model (VSM) Mô hình không gian vector
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Trong thời đại ngày nay, thông tin là nhu cầu thiết yếu đối với mọi người trên mọi lĩnh vực Với số lượng các trang Web lên đến hàng tỉ, theo Viện tìm hiểu NEC, cứ mỗi giây lại có thêm 25 trang Web mới bổ sung vào con số 1,4 tỷ trang đã
Để có thể tìm kiếm được thông tin mong muốn được nhanh hơn, chính xác hơn và có thể tái sử dụng trên nhiều lĩnh vực khác nhau với một chi phí đầu tư chấp nhận được của các cơ quan, tổ chức trong thực tế thì việc sử dụng máy tìm kiếm
(1) http://www.echip.com.vn/echiproot/weblh/suutam/2000/pcworld/cctkmtm.htm
(2) http://www.google.com
(3) http://www.microsoft.com/vietnam/news/bing_090603.aspx
Trang 12thông tin theo lĩnh vực chuyên sâu (theo chủ đề/ chuyên mục) là hợp lý Đây cũng chính là các lý do cơ bản mà luận văn lựa chọn đề tài này
2 Lịch sử tìm hiểu
Để khắc phục hạn chế của hệ thống tìm kiếm tổng quát như đã trình bày ở trên, hiện nay đã có nhiều giải pháp được đề xuất đó là xây dựng các cổng Internet theo lĩnh vực chuyên sâu và đã đem lại kết quả khá khả quan, chẳng hạn như:
- www.mrqe.com (Stewart M Clamen - 1993):(4) Cho phép người dùng tìm kiếm các nhận xét của các bộ phim Khi nhập vào một tên phim, chương trình sẽ cung cấp các liên kết đến các nhận xét có liên quan từ báo, tạp chí, và cá nhân từ khắp nơi trên thế giới;
- www.maths.usyd.edu.au/MathSearch.html (Peregrinator - 1994):(5) Cho phép người dùng tìm kiếm các trang web về toán học;
- www.travel-finder.com (Ken Wadland - 1996):(6) Cho phép người dùng tìm kiếm các trang web về du lịch, với các tiện ích đặc biệt để tìm kiếm theo phạm
vi hoạt động, thể loại và vị trí;
- Và đặc biệt là hướng phát triển của www.cora.justresearch.com (McCallum
- 1999): Cho phép tìm kiếm các báo cáo về khoa học máy tính, bằng cách ứng dụng
kỹ thuật học máy trong việc tìm kiếm thông tin theo lĩnh vực chuyên sâu
Tiếp thu thành tựu của các nhà khoa học đi trước, chúng tôi cố gắng thực
hiện đề tài: "Ứng dụng kỹ thuật học máy trong công cụ tìm kiếm thông tin theo
lĩnh vực chuyên sâu" Bởi vì các công trình tìm hiểu trên có tính chất định hướng
cho luận văn của chúng tôi
3 Mục đích tìm hiểu, đối tượng, phạm vi tìm hiểu của luận văn
3.1 Mục đích tìm hiểu
Một hệ thống tìm kiếm thông tin nói chung đều phải giải quyết ba bài toán
cơ bản Đó là, xây dựng các công cụ: Thu thập thông tin (crawler); lập chỉ mục (indexer) và tìm kiếm (searcher)
(4) Theo http://www.mrqe.com/about
(5) Từ 2001 đã đổi tên là www.maths.usyd.edu.au/SMSsearch.html
(6) Theo http://www.robotstxt.org/db/smartspider.html
Trang 13Trong khuôn khổ đề tài, luận văn tập trung tìm hiểu và tích hợp các modul phân loại văn bản dùng vector hỗ trợ và modul tách từ tiếng Việt dùng automata kết hợp xác xuất thống kê với modul thu thập thông tin ứng dụng ý tưởng của lý thuyết học tăng cường sử dụng thuật toán Q-Learning để xây dựng một bộ (công cụ) thu thập thông tin trong hệ thống tìm kiếm thông tin theo lĩnh vực chuyên sâu với chiến lược tìm được đường đi ngắn nhất tới tài liệu và tránh tối đa các vùng không có khả năng đem lại tài liệu đúng chủ đề theo hướng đề xuất của McCallum
3.2 Đối tượng tìm hiểu
Luận văn tập trung tìm hiểu các vấn đề cơ bản về bộ thu thập thông tin trong các hệ thống tìm kiếm thông tin, đặc biệt là ý tưởng xây dựng công cụ tìm kiếm thông tin theo lĩnh vực chuyên sâu bằng cách ứng dụng lý thuyết về học tăng cường do McCalum đã đề xuất
Với mong muốn xây dựng công cụ thu thập thông tin theo lĩnh vực chuyên sâu có sự ưu tiên cho người dùng tiếng Việt, phương pháp phân loại văn bản dùng vector hỗ trợ và ứng dụng automata hữu hạn trạng thái xác định kết hợp xác suất thống kê để thực hiện tách từ tiếng Việt cũng được quan tâm
Ngoài ra, luận văn còn tìm hiểu thêm một số vấn đề về mã nguồn mở Nutch
để xây dựng và cài đặt thử nghiệm hệ thống theo ý tưởng đã xây dựng
3.3 Phạm vi tìm hiểu
Trên cơ sở tìm hiểu ứng dụng một số thuật toán của các công trình đã nghiên cứu trước đây có liên quan tới mục đính chính là tập trung tìm hiểu và tích hợp modul tách từ tiếng Việt sử dụng automata hữu hạn trạng thái xác định kết hợp xác suất thống kê và modul phân loại văn bản dùng vector hỗ trợ với modul crawler có ứng dụng ý tưởng của lý thuyết học tăng cường theo lĩnh vực chuyên sâu dựa trên
cơ chế thu thập thông tin của mã nguồn mở Nutch Một số thuật toán cơ bản mà luận văn đã tìm hiểu để phục vụ cho mục đích mà đề tài muốn đề cập là:
- Thuật toán Q-Learning cho học tăng cường của Watkins, phương pháp phân loại hồi qui của Luís Torgo and João Gama;
Trang 14- Thuật tốn phân loại văn bản bằng vector hỗ trợ (SVM) của Vladimir Vapnik, với sự lựa chọn các đặc trưng theo thuật tốn trọng tâm trực giao tối ưu (OCFS) và thuật tốn tối ưu hĩa tuần tự cực tiểu (SMO);
- Thuật tốn xây dựng automata tối thiểu mã hĩa từ vựng tiếng Việt của nhĩm tác giả Jan Daciuk, thuật tốn xây dựng automata đốn nhận âm tiết và từ vựng, cũng như để mã hĩa từ láy và đốn nhận tên riêng của nhĩm tác giả Nguyễn Minh Huyền và Lê Hồng Phương
4 Các luận điểm cơ bản và đĩng gĩp mới của luận văn
4.1 Các luận điểm cơ bản
Khi thiết kế một website, nhà thiết kế mong muốn người dùng tìm được thơng tin cần thiết dễ dàng nhất Do đĩ, các kí tự chứa liên kết (anchor) và text của trang web chứa link đĩ cĩ khả năng biểu đạt nội dung rất tốt Hệ thống thu thập thơng tin theo lĩnh vực chuyên sâu này sử dụng triệt để các anchor và nội dung văn bản của các trang web để quyết định đường đi Từ đĩ tiết kiệm được thời gian cũng như băng thơng đường truyền cho tồn bộ quá trình Để nhận biết được đặc trưng của anchor và nội dung văn bản của trang web, bộ phân loại văn bản bằng vector
hỗ trợ sẽ được sử dụng
Do các tài liệu tiếng Việt cĩ các đặc điểm riêng (cĩ từ láy, từ ghép, ) nên trước khi phân loại văn bản chúng tơi phải sử dụng thao tác tách từ sao cho cĩ hiệu quả giúp cho quá trình thu thập thơng tin bằng ngơn ngữ tiếng Việt được chính xác nhất cũng cần được quan tâm
4.2 Đĩng gĩp mới của luận văn
Luận văn đã cho thấy khả năng cải thiện hiệu năng làm việc của hệ thống tìm kiếm thơng tin theo lĩnh vực chuyên sâu bằng cách thay thế phương pháp phân loại văn bản Nạve Bayes theo đề xuất của nhĩm tác giả McCallum bằng phương pháp dùng vector hỗ trợ
Để tăng khả năng thích ứng của hệ thống trong quá trình thu thập thơng tin
là tiếng Việt, ngồi việc ứng dụng phương pháp tách từ tiếng Việt của nhĩm tác giả
Lê Hồng Phương đề xuất, chúng tơi đã bổ sung thêm modul cắt cụm từ
Trang 15Hơn nữa luận văn còn mong muốn có thể xây dựng một hệ thống thu thập thông tin theo lĩnh vực chuyên sâu bằng cách không những chỉ phân tích các trang web đúng chủ đề mà còn có khả năng dựa vào các trang web trung gian (trang web không mang chủ đề) để tìm đến trang web đúng chủ đề, vì trong thực tế có rất nhiều trang web không đúng chủ đề lại gián tiếp trỏ tới trang web đúng chủ đề
Hệ thống có khả năng hoạt động trên môi trường tiếng Việt Do đó, hệ thống có thể phục vụ tốt cho người dùng tiếng Việt Cùng với chi phí đầu tư có thể chấp nhận được và khả năng linh hoạt của hệ thống sau khi được hoàn thiện hoàn toàn có thể giúp cho các cơ quan, tổ chức xây dựng và duy trì cổng thông tin điện tử
để tìm kiếm thông tin về một lĩnh vực chuyên sâu khi có nhu cầu
5 Phương pháp tìm hiểu
5.1 Phương pháp đọc và tìm hiểu tài liệu
Phương pháp đọc và tìm hiểu tài liệu được tiến hành chủ yếu sau khi xác định cơ sở lý luận cho đề tài Để giải quyết tốt vấn đề đặt ra của đề tài, cần tiến hành tìm hiểu lý thuyết về khoa học đánh giá cũng như một số vấn đề về lý thuyết có liên quan đã trình bày trong phần đối tượng tìm hiểu của luận văn
5.2 Phương pháp thực nghiệm khoa học
Với khoa học đánh giá thì thực nghiệm là một khâu quan trọng trong quy trình tìm hiểu Do vậy, việc thử nghiệm trong đề tài này không phải chỉ như một phương pháp tìm hiểu mà còn là một nội dung nhất thiết cần phải có
5.3 Phương pháp so sánh - đối chiếu
Để thấy được hiệu quả của mục đích tìm hiểu, chúng tôi đã tiến hành so sánh kết quả chạy thử nghiệm của hệ thống đã xây dựng với các hệ thống tìm kiếm khác, như: hệ thống Breadth-First Crawler và hệ thống Focued Crawler trên cùng một điều kiện tương đương
6 Cấu trúc của luận văn
Ngoài phần mở đầu và kết luận cùng với định hướng về hướng phát triển của đề tài, luận văn được trình bày chủ yếu trong 3 chương:
Trang 16Chương I: Trình bày một cách tổng quan về hệ thống tìm kiếm, từ đó đưa ra
sự cần thiết của việc xây dựng công cụ tìm kiếm thông tin theo lĩnh vực chuyên sâu; Chương II: Trình bày các cơ sở lý thuyết và giải pháp để xây dựng công cụ thu thập thông tin theo lĩnh vực chuyên sâu;
Chương III: Trình bày các vấn đề cơ bản về mã nguồn mở Nutch và kết quả thử nghiệm công cụ thu thập thông tin theo lĩnh vực chuyên sâu
Trang 17
NỘI DUNG Chương I
TỔNG QUAN VỀ MÁY TÌM KIẾM THÔNG TIN THEO LĨNH VỰC
Việc khai thác lượng tri thức trên là một thách thức lớn Để tìm được thông tin đúng nhu cầu, đòi hỏi chi phí rất lớn về phần cứng và chất xám Các máy tìm kiếm tổng quát (general search engine) đã ra đời và đã đáp ứng được nhu cầu của con người như Yahoo(7), Bing(8), Google, hay tại Việt Nam là Socbay(9), Xalo(10) Khó khăn đặt ra là các máy tìm kiếm hiện nay chưa thể tìm hết được dữ liệu trên Internet Theo các số liệu đánh giá thì mới chỉ có khoảng 60% tài nguyên trên Internet được xử lý và tìm kiếm Một vấn đề khác là các máy tìm kiếm tổng quát thường trả về quá nhiều kết quả, làm cho người dùng bối rối khi tìm cho mình kết quả phù hợp
Vì vậy, qua việc tìm hiểu các vấn đề cần phải giải quyết đối với hệ thống tìm kiếm tổng quát ta sẽ thấy sự cần thiết của các đề xuất cho việc xây dựng một bộ thu thập thông tin của hệ thống tìm kiếm thông tin theo lĩnh vực chuyên sâu
Trang 181.1 Hệ thống tìm kiếm tổng quát
1.1.1 Kiến trúc chung của các hệ thống tìm kiếm
Theo nhiều tác giả khác khi bàn luận đến tổng quan về Search Engine ta thấy một hệ thống tìm kiếm thông tin nói chung có ba thành phần chính (Hình 1.1):
1.1.1.1 Bộ thu thập thông tin (Crawler)
Bộ thu thập thông tin là một chương trình tự động có nhiệm vụ thu thập tài liệu và một cách đệ quy Nó nhận về tất cả tài liệu có liên kết với tài liệu gốc theo một trình tự tối ưu
1.1.1.2 Bộ lập chỉ mục (Indexer)
Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện việc phân tích, trích chọn những thông tin cần thiết từ những dữ liệu mà crawler thu thập được và tổ chức thành cơ sở dữ liệu riêng để sau đó giúp cho việc tìm kiếm trên đó một cách nhanh chóng, hiệu quả Bởi nó là danh sách các từ khoá,
và được chỉ rõ các từ khoá đó xuất hiện ở trang nào, địa chỉ nào
1.1.1.3 Bộ tìm kiếm thông tin (Searcher)
Bộ tìm kiếm thông tin tương tác với người dùng (user) thông qua giao diện web, có nhiệm vụ tiếp nhận câu truy vấn và trả về những tài liệu thoả mãn yêu cầu của người dùng
Hình 1.1: Kiến trúc tổng quát của một hệ thống tìm kiếm
Trang 19Ngày nay, hầu hết các search engine đều hỗ trợ chức năng tìm kiếm cơ bản
và nâng cao, tìm từ đơn, từ ghép, cụm từ, danh từ riêng, hay giới hạn phạm vi tìm kiếm như tên đề mục, tiêu đề, đoạn văn bản giới thiệu về trang web,… Ngoài chiến lược tìm chính xác theo từ khoá, các search engine còn cố gắng "hiểu" ý nghĩa thực
sự của câu hỏi thông qua những câu chữ do người dùng cung cấp
1.1.2 Nguyên lý làm việc chung của hệ thống tìm kiếm
Một hệ thống tìm kiếm nói chung hoạt động theo trình tự như sau:
1.1.2.1 Web crawling (Thu thập thông tin)
Hệ thống tìm kiếm Web hoạt động bằng cách lưu trữ thông tin về nhiều trang web, thông qua việc khai thác các phần tử đánh dấu trong HTML Chẳng hạn như đánh dấu liên kết ngoài chứa phần liên kết từ trang này đến trang kia Ví dụ, <a
href="http://www.wikipedia.org/">Wikipedia</a> sẽ hiển thị từ Wikipedia như là một liên kết ngoài đến một URL Đồng thời với đó là các giải pháp khai thác các thẻ META, trong đó được lưu tâm nhất là các thẻ: <META name="description" content="(miêu tả ngắn nội dung trang Web)">; <META name="keywords" content="(danh sách từ khoá)"> và thẻ <title>(tựa đề của trang Web)</title>
Thường kỳ, máy tìm kiếm sẽ dò quyét nội dung tất cả các trang Web trên Internet và cập nhật nội dung văn bản (text) vào cơ sở dữ liệu khổng lồ của mình
mà người dùng có thể khai thác Để làm việc này, các máy tìm kiếm thường gửi các Web crawler, web spider hay web robot (ví dụ googlebot của Google hay Yahoo slurp của Yahoo) đến các trang cần đánh chỉ mục hoặc lưu trữ Các chương trình máy tính thực hiện tìm kiếm thông tin trên internet này sẽ truy cập phân tích và gửi nội dung về các máy tìm kiếm
1.1.2.2 Indexing (Đánh chỉ mục)
Lập chỉ mục là giai đoạn phân tích tài liệu (document) để xác định các chỉ mục (term / index term) biểu diễn nội dung của tài liệu Nội dung của mỗi trang tìm kiếm được, sau đó sẽ được phân tích để lập chỉ mục cho nó theo tiêu chí mà hệ thống đã xây dựng (ví dụ, các từ được lấy ra từ các chức danh, tiêu đề, hoặc lĩnh
Trang 20vực đặc biệt gọi là meta tags).Mục đích của việc đánh chỉ mục là phục vụ cho việc tìm được thông tin cần quan tâm càng nhanh càng tốt
Các công cụ tìm kiếm chính là giao diện Web tương tác với người dùng của các máy tìm kiếm Có thể kể đến một số công cụ tìm kiếm phổ biến sau:
1.1.3 Các vấn đề cần phải giải quyết đối với hệ thống tìm kiếm
Một hệ thống tìm kiếm, cần phải tập trung giải quyết tốt các vấn đề sau:
• Đảm bảo cho quá trình crawling có thể đến được mọi tài liệu trên internet càng nhiều càng tốt
• Tổ chức tốt hệ thống crawler phân tán
• Tối ưu hóa lưu trữ các dữ liệu đã được tải về trên một số lượng máy chủ có hạn
• Đảm bảo phục vụ cùng một lúc hàng triệu người
• Biện pháp phân hoạch, loại bỏ các tài liệu tương tự nhau ra khỏi hệ thống máy chủ khi mà số lượng tài liệu được quản lý ngày một nhiều
1.2 Một số cách đánh giá chất lượng crawler
Trong một ý nghĩa chung [11], một crawler, đặc biệt là một crawler theo chủ đề có thể được đánh giá trên khả năng của nó để lấy lại được các trang(11) "tốt/ quan trọng" Một
số biện pháp để đánh giá một trang là "tốt/ quan trọng":
(11) Trong luận văn này khái niệm "trang" và "trang web" được hiểu như nhau
Trang 211: Các từ khóa trong tài liệu: Một trang được xem là quan trọng nếu nó chứa đựng
một vài hoặc tất cả các từ khóa trong câu truy vấn Ngoài ra, tần suất mà từ khóa xuất hiện trên trang cũng có thể được xem xét
2: Độ tương tự với một câu truy vấn: Độ tương tự giữa sự mô tả dài hoặc ngắn và
một trang được crawler có thể được sử dụng để đánh giá sự quan trọng của trang là thích hợp
3: Độ tương tự với các trang hạt giống: Các trang hạt giống được kết hợp với nhau
thành một tài liệu duy nhất và độ tương tự cosine của tài liệu này với một trang đã được crawler, được sử dụng để xác định mức độ liên quan của trang với tài liệu 4: Điểm của lớp: Một lớp được huấn luyện sau đó sẽ liên tục cung cấp luận lý
(Boolean) hoặc cung cấp điểm liên quan cho các trang web đã được crawler 5: Thứ hạng của hệ thống sau khi cập nhật (Retrieval system rank): N các crawler
khác nhau được bắt đầu từ một vài trang hạt giống và cho phép để chạy cho đến khi
mỗi crawler tập hợp được P trang Tất cả N P trang được tập hợp từ các crawler được xếp hạng lại với truy vấn ban đầu hoặc bằng cách mô tả một hệ thống sau khi cập nhật cho một trang như việc phân tích hệ thống và phục hồi của văn bản Thứ hạng được cung cấp bởi hệ thống sau khi được cập nhật cho một trang web được xem như là điểm để xác định mức độ quan trọng của nó
1.3 Hệ thống tìm kiếm theo lĩnh vực chuyên sâu
1.3.1 Tại sao phải xây dựng hệ thống tìm kiếm theo lĩnh vực chuyên sâu
Lý do cơ bản khiến cho các hệ thống tìm kiếm tổng quát hiện nay có kết quả trả
về không phải lúc nào cũng thỏa mãn yêu cầu tìm kiếm của người sử dụng Nguyên nhân là do các hệ thống tìm kiếm tổng quát rất "tham lam", mong muốn tập hợp được càng nhiều tài liệu càng tốt, và sự tập hợp này không được định hướng bởi những mục đích rõ ràng Nhược điểm cơ bản này của các hệ thống tìm kiếm tổng quát đã gây ra không ít khó khăn cho người sử dụng trong việc tìm kiếm chính xác thông tin mình cần Hơn nữa việc đầu tư kinh phí để xây dựng và duy trì hệ thống tìm kiếm tổng quát cũng rất lớn, không phải bất kỳ cơ quan, tổ chức nào muốn là cũng có được
Hệ thống tìm kiếm theo lĩnh vực chuyên sâu (để cho tiện ta tạm gọi là theo chủ đề/ chuyên mục) là một loại hệ thống tìm kiếm được xây dựng cho việc tìm kiếm
Trang 22thông tin trong một lĩnh vực cụ thể Khi người dùng muốn tìm kiếm thì hệ thống tìm kiếm theo chủ đề sẽ chỉ tập trung vào chủ đề đó, trả về ít kết quả hơn đồng nghĩa với tăng khả năng chính xác và giảm thiểu khả năng gây nhập nhằng Ví dụ: Một nha sĩ khi tìm vật liệu làm răng giả bằng gốm sứ sẽ gõ từ “ceramics” và nhận được từ Google rất nhiều kết quả về vật liệu xây dựng Nhưng nếu có một máy tìm kiếm cho chuyên ngành y học chẳng hạn thì kết quả có lẽ sẽ phù hợp hơn với vị nha sĩ kia ( Hình 1.2)
Hình 1.2: Minh họa cho hiệu quả của hệ thống tìm kiếm theo lĩnh vực chuyên sâu
Hình 1.2 cho thấy: Cùng với một từ "ceramics", thì Google.com.vn trả về
cho ta 34.800.000 kết quả còn với search.dentalproductsreport.com thì trả về cho ta
272 kết quả.(12)
Tính khả thi của hệ thống tìm kiếm thông tin theo lĩnh vực chuyên sâu còn được đảm bảo bởi với một sự đầu tư cần thiết chấp nhận được, cùng với hy vọng sẽ phục tốt cho từng loại đối tượng người dùng cụ thể Ví dụ: Một nhà sử học khi thực hiện tìm
kiếm qua từ khóa "Hà Nội 36 phố phường" sẽ có kết quả trả về khác hẳn với một người tìm đường đi khi thực hiện việc tìm kiếm cùng với từ khóa đó
Trang 23
1.3.2 Nguyên lý và kiến trúc của hệ thống tìm kiếm theo lĩnh vực chuyên sâu 1.3.2.1 Nguyên lý
Nguyên lý của hệ thống tìm kiếm theo lĩnh vực chuyên sâu về cơ bản cũng giống như hệ thống tìm kiếm tổng quát Chỉ khác ở chỗ thay vì tải toàn bộ (hoặc phần lớn) các tài liệu hiện có trên internet thì nay chỉ thực hiện tải toàn bộ (hoặc phần lớn) các tài liệu hiện có trên internet thuộc một hoặc một vài lĩnh vực hẹp đã được xác định trước về hệ thống máy chủ Rồi cũng lập chỉ mục, sắp xếp, và tiến hành tìm kiếm trên
hệ thống đã sắp xếp
1.3.2.2 Kiến trúc chung
Do mạng internet được tạo thành gồm các trang web và các đường link nên ta
có thể mô hình hóa mạng internet dưới dạng đồ thị (Hình 1.3) Crawler khi hoạt động cũng giống như việc duyệt đồ thị
a) Breadth-first crawler b) Focused crawler. c) Intelligent crawler
Hình 1.3: Minh họa hoạt động của các loại crawler trên một đồ thị link
Trong Hình 1.3: Mũi tên biểu thị các đường link; nút màu đen biểu thị các trang web đã được duyệt; nút gạch chéo biểu thị các tài liệu đúng chủ đề và nút mầu trắng biểu thị các trang web bị bỏ qua trong quá trình crawler Ở đây:
a) Nếu như Breadth-first crawler, khi thực hiện sẽ thực hiện hệ thống sẽ duyệt từng tầng một cách lần lượt và không bỏ qua bất kỳ nút nào;
b) Hay Focused crawler lúc đầu khi thực hiện cũng giống như Breadth-first crawler, đến khi phải lựa chọn giữa link mang tài liệu và link không mang tài liệu, thì focused crawler sẽ bỏ qua những link không trỏ tới tài liệu, cho dù sau đó rất có thể vẫn có link mang tài liệu mà ta cần;
Trang 24c) Còn Intelligent crawler của chúng ta (crawler ứng dụng học tăng cường) với
hy vọng sẽ dự đoán được các link nằm trong đường dẫn tới tài liệu và bỏ qua các link không có tiền năng ở thời điểm sớm nhất có thể
Vì thế, khi xây dựng hệ thống tìm kiếm theo lĩnh vực chuyên sâu chúng ta cần quan tâm đến việc xây dựng một bộ crawler theo chiều rộng hay một bộ crawler thông minh Hiện có hai hướng tiếp cận cơ bản để xây dựng hệ thống tìm kiếm theo lĩnh vực chuyên sâu là:
• Một là lấy hết dữ liệu về rồi lọc ra dữ liệu đúng
• Hai là chọn lựa tài liệu ngay trong quá trình lấy dữ liệu từ Internet
Cách tiếp cận thứ nhất phải có tài nguyên tính toán và băng thông cực lớn Hơn nữa, xu hướng ngày nay là tìm kiếm trực tuyến, đòi hỏi các kết quả tìm kiếm phải cập nhật mới nhất do vậy hướng tiếp cận này không khả thi Cách tiếp cận thứ hai sẽ loại
bỏ được rất nhiều tài liệu dư thừa trong quá trình thu thập, tiết kiệm được tài nguyên tính toán nên sẽ có chu kỳ thu thập dữ liệu ngắn hơn đồng nghĩa tiếp cận được tài liệu mới nhanh hơn
Một khó khăn lớn nhất của hệ thống tìm kiếm theo lĩnh vực chuyên sâu là bộ crawler phải ước tính được những đường link nào có tiềm năng dẫn đến tài liệu mà ta quan tâm Để giải quyết vấn đề này, chúng tôi tiếp tục lựa chọn hướng đề xuất của McCallum [1] là xây dựng một bộ Crawler thông minh áp dụng kỹ thuật học máy, bằng cách ứng dụng lý thuyết học tăng cường dựa trên các giá trị điểm thưởng (reward) hoặc điểm phạt (punishment) Tức là, từ bộ dữ liệu mẫu ban đầu ta phải ước tính được các điểm thưởng trong tương lai nhằm ước lượng được các đường link chứa các tài liệu mà ta cần quan tâm từ vị trí nhìn tại link hiện tại (điều này sẽ được trình bày rõ hơn trong chương II), trong đó đặc biệt quan tâm tới các tài liệu tiếng Việt Hình 1.4 là một hướng đề xuất cho kiết trúc tổng thể của một hệ thống tìm kiếm theo lĩnh vực chuyên sâu của nhóm tìm hiểu về Search Engine năm 2010 (gọi tắt là nhóm SE2010)(13) Trong kiến trúc này:
(13) Nhóm tìm hiểu về Search Engine năm 2010 do Tiến sĩ Trần Đức Khách - Viện Công nghệ thông tin và Truyền thông - trường Đại học Bách khoa Hà Nội, hướng dẫn gồm 9 thành viên: Vũ Đình Thi + Lê Đại Dương + Nguyễn Trọng Nhân, lớp INPG04; Nguyễn Ngọc Đức + Nguyễn Trọng Tấn, lớp HTTT K50; Nhữ Đình Tạo, lớp Tin Pháp K50; Bùi Anh Đức, lớp AS1-Việt Nhật; Trần Bình Thành, lớp cao học CNTT 2008-
Trang 25Bắt đầu một crawler, các dữ liệu đầu vào được đưa vào lớp thu thập tin tức (intelligence) Trong lớp thu thập tin tức các đầu vào có thể được sử dụng để đại diện phù hợp cho nhu cầu thông tin mong muốn, chủ đề, hoặc đề tài cho crawler cần tìm nạp (fetch) các trang web Dữ liệu đầu vào có thể đơn giản như là một tập từ khóa hoặc có thể được chuyển đổi thành một vector các trọng số trong đó mỗi trọng số đại diện cho tầm quan trọng tương đối của từ Nếu đầu vào là một tập của các trang mà đại diện cho các mẫu đúng và mẫu sai của một chủ đề, nó có thể được sử dụng để huấn luyện một lớp (classifier)
Bộ VNTOKENIZER có nhiệm vụ tách từ tiếng Việt
Việc loại bỏ các từ dừng/từ tầm thường (stopword) trong nội dung của trang và đưa về dạng gốc của từ (stemming) đối với tài liệu là tiếng Anh; cũng như để nhận dạng các trang đúng chủ đề và giúp cho hệ thống có thể xác định được khoảng cách từ trang hiện thời đến trang web cần quan tâm dựa trên nội dung của trang đó chúng tôi sử dụng
bộ phân loại văn bản bằng phương pháp vector hỗ trợ (SVM)
Một trang khi được tìm và tải về (fetched), nó có thể được lưu trữ/ lập chỉ mục bởi bộ Index để phục vụ cho các ứng dụng tổng thể sau này Trong bộ lập chỉ mục chúng tôi có ý tưởng sẽ dùng thêm bộ xếp hạng chỉ mục AIR để phát hiện và chống lại các kỹ thuật spamming và tính thứ hạng cho các trang web được tốt hơn
Bộ Searcher có nhiệm vụ phân tích câu truy vấn của người dùng và trả về kết quả tìm kiếm của hệ thống Để đáp ứng cho nhu cầu tìm kiếm các thông tin của người dùng ngôn ngữ tiếng Việt, chúng tôi sử dụng thêm bộ khôi phục dấu tiếng Việt
Trong khuôn khổ luận văn này, chúng tôi tập trung tìm hiểu các vấn đề cơ bản nhất có liên quan đến việc xây dựng công cụ thu thập thông tin theo lĩnh vực chuyên sâu gồm: Bộ Crawler, bộ phân loại văn bản và bộ tách từ tiếng Việt trong hệ thống tìm kiếm thông tin theo lĩnh vực chuyên sâu mà chúng tôi đã đề xuất; thực hiện cài đặt thử nghiệm công cụ đã xây dựng trên bộ mã nguồn mở Nutch
Trang 26Hình 1.4: Mô hình kiến trúc của hệ thống tìm kiếm theo lĩnh vực chuyên sâu do nhóm SE2010 đề xuất
Trang 27Chương II
CƠ SỞ LÝ THUYẾT VÀ GIẢI PHÁP ĐỂ XÂY DỰNG CÔNG CỤ THU THẬP
THÔNG TIN THEO LĨNH VỰC CHUYÊN SÂU
Ở chương I, chúng tôi đã trình bày một cách tổng quan về máy tìm kiếm theo lĩnh vực chuyên sâu Từ cái nhìn đó, chúng tôi đi vào chương II: "Cơ sở lý thuyết và giải pháp để xây dựng công cụ thu thập thông tin theo lĩnh vực chuyên sâu" Cụ thể, chúng tôi sẽ trình bày các vấn đề cơ bản nhất về lý thuyết và giải pháp lựa chọn để thực hiện ý tưởng xây dựng công cụ thu thập thông tin (modul crawler, modul phân loại văn bản, modul tách từ tiếng Việt) theo lĩnh vực chuyên sâu
2.1 Tổng quan về Học tăng cường và thuật toán Q-learning
2.1.1 Khái niệm về học tăng cường
Có thể hiểu một cách đơn giản học tăng cường [22] là một trong các phương
pháp học máy không có giám sát Trong học tăng cường thì người (đối tượng) học và
người (đối tượng) có quyền quyết định được gọi là tác tử (agent) Môi trường là mọi
thứ ở bên ngoài mà agent tương tác với nó Mọi vấn đề của việc học tăng cường được
định hướng bởi mục tiêu có thể được đơn giản hóa bởi ba sự tương tác qua lại giữa một tác tử và môi trường của nó (Hình 2.1)
Hình 2.1: Quan hệ giữa tác tử và môi trường trong học tăng cường
Trang 28Tại mỗi thời điểm rời rạc t ( t 0= , 1, 2, , k), agent nhận được trạng thái của nó
là, s t ∈ (S là tập hợp các trạng thái có thể có), agent chọn một hành động S a∈A ( s t )
(A ( s t )là các hành động có thể có giá trị trong trạng thái s t) và nhận được từ môi trường một trạng thái mới s t+1, cùng một điểm thưởng r t+1∈ℜ
Dựa trên các tương tác này, agent học tăng cường phải phát triển một chiến
lược là học một chính sách (học một hàm chuyển trạng thái ứng với mỗi cặp hành động–trạng thái), π : S → , để chọn hành động kế tiếp A a t của nó, dựa trên quan sát trạng thái hiện thời s t; vậy là, π( )s t =a t Khác với phương pháp học có giám sát, phương pháp học tăng cường không chỉ rõ cho tác tử hành động chính xác với mỗi
trạng thái mà phản hồi lại “chất lượng” của mỗi hành động thông qua các khoản thưởng Do vậy, tác tử sẽ cố gắng lựa chọn những hành động nào sẽ đem lại tổng các khoản thưởng lớn nhất
Làm sao có thể xác định được chính xác chính sách π mà chúng ta muốn agent học? Có một cách tiếp cận đó là đòi hỏi các chính sách phải tạo ra được các phần thưởng lớn nhất có thể tích lũy theo thời gian Định nghĩa giá trị tích lũy Vπ( )s t đạt được khi
2 1
i t
t t
Trang 29khen thưởng tích lũy chiết khấu đạt được bằng chính sách π từ trạng thái ban đầu s t
Gọi *π là tất cả các chính sách tối ưu và được định nghĩa như (2.2):
π
trong đó Vπ( s ) là khen thưởng tích lũy đạt được bằng chính sách π từ mọi trạng thái
Trong học tăng cường đã có nhiều thuật toán được đề xuất như: Gradient descent, temporal difference learning, Adaptive Heurictic Critic (AHC), SARSA, (14) Trong luận văn này chúng tôi tập trung tìm hiểu thuật toán Q-learning
2.1.2 Thuật toán Q-learning
Trong Q-learning (Watkins, 1989), hàm chính sách và hàm giá trị được thể hiện bởi một bảng tra cứu hai chiều lưu giữ sự cập nhật giá trị của các cặp trạng thái-hành
động (state-actions, < a s , >)
Từ vấn đề đã nêu ở trên ta thấy rất khó để học hàm chính sách tối ưu *π :
A
S → một cách trực tiếp vì dữ liệu huấn luyện không có dạng ( a s ) Thay vào đó, ,
thông tin huấn luyện chỉ tồn tại ở dạng chuỗi các khoản thưởng r ( s i , a i ), i=0 ,1 ,2, Vậy hàm đánh giá nào mà agent cần học? Một giải pháp đó là thông qua hàm * V , là
hàm tích lũy các khoản thưởng sau khi áp dụng chính sách tối ưu *π Từ đó, ta cụ thể
hóa *π như sau:
* ( s ) arg max[r ( s , a ) V * ( ( s , a ))]
a
δγ
trong đó:
• r ( s , a ) là giá trị khen thưởng tức thời;
• δ(s,a) là trạng thái phát sinh từ việc áp dụng hành động a tới trạng thái s
Định nghĩa hàm đánh giá Q(s,a) có giá trị là giá trị cực đại của tích lũy các khoản thưởng có thể đạt được bắt đầu từ trạng thái s và áp dụng hành động đầu tiên là hành động a là: Q ( s , a )≡r ( s , a )+γ V * (δ( s , a )) (2.4)
Từ đó, biểu thức của *π có thể được viết lại như sau:
π* ( s )=arg max a Q ( s , a ) (2.5)
Như vậy, việc học π* được cụ thể hóa bằng việc học hàm Q
(14) Theo http://en.wikipedia.org/wiki/Reinforcement_learning
Trang 30Vậy học hàm Q bằng cách nào? Vấn đề mấu chốt là tìm cách ước lượng các giá trị huấn luyện cho Q Điều này có thể được giải quyết thông qua việc lặp đi lặp lại sự xấp xỉ hóa giá trị Q cho mỗi cặp trạng thái-hành động Để thấy rõ vấn đề, trước tiên ta chỉ ra mối quan hệ giữa Q và V* như sau: V *=max a ' Q( )s , a ' Từ đó ta viết lại Q( )s , a
như sau: Q( ) ( )s , a =R s , a +γ max a ' Q(δ( )s , a , a ')
Định nghĩa đệ quy trên là ý tưởng của phương pháp Q-Learning bằng cách lặp
đi lặp lại quá trình xấp xỉ giá trị Q
Thuật toán Q-learning:
Tư tưởng của thuật toán này là lặp đi lặp lại quá trình xấp xỉ giá trị Q Theo [25] thì giá trị Q có thể tính và cập nhật theo (2.6):
Q( ) ( )s , a =R s , a +γ max a ' Q(δ( )s , a , a ') (2.6) hoặc theo (2.7):
Q( )s , a ←Q( )s , a +α(r+γ max a ' Q( ) ( )s ' , a ' −Q s , a ) (2.7) với:
• Q ( s , a ) là hàm giá trị của cặp trạng thái-hành động ( a s , ) tại thời điểm t;
• α là tỷ lệ học, được xác định theo (2.8):
) a , s ( visits n
n =1+
1
ở đây, visits n ( s , a ) là tổng số cặp hành động - trạng thái tại thời điểm
được truy cập đến (được "thăm") bao gồm cả lần lặp thứ n ;
• γ là hệ số suy giảm (tỷ lệ chiết khấu điểm thưởng) và (0≤γ <1);
• r là giá trị phần thưởng nhận được của việc thực hiện hành động a trong trạng thái s
Hoặc cũng có thể cập nhật giá trị Q theo (2.9):
⎢⎣
⎡+
a
,
s
Để miêu tả giải thuật, gọi Qˆ là ước lượng trong quá trình học hoặc giả thiết của
Q thực tế Trong giải thuật này, ta xây dựng một bảng để lưu trữ dữ liệu, mỗi ô trong
bảng là giá trị Qˆ cho mỗi cặp trạng thái-hành động Với 2 bước:
Trang 31• Bước 1, tất cả các ô được gán một giá trị ngẫu nhiên (có thể là giá trị 0);
• Bước 2, agent chọn ngẫu nhiên một trạng thái s và chọn một hành động a cũng
ngẫu nhiên, thực thi hành động đó rồi nhận giá trị thưởng r =( s , a ) và chuyển sang trạng thái mới 's=δ( s , a ) Rồi cập nhật giá trị Qˆ tương ứng với s và a
theo luật: (2.7) hoặc (2.8) hay (2.9)
Bước 2, được lặp lại vô hạn lần
Giải thuật Q
// s , 'slà các trạng thái hiện tại và các trạng thái tiếp theo
// a , a 'là các hành động hiện tại và các hành động tiếp theo
// Qˆ là giá trị trạng thái - hành động
// α là tỷ lệ học; γ là tỷ lệ chiết khấu (hệ số giảm giá) khen thưởng {
Với mỗi cặp s,a khởi tạo một ô Qˆ ( s , a ) tùy ý có giá trị ban đầu bằng 0
Chọn trạng thái hiện tại s ban đầu tùy ý
Một lượt thi hành của thuật toán kết thúc khi trạng thái s là một trạng thái cuối
cùng (hoặc trạng thái hấp thụ) Đối với tất cả các trạng thái cuối cùng, giá trị Q ( s , a )
sẽ không bao giờ được cập nhật và do đó vẫn giữ nguyên giá trị ban đầu của nó
Sự hội tụ của thuật toán trong cả môi trường chắc chắn và môi trường không chắc chắn đã được Watkins và Dayan chứng minh trong [25] Mối quan hệ giữa tốc độ
Trang 32hội tụ và tỷ lệ học của thuật toán đã được Eyal Even-Dar và Yishay Mansour trình bày trong [8]
2.1.3 Ví dụ minh họa cho thuật toán Q-learning
Giả sử chúng ta có một đồ thị có hướng, mà mỗi đỉnh là một trạng thái và mỗi cạnh là một link Chuyển động của agent từ đỉnh này sang đỉnh khác được gọi là hành động Chiều của mũi tên biểu thị khả năng agent có thể đi từ đỉnh này đến đỉnh khác (ví dụ, từ A có thể đến E và từ E có thể quay về A, nên chúng ta gán hai mũi tên đến mỗi đỉnh của đồ thị tương ứng)
Giả sử mục tiêu là đỉnh F Mỗi mũi tên chứa một giá trị phần thưởng tức thời Hành động đến trực tiếp mục tiêu có phần thưởng tức thời là 100 (mũi tên màu đỏ) Hành động mà không đến trực tiếp mục tiêu thì có khen thưởng bằng 0 (Hình 2.2)
Hình 2.2: Đồ thị mô hình hóa trạng thái
Ở đây ta thêm vòng lặp với phần thưởng cao nhất (100) cho đỉnh mục tiêu (F trở lại F)
để nếu agent về đến mục tiêu, nó sẽ vẫn còn ở đó mãi mãi Loại mục tiêu này được gọi
là mục tiêu hấp thụ bởi vì khi nó đạt đến trạng thái mục tiêu, nó sẽ ở trong trạng thái mục tiêu đó
Hình 2.3: Đồ thị trạng thái khởi động ban đầu
100
0100
0 0
00
100
0100
0 0
00
Trang 33Giả sử bây giờ agent đang ở trong trạng thái C (Hình 2.3) Từ trạng thái C, agent
có thể đi đến trạng thái D Tuy nhiên, từ trạng thái C, agent không thể đi trực tiếp đến trạng thái B vì không có kết nối trực tiếp giữa trạng thái B và trạng thái C Từ trạng thái
D, agent có thể đi đến một trong các trạng thái là B, E hoặc là quay trở lại trạng thái C Trong các trạng thái E, B, A được hiểu tương tự
Từ đó ta có thể đưa sơ đồ trạng thái và các giá trị phần thưởng tức thì vào bảng thưởng, hoặc ma trận khen thưởng R sau:
Hành động có thể đi tới trạng thái Agent hiện
Chúng ta mô hình hóa hệ thống môi trường khen thưởng bởi ma trận R (gọi là ma trận phần thưởng tức thời R đại diện cho môi trường) là:
10000
1000
0
00
0
0
1000
F E D C B A action /
state
R
Tương tự chúng ta cũng mô hình hóa giá trị trạng thái-hành động hiện tại của
agent đã thu nhận được qua quá trình học bởi ma trận Q Các hàng của ma trận Q biểu diễn cho trạng thái hiện tại của agent, các cột của ma trận Q cho biết hành động để đi đến trạng thái kế tiếp Ban đầu, vì agent không biết gì, do đó ma trận Q có giá trị tất cả
là 0
Trang 34000000
000000
000000
000000
000000
F E D C B A
F E D C B A action /
state
Q=
Trong ví dụ này, để đơn giản, ta giả định số lượng các trạng thái đã được biết (có sáu trạng thái) Trong trường hợp tổng quát, ta có thể bắt đầu bằng ma trận số mà mọi giá trị của nó là 0 Nếu một trạng thái mới được tìm thấy, thì việc thêm nhiều cột
và các hàng trong ma trận Q là không phải là khó khăn lắm Bài toán sẽ là:
Cho: Sơ đồ trạng thái với một trạng thái mục tiêu (được biễu diễn bởi ma trận R)
Tìm: Đường đi ngắn nhất từ trạng thái bất kỳ ban đầu tới trạng thái mục tiêu (được biểu
diễn bởi ma trận Q)
Nhắc lại giải thuật Q-Learning:
1 Thiết lập tham số γ =0.8, và ma trận môi trường khen thưởng R
Giá trị ban đầu của ma trận Q là 0
2 Lặp (For) từng giai đoạn:
• Lựa chọn ngẫu nhiên trang thái ban đầu
• Lặp (Do while) đến khi nào chưa tìm thấy trạng thái đích
9 Chọn một trong số tất cả các hành động có thể cho trạng thái hiện tại
9 Sử dụng hành động này có thể, xem xét đi đến trạng thái tiếp theo
9 Nhận giá trị Q lớn nhất của trạng thái tiếp theo được dựa trên tất cả các
hành động có thể
9 Tính toán giá trị Q theo luật (2.9)
9 Thiết lập trạng thái tiếp theo như trạng thái hiện thời
• End do
3 End for
Sử dụng ma trận Q, để lưu chuỗi các dấu vết các trạng thái của agent, từ trạng
thái ban đầu cho đến trạng thái mục tiêu Thuật toán đơn giản chỉ là việc tìm kiếm hành
động mà ở trạng thái hiện hành có giá trị Q là lớn nhất
Trang 35Thuật toán để sử dụng ma trận Q:
Input: ma trận Q, trạng thái ban đầu
1 Thiết lập trạng thái hiện thời = trạng thái ban đầu
2 Từ trạng thái hiện thời, tìm hành động mà làm cho giá trị của Q là lớn nhất
3 Thiết lập trạng thái hiện thời = trạng thái tiếp theo
4 Trở lại bước 2 cho đến khi trạng thái hiện thời = trạng thái mục tiêu
Thuật toán sử dụng ma trận Q, sẽ trở lại trình tự của trạng thái hiện hành từ trạng ban
đầu cho đến khi gặp trạng thái mục tiêu
Bắt đầu từ trạng thái B Với ma trận Q có các giá trị ban đầu đều bằng 0:
000000
000000
000000
000000
000000
000000
F E D C B A
F E D C B A action /
state
Q=
Với ma trận phần thưởng tức thời R đại diện cho môi trường là:
10000
1000
0
00
0
0
1000
F E D C B A action /
state
R
Nhìn vào hàng thứ hai (trạng thái B) của ma trận R Có hai hành động từ trạng
thái B hiện thời có thể thi hành, đó là đi đến trạng thái D, hoặc đi đến trạng thái F Theo lựa chọn ngẫu nhiên, chúng ta chọn hành động đi đến trạng thái F
Tại trạng thái F, nhìn vào hàng thứ sáu của ma trận phần thưởng R Có 3 hành
động có thể là đi đến một trong các trạng thái B, E hoặc F; theo (2.9) ta có:
80100
80
=+
=+
=
+
=
, ,
, Max ,
) F , F ( Q ), E , F ( Q ), B , F ( Q Max , ) F , B ( R ) F , B ( Q
Trang 36Trạng thái tiếp theo là F, bây giờ trở thành trạng thái hiện thời Vì F là trạng thái mục tiêu, chúng ta hoàn thành một giai đoạn "Não" của agent bây giờ chứa ma trận Q
đã được cập nhật là:
000000
000000
000000
000000
10000000
000000
F E D C B A
F E D C B A action / state
Q=
Đối với những giai đoạn tiếp theo, chúng ta bắt đầu với trạng thái ngẫu nhiên ban
đầu Ví dụ: Chúng ta chọn trạng thái D Nhìn vào hàng thứ tư của ma trận R, nó có 3
hành động có thể đi đến một trong các trạng thái B, C và E Theo lựa chọn ngẫu nhiên, chúng ta chọn hành động đi đến trạng thái B
Bây giờ ta xem xét tại trạng thái B Nhìn vào hàng thứ hai của ma trận phần
thưởng R (trạng thái, B) Nó có 2 hành động có thể là đi đến trạng thái D hoặc trạng thái
F Sau đó, chúng ta tính toán giá trị Q theo (2.9):
000000
0000800
000000
10000000
000000
F E D C B A
F E D C B A action /
state
Q=
Trạng thái tiếp theo là B, bây giờ trở thành trạng thái hiện thời Chúng ta tiếp tục lặp lại các vòng lặp nội tại của thuật toán Q-learning bởi vì trạng thái B không phải là trạng thái mục tiêu
Đối với vòng lặp mới, trạng thái hiện tại là trạng thái B Có hai hành động có thể thi hành từ trạng thái B hiện thời, đó là có thể đi đến trạng thái D, hoặc đi đến trạng thái
Trang 37Bây giờ lại xem xét trạng thái F, tại F có 3 hành động có thể đó là đi đến một
trong các trạng thái B, E, F Tính toán giá trị Q của các hành động có thể, theo (2.9):
80100
80
=+
=
+
=
, , Max ,
) F , F ( Q ), E , F ( Q ), B , F ( Q Max , ) F , B ( R ) F , B ( Q
Kết quả tính toán Q ( B , F )=100, vì nhận phần thưởng R ( B , F )= 100 ngay lập
tức Kết quả này không thay đổi trong ma trận Q
Vì F là trạng thái mục tiêu, chúng ta hoàn thành giai đoạn này "não" của agent
bây giờ chứa ma trận Q đã được cập nhật lại là:
000000
000000
0000800
000000
10000000
000000
F E D C B A
F E D C B A action / state
Q=
Tương tự, chúng ta lại bắt đầu với trạng thái ngẫu nhiên là trạng thái C Nhìn vào
hàng thứ ba của ma trận R, nó có 1 hành động có thể, là đi đến trạng thái D Chúng ta
80
=+
=
+
=
, , Max ,
) E , D ( Q ), C , D ( Q ), B , D ( Q Max , ) D , C ( R ) D , C ( Q
Ma trận Q được cập nhật lại là:
000000
000000
0000800
0064000
10000000
000000
F E D C B A
F E D C B A action /
state
Q=
Trang 38Trạng thái tiếp theo là D, bây giờ trở thành trạng thái hiện thời Vì trạng thái D không phải là trạng thái mục tiêu nên tiếp tục lặp lại các vòng lặp nội tại của thuật toán Q-learning
Đối với vòng lặp mới, trạng thái hiện thời là trạng thái D Có ba hành động có thể thi hành từ trạng thái D, đó là có thể đi đến một trong các trạng thái B, C hoặc đi đến trạng thái E Theo sự lựa chọn ngẫu nhiên, ta lựa chọn là đi đến trạng thái B
Xem xét trạng thái B, tại B có 2 hành động có thể thi hành đó là đi đến một trong
các trạng thái D hoặc F Tính toán giá trị Q của các hành động có thể theo (2.9):
800
80
=+
=
+
=
10 , Max ,
) F , B ( Q ), D , B ( Q Max , ) B , D ( R ) B , D ( Q
Kết quả Q ( D , B )=80 giống với kết quả trước đó đã có, nên sau khi cập nhật giá
trị trong ma trận Q không thay đổi:
000000
000000
0000800
0064000
10000000
000000
F E D C B A
F E D C B A action /
Bây giờ lại xem xét trạng thái F, tại F có 3 hành động có thể đó là đi đến một
trong các trạng thái B, E, F Tính toán giá trị Q của các hành động có thể theo (2.9):
80100
80
=+
=
+
=
, , Max ,
) F , F ( Q ), E , F ( Q ), B , F ( Q Max , ) F , B ( R ) F , B ( Q
Kết quả tính toán Q ( B , F )=100, vì nhận phần thưởng R ( B , F )=100 ngay lập
tức Kết quả này không thay đổi trong ma trận Q Vì F là trạng thái mục tiêu, chúng ta hoàn thành giai đoạn này "não" của agent bây giờ chứa ma trận Q đã được cập nhật:
Trang 39000000
0000800
0064000
10000000
000000
F E D C B A
F E D C B A action / state
Q=
Nếu agent của chúng ta được huấn luyện nhiều hơn với nhiều kinh nghiệm đạt
được qua nhiều giai đoạn, cuối cùng nó sẽ đạt giá trị hội tụ của Q là ma trận:
1008000800
1000640064
080051800
0064000
100064000
0800000
F E D C B A
F E D C B A action / state
Qˆ=
Hình 2.4: Đồ thị trạng thái sau khi đã kết thúc giải thuật
Một khi các ma trận Q đạt giá trị gần như hội tụ, agent của chúng ta có thể đạt
được mục tiêu một cách tối ưu Để theo dõi tiến trình của các trạng thái, nó có thể dễ
dàng tính toán bằng cách tìm ra hành động đó làm cho Q đạt được giá trị cực đại cho
trạng thái này Qua ví dụ trên ta thấy, từ trạng thái ban đầu C, agent có thể sử dụng ma
trận Q đi theo như sau:
• Từ trạng thái C hành động đưa ra giá trị Q lớn nhất là đi tới trạng thái D
• Từ trạng thái D lớn nhất có hai khả năng lựa chọn là đi đến một trong trạng thái
B hoặc E Giả sử ta chọn đi đến trạng thái B
51
64
Trang 40• Từ trạng thái B hành động đưa ra giá trị Q lớn nhất là đi đến trạng thái F (là trạng
thái mục tiêu)
Như vậy, chuỗi chuyển đổi trạng thái tối ưu là C - D - B - F
2.1.4 Nhận xét
Qua tìm hiểu các ví dụ tương tự ta thấy giải thuật Q-learning có các tính chất sau:
• Tính hội tụ: Q-Learning sẽ hội tụ gần đúng về hàm Q (sẽ hội tụ về chính sách tối
ưu) Nếu:
9 Chúng ta truy cập vào tất cả các cặp trạng thái-hành động vô hạn lần
9 Phải chọn một tỷ lệ học α đủ nhỏ
9 Không được làm giảm tỷ lệ chiết khấu khen thưởng γ quá nhanh
9 Không phụ thuộc vào việc ta chọn hành động như thế nào
• Kích thước của bảng lưu trữ giá trị Q có thể rất lớn cho các môi trường phức tạp
• Tính rõ ràng: Học các giá trị Q tối ưu, kể cả việc lựa chọn hành động khi có nhiễu
là khó khăn do không ước tính được các giá trị vô hình
2.1.5 Quan hệ giữa học tăng cường và bài toán crawler
Vì sao học tăng cường lại có liên quan đến bài toán crawler? Vì chúng ta có thể coi:
• Phần thưởng là các tài liệu đúng chủ đề
• Hành động là duyệt hay đi theo một link
• Trạng thái là một nút hay link cụ thể đang được duyệt
Tại sao phương pháp học tăng cường lại phù hợp với bài toán tìm kiếm thông
tin theo lĩnh vực chuyên sâu? Có hai lý do [38]:
• Hiệu suất được đo bằng số phần thưởng/thời gian Vì mục đích, tìm được càng nhiều tài liệu mong muốn càng sớm càng tốt
• Môi trường có thể biểu diễn các tình huống với phần thưởng xuất hiện sau vài bước thực hiện Bài toán của chúng ta có các tài liệu đúng chủ đề chỉ tìm thấy sau khi
“trườn” qua một số link
2.1.6 Các khó khăn khi áp dụng Học tăng cường vào thực tế
Qua tìm hiểu và thảo luận chúng tôi thấy: Khi áp dụng học tăng cường vào bài
toán crawler thực tế đã tồn tại một số vướng mắc như sau: