Bộ phân lớp có thể được xây dựng bằng tay dựa vào các kỹ thuật ứng dụng tri thức hoặc có thể được xây dựng một cách tự động bằng các kỹ thuật học máy thông qua một tập các dữ liệu huấn l
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
-o0o -BÀI THU HOẠCH MÔN KHAI PHÁ DỮ LIỆU
PHÂN ĐA LỚP VĂN BẢN BẰNG PHƯƠNG PHÁP SVM
Giảng viên hướng dẫn:
PGS.TS Đỗ Phúc
Sinh viên thực hiện:
Lê Minh Trí CH1101149
Lớp: Cao học khóa 6 Mục lục
Trang 3LỜI MỞ ĐẦU
Ngày này, cùng với sự phát triển công nghệ thông tin cũng như sự bùng nổ của internet làm cho khối lượng thông tin trong việc lưu trữ và trao đổi đang ngày càng lớn Vì thế, việc xử lý, phân loại thông tin bằng cách thủ công trở nên khó khăn Do đó, đòi hỏi phải có cách tổ chức, phân loại thông tin tự động May mắn là tốc độ xử lý của máy tính càng ngày càng lớn và thực sự trở thành một công cụ đắc lực, hỗ trợ con người trong nhiều lĩnh vực, trong đó có phân loại thông tin Máy tính trở thành một công cụ hữu hiệu cho việc phân loại tự động thông tin bằng cách học, hay còn gọi là máy học và được áp dụng trong việc phân lớp văn bản
Trước hết, em xin gửi lời cảm ơn chân thành tới PGS.TS Đỗ Phúc Qua những buổi giảng dạy và hướng dẫn tận tình của thầy trong môn Khai phá dữ liệu đã giúp em hiểu biết thêm nhiều kiến thức Qua đó em xin trình bày trong bài tiểu luận này bài toán phân đa lớp văn bản dựa trên thuật toán vector hỗ trợ (Support Vector Machine) Hi vọng bài luận có thể góp phần nào giải quyết bài toán tổ chức và phân loại thông tin tự động
Trang 4I TỔNG QUAN BÀI TOÁN PHÂN LỚP VĂN BẢN
I.1 Giới thiệu bài toán phân lớp văn bản
Phân lớp văn bản là việc gán một văn bản tài liệu được biểu diễn trong ngôn ngữ tự nhiên vào một hoặc nhiều lớp đã được xác định trước Đầu tiên, người ta xây dựng một mô hình miêu tả một tập hợp ban đầu các văn bản dựa trên một tập các dữ liệu huấn luyện Tập
dữ liệu huấn luyện là tập các trang văn bản đã được gán nhãn lớp tương ứng cho chúng Quá trình xây dựng tập dữ liệu huấn luyện này thường được thực hiện bằng con người Sau
đó, mô hình được sử dụng để phân lớp các trang văn bản chưa được gán nhãn
Bộ phân lớp có thể được xây dựng bằng tay dựa vào các kỹ thuật ứng dụng tri thức hoặc có thể được xây dựng một cách tự động bằng các kỹ thuật học máy thông qua một tập các dữ liệu huấn luyện được định nghĩa trước phân lớp tương ứng
Nhiệm vụ của bài toán phân lớp dữ liệu là cần xây dựng một bộ phân lớp để khi có một dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu đó thuộc lớp nào Có nhiều bài toán phân lớp dữ liệu, như phân lớp nhị phân, phân lớp đa lớp, …
Phân lớp nhị phân là quá trình tiến hành việc phân lớp dữ liệu vào một trong hai lớp khác nhau dựa vào việc dữ liệu đó có hay không một số đặc tính theo quy định của bộ phân lớp
Phân lớp đa lớp là quá trình phân lớp với số lượng lớp lớn hơn hai Như vậy, tập hợp dữ liệu trong miền xem xét được phân chia thành nhiều lớp chứ không đơn thuần chỉ
là hai lớp như trong bài toán phân lớp nhị phân Về bản chất, bài toán phân lớp nhị phân là trường hợp riêng của bài toán phân lớp đa lớp
I.2 Mô hình phân lớp văn bản
Phân lớp văn bản định nghĩa thống nhất như là việc xác định tên các chủ đề của văn bản dựa trên nội dung của nó Phân lớp văn bản là công việc được sử dụng để hỗ trợ trong quá trình tìm kiếm thông tin, chiết lọc thông tin, lọc văn bản hoặc tự động dẫn đường cho các văn bản tới những chủ đề xác định trước Để phân lớp văn bản, người ta sử dụng phương pháp học máy có giám sát Tập dữ liệu được chia ra làm hai tập là tập huấn luyện
và tập kiểm tra, trước hết phải xây dựng mô hình thông qua các mẫu học bằng các tập huấn luyện, sau đó kiểm tra sự chính xác bằng tập dữ liệu kiểm tra
Trang 5Một hệ thống phân lớp văn bản bao gồm ba thành phần chính:
• Biểu diễn văn bản, tức là chuyển các dữ liệu văn bản thành một dạng có cấu trúc nào đó, tập hợp các mẫu cho trước thành một tập huấn luyện
• Thực hiện việc sử dụng các kỹ thuật học máy để học trên các mẫu huấn luyện vừa biểu diễn Như vậy việc biểu diễn ở giai đoạn thứ nhất sẽ là đầu vào cho giai đoạn thứ hai
• Thực hiện bổ sung các kiến thức thêm vào do người dùng cung cấp để làm tăng độ chính xác trong biểu diễn văn bản hay trong quá trình học máy Trong nhiều trường hợp, các phương pháp học hệ thống phân lớp có thể bỏ qua thành phần này Như vậy thành phần thứ ba được coi là trung tâm của một hệ thống phân lớp văn bản Trong phần này, có nhiều phương pháp học máy được áp dụng như mô hình mạng Bayes, cây quyết định, phương pháp K người láng giềng gần nhất, mạng Neuron, SVM, mô hình Maximum Entropy
I.3 Quá trình xây dựng bộ phân lớp văn bản
Quá trình phân lớp dữ liệu thường gồm hai bước: xây dựng bộ phân lớp và sử dụng
mô hình đó để phân lớp dữ liệu Các công cụ phân lớp được xây dựng dựa trên một thuật toán phân lớp qua bước học quy nạp
Bước 1: Xây dựng mô hình Một mô hình sẽ được xây dựng dựa trên phân tích các đối tượng dữ liệu đã được phân lớp từ trước Tập các mẫu dữ liệu này còn được gọi là tập dữ liệu huấn luyện Các lớp của tập dữ liệu huấn luyện được xác định bởi con người trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát Trong bước này, ta còn phải tính độ chính xác của mô hình, mà còn phải sử dụng một tập dữ liệu kiểm Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để xác định nhãn lớp cho các dữ liệu khác mới trong tương lại.Tồn tại nhiều phương pháp phân lớp dữ liệu để giải quyết bài toán phân lớp tùy thuộc vào cách thức xây dựng mô hình phân lớp như phương pháp Bayes, phương pháp cây quyết định, phương pháp k người láng giềng gần nhất, phương pháp SVM, phương pháp Maximum Entropy… Các phương pháp phân lớp khác nhau chủ yếu về mô hình phân lớp Mô hình phân lớp còn được gọi là thuật toán phân lớp
Bước 2: Sử dụng mô hình Sử dụng mô hình được xây dựng ở bước 1 để phân lớp dữ liệu mới Như vậy, thuật toán phân lớp là một ánh xạ từ miền dữ liệu đã có sang một miền giá trị cụ thể của thuộc tính phân lớp, dựa vào giá trị các thuộc tính của dữ liệu
Trang 6I.4 Phương pháp biểu diễn văn bản
Trong bài toán phân lớp văn bản, cách biểu diễn văn bản đóng vai trò rất lớn Một tài liệu được biểu diễn dưới dạng một tập hợp các từ, mỗi từ được xem là một thuộc tính hoặc đặc trưng của văn bản tương ứng với một vector đặc trưng Đôi khi, thay vì những từ đơn, các đặc trưng có thể được biểu diễn bằng các cụm từ hoặc chuỗi n từ với n >= 2 Theo các nghiên cứu về phương pháp biểu diễn văn bản khác nhau, đặc biệt là khi so sánh ảnh hưởng và hiệu quả của nó thì không có cách biểu diễn văn bản nào tốt hơn cách biểu diễn bằng tập các từ riêng biệt được lấy ra từ văn bản gốc
Sau khi xác định được các đặc trưng, chúng ta cần tính giá trị đặc trưng (hoặc trọng
số từ khóa) cho mỗi văn bản Mỗi từ khóa ti trong một tài liệu Dj được gán một trọng số wij
và do đó, mỗi tài liệu được biểu diễn như một vector Trọng số từ khóa có thể được tính toán bằng nhiều cách khác nhau Cách đơn giản nhất theo mô hình Boolean là gán trọng số bằng một giá trị nhị phân chỉ ra từ khóa có mặt hay không có mặt trong văn bản, tức là giá trị trọng số wij là 1 nếu từ khóa ti xuất hiện ít nhất một lần trong tập tài liệu Dj và wij là 0 trong trường hợp ngược lại Phương pháp khác là tính số lần xuất hiện của từ khóa trong một tài liệu gọi là tần suất từ khóa Tần suất từ khóa được tính theo công thức:
Trong đó N là tổng số từ khóa của tài liệu Dj và occ(tk, Dj) là số lần xuất hiện của từ
tk trong văn bản Dj Phương pháp này được gọi là phương pháp dựa trên tần số từ khóa (TF – Term Frequency)
Phương pháp này có vẻ rất trực quan nhưng mặt hạn chế của phương pháp này là nếu một từ xuất hiện nhiều lần trong tài liệu sẽ có tần xuất cao Tuy nhiên nếu những từ này đều xuất hiện trong tất cả các văn bản thì nó sẽ không mang nhiều thông tin ngữ nghĩa của văn bản và do đó độ quan trọng của nó giảm đi
Thông thường tần suất của các từ khóa trong văn bản không đồng đều nhau Một số
từ khóa xuất hiện rất thường xuyên, trong khi đó, một nửa số từ khóa xuất hiện chỉ một lần
Để giải quyết hạn chế này, Phương pháp dựa trên nghịch đảo tần số văn bản (IDF – Inverse Document Frequency) với tần suất logarit (tương tự với tần suất từ
khóa) Với phương pháp này, giá trị wij được tính như sau:
Trang 7
=
0
) log(
) log(
log i
i ij
h m
h
m w
Trong đó, m là số lượng văn bản, hi là số các văn bản có chứa thuật ngữ ti
Phương pháp dựa trên nghịch đảo tần số văn bản IDF được sử dụng phổ biến hơn phương pháp dựa trên tần số IF, nhưng phương pháp này vẫn chưa giải quyết triệt để hạn chế của phương pháp tần số từ khóa Theo đó, một từ xuất hiện nhiều lần có tần suất cao,
từ xuất hiện ít có tần số thấp
Phương pháp chuẩn thường được sử dụng là Term Frequency Inverse Document Frequency (IFIDF), hàm tính trọng số từ khóa được xác định bởi công thức:
≥
+
=
0
1 log
) log(
i
ij ij
h h
m f
w
Trọng số TFIDF của một từ khóa biểu diễn độ quan trọng của từ khóa TFIDF của một từ khóa trong một tài liệu sẽ giảm nếu như từ đó xuất hiện trong hầu hết các văn bản
Vì vậy, một từ xuất hiện quá ít hoặc quá nhiều được đánh giá ít quan trọng hơn so với các
từ xuất hiện cân bằng
nếu ti xuất hiện trong dj
nếu ngược lại
Trang 8II PHƯƠNG PHÁP PHÂN LỚP SVM
II.1 Phân lớp SVM nhị phân
Thuật toán máy vector hỗ trợ (Support Vector Machines - SVM) được Corters và Vapnik giới thiệu vào năm 1995 SVM rất hiệu quả để giải quyết các bài toán với dữ liệu
có số chiều lớn như các vector biểu diễn văn bản Thuật toán SVM ban đầu chỉ được thiết
kế để giải quyết bài toán phân lớp nhị phân tức là số lớp hạn chế là hai lớp Hiện nay, SVM được đánh giá là bộ phân lớp chính xác nhất cho bài toán phân lớp văn bản, bởi vì đó là bộ phân lớp tốc độ rất nhanh và hiệu quả đối với bài toán phân lớp văn bản
Ý tưởng của SVM là tìm một mặt phẳng sao cho cận trên của xác suất lỗi là nhỏ nhất Đối với dữ liệu không thể phân tách tuyến tính, SVM ánh xạ dữ liệu từ không gian đầu vào vào không gian đặc trưng dựa trên hàm nhân
Các ứng dụng của SVM trong thực tế cho hiệu quả phân lớp rất cao so với các phương pháp phân loại máy học khác và được ứng dụng trong rất nhiều lĩnh vực:
Phân lớp văn bản: Nhiệm vụ của phân lớp văn bản là phân loại những tài liệu văn bản tự nhiên thành một số loại được định nghĩa trước dựa trên nội dung Đặc trưng của các vector văn bản là có số chiều rất lớn, do đó rất thích hợp để áp dụng phương pháp SVM
Nhận dạng ảnh: Hiện nay có một số lượng hình ảnh rất lớn trên Internet hoặc trên những cơ sở dữ liệu chuyên dụng Những kỹ thuật của việc nhận dạng ảnh được ứng dụng trong rất nhiều lĩnh vực như: rút trích thông tin, lọc dữ liệu trên Internet, ứng dụng trong y học, phát hiện vật thể, an ninh
Nhận dạng chữ viết: Nhận dạng chữ viết là một trong những ứng dụng rất rộng rãi của SVM, nó có thể ứng dụng trong các ngành như: bưu điện (phân loại thư theo mã bưu điện), số hóa các văn bản (nhận dạng chữ viết của một văn bản được scan lên máy tính),
Bài toán phân loại văn bản bằng SVM nhị phân: Cho một văn bản, dựa vào nội dung kiểm tra xem văn bản đó thuộc vào loại gì trong hai loại đã cho trước
Sau khi trích chọn đặc trưng, mỗi văn bản được biểu thị dưới dạng một vector Mỗi vector là một điểm trong không gian n chiều Các văn bản huấn luyện thuộc 2 lớp (được đánh nhãn là +1 và -1) là các điểm trong không gian đầu vào n chiều SVM sẽ tìm một mặt phẳng tốt nhất phân tách 2 tập điểm +1 và -1 Mặt phẳng đó sẽ là hàm phân lớp để quyết định một mẫu mới sẽ thuộc lớp nào Tổng quát bài toán: “Cho một tập huấn luyện các
Trang 9vector trong không gian n chiều Các vector thuộc một trong hai lớp +1 và -1 Khi có một vector mới, phải xác định được nó thuộc lớp nào trong hai lớp đã cho”
II.1.1.Phân lớp tuyến tính
Xét một tập huấn luyện S gồm l phần tử:
Với yi thuộc 1 trong 2 giá trị là +1 và -1 có nghĩa xi thuộc 1 trong 2 lớp Ta phải tìm một hàm số thực:
Sao cho
Khi phân lớp một mẫu x được phân vào lớp dương (+1) nếu f(x) >= 0 và lớp âm (-1) nếu ngược lại
Xét trường hợp f(x) là hàm tuyến tính (siêu phẳng tuyến tính) Ta có:
Với: được gọi là trọng số (weight) của siêu phẳng
được gọi là ngưỡng (threshold)
Hình - Phân lớp tuyến tính
Bài toán được đặt ra là tìm bộ (w, b) sao cho siêu phẳng có thể phân tách được dữ liệu huấn luyện
II.1.2 SVM với siêu phẳng có lề cực đại
Cho bộ dữ liệu huấn luyện , siêu phẳng , ta có một số định nghĩa sau :
Trang 10− Lề hàm số (functional margin) của một mẫu (xi, yi) đối với một siêu phẳng (w, b) được định nghĩa:
− Lề hình học (geometric margin) là lề hàm số với các trọng số được chuẩn hóa
Ý nghĩa thực tế của lề hình học là khoảng cách từ mẫu đến siêu phẳng phân tách Khi đó lề của một siêu phẳng đối với bộ dữ liệu S là lề hình học nhỏ nhất trong số các lề hình học của các điểm thuộc S đối với siêu phẳng
Bài toán SVM được định nghĩa như sau:
Tìm siêu phẳng tuyến tính (tìm bộ (w,b)) có thể phân tách được bộ dữ liệu huấn luyện S sao cho lề cực đại
Hình - Phân lớp tuyến tính với lề cực đại
Các điểm nằm trên 2 lề của siêu phẳng được gọi là các support vector Chỉ có những điểm này mới ảnh hưởng đến kết quả phân lớp (ảnh hưởng đến siêu phẳng) Các điểm khác
có thể bỏ đi mà không làm ảnh hưởng đến kết quả của siêu phẳng Đây là một ưu điểm của SVM vì để lưu kết quả hay xử lý tính toán ta chỉ cần thao tác trên các support vector
Hai lề của siêu phẳng phân tách có thể được chuẩn hóa theo dạng:
với lề bên phía các điểm thuộc lớp +1 và được gọi là mặt phẳng (+)
với lề bên phía các điểm thuộc lớp -1 và được gọi là mặt phẳng (-)
Do 2 mặt phẳng này song song nên khoảng cách giữa 2 mặt phẳng cũng là khoảng cách từ 1 điểm trên mặt phẳng này đến mặt phẳng kia Gọi x0 là điểm thuộc mặt phẳng (+), khoảng cách từ x0 đến mặt phẳng
Do đó để khoảng cách giữa 2 lề là cực đại thì ||w|| phải đạt cực tiểu với điều kiện
Trang 11Để thuận tiện trong tính toán ta thay ||w|| bằng Khi đó bài toán được phát biểu là: Tìm
Với ràng buộc
II.1.3 Bài toán tối ưu hóa
Xét hàm mục tiêu:
Với ràng buộc:
Hàm Lagrange của bài toán trên là:
Với là các nhân tử Lagrange
L đạt cực trị khi:
Thay các biểu thức trên vào hàm L ta có:
Khi đó bài toán được phát biểu lại là:
Với điều kiện:
II.1.4 Giải thuật huấn luyện
Để tìm được siêu phẳng tối ưu ta phải giải quyết bài toán tối ưu hóa
Tìm
Với điều kiện
Trang 12Đây là một bài toán tối ưu quy hoạch toàn phương rất lớn Số lượng biến số bằng với số lượng mẫu xi có nghĩa là có thể từ vài ngàn đến vài chục ngàn, do đó độ phức tạp của việc giải bài toán tối ưu là rất lớn Do đó giải thuật huấn luyện là một trong những phần quan trọng nhất của SVM
* Điều kiện Karush - Kuhn – Tucker (KKT):
Điều kiện Karush-Kuhn-Tucker (KKT) là điều kiện cần và đủ để 1 điểm là lời giải tối ưu cho bài toán quy hoạch toàn phương hữu hạn dương Điều kiện KKT cho bài toán với mọi i:
Do đó để giải được bài toán tối ưu hóa của SVM, ta phải tìm bộ thỏa điều kiện này
Có nhiều phương pháp để giải bài toán này, trong đó SMO là một trong những phương pháp phổ biến nhất hiện nay
* Giải thuật SMO (Sequential Minimal Optimasation)
SMO là một giải thuật đơn giản giải quyết bài toán tối ưu hóa toàn phương nhanh chóng mà không cần tốn bộ nhớ lưu trữ ma trận hàm nhân Tư tưởng của SMO là chia nhỏ bài toán quy hoạch toàn phương lớn này thành một loạt những vấn đề quy hoạch nhỏ nhất Những bài toán nhỏ sẽ được giải quyết bằng cách phân tích, do đó tránh được bài toán tối
ưu toàn phương có thời gian rất lớn Lượng bộ nhớ sử dụng trong SMO là tuyến tính với kích thước bộ huấn luyện (O(n) với n là số lượng mẫu huấn luyện), cho phép xử lý những bài toán rất lớn
Không giống các phương pháp khác, SMO giải quyết bài toán tối ưu hóa nhỏ nhất tại mỗi bước Đối với bài toán tối ưu hóa của SVM, bài toán tối ưu hóa nhỏ nhất bao gồm hai nhân tử Lagrange bởi vì các nhân tử Lagrange phải thỏa ràng buộc tuyến tính Tại mỗi bước, SMO chọn hai nhân tử để tiến hành tối ưu hóa, các nhân tử còn lại xem như hằng số Sau khi tối ưu hóa, giá trị của các nhân tử Lagrange sẽ được cập nhật Giá trị tối ưu hóa của hai nhân tử Lagrange được tìm bằng cách phân tích, do đó tránh được bài toán tối ưu hóa toàn phương Đây cũng chính là điểm mạnh của SMO so với các phương pháp còn lại
Giải thuật SMO bao gồm 2 thành phần:
− Phần phương pháp phân tích để giải bài toán tối ưu của 2 nhân tử Lagrange