TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
THUYẾT MINH ĐỀ TÀI NCKH CẤP TRƯỜNG ĐỀ TÀI
NGHIÊN CỨU VỀ THUẬT TOÁN PHÂN LỚP SỬ DỤNG QUÁ TRÌNH HỌC MÁY BÁN GIÁM SÁT, ỨNG DỤNG TRONG VIỆC PHÂN LỚP TRANG WEB
Chủ nhiệm đề tài: ThS. Lê Hoàng Dương
Thành viên tham gia: ThS. Ngô Quốc Vinh
Hải Phòng, tháng 4/2016
MỤC LỤC
MỞ ĐẦU ............................................................................................................... 1
1. Tính cấp thiết của vấn đề nghiên cứu ............................................................ 1
2. Tổng quan về tình hình nghiên cứu thuộc lĩnh vực đề tài ............................. 1
3. Mục tiêu, đối tượng, phạm vi nghiên cứu ...................................................... 2
4. Phương pháp nghiên cứu, kết cấu của công trình nghiên cứu ....................... 3
5. Kết quả đạt được của đề tài ............................................................................ 3
CHƯƠNG 1 TỔNG QUAN VỀ VIỆC PHÂN LỚP SỬ DỤNG PHƯƠNG
PHÁP HỌC BÁN GIÁM SÁT ............................................................................. 4
1.1. Tổng quan về phân lớp dữ liệu. .................................................................. 4
1.1.1. Tổng quan về bài toán phân lớp dữ liệu ............................................... 4
1.1.2. Tổng quan về quá trình phân lớp dữ liệu .............................................. 5
1.2. Tổng quan về phân lớp dữ liệu văn bản ...................................................... 6
1.2.1. Thực trạng của vấn đề. .......................................................................... 6
1.2.2. Sử dụng mô hình vector biểu diễn văn bản .......................................... 7
1.2.3. Tổng quan về phương pháp phân lớp văn bản .................................... 11
1.2.4. Ứng dụng của việc phân lớp dữ liệu văn bản ..................................... 12
1.2.5. Quá trình phân lớp dữ liệu văn bản: ................................................... 12
1.2.6. Đánh giá máy phân lớp dữ liệu văn bản ............................................. 14
1.2.7. Những yếu tố ảnh hưởng đến quá trình phân lớp. .............................. 15
1.3. Các thuật toán học máy ứng dụng trong phân lớp .................................... 15
1.3.1. Phương pháp học có giám sát ............................................................. 15
1.3.2. Thuật toán phân lớp dữ liệu theo phương pháp học bán giám sát ...... 18
i
CHƯƠNG 2 BÀI TOÁN PHÂN LỚP ÁP DỤNG SVM VÀ PHƯƠNG PHÁP
HỌC BÁN GIÁM SÁT SVM ............................................................................. 21
2.1. Máy hỗ trợ vector – Support Vector Machine .......................................... 21
2.1.1. Giới thiệu về thuật toán SVM ............................................................. 22
2.1.2. Huấn luyện SVM ................................................................................ 23
2.1.3. Ưu điểm của SVM trong phân lớp văn bản ........................................ 24
2.2. Bán giám sát SVM và phân lớp trang Web .............................................. 26
2.2.1. Giới thiệu về bán giám sát SVM......................................................... 26
2.2.2. Phân lớp trang Web sử dụng bán giám sát SVM ................................ 27
CHƯƠNG 3 KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ ................................ 30
3.1. Giới thiệu về phần mềm SVMlin ............................................................. 30
3.2. Sử dụng phần mềm và kết quả đánh giá ................................................... 31
KẾT LUẬN ......................................................................................................... 34
TÀI LIỆU THAM KHẢO ................................................................................... 35
ii
DANH SÁCH HÌNH ẢNH
Tên hình
Số hình 1.1 1.2 Trang 5 8
1.3 13
1.4 18
Mô hình tổng quan về bài toán phân lớp Ví dụ về việc biểu diễn văn bản bởi vector đặc trưng Sơ đồ biểu diễn quá trình phân lớp dữ liệu văn bản Mặt siêu phẳng h phân các điểm thành 2 lớp + và - với khoảng cách biên lớn nhất. Các điểm gần mặt siêu phẳng h nhất là các vector hỗ trợ Thuật toán Self training Thuật toán Co training 1.5 1.6 19 20
iii
DANH SÁCH THUẬT NGỮ, CHỮ VIẾT TẮT
Chữ viết tắt
SVM: Support Vector Machine VC: Vapnik-Chervonenkis S3VM: Semi Supervised Support Vector Machine Trang 1 21 26
iv
MỞ ĐẦU
1. Tính cấp thiết của vấn đề nghiên cứu
Với xu hướng phát triển hiện tại, khối lượng dữ liệu trong cuộc sống
ngày càng lớn dẫn đến việc vai trò của phân lớp dữ liệu cũng ngày càng quan
trọng hơn, đây có thể được đánh giá là một trong các vấn đề bức thiết trong
ngành xử lý dữ liệu văn bản. Một trong các yêu cầu thiết yếu cần được đưa ra
là cải thiện hiệu suất của thuật toán thực hiện việc phân lớp, gia tăng giá trị
độ đo hồi tưởng, cũng như tính chính xác của phương pháp. Tuy nhiên trong
thực tế, nguồn dữ liệu được thiết lập nhãn trước không phải lúc nào cũng
được đáp ứng dẫn đến việc phải xây dựng các phương pháp phân lớp sử dụng
tập dữ liệu chưa gán nhãn. Để có thể thỏa mãn được cả hai yêu cầu trình bày
phía trên phương pháp phân lớp bán giám sát tỏ ra tương đối hiệu quả. Các
phương pháp phân lớp này tận dụng được các nguồn dữ liệu chưa được đánh
nhãn rất phong phú và đồng thời cũng tận dụng được hiệu quả một số lượng
nhỏ các dữ liệu đã được thiết lập nhãn sẵn.
Một trong các phương pháp được sử dụng và đánh giá tương đối tốt
trong thời gian qua để sử dụng trong các công việc nhận dạng hay phân loại
là phương pháp SVM - bộ phân loại máy hỗ trợ vector (Support Vector
Machine). Các nghiên cứu đã được công bố đã chứng minh về hiệu suất phân
loại văn bản khá tốt của phương pháp SVM.
2. Tổng quan về tình hình nghiên cứu thuộc lĩnh vực đề tài
Trong lĩnh vực khai phá dữ liệu, các phương pháp phân lớp văn bản đã
dựa trên những phương pháp quyết định như quyết định Bayes, cây quyết
định, K-người láng giềng gần nhất, …. Những phương pháp này đã cho kết
quả chấp nhận được và được sử dụng nhiều trong thực tế. Trong những năm
gần đây, phương pháp phân lớp sử dụng quá trình học máy bán giám sát
đang được quan tâm và sử dụng nhiều trong lĩnh vực nhận dạng, phân lớp.
Nhận thấy được tính mới trong vấn đề này nên tác giả lựa chọn đề tài
“Nghiên cứu về thuật toán phân lớp sử dụng quá trình học máy bán giám sát,
Trang 1
ứng dụng trong việc phân lớp trang Web” để sử dụng cho việc nghiên cứu
của mình.
3. Mục tiêu, đối tượng, phạm vi nghiên cứu
Những năm gần đây, thế giới chứng kiến sự phát triển bùng nổ của khoa
học nói chung và lĩnh vực công nghệ thông tin nói riêng. Chính điều này đã
làm gia tăng các hình thức trao đổi thông tin thông qua hệ thống Internet một
cách chóng mặt, có thể kể đến như thư viện điện tử, báo điện tử… Vì lý do
này mà lượng dữ liệu văn bản trên Internet cũng ngày càng tăng theo một
cách đáng kể, kèm theo đó là tốc độ của thông tin thay đổi cũng rất nhanh
chóng. Với lượng dữ liệu thông tin càng càng lớn, một trong những yêu cầu
bức thiết được lập ra là làm cách nào có thể tổ chức và khai thác được các
thông tin một cách hiệu quả. Để giải quyết được các yêu cầu trên thì bài toán
phân lớp là một trong những giải pháp thích hợp nhất. Tuy nhiên trong thực
tế, lượng thông tin lại quá lớn để có thể phân lớp một cách thủ công và các
thực hiện phân lớp bằng các phương pháp đơn giản thủ công là điều không
khả thi. Một chương trình máy tính thực hiện phân lớp các dữ liệu văn bản
một cách tự động chính là chìa khóa để giải quyết vấn đề này.
Trong thực tế, các khó khăn mà chúng ta thường phải đối mặt khi xử lý
các bài toán phân lớp tự động là làm thế nào để có thể tạo ra được một bộ
phân lớp có độ tin cậy cao khi số lượng dữ liệu được gán nhãn sẵn không có
sẵn. Các bộ dữ liệu được thiết lập nhãn sẵn này thường không có nhiều vì để
có được chúng đòi hỏi phải tốn nhiều công sức cũng như thời gian để xây
dựng thiết lập nhãn. Điều này dẫn đến việc phải có một phương pháp học
không đòi hỏi nhiều dữ liệu thiết lập nhãn sẵn và đồng thời tận dụng được
hiệu quả các nguồn dữ liệu chưa thiết lập nhãn có rất nhiều trong thực tế,
phương pháp học được lựa chọn để nghiên cứu ở đây là phương pháp học
bán giám sát. Thực chất phương pháp học bán giám sát có thể được xem là
cách học sử dụng dữ liệu chứa trong cả bộ dữ liệu chưa được thiết lập nhãn
Trang 2
và bộ dữ liệu đã được thiết lập nhãn. Vì ưu điểm tiện lợi của phương pháp
này nên nó được áp dụng khá rộng rãi.
Vì lý do trên, nghiên cứu tập trung vào việc trình bày về bài toán phân
lớp dữ liệu sử dụng phương pháp học bán giám sát và việc áp dụng phương
pháp học bán giám sát sử dụng máy hỗ trợ vector vào việc phân lớp dữ liệu
trên các trang Web. Mục tiêu chính của đề tài bao gồm:
+ Nghiên cứu thuật toán phân lớp sử dụng quá trình học máy bán giám sát.
+ Ứng dụng thuật toán trong việc phân lớp trang Web.
4. Phương pháp nghiên cứu, kết cấu của công trình nghiên cứu
Nghiên cứu định tính: Thực hiện tham khảo các bài báo khoa học liên
quan đến các thuật toán học máy và học máy bán giám sát cũng như tham
khảo các công trình đã công bố về lĩnh vực này.
Nghiên cứu định lượng: Cài đặt thuật toán, ứng dụng trong việc phân
lớp trang Web. Đánh giá kết quả đạt được đồng thời hiệu chỉnh thuật toán và
hệ thống để đạt được kết quả tốt nhất.
Nghiên cứu được trình bày trong 3 chương. Cấu trúc cụ thể như sau:
Chương 1: Tổng quan về việc phân lớp sử dụng phương pháp học bán
giám sát
Chương 2: Bài toán phân lớp áp dụng SVM và phương pháp học bán
giám sát SVM
Chương 3: Kết quả thử nghiệm và đánh giá.
5. Kết quả đạt được của đề tài
Kết quả đạt được của đề tài: là báo cáo về kết quả nghiên cứu thuật
toán phân lớp sử dụng quá trình học máy bán giám sát, và kết quả của việc
ứng dụng thuật toán trong việc phân lớp trang Web.
Trang 3
Đối tượng phục vụ: kết quả của nghiên cứu sẽ là tài liệu phục vụ cho
việc tham khảo và nghiên cứu của các đối tượng trong lĩnh vực Khai phá dữ
liệu.
CHƯƠNG 1
TỔNG QUAN VỀ VIỆC PHÂN LỚP SỬ DỤNG PHƯƠNG PHÁP
HỌC BÁN GIÁM SÁT
1.1. Tổng quan về phân lớp dữ liệu.
1.1.1. Tổng quan về bài toán phân lớp dữ liệu
Bài toán phân lớp dữ liệu là quá trình phân lớp một đối tượng dữ liệu cụ thể
vào một hoặc nhiều lớp dữ liệu đã xác định trước thông qua một mô hình phân
lớp được xây dựng từ trước dựa trên một tập đối tượng dữ liệu thiết lập nhãn sẵn
từ trước hay chúng ta vẫn thường gọi là tập huấn luyện. Quá trình phân lớp dữ
liệu còn có thể được gọi với một tên khác là quá trình thiết lập nhãn cho các đối
tượng dữ liệu.
Nhiệm vụ chính của việc phân lớp dữ liệu là tạo ra mô hình phân lớp để khi
có một đối tượng dữ liệu mới được đưa ra thì mô hình phân lớp dữ liệu sẽ xếp
đối tượng dữ liệu đó vào lớp nào hay có thể coi là thiết lập nhãn cho đối tượng
dữ liệu này.
Trong thực tế phân lớp dữ liệu có rất nhiều bài các bài toán khác nhau như
bài toán phân lớp nhị phân, bài toán phân lớp đa trị,….
Bài toán phân lớp nhị phân còn được hiểu là phân lớp đối tượng dữ liệu vào
một trong hai lớp cho trước khác nhau thông qua việc xem xét đối tượng dữ liệu
đó có hay không có các đặc tính phân loại được đặt ra theo quy ước của mô hình
phân lớp.
Bài toán phân lớp đa trị là bài toán phân lớp mà trong đó mỗi đối tượng dữ
liệu trong tập dữ liệu được gán nhãn cũng như các đối tượng dữ liệu chưa được
gán nhãn sau khi được phân lớp có thể được xếp vào hai lớp trở lên.
Trang 4
Tiếp theo đây, nghiên cứu sẽ trình bày tổng quan về quá trình phân lớp dữ
liệu và phương pháp phân lớp dữ liệu.
1.1.2. Tổng quan về quá trình phân lớp dữ liệu
Hình 1.1 Mô hình tổng quan về bài toán phân lớp
Như hình trên thể hiện quá trình phân lớp dữ liệu được thực hiện qua hai
bước chính:
Bước 1: Thiết lập mô hình phân lớp:
Mô hình phân lớp được tạo nên dựa trên việc phân tích các đối tượng dữ
liệu trong tập huấn luyện. Các lớp được gán nhãn của tập dữ liệu được gán nhãn
này được xác định thủ công từ trước, vì vậy phương pháp học này còn có thể
được gọi với tên khác là phương pháp học có giám sát (supervised learning). Tại
bước này, độ chính xác của mô hình cần được tính đến. Nếu độ chính xác của
mô hình là chấp nhận được mô hình phân lớp sẽ được dùng để xác định nhãn
cho các đối tượng chưa được gán nhãn. Trong quá trình đánh giá mô hình phân
lớp, độ đo sẽ được sử dụng để đánh giá độ chất lượng của các tập phân lớp.
Trong thực tế có nhiều phương pháp phân lớp dữ liệu để giải quyết các bài
toán phân lớp tùy thuộc vào cách tạo ra mô hình phân lớp. Có thể kể đến một số
phương pháp như Bayes, cây quyết định, SVM, K láng giềng gần nhất, .... Các
Trang 5
phương pháp phân lớp phân biệt nhau thông qua bộ| phân lớp. Bộ phân lớp còn
được gọi với tên gọi khác là thuật toán phân lớp.
Bước 2: Tiến hành phân lớp sử dụng mô hình phân lớp tạo ở bước 1.
Thuật toán phân lớp có thể coi là ánh xạ từ miền dữ liệu sẵn có sang một
miền giá trị cụ thể của nhãn lớp, dựa trên thuộc tính của các đối tượng dữ liệu.
1.2. Tổng quan về phân lớp dữ liệu văn bản
1.2.1. Thực trạng của vấn đề.
Các phương thức giao dịch sử dụng giấy tờ trong thời đại hiện nay thì
phương thức số dần đang thay thế các phương thức giao dịch truyền thống. Cụ
thể việc số hoá các giấy tờ có thể hiểu như việc chuyển các dữ liệu dạng giấy tờ
sang các định dạng số được lưu trữ trên máy tính hoặc truyền tải thông qua môi
trường internet. Lượng dữ liệu văn bản được lưu trữ trực tuyến hiện nay đang
gia tăng một cách chóng mặt do có nhiều ưu điểm như tiện dụng, gọn nhẹ và sự
lưu trữ ổn định lâu dài, dễ dàng hiệu chỉnh cũng như truyền gửi. Song song với
sự gia tăng số lượng văn bản thì nhu cầu khai thác tìm kiếm các dữ liệu văn bản
cũng đang trở thành một nhu cầu thiết yếu trong thời điểm hiện tại. Trong cuộc
sống hàng ngày, việc phân lớp các văn bản đa phần được thực hiện thủ công. Và
dễ thấy được cách thức phân loại này tốn kém về mặt thời gian cũng như công
sức của con người vì các văn bản rất lớn, để thực hiện phân lớp các văn bản theo
cách thức này về lâu dài là một vấn đề không khả thi. Từ đó chúng ta có thể
nhận thấy việc phân lớp văn bản tự động là một vấn đề bức thiết cần phải được
giải quyết.
Câu hỏi được đặt ra ở đây là phân lớp văn bản là gì? Phân lớp văn bản có
thể được hiểu là việc phân lớp dữ liệu áp dụng đối với các dữ liệu văn bản, hay
phân một văn bản vào một hay nhiều lớp văn bản thông qua một mô hình phân
lớp được xây dựng dựa trên một tập hợp các văn bản thiết lập nhãn từ trước.
Trang 6
Phân lớp dữ liệu văn bản hiện nay đang là một trong các lĩnh vực được
quan tâm hàng đầu và hiện đã và đang được đầu tư nghiên cứu tương đối nhiều
trong những năm gần đây trên khắp thế giới.
1.2.2. Sử dụng mô hình vector biểu diễn văn bản
Một trong những cách phổ biến được sử dụng để biểu diễn dữ liệu văn bản
là phương pháp biểu diễn bằng mô hình vector, mỗi văn bản sẽ được biểu diễn
thông qua một vector trọng số. Cụ thể phương pháp này sẽ coi mỗi một đối
tượng dữ liệu văn bản Di được biểu diễn dưới dạng 𝐷𝑖 = ( →, 𝑖), trong đó chỉ số i 𝑑𝑖
dùng để nhận diện văn bản này và → là vector đặc trưng biểu diễn cho văn bản 𝑑𝑖
Di . Cụ thể trong vector này: →=(wi1,wi2,…,win), với n là số luợng đặc trưng được 𝑑𝑖
trích chọn của văn bản, wij là trọng số của đặc trưng thứ j của văn bản Di,
j∈{1,2,...,n}.
Đối với việc chuyển đổi văn bản sang biểu diễn dưới dạng vector đặc trưng,
thì vấn đề cần quan tâm là việc lựa chọn đặc trưng nào và bao nhiêu đặc trưng,
phương thức chọn ra sao?
Các đặc trưng trong vector biểu diễn văn bản
Số chiều của không gian vector đặc trưng biểu diễn văn bản thường
lớn và phụ thuộc vào lượng thông tin trong các văn bản.
Các đặc trưng trong vector biểu diễn của văn bản thường độc lập nhau.
Các đặc trưng rời rạc: vector đặc trưng di có thể có nhiều trọng số đặc
trưng bằng 0 do có nhiều đặc trưng không xuất hiện trong văn bản di,
tuy vậy nếu đơn thuần chỉ dùng cách tiếp cận sử dụng bộ giá trị 0, 1 thì
kết quả phân lớp sẽ bị hạn chế là do có thể có các đặc trưng không có
trong văn bản đang xét nhưng trong văn bản đang xét lại có nội dung
có ý nghĩa tương đồng với đặc trưng bị bỏ qua này, do điều này chúng
ta có thể lựa chọn cách tiếp cận khác là không sử dụng bộ số 0, 1 mà
sử dụng giá trị các giá trị thực để phần nào giảm bớt sự rời rạc trong
vector đặc trưng biểu diễn văn bản.
Trang 7
Đa số các văn bản có thể được phân loại một cách tuyến tính bằng
cách sử dụng các hàm tuyến tính.
Theo đó, số chiều của vector là số lượng các từ xuất hiện trong ít nhất
một mẫu dữ liệu đã được thiết lập nhãn. Trước khi thiết lập các trọng
số đặc trưng cho các từ khoá phân loại cần thực hiện loại trừ những từ
dừng. Từ dừng ở đây được hiểu là các từ thường xuất hiện nhưng
không đem lại lợi ích trong việc phân lớp dữ liệu văn bản chẳng hạn
như “như vậy”, “tuy”, “là”, “và”, “thì”, “and”, “but”, “the”, “or”, ….
thường chúng ta có thể nhận biết các từ dừng có thể kể đến như các
trạng từ hoặc liên từ hay giới từ.
Chúng ta có thể xem xét ví dụ sau về việc biểu diễn văn bản dưới dạng vector
đặc trưng:
Hình 1.2 Ví dụ về việc biểu diễn văn bản bởi vector đặc trưng
Biểu diễn dữ liệu văn bản dạng trang Web
Về mặt bản chất các trang web thực chất là các siêu văn bản. Ngoài các
thành phần dữ liệu văn bản và các thành phần dữ liệu media, trong các trang
Web còn chứa các thành phần đặc trưng như các Hyperlink, các tag định dạng
Trang 8
HTML và các meta-data. Kết quả của phần lớn nghiên cứu chỉ ra công việc phân
lớp Web được cung cấp thông tin chủ yếu nhở các thành phần băn bản trong
trang web và được gia tăng hiệu suất nhờ vào những thành phần không phải văn
bản.
Ở thời điểm hiện tại để biểu diễn một trang Web người ta có thể sử dụng
nhiều cách khác nhau, tùy theo mục đích chúng ta có thể lựa chọn các cách thức
biểu diễn riêng. Các bộ máy tìm kiếm của các hãng lớn như Google hay Yahoo...
đều sử dụng hệ thống từ khóa móc nối thay vì lựa chọn cách biểu diễn sử dụng
vector.
Các hệ thống văn bản cũ trước đây thường thực hiện các công việc tìm
kiếm, biểu diễn, phân lớp... theo các phương pháp dựa trên việc xem trang Web
như một văn bản thông thường và biểu diễn văn bản đó bằng vector. Siêu liên
kết được sử dụng kết nối các trang Web thể hiện được các mối liên hệ giữa nội
dung giữa các trang, Từ đó chúng ta có thể nâng cao hiệu suất của các công việc
như phân lớp và tìm kiếm giúp khai thác được các ưu điểm của hyperlink trong
các văn bản. Một số nghiên cứu gần đây đã chi ra cách nâng cao hiệu quả thông
qua phương pháp bổ sung thêm các từ khoá bằng cách mở rộng thêm các từ
khoá mới trong các văn bản lân cận với siêu liên kết.
Trong nghiên cứu này sẽ tập trung vào cách biểu diễn trang Web bằng cách
sử dụng mô hình vector. Sử dụng các thông tin liên kết với mục đích cải thiện độ
chính xác của công việc tìm kiếm và các công việc phân lớp các trang Web bằng
cách bổ sung các thông tin về các trang Web láng giềng vào vector đặc trưng
biểu diễn cho trang đang được xét.
Hiện nay tồn tại bốn cách chính để biểu diễn trang Web dưới dạng vector
như sau:
Cách thứ nhất
Lưu trữ các từ khóa cùng tần số xuất hiện từ khóa đó trong trang Web được
xét. Cách lưu trữ này bỏ qua tất các thông tin khác như vị trí của từ khoá trong
Trang 9
trang đang xét cũng như thứ tự của các từ trong trang cùng các thông tin khác
như hyperlink.
Cách biểu diễn này được cho là phương pháp hiệu quả nhất cho các trường
hợp tài liệu đã liên kết độc lập với các nhãn của các lớp nhưng với một số
trường hợp đặc biệt khác thì phương pháp lại không tận dụng được tính cân đối
của tài liệu siêu liên kết.
Cách thứ hai
Móc nối trang được xét tới các trang láng giềng để tạo ra một super
document thông qua thông tin liên kết của trang đó. Vector đặc trưng của văn
bản gồm thông tin về các từ xuất hiện trong trang trong các trang láng giềng của
nó đi kèm với tần số có mặt của các từ đó. Phương pháp này cũng giống như
phương pháp trên bỏ qua các thông tin liên quan đén vị trí xuất hiện và thứ tự
xuất hiện của các từ khóa.
Điểm yếu của phương pháp này là gây phân tán nội dung của trang web
đang quan tâm. Tuy vậy với trường hợp biểu diễn cho một tập các trang web
tương đồng về nội dung chủ đề thì đây lại là phương pháp tương đối tốt. Tuy
nhiên việc các trang web liên kết cùng chủ điểm hiện nay chưa thật sự phổ biến
nên phương pháp này ít được lựa chọn.
Cách thứ ba
Phương pháp biểu diễn trang web dùng một vector có cấu trúc gồm lớn hơn
2 thành phần. Mỗi thành phần trong vector biểu diễn một tập các trang lân cận
với trang được xét. Số chiều của vector cố định nhưng mỗi thành phần của
vector đó chỉ biểu diễn cho các từ khóa xuất hiện trong một tập.
Phương pháp này khắc phục được tình trạng các từ khóa của trang láng
giềng làm loãng nội dung của trang web đang được xét. Nếu thông tin mở rộng
trang láng giềng thực sự hữu ích cho công việc phân lớp thì mô hình học vẫn có
thể truy cập đến toàn bộ nội dung trong trang láng giềng đó để học.
Cách thứ tư
Trang 10
Phương pháp biểu diễn trang web thông qua vector có cấu trúc. Cụ thể các
bước thực hiện xây dựng vector gồm các bước như sau:
Bước 1: Gán d là bậc cao nhất của các trang trong tập được xét.
Bước 2: Thiết lập vector với cấu trúc gồm d + 1 các phần:
- Phần 1 biểu diễn chính cho trang Web đang xét.
- Phần 2 đến phần thứ d+1 biểu diễn các trang láng giềng của trang được
biểu diễn ở phần 1, mỗi trang láng giềng được biểu diễn ở 1 phần riêng rẽ.
Từ đó thông qua các cách biểu diễn trang web bằng vector như đã trình bày
ở phía trên ta có thể thấy rằng đa phần các phương pháp biểu diễn trang web
bằng mô hình vector sẽ kết hợp các thông tin về web đó với các trang láng giềng
để có được hiệu suất phân lớp tốt hơn so với hiệu suất của phương pháp biểu
diễn trang web bằng mô hình vector lưu thông tin về từ khóa và số lần xuất hiện
của nó chỉ trong trang web đang xét.
1.2.3. Tổng quan về phương pháp phân lớp văn bản
Hiện nay, có rất nhiều các phương pháp dùng để phân lớp văn bản như
phương pháp Bayes, sử dụng cây quyết định, k láng giềng gần nhất hay SVM.
Thuật toán học máy thường được sử dụng để xây dựng mô hình phân lớp
văn bản một cách tự động. Ngoài ra chúng ta còn có thể kể đến các phương
pháp đặc biệt hơn dùng để phân lớp trong một số lĩnh vực. Ví dụ khi mô hình
phân loại thấy xuất hiện một cụm từ trong văn bản thì hệ thống sẽ phân văn bản
đó vào một lớp nào đó. Trong trường hợp các văn bản có số đặc trưng hơn
không nhiều như vậy thì chúng ta đưa ra các phương pháp phân lớp dựa vào nội
dung trong văn bản độ phù hợp của văn bản đó với các văn bản trong tập huấn
luyện. Trong mô hình học máy được áp dụng, văn bản trong tập huấn luyện đã
được gán nhãn trước và mô hình phân loại cần phải tìm cách để trích chọn ra các
đặc trưng của các văn bản thuộc mỗi lớp.
Trang 11
1.2.4. Ứng dụng của việc phân lớp dữ liệu văn bản
Phân lớp dữ liệu văn bản có vai trò vô cùng quan trọng với công việc tìm
kiếm dữ liệu văn bản. Thông qua phân lớp văn bản chúng ta có thể xác định ra
được chủ để phân lớp dữ liệu muốn tìm kiếm.
Ngoài ra chúng ta có thể kể đến một ứng dụng nữa của việc phân lớp dữ
liệu văn bản là việc ứng dụng để lọc văn bản hoặc một phần văn bản chứa những
thông tin cần tìm mà không làm mất hay ảnh hưởng tới tính phức tạp ngôn ngữ
tự nhiên.
Phân lớp dữ liệu văn bản còn có rất nhiều ứng dụng đa dạng khác trong
thực tế, điển hình chúng ta có thể kể đến những ứng dụng trích chọn thông tin
trên mạng Internet. Có rất nhiều trang có nội dung không lành mạnh hay phản
động hoặc đăng những nội dung sau sự thật nhằm tăng lượng người xem, những
nội dung này có khả năng lẫn lộn vào kết quả trả về của các bộ máy tìm kiếm
thông tin trên mạng hoặc có thể gây phiền toái cho những người dùng internet
bằng các email rác. Từ đó chúng ta ngày càng thấy rõ sự cần thiết của việc ứng
dụng việc phân lớp văn bản vào việc xây dựng các mô hình lọc thông tin trên
mạng internet.
Từ đó có thể thấy rằng phân lớp văn bản đã và đang là một trong các công
cụ không thể thiếu trong thời đại hiện nay, vì vậy phân lớp dữ liệu văn bản đang
là một trong các vấn đề được quan tâm phát triển được hàng đầu với mục đích
tạo ra những công cụ hữu ích cho thế giới nói chung và lĩnh vực công nghệ
thông tin nói riêng.
1.2.5. Quá trình phân lớp dữ liệu văn bản:
Phân lớp dữ liệu văn bản có thể chia làm 4 bước cơ bản sau:
Trang 12
Sơ đồ dưới đây thể hiện bộ khung cho việc phân lớp dữ liệu văn bản,
trong đó có thể kể đến ba công đoạn chính:
Công đoạn 1: Biểu diễn đối tượng văn bản dưới dạng có cấu trúc, xây
dựng tập dữ liệu được gán nhãn.
Công đoạn 2: Dùng các kỹ thuật học máy để tiến hành huấn luyện trên các
mẫu vừa được biểu diễn ở công đoạn 1. Thực chất công đoạn 1 tạo ra các
vector đầu vào cho công đoạn 2.
Công đoạn 3: Mở rộng các dữ liệu thêm vào được cung cấp bởi người
dùng để cải thiện hiệu suất.
Trang 13
Hình 1.3 Sơ đồ biểu diễn quá trình phân lớp dữ liệu văn bản
1.2.6. Đánh giá máy phân lớp dữ liệu văn bản
Trong thực tế không có một phương pháp phân lớp dữ liệu văn bản nào là
tuyệt đối trong mọi hoàn cảnh. Bất cứ một phương pháp phân loại nào cũng đều
tồn tại độ sai số. Do đó chỉ ra độ đo để có thể đánh giá chính xác được hiệu suất
của mô hình phân lớp sẽ giúp xác định được phương pháp nào là tốt hay không
tốt. Có thể đưa ra một số công thức chung để đánh giá hiệu suất của các mô hình.
Độ hồi tưởng và độ chính xác, độ và độ đo F1 được sử dụng khá phổ biến
trong việc đánh giá độ chính xác của các mô hình phân lớp.
Để dễ hiểu hơn, chúng ta có công thức:
Trang 14
1.2.7. Những yếu tố ảnh hưởng đến quá trình phân lớp.
Phân lớp dữ liệu văn bản hiện đang có vai trò rất quan trọng trong sự phát
triển của toàn thế giới, tùy vào độ phức tạp của từng loại văn bản khả năng thực
thi của các mô hình phân lớp sẽ khác nhau. Có 3 yếu tố thiết yếu ảnh hưởng đến
kết quả của việc phân lớp có thể kể đến:
Tập dữ liệu được thiết lập nhãn trước phải đủ lớn để huấn luyện cho mô
hình phân lớp. Có được một tập dữ liệu chuẩn và đủ lớn sẽ giúp cho việc học
của mô hình được tốt hơn và đem lại kết quả phân lớp sau này chính xác hơn.
Phương pháp tách từ khóa trong văn bản ảnh hưởng tới quá trình biểu diễn
văn bản bằng vector vì các phương pháp tách đơn giản thường sẽ gặp vấn đề với
những ngôn ngữ khác nhau, do đó việc xây dựng phương pháp tách từ khóa là
một yếu tố thiết yếu.
Phân lớp dữ liệu văn bản phải sử dụng thuật toán hợp lý về thời gian xử lý
gồm: thời gian để huấn luyện và thời gian thực hiện phân lớp, thêm nữa thuật
toán sẽ không phân lớp lại toàn bộ tập văn bản khi thêm vào đối tượng dữ liệu
văn bản mới mà chỉ thực hiện phân lớp cho đối tượng văn bản mới, ngoài ra
thuật toán cần có khả năng giảm nhiễu khi phân lớp dữ liệu văn bản.
1.3. Các thuật toán học máy ứng dụng trong phân lớp
1.3.1. Phương pháp học có giám sát
1.3.1.a. Tổng quan về bài toán học có giám sát
Trang 15
Mục tiêu của bài toán là để huấn luyện tạo nên một hàm ánh xạ từ tập X
tới tập Y. Cụ thể nếu tập huấn luyện gồm các cặp (xi , yi ), với yi ∈Y là nhãn
phân loại của mẫu xi∈X. Một thủ tục chuẩn là các cặp (xi, yi) được thử theo
giả thiết độc lập trên khắp miền giá trị X × Y.
1.3.1.b. Giới thiệu về phương pháp học có giám sát
• Bước 1: Xác định thể loại của tập dữ liệu huấn luyện.
• Bước 2: Tiến hành Thu thập tập dữ liệu huấn luyện.
• Bước 3: Thiết lập cấu trúc biểu diễn các đặc trưng đầu vào.
• Bước 4: Thiết lập cấu trúc của hàm chức năng cần huấn luyện và
Giải quyết bài toán học có giám sát cần có nhiều bước khác nhau:
• Bước 4: Hoàn thiện việc học.
phương pháp học tương ứng.
1.3.1.c. Phương pháp học có giám sát sử dụng thuật toán k láng
giềng gần nhất.
Như đã trình bày phía trên, có rất nhiều thuật toán học có giám sát trong
Trang 16
thực tế, trong nghiên cứu này tôi sẽ giới thiệu một phương pháp học sử dụng
thuật toán k láng giếng gần nhất, một phương pháp học có giám sát điển hình.
Phương pháp này được đánh giá là một trong những phương pháp hàng đầu
được áp dụng từ những ngày đầu trong nghiên cứu phân loại dữ liệu văn bản.
Phương pháp này sử dụng ý tưởng là khi cần phân loại một đối tượng
văn bản, thuật toán sẽ tính khoảng cách (Euclide, Manhattan, Cosine, …) của
tất cả đối tượng văn bản trong tập dữ liệu văn bản đã thiết lập nhãn đến đối
tượng văn bản này để xác định k văn bản có khoảng cách gần nhất, được gọi
là k láng giềng gần nhất, sau đó đánh trọng số cho các chủ để bằng các
khoảng cách này. Trọng số một chủ đề chính là tổng khoảng cách ở trên của
các văn bản trong k văn bản gần nhất cùng chủ đề, chủ đề nào không xuất
hiện trong k văn bản thì trọng số được thiết lập là 0. Các chủ đề tiếp đó sẽ
được sắp xếp lại theo chiều giảm dần của trọng số. Các chủ đề trọng số cao
sẽ được coi là nhãn của đối tượng dữ liệu văn bản cần phân loại.
chủ đề cj đối với văn bản x được tính giá trị trọng số như sau :
Trong đó:
Giá trị y (di, c) thuộc vào miền {0,1}, với:
y = 0: văn bản di không được gán nhãn chủ đề cj
y = 1: văn bản di được gán nhãn chủ đề cj
sim (x, d): độ tương đồng giữa văn bản x và văn bản d. Có thể dùng
công thức cosine để tính khoảng cách giữa 2 vector biểu diễn văn bản:
Trang 17
bj là ngưỡng phân loại của nhãn cj giá trị này có được sau quá trình huấn
luyện.
1.3.1.d. Phương pháp học có giám sát sử dụng Support vector
machine (SVM)
Máy hỗ trợ vector là phương pháp phân lớp đặc biệt hiệu quả trong giải
quyết nhận dạng mẫu chỉ có hai lớp sử dụng nguyên lý Giảm tiểu tối đa rủi ro
cấu trúc.
Thuật toán có ý tưởng chính là với một tập huấn luyện được biểu diễn
trong không gian vector và mỗi đối tượng tài liệu được xem là 1 điểm, mục
tiêu phương pháp là tìm ra một mặt siêu phẳng h chia các điểm trong không
gian này thành hai lớp + và -. Khoảng cách từ điểm gần nhất tới mặt phẳng
càng lớn thì việc phân loại càng chính xác.
Hình 1.4 Mặt siêu phẳng h phân các điểm thành 2 lớp + và - với
khoảng cách biên lớn nhất. Các điểm gần mặt siêu phẳng h nhất là
các vector hỗ trợ
1.3.2. Thuật toán phân lớp dữ liệu theo phương pháp học bán giám sát
1.3.2.a. Khái niệm
Phương pháp học bán giám sát là một phương phương pháp học trong
ngành học máy sử dụng đồng thời dữ liệu đã thiết lập nhãn và cả dữ liệu chưa
xác định nhãn. Trong thực tế để có được dữ liệu xác định nhãn đòi hỏi nhiều
thời gian và công sức nhưng ngược lại dữ liệu chưa gán nhãn lại có tương đối
Trang 18
sẵn trong thế giới hiện tại. Từ đây, ta có thể thấy được phương pháp học bán
giám sát có thể giúp thực hiện các công việc với quy mô lớn.
Phương pháp học bán giám sát bao gồm dữ liệu huấn luyện và dữ liệu
chưa xác định nhãn. Phương pháp này có thể được dùng trong các công việc
phân lớp hay phân nhóm. Phương pháp học bán giám sát có mục tiêu nhằm
vào việc huấn luyện mô hình phân lớp tốt hơn phương pháp học có giám sát
cùng trên tập dữ liệu xác định nhãn và chưa được xác định nhãn.
1.3.2.b. Tổng quan về một số phương pháp học bán giám sát
Hiện nay học bán giám sát có rất nhiều phương pháp được sử dụng cũng
như được nghiên cứu và phát triển. Có thể kể đến một số phương pháp phổ
biến như: Naïve Bayes, self-training hay co-training và transductive support
vector machine,... Về cơ bản không thể xác định được chính xác phương
pháp hiệu quả nhất trong các phương pháp này.
Tiếp theo, chúng ta sẽ tìm hiểu tổng quan một số thuật toán học bán
giám sát thường gặp.
Self-training
Self-training sử dụng một tập phân lớp ban đầu được cùng với một
lượng nhỏ dữ liệu đã xác định nhãn. Tập phân lớp sẽ được dùng để thiết lập
nhãn cho dữ liệu chưa xác định nhãn. Có thể thấy rằng hầu hết các đối tượng
dữ liệu chưa phân loại có độ tin cậy cao, cũng như các nhãn dự đoán trước
của chúng. Các dữ liệu này sau khi phân lớp sẽ được thêm vào tập huấn
luyện. Mô hình phân lớp sẽ được huấn luyện lại. Chú ý rằng việc tự học ở
đấy chính là việc mô hình phân lớp học trên chính các dữ liệu mà nó đã phân
loại.
Thuật toán học Self-training có thể được dùng trong việc xử lý các bài
toán của một số ngôn ngữ tự nhiên. Ngoài ra thuật toán này còn có thể được
dùng trong phân tách và dịch máy.
Trang 19
Hình 1.5 Thuật toán học self training
Co-training
Thuật toán học Co training là thuật toán được dựa trên giả thiết rằng các
đặc trưng có thể được tách ra thành hai tập đặc trưng. Mỗi một tập đặc trưng
lại có khả năng huấn luyện một mô hình phân lớp tốt.
Hình 1.6 Thuật toán học Co training
Trang 20
CHƯƠNG 2
BÀI TOÁN PHÂN LỚP ÁP DỤNG SVM VÀ PHƯƠNG PHÁP HỌC
BÁN GIÁM SÁT SVM
Trong các nghiên cứu thời gian gần đây, phương pháp phân lớp dùng tập
phân lớp vector hỗ trợ đang được nghiên cứu và áp dụng tương đối mạnh mẽ
trong lĩnh vực phân lớp và nhận dạng. SVM là phương pháp được ra đời từ lý
thuyết học thống kê do Vapnik và Chervonenkis nghiên cứu và phát triển. Đây
là phương pháp có nhiều tiềm năng phát triển về trong thực tiễn cũng như trong
các nghiên cứu lý thuyết. Từ kết quả của những nghiên cứu gần đây cho thấy
rằng SVM là phương pháp có khả năng phân lớp khá tốt không chỉ đối với bài
toán phân lớp dữ liệu văn bản mà còn trong nhiều ứng dụng như nhận dạng văn
bản viết tay, phát hiện mặt người khung hình… Khả năng phân lớp của phương
pháp SVM được đánh giá là khá cao so với các phương pháp khác.
2.1. Máy hỗ trợ vector – Support Vector Machine
SVM sử dụng thuật toán học với mục tiêu tìm ra một mặt siêu phẳng làm
nhỏ nhất có thể độ phân lớp sai cho một đối tượng dữ liệu mới. Độ phân lớp sai
của một mặt siêu phẳng được đặc trưng bởi khoảng cách từ điểm gần nhất tới
siêu phẳng đấy.
Đặc trưng thiết yếu thể hiện khả năng của mô hình phân lớp chính là khả
năng phân lớp những dữ liệu mới sau quá trình huấn luyện. Phương pháp huấn
luyện sẽ được đánh giá là tốt nếu hiệu suất tổng quát hoá của mô hình phân lớp
cao và ngược lại phương pháp huấn luyện sẽ được đánh giá là chưa tốt nếu hiệu
suất tổng quát hóa của mô hình là thấp. Hiệu suất tổng quát hoá ở đây phụ thuộc
vào hai yếu tố là năng lực của máy học và sai số huấn luyện. Trong các tham số
này thì sai số huấn luyện được hiểu là tỷ lệ sai lỗi của quá trình phân lớp trên tập
dữ liệu huấn luyện. Còn yếu tố thứ hai năng lực của máy học được xác định
bằng kích thước VC (Vapnik-Chervonenkis). Đây được coi là một khái niệm
quan trọng đối với một mô hình phân lớp. Kích thước VC được tính bởi số điểm
cực đại mô hình phân lớp có thể tách trong không gian đối tượng cần phân loại.
Trang 21
2.1.1. Giới thiệu về thuật toán SVM
m
i∈ R }
Xét ví dụ về bài toán phân tập dữ liệu mẫu thành 2 lớp:
{( x i, yi) i = 1, 2,…, N, x
Trong đó đối tượng dữ liệu mẫu ở đây chính là các vector đối tượng được
phân lớp và lớp chúng ta sẽ chia thành lớp các mẫu dương và lớp các mẫu âm
như trong hình 1.4:
Lớp các mẫu dương là lớp các mẫu xi thuộc vào lĩnh vực được quan tâm
và được thiết lập nhãn yi = 1.
Lớp các mẫu âm là các mẫu xi không thuộc vào lĩnh vực được quan tâm
và được thiết lập nhãn yi = - 1.
Phương pháp về bản chất chính là một bài toán tối ưu, mục tiêu của bài
toán này là tìm ra một không gian H và mặt siêu phẳng quyết định h trên H sao
với sai số phân lớp là cực tiểu.
Mô hình phân lớp SVM ở đây thực chất chính là mặt siêu phẳng phân tách
các mẫu dương và âm với độ chênh lệch là lớn nhất, độ chênh lệch ở đây được
xác định bằng khoảng cách nhỏ nhất giữa các mẫu dương và các mẫu âm với
mặt siêu phẳng.
Phương trình của mặt siêu phẳng có thể xác định như sau:
C + w1 x1 + w2 x2 + … + wn xn = 0
Hoặc chúng ta có thể sử dụng công thức tương đương sau để biểu diễn cho
C + ∑wi xi = 0 (2.2)
phương trình của mặt siêu phẳng
với i=1,…,n
Trang 22
w = w1 + w2 + …+ wn là bộ hệ số siêu phẳng hay là vector trọng số của mặt
siêu phẳng, C là độ dịch, Thay đổi w và C có thể làm thay đổi hướng và khoảng
cách từ gốc toạ độ đến mặt siêu phẳng.
Tập phân lớp SVM được định nghĩa như sau:
(2.3) f(x) = sign(C + ∑wi xi)
sign(z) = +1 nếu z ≥0,
sign(z) = -1 nếu z < 0.
Khi f(x) = 1 thì xác định x thuộc về lĩnh vực được quan tâm, và ngược lại,
nếu f(x) = -1 thì x không thuộc vào lĩnh vực cần quan tâm.
Mô hình học SVM có thể được coi là một mô hình học với các siêu phẳng
phụ thuộc vào tham số vector trọng số w của mặt siêu phẳng và tham số độ dịch
C. Mục tiêu của mô hình học SVM là xác định được w và C để có thể cực đại
hoá khoảng cách tối thiểu giữa các điểm dương và điểm âm với mặt siêu phẳng.
Về cơ bản việc xây dựng mô hình cần phải giải phương trình sau:
để có thể tìm ra được vector trọng số
w và sai số của mỗi điểm trong tập
huấn luyện để có được phương trình tổng quát của mặt siêu phẳng:
f(x1, x2,…, xn) = C +∑ wi xi
Với i = 1,…, n. Trong đó n là tổng số các đối tượng dữ liệu dùng để huấn
luyện.
2.1.2. Huấn luyện SVM
Để huấn luyện máy hỗ trợ vector thực chất chúng ta sẽ tiến hành giải bài
toán quy hoạch toàn phương Support Vector Machine. Để giải bài toán này
chúng ta có thể dùng các phương pháp số. Cụ thể các phương pháp này cần một
Trang 23
ma trận kích thước bằng bình phương của số lượng mẫu dùng trong việc training.
Điều này trong thực tế đôi khi không khả thi vì kích thước của tập dữ liệu dùng
để training thường rất lớn (thậm chí có thể đến hàng chục nghìn mẫu huấn
luyện). Nhằm giải quyết vấn đề nêu trên người ta đã phát triển nhiều thuật toán
khác nhau dựa trên việc phân rã tập training thành những nhóm dữ liệu. Lúc này
bài toán quy hoạch toàn phương sẽ được giải với kích thước nhỏ hơn. Sau đó,
những thuật toán này sẽ kiểm tra các điều kiện Karush KuhnTucker để tìm ra
được phương án tối ưu nhất.
Một vài phương pháp huấn luyện dựa vào tính chất: Nếu trong tập training
của bài toán quy hoạch toàn phương Support Vector Machine con (bài toán nhỏ)
có ít nhất một mẫu vi phạm vào điều kiện Karush KuhnTucker, thì bài toán này
sau khi được giải, hàm mục tiêu sẽ tăng. Một loạt các bài toán quy hoạch toàn
phương Support Vector Machine con với ít một mẫu nào đó vi phạm các điều
kiện Karush KuhnTucker được đảm bảo sẽ sự hội tụ đến phương án tối ưu.
2.1.3. Ưu điểm của SVM trong phân lớp văn bản
Chúng ta có thể thấy từ các thuật toán phân lớp hai lớp như SVM đến các
thuật toán phân lớp đa lớp đều có đặc điểm chung là yêu cầu văn bản phải được
biểu diễn dưới dạng vector đặc trưng, tuy nhiên các thuật toán khác đều phải sử
dụng các uớc lượng tham số và ngưỡng tối ưu trong khi đó thuật toán SVM có
thể tự tìm ra các tham số tối ưu này. Trong các phương pháp thì SVM là phương
pháp sử dụng không gian vector đặc trưng lớn nhất (hơn 10.000 chiều) trong khi
đó các phương pháp khác có số chiều bé hơn nhiều (như Naïve Bayes là 2000,
k-Nearest Neighbors là 2415…).
Trang 24
Trong công trình của mình năm 1999, Joachims đã so sánh SVM với Naïve
Bayesian, k-Nearest Neighbour, Rocchio, và C4.5 và đến năm 2003, Joachims
đã chứng minh rằng SVM làm việc rất tốt cùng với các đặc tính được đề cập
trước đây của văn bản. Các kết quả cho thấy rằng SVM đưa ra độ chính xác
phân lớp tốt nhất khi so sánh với các phương pháp khác.
Theo Xiaojin Zhu thì trong các công trình nghiên cứu của nhiều tác giả
(chẳng hạn như Kiritchenko và Matwin vào năm 2001, Hwanjo Yu và Han vào
năm 2003, Lewis vào năm 2004) đã chỉ ra rằng thuật toán SVM đem lại kết quả
tốt nhất phân lớp văn bản.
Kiritchenko và Matwin đã nghiên cứu và so sánh phương pháp SVM với
kỹ thuật Naïve Bayesian, sau đó đã chứng minh được rằng SVM là phương pháp
tốt nhất cho phân lớp thưđiện tử cũng như phân lớp văn bản.
Hwanjo Yu và Han cho thấy rằng SVM hoàn toàn được tiến hành tốt nhất
so với các phương pháp phân lớp văn bản khác. Tất cả các tài liệu nghiên cứu
hiện nay cho thấy rằng SVM đưa ra kết quả chính xác nhất trong khía cạnh phân
lớp văn bản.
Lewis đã nghiên cứu phân lớp văn bản và đã khám phá ra rằng kết quả của
SVM là tốt nhất. Lewis đã đưa ra tập hợp nhỏ các tài liệu của phân lớp văn bản.
Tác giả đã cố gắng cải tiến phương pháp RCV1 cho phân lớp văn bản và sử
dụng phương pháp mới được ứng dụng cho một số kỹ thuật phân lớp văn bản
khác nhau. SVM đã đưa ra kết quả tốt nhất khi đặt dựa vào k-người láng giềng
gần nhất và kỹ thuật tập phân lớp RocchioStyle Prototype.
Những phân tích của các tác giả trên đây cho thấy SVM có nhiều điểm phù
hợp cho việc ứng dụng phân lớp văn bản. Và trên thực tế, các thí nghiệm phân
lớp văn bản tiếng Anh chỉ ra rằng SVM đạt độ chính xác phân lớp cao và tỏ ra
xuất sắc hơn so với các phương pháp phân lớp văn bản khác.
Vấn đề căn bản của học bán giám sát là chúng ta có thể tận dụng dữ liệu
chưa gán nhãn để cải tiến hiệu quả của độ chính xác trong khi phân lớp, điều này
Trang 25
được đưa ra để so sánh với một tập phân lớp được thiết kề mà không tính đến dữ
liệu chưa gán nhãn.
Trong phần sau của chương này, nghiên cứu sẽ giới thiệu một phương thức
cải tiến của SVM là bán giám sát SVM (semi-supervised support vector machine – S3VM). Bán giám sát SVM được đưa ra nhằm nâng SVM lên một mức cao
hơn, trong khi SVM là một thuật toán học có giám sát, sử dụng dữ liệu đã gán
nhãn thì bán giám sát SVM sử dụng cả dữ liệu gán nhãn (tập huấn luyện –
training set) kết hợp với dữ liệu chưa gán nhãn (working set).
2.2. Bán giám sát SVM và phân lớp trang Web
2.2.1. Giới thiệu về bán giám sát SVM
Chúng ta sẽ giới thiệu phương thức cải tiến của SVM là Bán giám sát
SVM (Semi Supervised Support Vector Machine - S3VM). Cho một tập huấn
luyện (training set) của dữliệu gán nhãn và có sự tham gia của một tập các dữ
liệu chưa gán nhãn (working set), S3VM xây dựng một máy hỗ trợ vector sử
dụng cả training set và working set. Bài toán truyền dẫn sẽ dựđoán giá trị của
một hàm phân lớp tới các điểm đã cho trong working set.
Trong khi SVM là một thuật toán có giám sát sử dụng dữ liệu đã gán nhãn,
thì S3VM được xây dựng sử dụng hỗn hợp dữ liệu gán nhãn (training set) và dữ
liệu chưa gán nhãn (working set). Mục đích là để gán các lớp nhãn tới working
set một cách tốt nhất, sau đó sử dụng hỗn hợp dữ liệu huấn luyện đã gán nhãn và
dữ liệu working set sau khi đã gán nhãn để phân lớp những dữ liệu mới. Nếu
working set rỗng thì phương pháp này trở thành phương pháp chuẩn SVM để
phân lớp. Nếu training set rỗng, sau đó phương pháp này sẽ trở thành hình thể
học không giám sát. Học bán giám sát xảy ra khi cả training set và working set
không rỗng.
Để hiểu một cách rõ ràng cụ thể về S3VM, thì chúng ta cần hiểu về SVM
đã được trình bày ở trên. Với thời gian và điều kiện không cho phép, trong khoá
Trang 26
luận này em chỉ có thể tìm hiểu về thuật toán S3VM là bài toán phân lớp nhị
phân.
Cho trước một tập huấn luyện gồm những dữ liệu đã gán nhãn cùng với tập
dữ liệu chưa gán nhãn working set bao gồm n dữ liệu. Mục đích là gán nhãn cho
những dữ liệu chưa gán nhãn này.
Với hai lớp đã cho trước gồm lớp dương (lớp +1) và lớp âm (lớp –1). Mỗi
dữ liệu được xem như một điểm trong không gian vector. Mỗi điểm i thuộc tập
dữ liệu huấn luyện có một sai số là ηivà mỗi điểm j thuộc working set sẽ có hai
sai sốξj (sai số phân lớp với giả sử rằng j thuộc lớp +1) và zi (sai số phân lớp với
giả sử rằng j thuộc lớp –1).
S
au khi đã tìm được ξi và zj, chúng ta sẽ có được sai số nhỏ nhất của mỗi điểm j,
Nếu ξi < zj thì điểm j thuộc lớp dương, ngược lại nếu ξi> zj thì điểm j thuộc
lớp âm. Quá trình này diễn ra trên tất cả các điểm thuộc working set, sau khi quá
trình này đã hoàn thành, tất cả các điểm chưa gán nhãn sẽđược gán nhãn.
Tập dữ liệu chưa gán nhãn working set sau khi đã gán nhãn sẽđược đưa vào
tập dữ liệu huấn luyện, tiếp theo đó sẽ sử dung thuật toán SVM để học tạo ra
SVM mới, SVM này chính là S3VM có một siêu phẳng mới. Sau đó áp dụng
siêu phẳng này để phân lớp các mẫu dữ liệu mới được đưa vào.
2.2.2. Phân lớp trang Web sử dụng bán giám sát SVM
2.2.2.a. Giới thiệu bài toán phân lớp trang Web (Web
Classification)
Trang 27
Phân lớp trang Web là một trường hợp đặc biệt của phân lớp văn bản
bởi sự hiện diện của các siêu liên kết trong trang Web, cấu trúc trang Web
chặt chẽ, đầy đủ hơn, dẫn đến các tính năng hỗn hợp như là plain texts, các
thẻ hypertext, hyperlinks….
Internet với hơn 10 tỷ trang Web là một tập huấn luyện rất phong phú về
mọi chủđề trong cuộc sống, hơn nữa với số lượng chủđề trên các Website là
không nhiều thì việc sử dụng Internet như cơ sở huấn luyện rất phù hợp.
Trong các trang Web, tuy độ chính xác không phải là tuyệt đối, nhưng ta có
thể thấy mỗi chủđề gồm có nhiều từ chuyên môn với tần suất xuất hiện rất
cao, việc tận dụng tần số phụ thuộc của các từ này vào chủđề có thểđem lại
kết quả khả quan cho phân lớp.
2.2.2.b. Áp dụng S3VM vào phân lớp trang Web
Có thể thấy trang Web là siêu văn bản (hypertext) rất phổ dụng hiện nay.
Nội dung của các trang Web thường được mô tả ngắn gọn, súc tích, có các
siêu liên kết chỉđến các Web có nội dung liên quan và cho phép các trang
khác liên kết đến nó.
Nhưđã nói trên, vì được xem như là các văn bản thông thường nên trong
quá trình phân lớp trang Web việc biểu diễn văn bản sử dụng mô hình không
gian vector. Việc biểu diễn và xử lý tài liệu Web cũng giống như biểu diễn và
xử lý văn bản bằng mô hình này. Tuy nhiên trong phân lớp Web thì việc khai
thác thế mạnh của siêu liên kết trong văn bản là một vấn đềđáng quan tâm.
Với việc sử dụng các siêu liên kết giữa các trang Web từđó có thể lấy được
các thông tin về mối liên hệ giữa nội dung các trang, và dựa vào đó để nâng
cao hiệu quả phân lớp và tìm kiếm.
Để áp dụng vào phân lớp trang Web, thuật toán S3VM xem mỗi trang
Web là một vector f(d1, d2,…, dn)được biểu diễn giống như văn bản. Áp dụng
công thức (2.5) trong phương trình của siêu phẳng:
Trang 28
f(x1, x2,…, xn) = C +∑ wi xi
Thay thế mỗi văn bản tương ứng với mỗi trang Web vào phương trình siêu
phẳng này:
f(d1, d2,…,dn) = C +∑ wi di (2.6)
Với i=1,…,n.
Nếu f(d) ≥ 0 thì trang Web thuộc lớp +1.
Ngược lại nếu f(d) < 0 trang Web thuộc lớp –1.
Có thể thấy rằng quá trình áp dụng thuật toán S3VM vào bài toán phân lớp
trang Web chính là việc thay thế vector trọng số biểu diễn trang Web đó vào
phương trình siêu phẳng của S3VM, từđó tìm ra được nhãn lớp của các trang
Web chưa gán nhãn.
Như vậy, thực chất của quá trình phân lớp bán giám sát áp dụng đối với dữ
liệu là các trang Web là tập dữ liệu huấn luyện là các trang Web còn tập working
set (dữ liệu chưa gán nhãn) là những trang Web được các trang Web đã có nhãn
trong tập huấn luyện trỏ tới.
Trang 29
CHƯƠNG 3
KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ
Trong nghiên cứu này, tác giả sử dụng phần mềm nguồn mở để tiến hành
thực nghiệm phân lớp bán giám sát các tài liệu Web. Trong nội dung của
chương sẽ giới thiệu giới thiệu về phần mềm nguồn mở SVMlin do Vikas
Sindhwani công bố, trình bày quá trình khai thác phần mềm nhằm thực hiện bài
toán phân lớp và đánh giá.
3.1. Giới thiệu về phần mềm SVMlin
SVMlin là gói phần mềm dành cho SVMs tuyến tính, nó thoả mãn bài toán
phân lớp một số lớn các mẫu dữ liệu và các đặc trưng. Là chương trình phần
mềm được viết trên ngôn ngữ C++.
Ngoài tập dữ liệu đã được gán nhãn, SVMlin còn có thể tận dụng tập dữ
liệu chưa được gán nhãn trong quá trình học. Tập dữ liệu chưa được gán nhãn
này thực sử hữu ích trong việc nâng cao độ chính xác của quá trình phân lớp khi
mà số lượng dữ liệu được gán nhãn từ trước là rất ít.
Hiện tại SVMlin đã thực hiện cài đặt các thuật toán sau:
Thuật toán học có giám sát (chỉ sử dụng các dữ liệu đã gán nhãn)
Thuật toán phân lớp bình phương tối thiểu đã được chuẩn hóa tuyến
tính (Linear Regularized Least Squares Classification).
Thuật toán học bán giám sát (có thể sử dụng các dữ liệu chưa gán nhãn)
Thuật toán học tuyến tính SVM truyền dẫn sử dụng nhiều lần chuyển
đổi (Multi-switch linear Transductive L2-SVMs)
Theo Vikas Sindhwani, khi dùng SVMlin phân loại văn bản (tập dữ liệu
RCV1v2/LYRL2004) với 804414 dữ liệu gán nhãn và 47326 đặc trưng, SVMlin
mất ít hơn hai phút để huấn luyện SVM tuyến tính trong một máy Intel với tốc
độ xử lý 3GHz và 2GB RAM. Nếu chỉ cho 1000 nhãn, nó có thể sử dụng hàng
trăm ngàn dữ liệu chưa gán nhãn để huấn luyện một SVM tuyến tính bán giám
Trang 30
sát trong vòng khoảng 20 phút. Dữ liệu chưa gán nhãn rất hữu ích trong việc cải
thiện quá trình phân lớp khi số lượng nhãn lớp không quá lớn.
Download SVMlin: phiên bản mới nhất của SVMlin được tải tại trang Web:
http://www.cs.uchicago.edu/people/vikass
Cài đặt:
- Thực hiện giải nén file cài đặt bằng các lệnh sau:
unzip svmlin.zip
tar –xvzf svmlin.tar.gz
- Kết quả giải nén sẽ tạo ra thư mục svmlin-v1.0 gồm các File: Makefile,
ssl.h, ssl.cpp và svmlin.cpp.
- Gõ lệnh:
make
Sẽ tạo ra file thực thi
svmlin
Quá trình thực thi này được sử dụng để huấn luyện, kiểm tra và đánh giá quá
trình thực hiện.
3.2. Sử dụng phần mềm và kết quả đánh giá
Các file dữ liệu
Định dạng dữ liệu đầu vào cho SVMlin tương tự như định dạng của bộ
công cụ SVM-Light/LIBSVM (điểm khác biệt duy nhất là không có cột đầu tiên
mô tả nhãn của các dữ liệu)
Mỗi một dòng mô tả một mẫu dữ liệu và là danh sách các cặp gồm chỉ số
đặc trưng : giá trị đặc trưng cho các đặc trưng có giá trị khác không, được
phân cách nhau bởi một ký tự trống. Mỗi hàng được kết thúc bằng một ký tự ‘\n’.
dụ với ma trận dữ liệu với 4 dữ liệu và 5 đặc trưng như sau:
Trang 31
0 3 0 0 1
4 1 0 0 0
6 5 9 2 0
6 0 0 5 3.
Được mô tả trong file đầu vào là:
2:3 5:1
1:4 2:1
2:5 3:9 4:2
1:6 4:5 5:3
Nhãn của các dữ liệu huấn luyện được chứa trong một file riêng biệt, gọi là
file mô tả nhãn dữ liệu. Mỗi dòng của file chứa nhãn cho dữ liệu ở dòng tương
ứng trong file mô tả dữ liệu ở trên. Nhãn của dữ liệu có thể nhận các giá trị sau:
+1 (dữ liệu gán nhãn thuộc lớp dương)
-1 (dữ liệu gán nhãn thuộc lớp âm)
0 (các dữ liệu chưa được gán nhãn)
Quá trình huấn luyện
Gõ lệnh:
svmlin [options] training_examples training_labels
Trong đó:
- training_examples.weights là File chứa dữ liệu huấn luyện
- training_examples.outputs. File chứa kết quả mô hình phân lớp
Kiểm tra (testing)
Gõ lệnh: svmlin -f training_examples.weights
test_examples_filename
Trong đó:
Trang 32
training_examples.weights: File chứa kết quả mô hình phân lớp
test_examples_filename: File chứa dữ liệu kiểm tra
Đánh giá
Nếu nhãn của dữ liệu kiểm thử đã được biết trước, chúng ta sử dụng lệnh
sau để tính ma trận thực thi của quá trình phân lớp:
svmlin -f weights_filename test_examples_filename test_labels_filename
Dữ liệu dùng cho quá trình huấn luyện
Dữ liệu huấn luyện được sử dụng bao gồm 1460 tài liệu (trongđó chỉ có 50
tài liệu được gán nhãn) được lấy từ bộ dữ liệu chuẩn 20-newsgroups.
Kết quả phân lớp
Với dữ liệu huấn luyện trên đây, SVMlin đạt độ chính xác là 92.8% khi lựa
chọn chức năng multi-switch TSVM và đạt độ chính xác là 95.5% khi lựa chọn
chức năng semi-supervised SVM. Điều này khẳng định tính hiệu quả của học
bán giám sát SVM.
Trang 33
KẾT LUẬN
Kết quả của nghiên cứu đã chỉ ra được một số vấn đề về bài toán phân lớp như: phương pháp phân lớp dữ liệu, phân lớp văn bản, sự áp dụng của thuật toán học máy vào bài toán phân lớp, trong đó tập trung trình bày về phương pháp học bán giám sát – phương pháp hiệu quả và được sử dụng phổ biến. Về phân lớp dữ liệu, nghiên cứu đã đưa ra bài toán tổng quan và trình bày về phương pháp phân lớp dữ liệu tổng quát từ đó có thể giúp người đọc hiểu về bài toán phân lớp. Nghiên cứ cũng đã trình bày cơ bản về bài toán phân lớp văn bản, cách một văn bản trong bài toán phân lớp được biểu diễn, qua đó nêu lên các phương pháp phân lớp văn bản cơ bản hiện nay.
Nghiên cứu đồng thời cũng đã tìm hiểu về việc sử dụng các thuật toán học
máy trong bài toán phân lớp văn bản như: thuật toán phân lớp sử dụng quá trình
học có giám sát và học bán giám sát. Kết quả của việc tìm hiểu đã nêu lên một
số phương pháp học bán giám sát điển hình, trên cơ sở đó sẽ đi sâu tìm hiểu
thuật toán học bán giám sát SVM.
Nghiên cứu cũng đã giới thiệu một công cụ có tên là SVMlin, cách sử dụng
phần mềm và kết quả chạy phần mềm do V. Sindhwani tiến hành trong năm
2007.
Hướng nghiên cứu trong thời gian tới
Như đã trình bày ở trên, trong nghiên cứu chưa thể tìm hiểu sâu, đặc biệt là tiến
hành thực hiện phần mềm SVMlin đã khảo sát. Vì thế trong thời gian tới tôi sẽ
tìm hiểu kỹ hơn về phần mềm để có thể chủ động nắm vững việc thực hiện phần
mềm, đặc biệt là các thuật toán học bán giám sát nền tảng lý thuyết của phần
mềm.
Trang 34
TÀI LIỆU THAM KHẢO
1. Balaij Krishnapuuram, David Williams, Ya Xue,k Alex Hartemink, Lawrence Carin, Masrio A.T.Figueiredo (2005). On Semi-Supervised Classification. NIPS: 721-728, 2005.
2. Panu Erastox (2001). Support Vector Machines: Background and Practice. Academic Dissertation for the Degree of Licentiate of Philosophy. University of Helsinki, 2001.
3. T. Joachims (2003). Transductive learning via spectral graph partitioning. Proceeding of The Twentieth International Conference on Machine Learning (ICML2003): 290-297.
Trang 35