Nhiệm vụ của bài toán phân loại văn bản là xác định và phân các văn bản vào mộthay một số lớp văn bản thích hợp dựa vào nội dung của văn bản.. Phân loại văn bản được dựa trên cơ chế rút
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CÔNG NGHỆ TRI THỨC
Bài Thu Hoạch:
PHÂN ĐA LỚP VĂN BẢN BẰNG SVM VÀ MÔ HÌNH CÂY TỔNG QUÁT
Trang 2Mục lục
Trang 3Trước hết, em xin gửi lời cảm ơn chân thành tới GS.TSKH Hoàng Kiếm Qua nhữngbuổi giảng dạy và hướng dẫn tận tình của thầy trong môn Công nghệ tri thức đã giúp em hiểubiế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 đalớ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 LOẠI VĂN BẢN
I.1 Giới thiệu bài toán phân loại văn bản
Bài toán phân loại là một bài toán kinh điển, trong đó phân loại văn bản là một bài toánphổ biến Nhiệm vụ của bài toán phân loại văn bản là xác định và phân các văn bản vào mộthay một số lớp văn bản thích hợp dựa vào nội dung của văn bản
Đầu thập kỷ 90, cách tiếp cận máy học (Machine Learning) để phân loại văn bản đượcphổ biến và thu hút nhiều người nghiên cứu trong lĩnh vực này Quá trình xử lý quy nạp nhằmmột phân lớp cho một loại ci bằng quan sát các đặc trưng của tập hợp các tài liệu đã được phânbằng tay vào ci hay i
c
bởi chuyên gia về lĩnh vực này Bài toán phân lớp là hoạt động học cógiám sát, quá trình học được giám sát bởi tri thức của các phân loại và của các mẫu huấnluyện
Phân loại văn bản được dựa trên cơ chế rút trích thông tin gồm 3 giai đoạn:
1 – Xử lí văn bản: các văn bản ở dạng thô cần sẽ xử lí để được chuyển sang một dạng
biểu diễn đơn giản nhưng vẫn giữ được nội dung chính của văn bản
2 – Huấn luyện: quá trình học sẽ được diễn ra dựa trên các văn bản đã được phân loại.
3 – Phân loại: sau khi đã huấn luyện sẽ là quá trình phân loại dùng để phân loại văn bản.
Các phương pháp phân loại văn bản dựa máy học hiện nay đều dựa vào tần suất xuấthiện của từ hoặc cụm từ trong văn bản Độ chính xác của kết quả của việc xử lí văn bản ảnhhưởng lớn đến kết quả của phân loại
I.2 Tiền xử lý văn bản và biểu đặc trưng văn bản trong không gian vector
Để máy tính có thể tự động phân loại văn bản, các văn bản phải được biểu diễn dướidạng các vector đặc trưng, trong đó chiều thứ i trong vector đại điện cho giá trị của đặc trưngthứ i Để rút được các đặc trưng của văn bản, cần phải thực hiện nhiều thao tác tiền xử lý nhưtách từ, loại các ký tự thừa, loại bỏ các từ có chiều dài ngắn, loại bỏ các từ không mang nhiều
ý nghĩa
Trang 5I.2.1 Tiền xử lý văn bản
Mục đích chính của bước tiền xử lý văn bản là đưa một văn bản về dạng chuẩn, loại bỏtất cả những yếu tố không cần thiết hoặc có thể làm nhiễu việc phân lớp như kí tự thừa, các từkhông mang nhiều ý nghĩa nội dung, dấu câu… Sau bước này, ta còn lại được những nội dungđặc trưng nhất của văn bản đó, các từ còn lại trong văn bản là các từ có giá trị thông tin cao.Điều đó giúp cho việc rút trích đặc trưng được dễ dàng, chính xác làm tiền đề cho việc nângcao hiệu suất ở bước phân lớp
Bên cạnh đó, bước tiền xứ lý này còn giúp cho các văn bản có dung lượng nhỏ hơn mànội dung vẫn đầy đủ, không bị thiếu thông tin Điều này làm cho hệ thống xử lý và làm việcnhanh hơn, giúp có được kết quả tốt, văn bản gốc không bị ảnh hưởng Do vậy bước tiền xử lýluôn luôn quan trọng trong bất cứ thuật toán phân lớp nào
Các đặc trưng là yếu tố đầu vào hết sức quan trọng:
- Các đặc trưng phải thực sự là những từ đại diện cho nhóm về mặt nội dung Nếu tậpđặc trưng được chọn không bao phủ rộng tất cả các văn bản huấn luyện thì việc phân loại sẽkhông khách quan và ảnh hưởng ít nhiều đến kết quả tùy thuộc vào mức độ thiếu hụt các đặctrưng
- Các đặc trưng phải được rút gọn về mặt hình thức Điều này giúp đánh giá tốt hơn độquan trọng của một từ dưới dạng một đặc trưng đại diện duy nhất
I.2.2 Biểu diễn đặc trưng văn bản trong không gian vector
Sau bước tiền xử lý, văn bản giờ chỉ còn lại những ký tự được chọn lọc Tuy nhiên đâymới chỉ là giai đoạn đầu, văn bản ở dạng này vẫn chưa phù hợp với nhiệm vụ và thuật toán xử
lý văn bản mà nó cần được biến đổi Mỗi văn bản sẽ được đưa về dạng 1 vector gồm n chiều
Chọn lựa đặc trưng là quá trình làm giảm số chiều thực của vector đặc trưng nghĩa là
giảm kích thước của không gian vector từ |T| thành |T ’ |<<|T|
Có hai hướng khác nhau trong việc giảm số chiều, phụ thuộc vào nhiệm vụ giảm sốchiều là bộ phận hay tổng thể:
Trang 6- Giảm số chiều bộ phận: Cho một loại ci, một tập các thuật ngữ , |T ’ |<<|T|, được
chọn chỉ để thực hiện phân lớp cho loại ci
- Giảm số chiều tổng thể: Một tập các thuật ngữ T ’ , với |T ’ |<<|T|, được chọn để thực
hiện phân lớp cho tất cả các loại C = {c1,…,c|C|}
Vector hóa văn bản là quá trình biến đổi nội dung văn bản, các đặc trưng của văn bảnthành cách vector có các trọng số theo các đặc trung của văn bản đó Có rất nhiều phươngpháp biểu diễn văn bản, mỗi phương pháp thích hợp với từng bài toán cụ thể; trong đó,phương pháp biểu diễn văn bản theo không gian vector dựa vào tần suất, đây được coi là mộthướng tiếp cận tương đối đơn giản và hiệu quả để biểu diễn văn bản
Trong mô hình tần suất, ma trận W={wij} được xác định dựa trên tần số xuất hiện củathuật ngữ ti trong văn bản dj hoặc trong toàn bộ tập văn bản D
Phương pháp xác định wij dựa trên số lần xuất hiện của thuật ngữ trong văn bản Với fij làtần số của thuật ngữ ti trong văn bản dj, thì wij được tính bởi một trong số các công thứcsau:
)log(
log i
i ij
h m
h
m w
nếu ngược lại
nếu ti xuất hiện trong
dj
Trang 7Trong đó, 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
=
0
1 log
) log(
i
ij ij
h h
m f
w
Trang 8II PHƯƠNG PHÁP PHÂN LỚP SVM
V Vapnik đề xuất một phương pháp học có giám sát dùng để phân lớp nhị phânphương pháp này gọi là SVM Mục đích của phương pháp này là phân lớp dựa trên các đặctrưng của văn bản Tư tưởng chính của SVM là tìm một mặt phẳng phân tách tuyến tính hailớp với nhau Khi đó một mẫu mới sẽ được phân lớp dựa trên vị trí tương đối của mẫu đó vớimặt phẳng này SVM sẽ tìm một mặt phẳng tốt nhất nghĩa là mặt phẳng có lề (khoảng cách từđiểm dữ liệu gần nhất đến mặt phẳng) lớn nhất
Hình - Phương pháp phân lớp SVM
Đối với những trường hợp 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 có số chiều lớn hơn
II.1 Phân lớp SVM nhị phân
Phân loại văn bản bằng SVM nhị phân là bài toán nhắm xác định một văn bản sẽ thuộcloại gì trong hai loại đã cho trước
Sau khi tiền xử lí và vector hóa đặc trưng, mỗi văn bản được biểu thị dưới dạng mộtvector 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ộtmặt phẳng tốt nhất phân tách 2 tập điểm +1 và -1
Trang 9Xé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)
Trang 10chữ, phân lớp văn bản, …
− SVM cho thời gian phân lớp tương đối nhanh
Khuyết điểm:
− Thời gian để huấn luyện theo phương pháp SVM lâu, không gian bộ nhớ sử dùng lớn
− SVM chỉ được thiết kế cho phân lớp nhị phân Tuy nhiên trong thực tế cần phải phânloại nhiều lớp
II.3 Phân loại đa lớp
Một số phương pháp phân loại đa lớp sử dụng SVM phổ biến hiện nay là: All (OvA), One-against-One (OvO), và các phương pháp dựa trên cây nhị phân
Hình - Minh họa phương pháp One-versus-All
Đối với một vector x cần được phân lớp, ta tính tất cả các hàm Di(x) Luật phân lớp là:Nếu Di(x) > 0 thì x thuộc lớp i, ngược lại x không thuộc lớp i
Trang 11II.3.2 One-Against-One
Trong phương pháp này là ta sẽ phân từng cặp lớp với nhau Đối với bài toán phân lớp
k lớp ta xây dựng k(k-1)/2 bộ phân lớp SVM nhị phân Đối với mỗi cặp lớp i, j, ta lấy các mẫuthuộc lớp i gán cho nhãn dương (+1), các mẫu thuộc lớp j gán cho nhãn âm (-1) Sau đó phânlớp bộ dữ liệu này Gọi hàm phân lớp cho mỗi cặp lớp i, j là:
Dij(x) = wijTx + b
Hình 2- Minh họa phương pháp One-against-One
Các thử nghiệm thực tế đã chứng tỏ rằng phương pháp OvO cho kết quả có độ chínhxác cao hơn phương pháp OvA
II.3.2 Các phương pháp dựa trên cây nhị phân
Decision Directed Acyclic Graph (DDAG)
Platt, Cristianini và J Shawe-Taylor đã đề xuất phương pháp phân lớp pairwise dựatrên cây quyết định gọi là Decision Directed Acyclic Graph (DDAG)
Một Directed Acyclid Graph (DAG) là một đồ thị có hướng và không chu trình MộtDAG có gốc (Rooted DAG) là DAG có một node duy nhất mà không có cung chỉ vào nó
Decision Directed Acyclid Graph (DDAG) trên k lớp là một đồ thị DAG nhị phân cógốc với k node lá được gắn nhãn bởi k lớp, mỗi node trong số n = k(k – 1)/2 node trong đượcgắn nhãn bởi một cặp lớp, và SVM được dùng để huấn luyện hàm phân loại giữa 2 lớp đó
Trang 12Khi phân lớp dữ liệu x, bắt đầu từ node gốc với nhãn là cặp i, j Nếu hàm quyết định tạinode này dương, thì cung bên trái được chọn gồm tất cả những node mà nhãn không bao gồm
j, ngược lại cung bên phải được chọn gồm tất cả những node mà nhãn không bao gồm i Tiếptục tương tự với các node mà ta gặp cho đến khi găp node lá Khi ấy dữ liệu x sẽ được phânvào lớp là nhãn của node lá đó Đường đi xuyên qua DDAG được gọi là đường đi định giá(evaluation path)
DDAG tương đương với những bước trên một danh sách, mỗi node loại bỏ một lớpkhỏi tập các lớp Danh sách này được khởi tạo là một danh sách gồm tất cả các lớp Tại mỗinode trên DDAG, nếu hàm quyết định cho kết quả là một lớp nào thì lớp còn lại sẽ bị loại bỏkhỏi danh sách Đến khi nào danh sách chỉ còn một lớp thì dữ liệu x được phân vào lớp đó
Hình - Minh họa một đồ thị DDAG
Half-against-Half (HAH)
Một phương pháp phân đa lớp SVM nữa là Half-against-Half do H Lei và VenuGovindaraju đề xuất HAH là một kiểu cây nhị phân quyết định Tại mỗi node gốc, ta chia cáclớp thành 2 nhóm, xây dựng mặt phẳng phân lớp SVM cho 2 nhóm này Sau đó tạo 2 nodecon cho 2 nhóm này Tiếp tục quá trình phân chia cho các node con Nếu trong 1 node chỉ còn
1 lớp, ta kết thúc quá trình phân chia cho node này
Trang 13Hình - Một minh họa cho HAH.
1 Mỗi node là một SVM nhị phân chia 2 nhóm với nhau
2 HAH cho 6 lớp
Đối với những bộ dữ liệu có số lượng lớp nhỏ, có thể chia chúng thành những nhómbằng tay với tri thức biết trước (prior knowledge) Đối với những bài toán có số lượng lớp lớn,thông thường ta phải chia nhóm một cách tự động
Trang 14III CÂY TỔNG QUÁT VÀ XÁC SUẤT LỖI
III.1 Mô hình cây tổng quát
Có thể thấy rằng đối với DDAG, trong mỗi node có hai lớp được chọn để huấn luyệnmặt phẳng phân lớp, ngược lại đối với HAH, trong mỗi node các lớp được chia ra làm hainhóm Do đó, ta có thể xây dựng mô hình cây mới linh hoạt hơn trong việc chọn lớp trong mỗinode Trong đó số các lớp được chọn trong mỗi node có thể dao động chứ không cố định nhưDDAG hay HAH
Định nghĩa:
Cây tổng quát là cây nhị phân được tạo ra trong quá trình huấn luyện như sau
Quá trình huấn luyện:
B1: Tạo node gốc (node 0) với danh sách lớp là L[0] chứa tất cả các lớp Đặt node 0 lànode đang xét
B2: Với node k đang xét có danh sách lớp là L[k] Nếu L[k] chứa 1 phần tử → kết thúc,ngược lại qua bước 3
B3: Chọn từ L[k] 2 nhóm lớp G1 và G2 để xây dựng bộ phân lớp, các lớp còn lạikhông được chọn là G3 Xác định mặt phẳng phân lớp cho G1 và G2
B4: Tạo ra 2 node con của k là k1 và k2 tương ứng với G1 và G2 với và
B5: Quay lại B2 cho k1 và k2
Quá trình phân lớp:
Giả sử ta cần phân lớp một mẫu x
B1 Chọn node đang xét là node gốc
B2 Nếu node đang xét là node lá với một lớp c duy nhất trong nhãn thì kết luận là xthuộc lớp c và kết thúc thuật toán, ngược lại qua B3
B3 Sử dụng hàm phân lớp f(x) của node đang xét cho mẫu x Nếu f(x) >= 0, chọn node
Trang 15not 4, 6
not 1, 2
Hình - Minh họa một cây tổng quát
Quá trình chọn lớp trong mỗi node là một vấn đề mở Với mỗi cách chọn node khácnhau sẽ cho ra một cấu trúc cây khác nhau
III.2 Xác suất lỗi của cây tổng quát
Cây tổng quát là một cấu trúc linh hoạt Đối với một bài toán phân loại đa lớp, có thể
có rất nhiều cấu trúc cây khác nhau Mà mỗi cấu trúc cây lại cho một độ chính xác phân lớpkhác nhau Vậy làm thế nào để chọn được cấu trúc cây tốt, cho độ chính xác phân lớp cao làvấn đề quan trọng nhất Do đó cần có một tiêu chuẩn để đánh giá cây tổng quát Để làm điều
đó ta dựa trên khái niệm xác suất lỗi của cây, để đánh giá độ tốt của một cây tổng quát
Định nghĩa:
ĐN1: Xác suất lỗi của cây là xác suất mà một mẫu (có cùng phân phối xác suất với bộ
not 3
Trang 16huấn luyện) bị phân lớp sai khi được phân lớp bởi cây đó Ký hiệu:
với T là 1 cây tổng quát
Nếu một cây có xác suất lỗi thấp hơn các cây khác có nghĩa là nó có độ chính xác caohơn khi phân lớp (Đối với các mẫu có cùng phân phối xác suất với bộ huấn luyện)
ĐN2: Xác suất lỗi của node là xác suất mà một mẫu (có nhãn thuộc G1 hoặc G2 của
node đó) bị phân lớp sai khi được phân lớp bởi bộ phân lớp của node đó
với Node là 1 node trên cây tổng quát
Ngược lại với xác suất lỗi của node là xác suất mà node phân lớp đúng Ký hiệu làPr(Node đúng)
Xác định xác suất lỗi của cây
Trong phần này ta có thể dùng một phương pháp tổng quát để ước lượng gần đúng xácsuất lỗi của một cây tổng quát
Xét cây T với node gốc ký hiệu là Node Node có các nhóm G1, G2, G3 như được địnhnghĩa phía trên Hai cây con T1 (cây con trái), T2 (cây con phải) tương ứng với G1 và G2
Gọi x là 1 mẫu bất kỳ cần được phân lớp
Trường hợp 1: Khi đó, x được phân lớp sai khi xảy ra 1 trong 2 trường hợp:
− node gốc phân lớp đúng (nhánh T1 được chọn), và cây T1 phân lớp sai
Trang 17− node gốc phân lớp sai (nhánh T2 được chọn)
Trường hợp 3: , x được phân lớp sai khi xảy ra 1 trong 2 trường hợp:
− node gốc phân x vào cây T1 và cây T1 phân lớp sai
− node gốc phân x vào cây T2 và cây T2 phân lớp sai
Suy luận tương tự như trên ta có:
(3.4)
Trang 18Tuy nhiên, các đại lượng
và rất khó để tính và đệ quy, do đó để đơn giản, có thể sử dụng và thay cho các đại lượngtrên (mặc dù không hoàn toàn chính xác) để quá trình tính toán và đệ quy được đơn giản
Do đó ta có thể sử dụng công thức sau thay cho (3.4):
(3.5)Khi đó công thức gần đúng để tính xác suất lỗi của cây:
(3.6)Với được tính như trên
* Nhận xét
DDAG và HAH là 2 trường hợp đặc biệt của cây tổng quát Nếu tại mỗi node ta chọn 1lớp cho G1 và 1 lớp cho G2 thì cây tổng quát sẽ trở thành DDAG Còn nếu tại mỗi node, G3không chứa lớp nào thì cây tổng quát sẽ trở thành HAH
Các công thức (3.2) và (3.3) chỉ là gần đúng trong trường hợp các bộ phân lớp SVMđạt hiệu suất cao Do đó khi các bộ phân lớp SVM có hiệu suất không cao hoặc chiều cao củacây quá lớn thì có khả năng công thức tính xác suất lỗi chênh lệch càng lớn
Công thức (3.5) chỉ là công thức thay thế để cho quá trình tính toán và đệ quy được đơngiản, do đó nó không đảm bảo hoàn toàn chính xác tuy nhiên nó cũng phản ánh được phần nào
đó xác suất lỗi của cây
Nếu ước lượng được xác suất lỗi, ta có thể xác định được cấu trúc cây cho kết quả phânlớp tốt Tuy nhiên đây chỉ là phương pháp tổng quát để ước lượng xác suất lỗi Để có thể hoàntoàn xác định được xác suất lỗi, ta phải đưa ra công thức ước lượng cho các đại lượng như:
−
−
Trang 19−
Trang 20IV CHƯƠNG TRÌNH
IV.1 Cấu trúc chương trình
• Module tiền xử lý, vector hóa văn bản
• Module huấn luyện bao gồm cả huấn luyện SVM nhị phân và huấn luyện đa lớp
• Module phân lớp bao gồm cả phân lớp nhị phân và phân đa lớp
− Quá trình tiền xử lý: có nhiệm vụ chính là nhận vào file văn bản thô, sau đó tiến hành
xử lý để xuất ra file chứa các vector tương ứng với các văn bản đầu vào
− Quá trình huấn luyện: các văn bản sau khi xử lý, sẽ xuất ra các file chứa các vectorđược vector hóa từ các văn bản Sau đó các file này được đưa vào module huấn luyện.Sau khi huấn luyện module này sẽ xuất ra các file huấn luyện
− Quá trình phân lớp: các văn bản cần phân lớp được đưa vào module tiền xử lý văn bản,module này sẽ xử lý và xuất ra các vector của các văn bản Vector này được đưa vàomodule phân lớp, module này sẽ xác định lớp kết quả của văn bản