1. Trang chủ
  2. » Công Nghệ Thông Tin

Ứ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

108 366 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 2,54 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

BỘ 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 2

MỤ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 3

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 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 4

2.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 5

CHƯƠ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 6

Bả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 7

Hì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 8

Hì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 9

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 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 10

Optimal 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 11

MỞ ĐẦ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 12

thô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 13

Trong 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 15

Hơ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 16

Chươ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 18

1.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 19

Ngà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 20

vự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 21

1: 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 22

thô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 24

c) 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 25

Bắ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 26

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

Trang 27

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

Ở 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 28

Tạ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 aA ( 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 29

khen 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 30

Vậ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 , aQ( )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 32

hộ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 33

Giả 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 34

000000

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 35

Thuậ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 36

Trạ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 37

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 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 38

Trạ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 39

000000

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

=

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:

Ngày đăng: 27/07/2017, 20:35

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Andrew McCallum, Kamal Nigam, Jason Rennie, and Kristie Seymore (1999), Building domain-specific search engines with machine learning techniques, In AAAI-99 Sping sumposium on Intelligent Agents in Cyberspace Sách, tạp chí
Tiêu đề: Building domain-specific search engines with machine learning techniques
Tác giả: Andrew McCallum, Kamal Nigam, Jason Rennie, and Kristie Seymore
Năm: 1999
[2] Aixin Sun, EePeng Lim and WeeKeong Ng (2002), "Web Classification Using Support Vector Machine", WIDM'02, McLean, Virginia, USA. Copyright 2002 ACM 1-58113-492-4/02/0011 ... , trang 2 Sách, tạp chí
Tiêu đề: Web Classification Using Support Vector Machine
Tác giả: Aixin Sun, EePeng Lim and WeeKeong Ng
Năm: 2002
[3] Babaria Rashmin N (2007), Focused Crawling, A Project Report SubMitted In Partial Fulfilment of the Requirements for the Degree of Master of Engineering Sách, tạp chí
Tiêu đề: Focused Crawling
Tác giả: Babaria Rashmin N
Năm: 2007
[4] Ching-Chi Hsu, Fan Wu (2006), "Topic-specific crawling on the Web with the measurements of the relevancy context graph", Inf. Syst. 31(4-5), 232-246 Sách, tạp chí
Tiêu đề: Topic-specific crawling on the Web with the measurements of the relevancy context graph
Tác giả: Ching-Chi Hsu, Fan Wu
Năm: 2006
[5] Chih-Hao Tsai (2006), "MMSEG: A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm", Copyright © 1996-2006 Chih-Hao Tsai (Email: hao520@yahoo.com) Sách, tạp chí
Tiêu đề: MMSEG: A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm
Tác giả: Chih-Hao Tsai
Năm: 2006
[6] Chih-Wei Hsu and Chih-Jen Lin (2002), "A Comparison of Methods for Multiclass Support Vector Machines", IEEE Transactions On Neural Networks, Vol. 13, No. 2, March 2002 Sách, tạp chí
Tiêu đề: A Comparison of Methods for Multiclass Support Vector Machines
Tác giả: Chih-Wei Hsu and Chih-Jen Lin
Năm: 2002
[8] Eyal Even-Dar and Yishay Mansour (2003), "Learning Rates for Q-learning", Journal of Machine Learning Research 5 (2003) 1-25, trang 4 Sách, tạp chí
Tiêu đề: Learning Rates for Q-learning
Tác giả: Eyal Even-Dar and Yishay Mansour
Năm: 2003
[9] Filippo Menczer, Gautam Pant and Padmini Srinivasan (2004), Topical Web Crawlers: Evaluating Adaptive Algorithms, ACM Transactions on Internet Technology, Vol. 4, No. 4, Pages 378–419, trang 388-392 Sách, tạp chí
Tiêu đề: Topical Web Crawlers: Evaluating Adaptive Algorithms
Tác giả: Filippo Menczer, Gautam Pant and Padmini Srinivasan
Năm: 2004
[10] Filippo Menczer, Gautam Pant, Padmini, Srinivasan, Miguel E. Ruiz (2001), "Evaluating topic-driven web crawlers", Proceedings of the 24 th annual international ACM SIGIR conference on Research and development in information, (New Orleans, Louisiana, United States), 241-249 Sách, tạp chí
Tiêu đề: Evaluating topic-driven web crawlers
Tác giả: Filippo Menczer, Gautam Pant, Padmini, Srinivasan, Miguel E. Ruiz
Năm: 2001
[11] Gautam Pant (2004), Learning to crawler: Classifier-Guided Topical Crawlers, Of a thesis submitted in partial fulfillment of the requirements for the Doctor of Philosophy degree in Business Administration in the Graduate College of The University of Iowa, trang 36 Sách, tạp chí
Tiêu đề: Learning to crawler: Classifier-Guided Topical Crawlers
Tác giả: Gautam Pant
Năm: 2004
[13] Jan Daciuk, Bruce W. Watson, Stoyan Mihov, Richard E. Watson (2000), "Incremental Construction of Minimal Acyclic Finite-State Automata", Association for Computational Linguistics, Volume 26, Number 1, trang 51- 52 Sách, tạp chí
Tiêu đề: Incremental Construction of Minimal Acyclic Finite-State Automata
Tác giả: Jan Daciuk, Bruce W. Watson, Stoyan Mihov, Richard E. Watson
Năm: 2000
[14] Jason Rennie and Andrew Kachites McCallum (1999), "Using Reinforcement Learning to Spider the Web Efficiently", Proceedings of the Sixteenth International Conference on Machine Learning (ICML) Sách, tạp chí
Tiêu đề: Using Reinforcement Learning to Spider the Web Efficiently
Tác giả: Jason Rennie and Andrew Kachites McCallum
Năm: 1999
[15] John C. Platt (1998), Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines, In Technical Report MST-TR-98-14.Microsoft research, trang 3-4 Sách, tạp chí
Tiêu đề: Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines
Tác giả: John C. Platt
Năm: 1998
[16] John C. Platt, Nello Cristianini, John Shawe-Taylor (2000), "Large margin DAG’s for multiclass classification", S.A. Solla, T.K. Leen and K.-R. M¨uller (eds.), 547–553, MIT Press Sách, tạp chí
Tiêu đề: Large margin DAG’s for multiclass classification
Tác giả: John C. Platt, Nello Cristianini, John Shawe-Taylor
Năm: 2000
[17] Jun Yan, Ning Liu, Benyu Zhang, Shuicheng Yan, Zheng Chen, Qian sheng Cheng, Weiguo Fan, Wei-Ying Ma (2005), "OCFS: Optimal Orthogonal Centroid Feature Selection for Text Categorization", SIGIR’05, Salvador, Brazil.Copyright 2005 ACM 1-59593-034-5/05/0008 Sách, tạp chí
Tiêu đề: OCFS: Optimal Orthogonal Centroid Feature Selection for Text Categorization
Tác giả: Jun Yan, Ning Liu, Benyu Zhang, Shuicheng Yan, Zheng Chen, Qian sheng Cheng, Weiguo Fan, Wei-Ying Ma
Năm: 2005
[18] Luís Torgo and João Gama (1997), "Regression using classification algorithms", Intelligent Data Analysis, 1(4), LIACC - University of Porto Sách, tạp chí
Tiêu đề: Regression using classification algorithms
Tác giả: Luís Torgo and João Gama
Năm: 1997
[19] Michelangelo Diligenti, Frans Coetzee, Steve Lawrence, C. Lee Giles, Marco Gori (2000), "Focused Crawling Using Context Graphs", Proceedings of the 26th International Conference on Very Large Data Bases, (Sept.2000). 527-534 Sách, tạp chí
Tiêu đề: Focused Crawling Using Context Graphs
Tác giả: Michelangelo Diligenti, Frans Coetzee, Steve Lawrence, C. Lee Giles, Marco Gori
Năm: 2000
[20] Porter, (1980), Porter stemmer in Java - An algorithm for suffix stripping, Program, Vol. 14, No. 3, pp 130-137 Sách, tạp chí
Tiêu đề: Porter stemmer in Java - An algorithm for suffix stripping
Tác giả: Porter
Năm: 1980
[22] Richard S. Sutton and Andrew G. Barto (2005), Reinforcement Learning: An Introduction, A Bradford Book, The MIT Press Cambridge, Massachusetts London, England Sách, tạp chí
Tiêu đề: Reinforcement Learning: An Introduction
Tác giả: Richard S. Sutton and Andrew G. Barto
Năm: 2005
[24] Soumen Chakrabarti, Martin Van Den Berg, Byron Dom (1999), "Focused crawling: A new approach to topic-specific web resource discovery. Computer Networks, 31(11-16):1623 – 1640, Published by Elsevier Science B.V. All rights reserved, at http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.83.9370[25] Tom M. Mitchell (1997), Machine Learning, New York, trang 374-383 Link

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w