PHÂN LỚP ĐA NHÃN VÀ ỨNG DỤNG CHO BÀI TOÁN PHÂN LOẠI TIN NHẮN VĂN BẢN SMS LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN... BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --- Đào
Trang 1PHÂN LỚP ĐA NHÃN VÀ ỨNG DỤNG CHO BÀI TOÁN
PHÂN LOẠI TIN NHẮN VĂN BẢN SMS
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Đào Xuân Dương
PHÂN LỚP ĐA NHÃN VÀ ỨNG DỤNG CHO BÀI TOÁN
PHÂN LOẠI TIN NHẮN VĂN BẢN SMS
Chuyên ngành : Công nghệ thông tin
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS TRỊNH ANH PHÚC
Hà Nội – 2019
Trang 3i
LỜI CẢM ƠN
Luận văn tốt nghiệp thạc sĩ chuyên ngành Công nghệ thông tin được hoàn thành tại Trường Đại học Bách Khoa Hà Nội Để có được bản luận văn tốt nghiệp này, tôi xin tỏ lòng biết ơn chân thành và sâu sắc đến Trường Đại học Bách Khoa
Hà Nội, Viện Công nghệ thông tin và Truyền thông, đặc biệt là TS Trịnh Anh Phúc
đã trực tiếp hướng dẫn, dìu dắt, giúp đỡ tôi với những chỉ dẫn khoa học quý giá trong suốt quá trình triển khai, nghiên cứu và hoàn thành đề tài nghiên cứu của mình Tôi xin chân thành cảm ơn các thầy, cô giáo đã trực tiếp giảng dạy, truyền đạt những kiến thức khoa học chuyên ngành Công nghệ thông tin cho bản thân tôi trong toàn bộ thời gian của khóa học
Tôi xin trân trọng cảm ơn các thầy cô trong hội đồng chuyên môn đã đóng góp các ý kiến quý báu để tôi hoàn thiện luận văn
Cuối cùng, tôi muốn gửi lời cảm ơn sâu sắc đến gia đình, bạn bè, đồng nghiệp
đã giúp đỡ, trao đổi và chia sẻ những kinh nghiệm về chuyên môn, đóng góp các ý kiến quý báu Đặc biệt là những người đã đóng góp, hỗ trợ, cho phép tôi thu thập và chia sẻ các dữ liệu thực nghiệm để có thể hoàn thành quá trình nghiên cứu luận văn này
Mặc dù có nhiều cố gắng để thực hiện đề tài, song do mới làm quen với công tác nghiên cứu khoa học, tiếp cận với công nghệ mới cũng như thời gian có hạn nên không thể tránh khỏi những thiếu sót nhất định Tôi rất mong được sự góp ý của Quý thầy, cô và các bạn bè đồng nghiệp để đề tài được hoàn chỉnh hơn
Xin chân thành cảm ơn!
Trang 4ii
LỜI CAM ĐOAN
Tôi xin cam đoan đây là bản luận văn của riêng tôi Các kết quả nêu trong luận văn là chính xác và trung thực chưa từng được ai công bố trong bất kỳ đề tài, công trình nghiên cứu nào khác
Tôi xin cam đoan rằng các thông tin trích dẫn trong luận văn đều đã được chỉ
rõ nguồn gốc
Ngày 01 tháng 10 năm 2019
Trang 5iii
MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
MỤC LỤC iii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT vi
DANH MỤC CÁC BẢNG 1
DANH MỤC CÁC HÌNH VẼ 2
PHẦN MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Mục đích nghiên cứu 4
3 Đối tượng, phạm vi nghiên cứu, phương pháp nghiên cứu 4
4 Bố cục của luận văn 5
5 Đóng góp của luận văn 6
CHƯƠNG 1 - TỔNG QUAN VỀ DỮ LIỆU TIN NHẮN RÁC VÀ CÁC PHƯƠNG PHÁP PHÂN LOẠI TIN NHẮN RÁC 7
1.1 Tin nhắn rác và thực trạng tin nhắn rác ở Việt Nam 7
1.2 Đặc điểm của tin nhắn văn bản tiếng Việt 9
1.2.1 Đặc điểm tin nhắn văn bản tiếng Việt 9
1.2.2 Cách phân loại tin nhắn spam SMS 10
1.3 Tác hại của tin nhắn rác (spam SMS) 11
1.4 Phương pháp phân loại spam SMS 12
1.4.1 Dựa vào nguồn phát tán tin nhắn rác 12
1.4.2 Lọc tin nhắn dựa vào nội dung 13
Tổng kết chương 1 14
CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT 15
2.1 Cơ sở lý thuyết về xử lý ngôn ngữ 15
2.1.1 Xử lý ngôn ngữ tự nhiên 15
Trang 6iv
2.1.2 Kỹ thuật tách từ (Words segmentation) 16
2.1.3 Một số phương pháp trích chọn đặc trưng 17
2.2 Phân lớp nhị phân/đơn nhãn (Binary Classification/Single Label Classification) 22
2.3 Phân lớp đa nhãn (Multi-Label Classification) 23
2.3.1 Bài toán phân lớp đa nhãn tổng quát 23
2.3.2 Phân biệt phân lớp đa nhãn (Multi-Label) với đa lớp (Multi-Class) 24
2.3.3 Các kỹ thuật phân lớp đa nhãn 24
2.3.4 Lựa chọn thuật toán 25
2.4 Cơ sở mô hình thống kê 31
2.4.1 Thuật toán Naive Bayes 31
2.4.2 Thuật toán SVM 32
2.4.3 Thuật toán Logistic Regression 35
2.5 Các tiêu chí đánh giá mô hình phân lớp đa nhãn 37
2.5.1 Các độ đo dựa trên mẫu 37
2.5.2 Các độ đo dựa trên nhãn 38
2.5.3 Thời gian chạy thuật toán 40
2.5.4 Lựa chọn các tiêu chí đánh giá 41
Tổng kết chương 2 41
CHƯƠNG 3 - THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU 42
3.1 Thu thập và gán nhãn dữ liệu 42
3.1.1 Dữ liệu thực nghiệm 42
3.1.2 Dữ liệu phân lớp 43
3.1.3 Gán nhãn và phân bố dữ liệu theo nhãn 44
3.1.4 Từ khóa và đặc trưng của dữ liệu thực nghiệm theo nhãn 46
3.2 Tiền xử lý dữ liệu 50
3.2.1 Chuẩn hoá từ (Sterming) 51
3.2.2 Làm sạch dữ liệu (clean data) 52
3.2.3 Loại bỏ StopWords (remove stopwords) 52
Trang 7v
3.2.4 Tách từ (words segmentation) 52
3.3 Trích chọn đặc trưng và véc tơ hĩa từ với TF-IDF 53
Tổng kết chương 3 54
CHƯƠNG 4 - KẾT QUẢ VÀ BÀN LUẬN 55
4.1 Mơ hình tổng quát bài tốn 55
4.2 Mơi trường thực nghiệm 56
4.2.1 Cấu hình phần cứng thực nghiệm 56
4.2.2 Các thư viện sử dụng 56
4.3 Lựa chọn thuật tốn huấn luyện 56
4.4 Thực nghiệm và đánh giá kết quả 57
4.5 Tối ưu tham số mơ hình với GridSearch 58
4.6 Kết quả thực nghiệm 60
4.6.1 Binary Relevance với Gaussian Nạve Bayes, SVC và Logistic Regression 60
4.6.2 Classifier Chains với Gaussian Nạve Bayes 64
4.6.3 Multi-label K-Nearest Neighbours (ML-kNN) 65
4.7 Nhận xét và Đánh giá 67
4.7.1 So sánh chất lượng phân lớp các thuật tốn trên 2 bộ dữ liệu thực nghiệm 67
4.7.2 So sánh ảnh hưởng của độ lớn dữ liệu đối với thời gian chạy các thuật tốn 68
4.7.3 So sánh chất lượng phân loại trước và sau khi đề xuất phương pháp cải tiến cơng đoạn tiền xử lý dữ liệu 69
4.7.4 Nhận xét 70
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71
1 Các kết quả chính đạt được trong luận văn 71
2 Hạn chế của luận văn 71
3 Hướng nghiên cứu tiếp theo 72
TÀI LIỆU THAM KHẢO 73
Trang 8vi
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
SMS Short Message Services Dịch vụ tin nhắn ngắn qua mạng di
động
Telco Telecom Company = Operator Nhà cung cấp dịch vụ viễn thơng
SĐT Phone Number Số điện thoại người gửi/nhận
BrandName BrandName Tên thương hiệu (hiển thị thay cho số
điện thoại người gửi)
AI Artificial Intelligence Trí tuệ nhân tạo
ML Machine Learning Phương pháp học máy
NLP Natural Language Processing Xử lý ngơn ngữ tự nhiên
DL Deep Learning Kỹ thuật học máy dựa trên mạng nơ
ron (Neural network)
SVM Support Vector Machine Máy vectơ hỗ trợ
TF-IDF Term Frequency Inverse
Document Frequency
Trọng số về tần suất và độ quan trọng của từ
BOW Bag of Words Mơ hình xử lý ngơn ngữ tự nhiên
tiếp cận theo hướng dãy từ
N-Gram Statistical N-Gram Language
MLC Multi-Label Classiffication Phân lớp đa nhãn
FE Feature Extraction Trích chọn đặc trưng
FS Feature Selection Lựa chọn đặc trưng
OVR
One-vs-rest hay cịn gọi là against-rest, one-vs-all, one-against-rest, hoặc one-against-all
one-Phương pháp phân loại mỗi lớp với mọi lớp cịn lại
BR Binary Relevance Mơ hình phân lớp tương hợp nhị phân
MNB Multinomial Nạve Bayes Mơ hình Multinomial Nạve Bayes
GNB Gaussian Naive Bayes Mơ hình Gaussian Nạve Bayes
SVC SVC Mơ hình Liner SVM
LP Label Powerset Mơ hình phân lớp Tập lũy thừa nhãn
CC Classifier Chains Mơ hình phân lớp Chuỗi các phân lớp
ML-kNN Multi-Label k Nearest Neighbour Phương pháp phân lớp đa nhãn k
Láng giềng gần nhất
ACC Accuracy Độ chính xác tổng quát
Bộ TT&TT Ministry of Information and
Communications Bộ Thơng tin và Truyền thơng
Trang 9Phân lớp đa nhãn và ứng dụng cho bài tốn phân loại tin nhắn văn bản SMS Trang 1
DANH MỤC CÁC BẢNG
Bảng 1.1 Thống kê số lượng tin nhắn quảng cáo từ 2015-2017 (Nguồn VnCert) 8
Bảng 1.2 Thống kê số lượt phản ánh tin rác qua các năm 2015-2018 (theo VnCert) 8
Bảng 1.3 So sánh các cấu trúc Tin nhắn SMS với thư điện tử (email) 14
Bảng 2.1 Ví dụ 2 nội dung nội dung tin nhắn cho n-gram 19
Bảng 2.2 Ví dụ túi từ vựng unigram 19
Bảng 2.3 Ví dụ vec-tơ đặc trưng của unigram 20
Bảng 2.4 Ví dụ túi từ vựng bi-grams 20
Bảng 2.5 Ví dụ vec-tơ đặc trưng của bi-grams 20
Bảng 2.6 Ví dụ bài tốn phân lớp Binary Relevance 26
Bảng 2.7 Các bộ phân nhãn nhị phân tương ứng với 4 nhãn 26
Bảng 2.8 Ví dụ bài tốn phân lớp Classifier Chain 28
Bảng 2.9 Các bộ phân nhãn tương ứng với 4 nhãn trong Classifier Chains 28
Bảng 2.10 Các tham số sử dụng đánh giá mơ hình phân lớp 41
Bảng 3.1 Bảng số liệu thống kê Bộ dữ liệu thực nghiệm 1 42
Bảng 3.2 Bảng số liệu thống kê Bộ dữ liệu thực nghiệm 2 42
Bảng 3.3 Dữ liệu phân lớp 43
Bảng 3.4 Phân bố dữ liệu thực nghiệm vào các nhĩm nhãn 44
Bảng 3.5 Bộ từ điển chuẩn hĩa từ viết tắt tiếng Việt 51
Bảng 4.1 Cấu hình phần cứng thực nghiệm 56
Bảng 4.2 Các gĩi thư viện xử lý chính 56
Bảng 4.3 So sánh chất lượng phân lớp của thuật tốn Binany Relevance sử dụng 3 mơ hình Gaussian Nạve Bayes, SVC và Logistic Regression 60
Bảng 4.4 Chỉ số đánh giá dựa trên nhãn của thuật tốn BR sử dụng GNB 61
Bảng 4.5 Chỉ số đánh giá dựa trên nhãn của thuật tốn BR sử dụng SVC 62
Bảng 4.6 Chỉ số đánh giá dựa trên nhãn của thuật tốn Binary Relevance sử dụng Logistic Regression 63
Bảng 4.7 Các độ đo dựa trên mẫu của thuật tốn Classifier Chains 64
Bảng 4.8 Chỉ số đánh giá dựa trên nhãn của Classifier Chains với GNB 64
Bảng 4.9 Các tiêu chí đánh giá dựa trên mẫu của thuật tốn ML-kNN 65
Bảng 4.10 Chỉ số đánh giá dựa trên nhãn của thuật tốn ML-kNN 65
Bảng 4.11 Bảng so sánh chất lượng phân lớp sau khi tối ưu mơ hình 66
Bảng 4.12 So sánh chất lượng phân lớp các thuật tốn trên bộ dữ liệu thực nghiệm 1 67
Bảng 4.13 So sánh chất lượng phân lớp các thuật tốn trên bộ dữ liệu thực nghiệm 2 67
Bảng 4.14 So sánh chất lượng phân loại trước và sau khi cải tiến cơng đoạn chuẩn hĩa từ tiếng Việt 69
Trang 10Phân lớp đa nhãn và ứng dụng cho bài tốn phân loại tin nhắn văn bản SMS Trang 2
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Thống kê tin nhắn rác từ các nhà mạng Việt Nam năm 2018 9
Hình 1.2 Các thành phần của một tin nhắn SMS được gửi đi 13
Hình 1.3 Cấu trúc một tin nhắn SMS 13
Hình 2.1 Xử lý ngơn ngữ tự nhiên là vấn đề khĩ của AI 15
Hình 2.2 Ví dụ cơng đoạn tách từ trong tiếng Việt 16
Hình 2.3 Ví dụ từ điển StopWords 21
Hình 2.4 Tần suất xuất hiện của 50 StopWords thường gặp trong các cuốn sách 21
Hình 2.5 Mơ hình xử lý phân nhãn dữ liệu nhị phân 22
Hình 2.6 Thuật tốn phân lớp Binary Relevance 27
Hình 2.7 Mơ hình thuật tốn chuỗi bộ phân lớp Classifier Chains 29
Hình 2.8 Thuật tốn Classifer Chains 29
Hình 2.9 Thuật tốn ML-kNN 30
Hình 2.10 Mơ tả về siêu phẳng trong SVM 33
Hình 2.11 Mơ tả về đường biên trong SVM 34
Hình 2.12 Mơ tả về đường biên cĩ margin trong SVM .34
Hình 2.13 Phương pháp một-chọi-tất cả (one-vs-all) 35
Hình 2.14 Logistic Regression với 2 nhĩm (class) 35
Hình 2.15 Đồ thị hàm sigmoid 36
Hình 3.1 Giả định mối quan hệ giữa các nhãn 44
Hình 3.2 Phân bố tin nhắn theo nhãn 45
Hình 3.3 Phân bố tin nhắn đa nhãn 45
Hình 3.4 Sơ đồ WordCloud thể hiện tần suất xuất hiện của các từ khĩa theo nhãn 46
Hình 4.1 Mơ hình tổng quát bài tốn 55
Hình 4.2 Module tự động phân loại đa nhãn tin nhắn 58
Hình 4.3 Chiến lược tìm kiếm tham số tối ưu của Grid Search 59
Hình 4.4 Biểu đồ so sánh các chỉ số đánh giá theo mẫu của thuật tốn Binary Relevance trên 3 mơ hình Gaussian Nạve Bayes, SVC và Logistic Regression .60
Hình 4.5 Biểu đồ các chỉ số đánh giá theo nhãn thuật tốn Binary Relevance trên 3 mơ hình Gaussian Nạve Bayes, SVC và Logistic Regression 61
Hình 4.6 Biểu đồ so sánh sự ảnh hưởng độ lớn dữ liệu (2 gĩi thực nghiệm) lên các chỉ số Hamming-Loss, One-Error, Ranking loss và Average Presision .68
Hình 4.7 Biểu đồ so sánh sự ảnh hưởng độ lớn dữ liệu (2 gĩi thực nghiệm) lên các chỉ số Accuracy Score, Precision Score, Recall Score và f1 Score 68
Hình 4.8 So sánh ảnh hưởng của độ lớn dữ liệu đối với thời gian chạy các thuật tốn .68
Trang 11Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 3
PHẦN MỞ ĐẦU
Nội dung:
Phần này sẽ giới thiệu khái quát về mục tiêu của Đề tài và vai trò của việc nghiên cứu “Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS” trong bài toán phân loại, trích rút thông tin từ tin nhắn tiếng Việt nói riêng và các bài toán khác trong ngành xử lý ngôn ngữ tự nhiên nói chung
1 Lý do chọn đề tài
Khám phá tri thức và khai phá dữ liệu ngày càng được ứng dụng rộng rãi nhằm khám phá các thông tin hữu dụng trong các cơ sở dữ liệu (databases) hay kho dữ liệu (data respositories) nhằm tìm kiếm các mẫu hay các quy luật (pattern) mới và hữu dụng
mà chưa từng được biết trước đó
Hiện nay hầu hết các thiết bị di động đều bị ảnh hưởng bởi lượng lớn tin nhắn quảng cáo, tin nhắn rao vặt, tin nhắn rác Thực sự không phải tin nhắn nào cũng không hữu ích, mà cần theo dõi đánh giá theo cả ngữ cảnh của người dùng Ví dụ, nếu người dùng thiết bị di động làm trong lĩnh vực marketing, bất động sản thì các tin nhắn này lại không được coi là tin nhắn rác vì nó chứa thông tin mà người dùng quan tâm Khái niệm lọc ở đây là lọc các thông tin hữu ích với người dùng phân theo các đề mục khác nhau và làm thế nào để rút trích được những tri thức cần thiết, biến chúng có thể trở lên có ích, đó cũng là các vấn đề chính của luận văn này
Các kỹ thuật học máy hiện nay dựa trên cơ sở các mô hình xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP), trong đó ngôn ngữ tiếng Việt là đối tượng nghiên cứu Các tin nhắn văn bản SMS tiếng Việt có đặc điểm đặc biệt là hầu hết là tiếng Việt không dấu, do đó rất khó áp dụng cho các các mô hình NLP hoặc độ chính xác không cao
Các phần mềm lọc tin nhắn hiện nay hoặc không đủ mạnh hoặc chưa hiệu quả đối với các tin nhắn tiếng Việt, do đó cần nghiên cứu một hướng tiếp cận mới để ngoài việc lọc tin nhắn còn có thể khai thác các thông tin hữu ích ẩn chứa trong tin nhắn sms Một số nghiên cứu gần đây như “Chặn tin nhắn rác (Spam) với Bayes ngây thơ - RPubs” [10], giới thiệu một giải pháp hoàn chỉnh đã được Viettel phát triển thành sản phẩm thương mại Tuy nhiên, giải pháp mới áp dụng cho các tin nhắn tiếng Anh và
Trang 12Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 4
chưa có nội dung tiếng Việt
Yêu cầu đặt ra là tìm một phương pháp phân loại tin nhắn tiếng Việt một cách hiệu quả, phục vụ cho nhiều mục đích: phân loại thông minh, lọc spam, trích rút thông tin cho các mục đích nghiên cứu, kinh doanh, tự động phân loại đối tượng,
Chính vì các lý do nêu trên, tác giả chọn hướng nghiên cứu “Phân lớp đa nhãn
và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS” làm đề tài cho luận văn
Gắn đa nhãn cho các dữ liệu để chuẩn bị cho việc huấn luyện và test
Sử dụng bộ lọc thông minh để lọc những tin nhắn hữu ích
Ứng dụng các kỹ thuật phân lớp đa nhãn để tiến tới xây dựng một ứng dụng
có khả năng phân loại, trích rút thông tin từ các tin nhắn spam một cách tự động
3 Đối tượng, phạm vi nghiên cứu, phương pháp nghiên cứu
Đối tượng nghiên cứu của luận văn là các tin nhắn văn bản Tiếng Việt, các kỹ thuật
học máy ứng dụng trong bài toán xử lý ngôn ngữ tự nhiên trong miền dữ liệu văn bản tiếng Việt, đặc biệt là các kỹ thuật gán đa nhãn và các công nghệ liên quan
Phạm vi nghiên cứu của luận văn được giới hạn ở phương pháp tiền xử lý dữ liệu,
lựa chọn đặc trưng và áp dụng thuật toán phân lớp đa nhãn văn bản tiếng Việt, tập trung vào miền ứng dụng gán đa nhãn và trích rút các thông tin từ các tin nhắn văn bản tiếng Việt
Phương pháp nghiên cứu của luận văn là nghiên cứu lý thuyết, tìm hiểu các kỹ
thuật học máy ứng dụng cho bài toán phân loại tin nhắn văn bản SMS: kỹ thuật phân lớp đơn nhãn, đa nhãn, đặc biệt là kỹ thuật gán đa nhãn (multi label classification) Luận văn cũng nghiên cứu các thuật toán, mô hình, các kỹ thuật tối ưu, ứng dụng trong bài toán đặt ra như Binary Revelance, Classifier Chains, ML-
Trang 13Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 5
kNN, để áp dụng trong quá trình thực nghiệm
Sau khi nghiên cứu lý thuyết về các mô hình phân loại, luận văn sử dụng các thuật toán, mô hình đã nghiên cứu để cài đặt thực nghiệm trên kho dữ liệu tin nhắn tiếng Việt đã gán nhãn để kiểm chứng đánh giá các đề xuất của luận văn
4 Bố cục của luận văn
Bố cục của luận văn gồm phần mở đầu và bốn chương nội dung, phần kết luận
và danh mục các tài liệu tham khảo
✓ Mở đầu: Trình bày một cách khái quát về luận văn, nhiệm vụ cũng như
các phương pháp tiếp cận giải quyết vấn đề đặt ra
✓ Chương 1 Tổng quan vể dữ liệu Tin nhắn rác (Spam SMS) và các
phương pháp phân loại Spam SMS: Trình bảy tổng quan về đối tượng nghiên
cứu là các tin nhắn văn bản tiếng Việt (SMS), các vấn đề cần giải quyết và các phương pháp phân loại tin nhắn spam SMS
Chương 2 Cơ sở lý thuyết: Sơ lược các khái niệm, các kỹ thuật xử lý dữ liệu
văn bản tiếng Việt, các mô hình xử lý ngôn ngữ, các cơ sở ngôn ngữ thống kê, xác xuất, Chương này cũng giới thiệu về các thuật toán được lựa chọn, các tiêu chí để đánh giá mô hình phân lớp đa nhãn trong quá trình thực nghiệm
✓ Chương 3 Thu thập và tiền xử lý dữ liệu:Mô tả công đoạn thu thập và tiền xử lý
dữ liệu tin nhắn văn bản SMS Sau khi phân tích các đặc điểm, đặc trưng, phân chia các bộ dữ liệu, lựa chọn các phân lớp và gán nhãn cho các dữ liệu, luận văn thực hiện các công đoạn tiền xử lý dữ liệu trước khi tiến hành cài đặt thực nghiệm
✓ Chương 4 Cài đặt thực nghiệm và đánh giá: Chương này mô tả chi tiết phương
pháp giải quyết vấn đề cho bài toán phân loại tin nhắn văn bản SMS và triển khai các thiết kế cài đặt thuật toán và các mô hình xử lý Sau khi thu được các kết quả thực nghiệm, luận văn tiến hành phân tích, nhận xét, đánh giá các kết quả rút ra từ quá trình thực nghiệm với mong muốn đề xuất mô hình phù hợp với bài toán và hướng cải tiến trong tương lai
✓ Kết luận và Hướng phát triển: Tổng kết các kết quả của luận văn, những hạn chế
và hướng nghiên cứu phát triển trong tương lai
Trang 14Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 6
5 Đóng góp của luận văn
Luận văn hướng tới mục tiêu đưa ra cái nhìn tổng quát cho bài toán phân loại và trích rút thông tin từ tin nhắn văn bản SMS tiếng Việt Luận văn cũng đã thu thập và xây dựng được một CSDL tin nhắn văn bản SMS giúp giải quyết vấn đề kho dữ liệu các bài toán xử lý ngôn ngữ tự nhiên trong điều kiện chúng ta chưa có một kho dữ liệu chuẩn được công bố rộng rãi cho các nghiên cứu trong lĩnh vực tương tự
Luận văn cũng đề xuất một hướng giải quyết cho bài toán tiền xử lý dữ liệu tin nhắn văn bản tiếng Việt trong thực tế dữ liệu có nhiều điểm đặc thù như phổ biến các
từ viết tắt, cố tình sai chính tả, lách luật, “teen code”,
Bên cạnh đó, luận văn đã nghiên cứu, thực nghiệm các mô hình xử lý ngôn ngữ
tự nhiên và cố gắng cài đặt, triển khai hướng tiếp cận giải quyết bài toán phân loại đa nhãn và các nhãn có mối liên hệ với nhau Luận văn cũng cố gắng thử nghiệm các phương pháp tối ưu các mô hình với mong muốn cải tiến hiệu quả của các mô hình trong tương lai
Để đánh giá sự phù hợp của mô hình trong các bài toán cụ thể - ở đây là bài toán phân loại đa nhãn văn bản tiếng Việt trên bộ dữ liệu đã thu thập, luận văn thực hiện việc phân tích, so sánh các tiêu chí đánh giá trên mỗi mô hình lựa chọn thông qua quá trình thực nghiệm; từ đó rút ra sự đánh giá độ phù hợp và đề xuất mô hình ưu việt nhất cho bài toán đặt ra
Luận văn cũng hướng tới xây dựng một ứng dụng ngoài mục đích ngăn chặn tin nhắn rác theo hướng tiếp cận mới, còn có thể phân tích đánh giá, thu thập các tri thức
từ các thông tin tưởng chừng như vô ích, mở ra một hướng mới trong việc khai phá tri thức và ứng dụng xử lý ngôn ngữ trên máy tính
Trang 15Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 7
CHƯƠNG 1 - TỔNG QUAN VỀ DỮ LIỆU TIN NHẮN RÁC
VÀ CÁC PHƯƠNG PHÁP PHÂN LOẠI TIN NHẮN RÁC
Nội dung:
Chương này tập trung vào việc tìm hiểu đối tượng nghiên cứu là dữ liệu tin nhắn văn bản tiếng Việt (gồm cả có dấu và không dấu) và cách thức giải quyết bài toán phân loại, khai thác thông tin (data mining) từ đối tượng tin nhắn này
1.1 Tin nhắn rác và thực trạng tin nhắn rác ở Việt Nam
Khi dịch vụ tin nhắn trên thiết bị di động (Short Message Services - SMS) trở nên phổ biến và ngày càng phát triển thì cũng là lúc tin nhắn rác tràn ngập các mạng viễn thông Giống như thư rác, tin nhắn rác không chỉ gây phiền toái, khó chịu cho người sử dụng mà còn gia tăng áp lực lên hạ tầng viễn thông và còn được
sử dụng như một công cụ để thực hiện việc lừa đảo, phát tán vi-rút, mã độc… Cho đến thời điểm này, tin nhắn rác vẫn là một vấn nạn và công tác ngăn chặn tin nhắn rác của các nhà mạng lẫn cơ quan chức năng vẫn gặp không ít khó khăn
Theo nghị định 90/2008/NĐ-CP ngày 13/08/2008 về chống thư rác và nghị định 77/2012/NĐ-CP về việc “Sửa đổi, bổ sung một số điều của Nghị định số 90/2008/NĐ-CP” ngày 05/10/2012 của Chính phủ về chống thư rác, thì tin nhắn rác cũng như thư rác nói chung là “thư điện tử, tin nhắn được gửi đến người nhận
mà người nhận đó không mong muốn hoặc không có trách nhiệm phải tiếp nhận theo quy định của pháp luật” Nghị định này cũng phân loại tin nhắn rác gồm những tin nhắn với mục đích lừa đảo, quấy rối hoặc phát tán virus máy tính, phần mềm gây hại… hoặc là những tin nhắn quảng cáo nhưng lại vi phạm các nguyên tắc gửi tin nhắn quảng cáo theo quy định của luật (chỉ được gửi khi người nhận đã đồng ý trước đó, không được gửi trong khoảng thời gian 22h đến 7h sáng, không gửi quá
5 tin nhắn/ngày, phải có gắn nhãn và mã số quản lý )
Thực tế hiện nay, rất nhiều tin nhắn bị xem là rác nhưng vẫn có thể lách theo quy định của luật (gửi 4 tin nhắn/ngày) đồng thời cũng có nhiều trường hợp người dùng nhắn tin bình thường nhưng vẫn bị liệt vào diện phát tán tin nhắn rác
Theo Cục An toàn thông tin (Bộ TT&TT), trong sáu tháng đầu năm 2016, đã chặn
252 triệu tin nhắn rác, khóa hơn 2 triệu thuê bao Như vậy, lượng tin nhắn rác bị chặn đã tăng gần 300 lần (từ 0,96 triệu tin lên tới 25 triệu tin), số thuê bao bị khóa tăng hai lần (từ 1 triệu lên 2 triệu) Sau khi Luật An toàn thông tin mạng có hiệu lực từ ngày 1/7/2016,
Trang 16Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 8
ngay tháng đầu, Bộ TT&TT đã xử phạt 10 doanh nghiệp cung cấp dịch vụ nội dung số
vì hành vi phát tán tin nhắn “rác”, với số tiền 735 triệu đồng Bên cạnh quá trình rà soát, thu hồi 12 triệu sim “rác” trôi nổi trên thị trường, cơ quan chức năng đang yêu cầu các nhà mạng ngưng cung cấp dịch vụ những số điện thoại rao vặt sai quy định, số điện thoại phát tán tin nhắn “rác”, số điện thoại có liên hệ trong tin nhắn “rác” Về các nhà mạng, ứng dụng Viettel-Antispam bắt đầu được Viettel sử dụng từ tháng 10-2015 và đã chặn thành công hơn 40 triệu tin nhắn “rác”, tương đương 439.000 tin nhắn bị chặn mỗi ngày, đồng nghĩa Viettel phải chấp nhận giảm hàng chục tỷ đồng doanh thu mỗi quý Số lượng phản ánh của khách hàng về việc bị nhận tin nhắn “rác” cũng giảm mạnh, từ trung bình
131 phản ánh/ngày xuống còn 4 phản ánh/ngày…
Tuy nhiên, đó chỉ là một số kết quả bước đầu trong chiến dịch bài trừ nạn sim “rác”, tin nhắn “rác”, và còn quá sớm để tin rằng, các hoạt động trên sẽ đạt hiệu quả tích cực
về lâu dài Năm 2013, có 12 triệu sim “rác” bị thu hồi, nhưng trong năm 2014, thuê bao
di động tại Việt Nam lại tăng lên tới 140 triệu tài khoản Sau khi Thông tư 82/CT-BTTTT
về ngăn chặn tin nhắn “rác”, tin nhắn lừa đảo, tăng cường quản lý thông tin trên mạng
có hiệu lực (năm 2015), số lượng thuê bao di động giảm còn 120 triệu tài khoản Song, chỉ trong 3 quý của năm 2016, con số này lại lên đến 128,3 triệu thuê bao Trước khi Luật An toàn thông tin mạng có hiệu lực, Bộ TT&TT cũng đã xử phạt hàng chục doanh
nghiệp phát tán tin nhắn “rác”, với số tiền hàng tỷ đồng (Nguồn: nhandan.com.vn 1)
Bảng 1.1 Thống kê số lượng tin nhắn quảng cáo từ 2015-2017 (Nguồn VnCert 2 )
1 2015 ~96.2 triệu
2 2016 ~85.3 triệu
3 10/2017 ~260 triệu
Bảng 1.2 Thống kê số lượt phản ánh tin rác qua các năm 2015-2018 (theo VnCert 3 )
http://www.nhandan.com.vn/binhluan/binh-luan-phe-phan/item/31404802-kien-quyet-hon-trong-2 Theo số liệu VnCert được công bố trên báo chí qua các năm, http://vncert.vn
3 Tuổi Trẻ online, 2018: tin nhắn rác giảm mạnh, manh-20190102074940855.htm
Trang 17https://congnghe.tuoitre.vn/2018-tin-nhan-rac-giam-Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 9
Hình 1.1 Thống kê tin nhắn rác từ các nhà mạng Việt Nam năm 2018
Như vậy, tin nhắn rác hiện nay là một vấn nạn và bài toán lọc và phân loại tin nhắn là bài toán cấp thiết không chỉ ở Việt Nam mà còn là cả Thế giới Đó cũng là mục tiêu chính của luận văn này
1.2 Đặc điểm của tin nhắn văn bản tiếng Việt
1.2.1 Đặc điểm tin nhắn văn bản tiếng Việt
Tin nhắn văn bản tiếng Việt (Vietnamese SMS) có một đặc điểm khác biệt hoàn toàn với các nội dung email hoặc các nội dung văn bản, tài liệu trên mạng đó
là bao gồm cả tiếng Việt có dấu và không dấu, trong đó số lượng tin nhắn tiếng Việt không dấu khá phổ biến Điều này thực sự gây khó khăn cho việc xử lý ngôn ngữ tự nhiên vì hiện tại tất cả những công cụ NLP cho tiếng Việt đều dựa trên tiếng Việt có dấu - nếu có, thì cũng làm giảm hiệu quả và độ chính xác của thuật toán Ngoài ra, theo nghiên cứu [11], tin nhắn văn bản tiếng Việt còn có các đặc điểm đặc trưng sau:
Trong các tin nhắn tiếng Việt, từ tiếng Anh cũng được được sử dụng phổ biến như một cách diễn đạt khác hoặc thể hiện một cách ngắn ngọn, dễ nhớ Ví dụ: “hello”/“hi” (chào), “bye” (tạm biệt),“good” (tốt), “like” (thích), “love” (yêu),
“no” (không), “yes” (vâng), “ok” (đồng ý), “cool” (mát mẻ), “free” (miễn phí),
“good” (tốt),…
Vinaphone 47.47%
Mobifone 21.43%
Viettel 25.85%
VietnamMobile 4.90%
G-Mobile 0.36%
Thống kê tin nhắn rác các nhà mạng năm 2018 (Nguồn VnCert)
Trang 18Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 10
Tin nhắn tiếng Việt do thói quen hoặc giới hạn của tin nhắn, rất nhiều từ viết tắt, “teen code”, hoặc cách nhắn tin cố tình “lách luật” Ví dụ như:
- Chuyển đổi kí tự đối với nguyên âm đơn Cụ thể: “i” → “j”, “ê” → “j”/“i”
, “ , ô”→ “0”, “ , ă” → “e”, “ô” →“u”.Chuyển một số chữ cái sang chữ cái khác: ph -> f; ng ->g/q; gi/d/ ->j/z; c ->k; qu ->w, r ->z; h ->k…
Ví dụ: gì → gj, chết → chjt/chit, cảm n → cum un/cum on/kum on, sao →
seo, đ i/đối → d0j, lắm/làm → lem, rồi → rui/ruj/roj
- Giản lược ký tự đối với những phụ âm được biểu hiện bằng hai hoặc ba
con chữ Cụ thể: gh → g, ngh → ng, kh → k, ph → p, ch → c
Ví dụ: không → ko, phòng → pog, ghét → get, nghỉ/nghĩ → ngi, chị → cj
- Chuyển đổi kí hiệu phụ âm đầu Hiện dạng này gồm: “ph” → “f”, “gi” →
“j”, “b” → “p”, “c” → “k”, “qu” → “w”, “đ” → “d”,
Ví dụ: phải → fai, giá → ja, bà → pa, cái → kai, quán → wan, rồi →
zoj/goy, vậy → zay/dzay
1.2.2 Cách phân loại tin nhắn spam SMS
Các tin nhắn rác (spam SMS) theo Nghị định 90/2008/NĐ-CP thường tập trung vào các hình thức (phân nhóm) sau:
Quảng cáo sản phẩm, hàng tiêu dùng, rao vặt, mua bán sim số đẹp,
Quảng cáo các ứng dụng, dịch vụ, tổng đài giải trí, website,
Quảng cáo bất động sản, các gói khuyến mại liên quan đến bất động sản,
Quảng cáo các dịch vụ tài chính: Ngân hàng, thẻ, Visa, cho vay, tín chấp,
Giới thiệu các chương trình khuyến mãi mua sắm trực tuyến, giảm giá,
Một hình thức phổ biến của spam SMS là các tin nhắn có nội dung độc hại như giả mạo Ngân hàng, tổ chức, mạng xã hội, nhà cung cấp, thậm chí các cơ quan pháp luật, để đề nghị người dùng cung cấp các thông tin Thẻ/Tài khoản ngân hàng, mật khẩu và các thông tin cá nhân
Một số tin nhắn có mã, hoặc liên kết đến các trang web độc hại nhằm cài đặt Virus, trojan, gây tổn hại cho người nhận
Các phân loại (phân nhóm) này cũng là cơ sở cho việc xác định phân lớp để gán
đa nhãn cho dữ liệu tin nhắn văn bản tiếng Việt trong luận văn này
Trang 19Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 11
1.3 Tác hại của tin nhắn rác (spam SMS)
Theo thống kê của Công ty an ninh mạng BKAV4, 90% người dùng thường xuyên bị tin nhắn rác làm phiền, trong đó 43% là nạn nhân của tin rác hằng ngày, gần gấp đôi con số của năm 2013 Phát tán tin nhắn rác thực sự đã trở thành một ngành "công nghiệp đen"
Với số lượng người dùng khổng lồ, liên tục gia tăng trên toàn thế giới, người dùng điện thoại đã và đang trở thành những “con mồi béo bở” để những kẻ phát tán tin nhắn rác, những nhà cung cấp dịch vụ quảng cáo, marketting tha hồ tấn công, lợi dụng để truyền tải thông tin, giới thiệu dịch vụ, sản phẩm Theo thống kê của Trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT), mỗi ngày có hàng triệu tin nhắn rác được gửi đi, tương đương với hàng triệu thuê bao bị tấn công bởi những thông tin không có giá trị; đồng thời gây ra áp lực rất lớn lên hạ tầng viễn thông di động trong nước
Bên cạnh tin nhắn rác, người sử dụng cũng phải đối mặt với nguy cơ bị mã độc "móc túi" hằng ngày Cũng theo thống kê của Bkav, ước tính số tiền thiệt hại
do mã độc gửi tin nhắn đến đầu số thu phí lên tới 3,9 tỷ đồng mỗi ngày
Dưới đây, mô tả một số tác hại cụ thể rõ ràng nhất của spam SMS :
Gây thiệt hại về kinh tế tài chính cho người nhận tin nhắn, người nhận trả tiền cho băng thông, dịch vụ
Lãng phí thời gian cho việc mở tin nhắn và xóa tin nhắn khỏi hộp tin nhắn
và có thể làm quá tải hộp tin nhắn của người nhận, dẫn đến việc thất lạc những tin nhắn đến sau, gây cản trở diễn tiến công việc của người sử dụng
Spam SMS có thể gây tâm lý xấu đối với người sử dụng tin nhắn khi gửi những thông tin vô giá trị hoặc lợi dụng, xuyên tạc
Spam chiếm một phần lớn đường truyền và làm tiêu tốn thời gian xử lý của các thiết bị tổng đài
Spam còn có thể nguy hiểm, chứa virus, trojan hay các loại phần mềm gây hại khác, tạo ra các lỗ hổng bảo mật trong máy tính và thiết bị nhận Ngoài ra, spam SMS còn được xem là phương tiện lừa đảo người dùng
4 Bkav, Tổng kết an ninh mạng năm 2014 và dự báo xu hướng 2015,
2014-va-du-bao-xu-huong-2015
Trang 20http://www.bkav.com.vn/ko/cac-muc-canh-bao/-/chi_tiet/287112/tong-ket-an-ninh-mang-nam-Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 12
1.4 Phương pháp phân loại spam SMS
1.4.1 Dựa vào nguồn phát tán tin nhắn rác
Tương tự quá trình lọc spam mail, phương pháp phổ biến nhất là các nhà mạng (và
thậm chí cả người dùng) thiết lập các danh sách đen (black-list) và danh sách trắng (white-list) để chặn/lọc các đầu số phát tán tin nhắn rác Danh sách đen sẽ chứa các địa
chỉ (số điện thoại của người gửi/nơi gửi) thường xuyên gửi spam SMS Ngược lại, danh sách trắng tin nhắn thường là các địa chỉ tin cậy và an toàn Địa chỉ này có thể là số điện thoại cá nhân, brandname hay số điện thoại/tổng đài Kỹ thuật lọc này thường được sử dụng ở phía tổng đài hay thiết bị cá nhân (có sẵn trong HĐH của thiết bị hay cài đặt thêm phần mềm) và nó được xem là một một sự bổ sung cho phương pháp khác hiệu quả hơn Một dạng tương tự của danh sách đen mà một số thiết bị di động cho phép người dùng có thể cấu hình để nhận/chặn các tin nhắn từ các số trong/không có trong danh bạ, hoặc những quy luật cụ thể được thiết lập sẵn
Khi một SMS được gửi đến, bộ lọc sẽ phân tích địa chỉ người gửi và so sánh địa chỉ có trong danh sách địa chỉ bị chặn/cho phép Nếu trùng trong danh sách đen thì sẽ lập tức được đánh dấu là spam, bị nhà cung cấp dịch vụ tin nhắn từ chối và ngược lại Thông thường, các nhà mạng có thể kiểm soát các địa chỉ này trước khi cho vào danh sách trắng Danh sách này cũng có thể do một bên thứ ba chuyên tổng hợp và phân tích đưa ra (ví dụ Bộ Thông tin và Truyền thông)
Danh sách đen và danh sách trắng có nhiều ưu điểm: thực hiện quá trình kiểm tra này thường rất nhanh chóng và dễ cài đặt Ưu điểm của danh sách đen là các nhà cung cấp sẽ lọc được khá nhiều nguồn SMS spam từ danh sách cho trước Ưu điểm của danh sách trắng so với danh sách đen là số lượng địa chỉ trong danh sách trắng sẽ ít hơn rất nhiều và sẽ giải quyết tình trạng chặn nhầm Thực hiện điều này góp phần giảm tải băng thông cũng như có bước lọc cơ bản đầu tiên trước khi sử dụng các phương pháp khác Các danh sách này cũng có thể được cập nhật và chia sẻ giữa các nhà mạng với nhau Bên cạnh ưu điểm vừa nêu trên, cả hai danh sách đều có khuyết điểm riêng: Đối với danh sách đen, các nguồn spam thường sử dụng các số điện thoại rác, hoặc và tìm cách lách luật bằng cách gửi giới hạn số lượng cho mỗi số điện thoại để gửi spam Do vậy, danh sách đen tin nhắn thường chỉ chặn được một số spam SMS được gửi đi, và có thể làm mất rất nhiều tin nhắn hợp lệ nếu cho nhầm một số vào danh sách Một khuyết điểm nữa của danh sách đen là khó cập nhật danh sách khi số điện thoại đó đã bị thu hồi, chuyển chủ, tương tự như danh sách trắng
Trang 21Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 13
1.4.2 Lọc tin nhắn dựa vào nội dung
1.4.2.1 Cấu trúc tin nhắn SMS
Cấu trúc của 1 tin nhắn SMS được gửi đi chia làm 5 phần như sau:
Hình 1.2 Các thành phầ n của một tin nhắn SMS được gửi đi
Trong đó:
Instructions to air interface: chỉ thị giao tiếp với giao diện vô tuyến
Instructions to SMSC: chỉ thị giao tiếp với trung tâm tin nhắn SMSC
Instructions to handset: chỉ thị dữ liệu của thiết bị
Instructions to SIM (optional): chỉ thị dữ liệu kết nối, nhận biết SIM
Message Body: nội dung tin nhắn SMS
Chi tiết tin nhắn được mô tả từ các đơn vị giao thức PDU (Protocol Description Unit) dưới hình thức của một chuỗi hệ thập lục phân và bán số thập phân Sau đây là
ví dụ về cấu trúc một tin nhắn gửi đi theo định dạng PDU:
Trang 22Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 14
Bảng 1.3 So sánh các cấu trúc Tin nhắn SMS với thư điện tử (email)
Độ dài Không giới hạn 160 ký tự (Tin nhắn không dấu, 7-bit) 70 ký tự (tin nhắn tiếng Việt, 16bit)
Nội dung Tự do tình sai chính tả và phổ biến nội dung không Xu hướng viết tắt, lược bỏ văn phạm, sai/cố
dấu (SMS tiếng Việt)
Dữ liệu Người gửi, người nhận, thời gian, tiêu đề, CC, nội dung, file đính kèm, ảnh SĐT gửi/BrandName, SĐT nhận, thời gian, nội dung, trung tâm nhắn tin, bộ mã hóa
1.4.2.2 Lọc tin nhắn dựa vào nội dung
Các hệ thống xử lý tin nhắn ngày nay thường sử dụng một phần mềm quét thông tin trong nội dung tin nhắn để giúp phát hiện và lọc tin nhắn rác (spam SMS) ra khỏi
hệ thống Phương pháp này phân tích nội dung của SMS để nhận diện từ khóa liên quan đến spam, tần suất của các từ lặp đi lặp lại để xác định spam và có thể chuyển chúng vào những nơi mà sau đó có thể xem lại hay xóa bỏ chúng
Các phương pháp thống kê thường được sử dụng để phân tích và lọc SMS, những phương pháp này chuyển bài toán lọc spam thành bài toán phân lớp và có thể
sử dụng nhiều kỹ thuật phân lớp, dựa trên thông tin thống kê đã học từ dữ liệu SMS thực tế Cụ thể, bài toán lọc tin nhắn spam tin nhắn thường được coi là bài toán phân lớp văn bản (classify text), dựa trên cơ sở là tất cả các SMS có chứa nội dung văn bản Những kỹ thuật này hiện nay đang được ứng dụng rộng rãi và khá thành công mặc dù còn hạn chế về mặt dữ liệu chuẩn để kiểm tra và độ chính xác để có thể so sánh
và đánh giá Một số phương pháp thống kê để giải quyết bài toán phân lớp văn bản được
áp dụng bao gồm: Naive Bayes, SVM, Logistic Regression,
Tổng kết chương 1
Trong chương 1, luận văn đã giới thiệu tổng quan về đối tượng nghiên cứu là
dữ liệu tin nhắn rác cũng như một số phương pháp phòng chống spam SMS đang được
sử dụng rộng rãi Trong đó, phần nội dung tin nhắn là yếu tố quyết định dùng để phân biệt tin nhắn rác và phương pháp lọc tin nhắn theo nội dung hiện vẫn là phương pháp ứng dụng rộng rãi và cho kết quả tối ưu nhất vì tất cả các phương pháp khác đều
có thể vượt qua bởi đối tượng phát tán Trong chương tiếp theo, luận văn sẽ đi sâu vào các cơ sở lý thuyết của việc phân tích ngôn ngữ áp dụng trong bài toán phân loại tin nhắn văn bản làm tiền đề cho quá trình thực nghiệm trong luận văn này
Trang 23Trang 15
CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT 2.1 Cơ sở lý thuyết về xử lý ngôn ngữ
2.1.1 Xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là một nhánh
của Trí tuệ nhân tạo (Artificial Intelligence - AI) tập trung vào các ứng dụng trên ngôn
ngữ của con người Trong Trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong
những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ - công cụ
hoàn hảo nhất của tư duy và giao tiếp (theo wikipedia 5) Cái khó nằm ở chỗ làm sao
cho máy được hiểu ngôn ngữ con người, từ việc hiểu nghĩa từng từ trong mỗi hoàn
cảnh cụ thể, đến việc hiểu nghĩa một câu, rồi hiểu cả văn bản
Hình 2.1 Xử lý ngôn ngữ tự nhiên là vấn đề khó của AI
Máy tính chủ yếu làm việc với dữ liệu có cấu trúc, đó là dữ liệu được tổ chức,
lập chỉ mục và tham chiếu, thường là trong cơ sở dữ liệu Trong NLP, chúng ta thường
xử lý dữ liệu phi cấu trúc: Các bài đăng trên mạng xã hội, tin tức, email, tin nhắn và
đánh giá sản phẩm là những ví dụ về dữ liệu phi cấu trúc dựa trên văn bản Để xử lý
văn bản như vậy, NLP phải học cấu trúc và ngữ pháp của ngôn ngữ tự nhiên Và quan
trọng là: 80% dữ liệu thương mại là phi cấu trúc
Ngôn ngữ của con người không chính xác và rõ ràng như ngôn ngữ máy tính:
ngôn ngữ con người có rất nhiều phức tạp như cụm từ mơ hồ, thông tục, ẩn dụ, chơi
chữ hoặc châm biếm Cùng một từ hoặc câu có thể có nhiều nghĩa tùy thuộc vào ngữ
cảnh Ngôn ngữ cũng phát triển theo thời gian Tệ hơn nữa, chúng ta giao tiếp không
5 Xử lý ngôn ngữ tự nhiên, nguồn Wikipedia®,
https://vi.wikipedia.org/wiki/X%E1%BB%AD_l%C3%BD_ng%C3%B4n_ng%E1%BB%AF_t%E1%BB%B1 _nhi%C3%AAn
Trang 24Trang 16
hoàn hảo (lỗi chính tả, ngữ pháp hoặc dấu câu) nhưng vẫn có thể hiểu được Điều này
rất tự nhiên đối với giao tiếp của con người nhưng rất phức tạp đối với máy tính
Lĩnh vực nghiên cứu của luận văn thuộc phạm vi Xử lý ngôn ngữ tự nhiên, cụ
thể là ứng dụng các kỹ thuật NLP để nghiên cứu, khám phá tri thức trong dữ liệu tin
nhắn văn bản tiếng Việt
2.1.2 Kỹ thuật tách từ (Words segmentation)
Tách từ được xem là bước xử lý quan trọng đối với các hệ thống Xử lý ngôn
ngữ tự nhiên, đặc biệt là đối với các ngôn ngữ thuộc vùng Đông Á và tiếng Việt Với
các ngôn ngữ thuộc loại hình này, ranh giới từ không chỉ đơn giản là những khoảng
trắng (space) như trong tiếng Anh…, mà có sự liên hệ chặt chẽ giữa các tiếng với
nhau, một từ có thể cấu tạo bởi một hoặc nhiều tiếng Vấn đề này tưởng chừng đơn
giản với con người nhưng đối với máy tính, đây là bài toán rất khó giải quyết
Kỹ thuật tách từ là một quá trình xử lý nhằm mục đích xác định ranh giới của
các từ trong câu văn, cũng có thể hiểu đơn giản rằng tách từ là quá trình xác định các
từ đơn, từ ghép… có trong câu Đối với xử lý ngôn ngữ, để có thể xác định cấu trúc
ngữ pháp của câu, xác định từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là
phải xác định được đâu là từ trong câu
Bài toán tách từ hiện nay có 3 phương pháp tiếp cận chính :
Tiếp cận dựa vào từ điển cố định
Tiếp cận dựa vào thống kê thuần túy
Tiếp cận dựa trên cả hai phương pháp trên
Xét ví dụ sau:
Trường đại học Bách Khoa Hà Nội được thành lập tháng 10 năm 1956
Trường đại học Bách Khoa Hà Nội được thành lập tháng 10 năm 1956
Trường đại_học Bách_Khoa Hà_Nội được thành_lập tháng 10 năm 1956
Danh từ Danh từ danh từ riêng danh từ
riêng
Trợ động
Trang 25Trang 17
Tách từ chính xác hay không là công việc rất quan trọng, nếu không chính xác
rất có thể dẫn đến việc ý nghĩa của câu sai, ảnh hưởng đến tính chính xác của chương
trình Để giải quyết bài toán này cần một lượng lớn dữ liệu, dữ liệu đó đòi hỏi sự
chính xác cao và tốn rất nhiều công sức
Chúng ta sẽ tìm hiểu các phương pháp tiếp cận này trong các nội dung tiếp theo
của luận văn
2.1.3 Một số phương pháp trích chọn đặc trưng
2.1.3.1 Phương pháp túi đựng từ (Bag of Words - BOW)
Phương pháp túi đựng từ giả sử bạn có một loạt các túi và mỗi túi tượng trưng
cho một từ trong từ điển mà chúng ta vừa tạo ra Để thực hiện nó, ta duyệt từ đầu đến
cuối văn bản, gặp từ nào thì ném nó vào túi tương ứng, cuối cùng chúng ta sẽ thu được
vector thuộc tính Từ đây chúng ta tiến hành khởi tạo vector thuộc tính cho từng file
trong bộ dữ liệu Mỗi vector sẽ có độ dài chính bằng số từ trong từ điển
BagOfWord học được một bộ từ vựng từ tất cả các văn bản, rồi model các văn
bản bằng cách đếm số lần xuất hiện của mỗi từ trong văn bản đó BagOfWords không
quan tâm đến thứ tự từ trong câu và cũng không quan tâm đến ngữ nghĩa của từ, do
đó 2 câu sau được coi là như nhau: “Khuyến mãi nhân dịp năm mới” và “Nhân dịp
năm mới, khuyến mãi”
Ta thấy rằng nếu một tin có chứa các từ khuyến mại, giảm giá, trúng thưởng,
miễn phí, quà tặng, tri ân, … thì nhiều khả năng đó là một tin nhắn rác Do đó phương
pháp đơn giản nhất là đếm xem trong tin đó có bao nhiêu từ thuộc vào các từ trên, nếu
nhiều hơn 1 ngưỡng nào đó thì ta quyết định đó là tin rác (Tất nhiên bài toán thực tế
phức tạp hơn nhiều khi các từ có thể được viết dưới dạng không dấu, hoặc bị cố tình
viết sai chính tả, hoặc dùng ngôn ngữ teen, ) Với các loại văn bản khác nhau thì
lượng từ liên quan tới từng chủ đề cũng khác nhau Từ đó có thể dựa vào số lượng
các từ trong từng loại để làm các vector đặc trưng cho từng văn bản
BoW vẫn tồn tại khuyết điểm, nên phương pháp từ điển và đánh trọng số
TF-IDF là phương pháp khắc phục Ta sẽ nghiên cứu việc ứng dụng BoW + TF-TF-IDF vào
việc tìm kiếm, phân loại tài liệu, lọc và phân loại tin nhắn văn bản cũng như ý định
của người dùng trong mục tiếp theo
Trang 26Trang 18
2.1.3.2 Sử dụng từ điển và đánh trọng số TF-IDF (thống kê tần suất xuất hiện
của từ)
Máy tính chỉ xử lý được những thông tin dạng số, do đó tất cả các từ trong văn
bản cần được chuyển thành dạng biểu diễn số Cách đơn giản nhất ta thường làm là
xây dựng một bộ từ điển rồi sau đó thay thế từ đó bằng thứ tự xuất hiện trong từ điển
Trong hầu hết các ngôn ngữ, một số từ xuất hiện thường xuyên nhưng không
mang nhiều thông tin như trong tiếng Anh có "is", "the" tiếng Việt có các từ "là",
"của", "cứ" Vì vậy nếu chỉ xét theo tần số xuất hiện của từng từ thì việc phân loại
văn bản rất có thể cho kết quả sai dẫn đến tỷ lệ chính xác thấp Do đó, người ta thường
sử dụng một phương pháp thống kê có tên là TF-IDF (viết tắt của từ Term Frequency
Invert Document Frequency): giá trị TF-IDF của một từ là một số thu được qua thống
kê thể hiện mức độ quan trọng của từ này trong một văn bản, mà bản thân văn bản
đang xét nằm trong một tập hợp các văn bản
Trước tiên ta tìm hiểu TF-IDF là một kỹ thuật trích chọn đặc trưng (feature
extraction) dùng trong text mining và information retrieval TF-IDF bao gồm 2 thành
phần là tf (term frequency) và idf (inverse document frequency):
TF là tần suất xuất hiện của một từ trong văn bản:
𝑡𝑓(𝑑, 𝑡) = 𝑓(𝑡, 𝑑)
max{𝑓(𝑤, 𝑑) ∶ 𝑤 ∈ 𝑑} =
𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑤𝑜𝑟𝑑 𝑤 𝑖𝑛 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡 𝑑𝑡𝑜𝑡𝑎𝑙 𝑤𝑜𝑟𝑑 𝑖𝑛 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡Trong đó:
- f(t,d) - số lần xuất hiện từ t trong văn bản d
- max{f(w,d):w∈d} - số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản
IDF (Inverse Document Frequency): Tần số nghịch của 1 từ trong tập văn bản (corpus)
𝑖𝑑𝑓(𝑡, 𝐷) = log |𝐷|
|{𝑑 ∈ 𝐷 ∶ 𝑡 ∈ 𝑑}|= log(
𝑁𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡 𝑖𝑛 𝑤𝑜𝑟𝑑 𝑤 𝑎𝑝𝑝𝑒𝑎𝑟) Trong đó:
- |D|: Tổng số văn bản trong tập D
- |{𝑑 ∈ 𝐷 ∶ 𝑡 ∈ 𝑑}|: số văn bản chứa từ nhất định, với điều kiện t xuất hiện trong văn bản d (tf(t,d)≠0) Nếu từ đó không xuất hiện ở bất cứ 1 văn bản nào trong tập thì mẫu số sẽ bằng 0 → phép chia cho không không hợp
Trang 27Trang 19
lệ, vì thế người ta thường thay bằng mẫu thức 1 + |{𝑑 ∈ 𝐷 ∶ 𝑡 ∈ 𝑑}|
Khi đó công thức tf-idf cuối cùng sẽ là:
Đây là mô hình phổ biến nhất và dễ áp dụng vì tính đơn giản của nó Mô hình
có thể áp dụng với hầu hết bài toán phân loại nói chung để xây dựng vec-tơ đặc trưng
Với mô hình n-grams, ta định nghĩa một mẫu các từ có độ dài n Giá trị n có thể thay đổi với n =1,2,3, Ta có thể thay đổi nhiều giá trị n khác nhau để tìm ra kết quả tối ưu nhất Với n = 1 còn được gọi là Unigram hay Bag Of Words, n = 2: bigram, n = 3: trigram Mô hình này rất tốt trong việc trích chọn đặc trưng trong văn bản, và đặc biệt phù hợp với thực tế các tin nhắn rác sử dụng các từ viết tắt, cố tình sai chính tả,
“teen code” để lách luật hiện nay Chẳng hạn “Q/C”, “QC”, “QK”, “KM”, là những mẫu có giá trị cao trong việc phân loại văn bản Để hiểu hơn về cách trích chọn đặc trưng này, ta xét một ví dụ xây dựng vec-tơ cụ thể dưới đây
Bảng 2.1 Ví dụ 2 nội dung nội dung tin nhắn cho n-gram
1 (QC) MIEN PHI 10 phut goi noi mang qua 1319
2 (QC) MIEN PHI 100% 3G/4G cho Quy khach
Với n = 1 (unigram) Túi từ vựng được xây dựng từ 2 tin nhắn trên như sau:
Bảng 2.2 Ví dụ túi từ vựng unigram
ID Từ vựng ID Từ vựng ID Từ vựng ID Từ vựng ID Từ vựng
1 (QC) 4 10 7 noi 10 1319 13 cho
2 MIEN 5 phut 8 mang 11 100% 14 Quy
Vec-tơ đặc trưng được định nghĩa là giá trị có xuất hiện từ vựng đó trong tin nhắn hay không (0 hoặc 1)? Như vậy vec-tơ đặc trưng uni-gram trong trường hợp này được biểu diễn dưới dạng sau:
Trang 28Vậy ta được 02 vec-tơ đặc trưng trong mô hình trích chọn đặc trưng uni-gram của 02 tin nhắn là V1, V2 được biểu diễn dưới dạng:
PHI 10
PHI 100%
10 phut
100%
3G/4G
phut goi
goi noi
noi mang
3G/4G cho
cho Quy
Quy khachsms (1) 1 1 1 0 1 0 1 1 1 0 0 0
Trang 29Trang 21
2.1.3.4 Từ loại (StopWords)
Từ loại (từ dừng) hay StopWords là những từ xuất hiện nhiều trong ngôn ngữ tự
nhiên, tuy nhiên lại không mang nhiều ý nghĩa và người ta thường loại bỏ để tăng tốc
độ cũng như chất lượng tìm kiếm Trong tiếng việt StopWords là những từ như: để,
này, kia Tiếng anh là những từ như: is, that, this
Có rất nhiều cách để loại bỏ StopWords nhưng có 2 cách chính là:
Dùng từ điển
Dựa theo tần suất xuất hiện của từ
Dùng từ điển
Cách này đơn giản nhất, chúng ta tiến hành filter văn bản, loại bỏ những từ xuất
hiện trong từ điển StopWords:
ôi mà cứ dù nọ sao này kia thế
Ví dụ:
Hình 2.3 Ví dụ từ điển StopWords
Dựa theo tần suất xuất hiện của từ
Với cách này, ta tiến hành đếm số lần xuất hiện của từng từ trong dữ liệu sau đó
sẽ loại bỏ những từ xuất hiện nhiều lần (cũng có thể là ít lần) Khoa học đã chứng
minh những từ xuất hiện nhiều nhất thường là những từ không mang nhiều ý nghĩa
Xét ví dụ dưới đây:
Hình 2.4 Tần suất xuất hiện của 50 StopWords thường gặp trong các cuốn sách
Món ăn ôi sao mà ngon thế kia
Món ăn ngon
Trang 30Trang 22
Trong ví dụ trên là top 50 từ xuất hiện nhiều nhất trong mỗi cuốn sách Dễ dàng
nhận thấy chúng không mang nhiều ý nghĩa, vì thế ta sẽ tiến hành bỏ những từ này
2.2 Phân lớp nhị phân/đơn nhãn (Binary Classification/Single Label
Classification)
Phân lớp đơn nhãn (Single Label Classification) hay Binary Classification là bài
toán phân loại các phần tử của một tập hợp các đối tượng ra thành 2 nhóm dựa trên
cơ sở là chúng có một thuộc tính nào đó hay không (hay còn gọi là tiêu chí)
Phân lớp đơn nhãn thường một xử lý bao gồm hai bước (Hình 2.5) Ở bước đầu
tiên, xây dựng mô hình mô tả một tập cho trước các lớp dữ liệu Mô hình này có được
bằng cách phân tích các bộ cơ sở dữ liệu Mỗi bộ được giả định thuộc về một lớp cho
trước, các lớp này chính là các giá trị của một thuộc tính được chỉ định, gọi là thuộc
tính nhãn lớp Các bộ dữ liệu để xây dựng mô hình gọi là bộ dữ liệu huấn luyện Do
nhãn lớp của mỗi mẫu huấn luyện đã được gán bằng tay trước nên bước này cũng
được biết đến như là học có giám sát Điều này trái ngược với học không có giám sát,
trong đó các mẫu huấn luyện chưa biết sẽ thuộc về nhãn lớp nào và số lượng hay tập
các lớp được học chưa biết trước
Hình 2.5 Mô hình xử lý phân nhãn dữ liệu nhị phân
Trang 31Trang 23
Mô hình học được biểu diễn dưới dạng các luật phân loại, cây quyết định hay
công thức toán học Ví dụ, cho trước một cơ sở dữ liệu thông tin về độ tín nhiệm của
khách hàng, các luật phân loại được học để nhận biết các khách hàng có độ tín nhiệm
là tốt hay không tốt (Hình 2.5a) Các luật được dùng để phân loại các mẫu dữ liệu
tương lai cũng như cung cấp cách hiểu tốt hơn về nội dung cơ sở dữ liệu
Trong bước thứ hai (hình 2.5b), mô hình được dùng để phân loại Trước tiên,
đánh giá độ chính xác dự đoán của mô hình (hay phân loại) Phần cuối của chương
này (mục 2.5) sẽ mô tả một số phương pháp đánh giá độ chính xác phân loại Phương
pháp holdout (kỹ thuật chia bộ dữ liệu thành tập kiểm tra và tập test) là một kỹ thuật
đơn giản sử dụng một tập kiểm tra các mẫu đã được gắn nhãn lớp Các mẫu này được
chọn lựa ngẫu nhiên và độc lập với các mẫu huấn luyện Độ chính xác của mô hình
trên một tập kiểm tra cho trước là phần trăm các mẫu của tập kiểm tra được mô hình
phân loại đúng Đối với mỗi mẫu kiểm tra, nhãn lớp đã biết được so sánh với dự đoán
lớp của mô hình đã học cho mẫu đó Nếu độ chính xác của mô hình được đánh giá
dựa trên bộ dữ liệu huấn luyện, sự đánh giá này có thể là tối ưu, do vậy mô hình học
có khuynh hướng quá phù hợp dữ liệu, bởi vậy ta cần dùng một tập kiểm tra
Nếu độ chính xác của mô hình là chấp nhận được, mô hình có thể được sử dụng
để phân loại các bộ hay các đối tượng dữ liệu tương lai mà chưa biết nhãn lớp Ví dụ,
các luật phân loại học trong hình 2.5a: việc phân tích dữ liệu khách hàng từ các khách
hàng đã tồn tại có thể được dùng để dự đoán độ tín nhiệm của các khách hàng mới
2.3 Phân lớp đa nhãn (Multi-Label Classification)
2.3.1 Bài toán phân lớp đa nhãn tổng quát
Phân loại đa nhãn là một đối tượng không chỉ được gán nhãn phân loại với một
lớp duy nhất mà có khả năng được gán nhãn với nhiều phân loại khác nhau, các nhãn
này có thể được sắp xếp theo một thứ tự nhất định
Gọi C là bộ dữ liệu huấn luyện và c là danh sách nhãn phân loại Bộ phân loại
H xác định hàm T C, trong đó mỗi đối tượng i Tđược gán một hoặc nhiều nhãn
Trang 32Trang 24
phân loại ( i , ( c1, c2, , ck)) với ci C Mục tiêu là tìm được hàm h Hcĩ khả năng cực
đại khả năng h(i) c cho mỗi trường hợp ( c i, )
Trong bài tốn phân lớp đa nhãn tin nhắn văn bản tiếng Việt, các đối tượng phân
lớp là tập hợp các tin nhắn văn bản tiếng Việt Nhiệm vụ của luận văn là thử nghiệm
và tìm kiếm thuật tốn phân lớp đa nhãn phù hợp nhất để phân lớp các tin nhắn đồng
thời vào nhiều lớp khác nhau cũng như trích rút các thơng tin cần thiết
2.3.2 Phân biệt phân lớp đa nhãn (Multi-Label) với đa lớp (Multi-Class)
Sự khác biệt chính giữa phân lớp đa nhãn (multi-label classification) với đa lớp
(multi-class classification) là trong multi-class, các đối tượng chỉ thuộc 1 nhĩm (class)
duy nhất mà khơng thuộc các nhĩm khác Trái lại trong bài tốn multi-label, các đối
tượng cĩ thể thuộc một hoặc nhiều nhĩm cùng một lúc
Ví dụ, multi-class classification giả định rằng mỗi mẫu được gán cho một và chỉ
một nhãn: một loại trái cây cĩ thể là táo hoặc lê nhưng khơng phải cả hai cùng một
lúc Trong khi đĩ, trong phân loại đa nhãn, một đoạn text cĩ thể là về bất kỳ lĩnh vực
tơn giáo, chính trị, tài chính hoặc giáo dục, nào cùng một lúc hoặc khơng cĩ gì trong
số đĩ Do đĩ, kỹ thuật phân lớp đa nhãn cĩ độ phức tạp hơn nhiều so với đa lớp
2.3.3 Các kỹ thuật phân lớp đa nhãn
Các kỹ thuật phân lớp đa nhãn thường được chia thành hai nhĩm tiếp cận chính
là tiếp cận chuyển đổi bài tốn và tiếp cận thích nghi thuật tốn:
2.3.3.1 Tiếp cận chuyển đổi bài tốn (Transformational Approaches)
Tiếp cận chuyển đổi bài tốn là phương pháp chuyển đổi bài tốn phân lớp đa
nhãn thành một hoặc nhiều bài tốn phân lớp đơn nhãn (phân lớp đa lớp hoặc phân
lớp nhị phân) hoặc các bài tốn hồi quy Theo tiếp cận này, các bộ phân lớp đơn nhãn
được thực thi sau đĩ các dự đốn phân lớp đơn nhãn được kết hợp lại thành kết quả
dự đốn đa nhãn Phương pháp này khá linh động vì cĩ thể sử dụng bất kỳ bộ phân
lớp đơn nhãn nào như Máy vectơ hỗ trợ SVM [1], Nạve Bayes [6], phương pháp hồi
quy Logistic Regression [2] Một số bộ phân nhãn như Binary Relevance [9],
Classifier Chains [3],… cũng thường được sử dụng
2.3.3.2 Tiếp cận thích nghi thuật tốn (Adapted Algorithm Approaches)
Tiếp cận thích nghi thuật tốn là phương pháp mở rộng các thuật tốn học phân
lớp đơn nhãn đã biết để áp dụng trực tiếp giải quyết bài tốn phân lớp đa nhãn Các
Trang 33Trang 25
thuật tốn phân lớp đơn nhãn điển hình nhất được chọn lựa để thích nghi là ML-kNN
[8], cây quyết định Decision Tree [5],
2.3.4 Lựa chọn thuật tốn
Trong phạm vi của Luận văn, tác giả đã lựa chọn một số thuật tốn điển hình
của mỗi tiếp cận ở trên để cĩ sự phân tích, đánh giá nhằm tìm mơ hình phù hợp nhất
với bài tốn đặt ra
Tiếp cận chuyển đổi bài tốn:
Thuật tốn Binary Relevance với 3 mơ hình:
- Gaussian Nạve Bayes
- SVC
- Logistic Regression
Thuật tốn Classifer Chain với mơ hình Gaussian Nạve Bayes
Tiếp cận thích nghi thuật tốn:
Thuật tốn Multi-label k-Nearest Neighbourhoods (ML-kNN) [8]
Chi tiết các thuật tốn được lựa chọn trong mơ hình bài tốn được trình bày
trong phần tiếp theo của luận văn
2.3.4.1 Tiếp cận chuyển đổi bài tốn: Binary Relevance
Theo M R Boutell và cộng sự [9], ý tưởng chính của thuật tốn này là giảm cấp
bài tốn học đa nhãn thành q bài tốn phân lớp nhị phân độc lập, trong đĩ mỗi bài
tốn phân lớp nhị phân tương ứng với một nhãn trong khơng gian nhãn Theo đĩ, để
xác định nhãn lớp thứ j được ký hiệu là 𝑦𝑗, đầu tiên thuật tốn Binary Relevance xây
dựng một tập huấn luyện nhị phân tương ứng bằng việc xem xét sự liên quan của mỗi
mẫu huấn luyện với nhãn 𝑦𝑗
𝐷𝑗 = {(𝑥𝑖, ∮(𝑌𝑖, 𝑦𝑗))|1 ≤ 𝑖 ≤ 𝑚} (1.1)
Trong đĩ: ∮(𝑌𝑖, 𝑦𝑗) = {+1 𝑛ế𝑢 𝑦𝑗 ∈ 𝑌𝑖
−1 𝑛ế𝑢 𝑦𝑗 ∉ 𝑌𝑖Tiếp đĩ, cĩ thể sử dụng bất kỳ thuật tốn học máy nhị phân 𝓑 để xây dựng bộ
phân lớp nhị phân 𝑓𝑗: 𝜒 → ℛ ví dụ 𝑓𝑗 ← ℬ(𝒟𝑗) Khi đĩ, với bất kỳ mẫu huấn luyện
đa nhãn (𝑥𝑖, 𝑌𝑖), sẽ xem xét quá trình học của q bộ phân lớp nhị phân trên dữ liệu 𝑥𝑖
Nếu nhãn tương ứng 𝑦𝑗 ∈ 𝑌𝑖 thì 𝑥𝑖 được coi là một dữ liệu dương, ngược lại 𝑥𝑖được
coi là một dữ liệu âm Chiến thuật này cịn gọi là huấn luyện chéo (cross-training)
Trang 34Trang 26
Với một dữ liệu x cần phân lớp, BR sẽ dự đoán tập nhãn tương ứng Y bằng việc
kết hợp các nhãn được xác định từ mỗi bộ phân lớp nhị phân
𝑌 = {𝑦𝑗|𝑓𝑗(𝑥) > 0, 1 ≤ 𝑗 ≤ 𝑞} (1.2)
Cho ví dụ, giả sử ta cần phân lớp bài toán sau:
Bảng 2.6 Ví dụ bài toán phân lớp Binary Relevance
Thuật toán Binary Relevance chia bài toán trên thành 4 bài toán phân lớp đơn
nhãn riêng biệt dưới đây:
Bảng 2.7 Các bộ phân nhãn nhị phân tương ứng với 4 nhãn
đoán Y sẽ bị rỗng Để tránh việc dự đoán tập nhãn rỗng, luật T-Criterion có thể được
áp dụng:
𝑌 = {𝑦𝑗|𝑓𝑗(𝑥) > 0, 1 ≤ 𝑗 ≤ 𝑞} ⋃{𝑦𝑗∗|𝑗∗ = 𝑎𝑟𝑔𝑚𝑎𝑥1≤𝑗≤𝑞𝑓𝑗(𝑥)} (1.3)
Trường hợp không bộ phân lớp nhị phân nào cho kết quả dương, T-Criterion sẽ
bổ sung công thức (1.2) bằng việc đưa vào nhãn lớp với đầu ra tốt nhất (ít âm nhất)
Bộ phân lớp đa nhãn được xác định theo công thức (1.3) Ngoài T-Criterion, một số
quy tắc khác cũng có thể được sử dụng trong việc dự đoán tập nhãn dựa trên đầu ra
của mỗi bộ phân lớp nhị phân
Trang 35Trang 27
Hình 2.6 mơ tả đoạn giả mã minh họa cho thuật tốn Binary Relevance:
Ưu điểm
Ưu điểm vượt trội của Binary Revelance là cách tiếp cận trực tiếp, dễ hiểu để
giải quyết vấn đề dữ liệu đa nhãn
Nhược điểm
Nhược điểm của Binary Relevance là đã loại bỏ tất cả các mối quan hệ tiềm
năng giữa các nhãn và bộ phân lớp nhị phân cho mỗi nhãn cĩ thể rơi vào trạng thái
mất cân bằng lớp khi lớn và mật độ nhãn thấp, đặc biệt khi dữ liệu mất cân bằng
(imbalancing)
Độ phức tạp thuật tốn:
Dựa theo đoạn chương trình giả mã, M.R Boutell và cộng sự [9] xác định được
độ phức tạp tính tốn cho giai đoạn huấn luyện là Ο(𝑞 ℱℬ(𝑚, 𝑑)) và cho giai đoạn
kiểm tra là Ο(𝑞 ℱℬ′(𝑑))
Luận văn áp dụng thuật tốn Binary Relevance với 3 mơ hình SVM, Nạve Bayes
và Logistic Regression; Sử dụng thư viện sklearn để xử lý bài tốn để đánh giá và rút
ra sự so sánh 3 mơ hình thực nghiệm trên cùng dữ liệu tin nhắn đã thu thập
2.3.4.2 Tiếp cận chuyển đổi bài tốn: Chuỗi bộ phân lớp Classifier Chains
Ý tưởng của thuật tốn Chuỗi bộ phân lớp Classifier Chains (CC) là chuyển bài
tốn học đa nhãn thành một chuỗi các phân lớp nhị phân, trong đĩ các bộ phân lớp
nhị phân trong chuỗi được xây dựng dựa trên dự đốn của các bộ phân lớp trước đĩ
Cho nhãn lớp {𝑦1, 𝑦2, … , 𝑦𝑞} hàm τ: {1, , 𝑞} → {1, , 𝑞} là hàm hốn vị các
nhãn theo một thứ tự xác định {𝑦τ(1) ≻ 𝑦τ(2) ≻ ⋯ ≻ 𝑦τ(q) Với nhãn thứ j trong danh
sách, 𝑦τ(j)(1 ≤ 𝑗 ≤ 𝑞), một tập huấn luyện nhị phân tương ứng được xây dựng bằng
việc kết hợp mỗi dữ liệu với các dữ liệu liên quan đến các nhãn trước 𝑦τ(j)
Trang 36Trang 28
Trong đó:
𝒑𝒓𝒆τ(j)𝑖 = (∮(𝑌𝑖, 𝑦τ(1)), … , ∮(𝑌𝑖, 𝑦τ(j−1)))𝑇
[𝑥𝑖, 𝒑𝒓𝒆τ(j)𝑖 ] là vectơ kết hợp của vectơ 𝑥𝑖 và vectơ 𝒑𝒓𝒆τ(j)𝑖
𝒑𝒓𝒆τ(j)𝑖 là vectơ nhãn nhị phân cho các nhãn đứng trước 𝑦τ(j) trên dữ liệu Trường hợp đặc biệt 𝒑𝒓𝒆τ(j)𝑖 = ∅ Tiếp đó, các thuật toán học nhị phân B được
sử dụng để đưa ra bộ phân lớp nhị phân 𝑓τ(j): 𝜒 × {−1, +1}𝑗−1 → ℝ, ví dụ
𝑓τ(j) ← 𝐵(𝒟τ(t)) Nói cách khác, 𝑓τ(j)xác định 𝑦τ(j)có là nhãn liên quan hay không
Đối với một dữ liệu chưa biết, tập nhãn kết hợp của nó được dự đoán bằng cách
đi qua chuỗi bộ phân lớp một số lần lặp Ký hiệu 𝜆τ(j)𝑥 ∈ {−1, +1}là giá trị nhị phân
dự đoán của 𝑦τ(j) trên dữ liệu x, được xác định như sau:
Cho ví dụ, giả sử ta cần phân lớp bài toán sau:
Bảng 2.8 Ví dụ bài toán phân lớp Classifier Chain
Thuật toán Classifer Chain chia bài toán trong trên thành 4 bài toán phân lớp
đơn nhãn riêng biệt - điều này khá giống với Binary Relevance Sự khác biệt duy nhất
là nó tạo thành chuỗi để duy trì mối tương quan nhãn Kết quả ta được 4 bộ phân lớp
nhị phân như trong bảng dưới đây, trong đó cột cuối cùng đại diện cho hàm mục tiêu
Bảng 2.9 Các bộ phân nhãn tương ứng với 4 nhãn trong Classifier Chains
Trang 37Trang 29
Thuật toán chuỗi bộ phân lớp đươc mô hình hóa như sau:
Hình 2.7 Mô hình thuật toán chuỗi bộ phân lớp Classifier Chains
Trong thuật toán này, mối quan hệ giữa các nhãn đã được xem xét theo một cách
ngẫu nhiên So với thuật toán Binary Relevance, thuật toán chuỗi bộ phân lớp có ưu
điểm là đã khai thác mối quan hệ giữa các nhãn nhưng nhược điểm là không thực thi
song song được do đặc điểm của chuỗi
Độ phức tạp thuật toán:
J Read [3] chỉ ra rằng độ phức tạp tính toán của thuật toán chuỗi bộ phân lớp
cho pha huấn luyện là Ο(𝑞 ℱℬ(𝑚, 𝑑 + 𝑞)) và pha kiểm tra là Ο(𝑞 ℱℬ′(𝑑 + 𝑞))
2.3.4.3 Tiếp cận thích nghi thuật toán: Multi-label k-Nearest Neighbors
(MLkNN)
Thuật toán kNN [7] (k-Nearest Neighbors) là một trong những thuật toán học
có giám sát được sử dụng rộng rãi vì tính đơn giản (mà hiệu quả trong một vài trường
hợp) trong Machine Learning Thuật toán dựa trên ý tưởng tìm hàng xóm gần nhất
của một đối tượng thử nghiệm trong không gian đặc trưng
Trong giai đoạn huấn luyện (training), thuật toán này không học một điều gì từ
dữ liệu training Đây cũng là lý do thuật toán này được xếp vào loại học lười (lazy
learning) Mọi tính toán được thực hiện khi nó cần dự đoán kết quả của dữ liệu mới
Hình 2.8 Thuật toán Classifer Chains
Trang 38Trang 30
Đoạn giả mã thuật toán ML-kNN được trình bày như Hình 2.9 dưới đây:
Ưu điểm của KNN
Độ phức tạp tính toán của quá trình training là bằng 0
Việc dự đoán kết quả của dữ liệu mới rất đơn giản
Không cần giả sử gì về phân phối của các lớp
Nhược điểm của KNN
KNN rất nhạy cảm với nhiễu khi K nhỏ
Chú ý:
KNN là một thuật toán mà mọi tính toán đều nằm ở khâu test, do đó việc training
set sẽ tốn rất nhiều thời gian, đặc biệt là với các cơ sở dữ liệu có số chiều lớn và có
nhiều điểm dữ liệu Với K càng lớn thì độ phức tạp cũng sẽ tăng lên Ngoài ra, việc
lưu toàn bộ dữ liệu trong bộ nhớ cũng ảnh hưởng tới hiệu năng của KNN
Độ phức tạp thuật toán:
Thuật toán có độ phức tạp tính toán cho pha huấn luyện là Ο(𝑚2𝑑 + 𝑞𝑚𝑘)) và
pha kiểm thử là Ο(𝑚2𝑑 + 𝑞𝑘)) được trình bày trong [84]
6 Tính mảng xác xuất 𝒦𝑗 𝑣à 𝒦̃𝑗 𝑡ℎ𝑒𝑜 𝑐ô𝑛𝑔 𝑡ℎứ𝑐
𝒦𝑗[𝑟] = ∑ ⟦𝑦𝑗 ∈ 𝑌𝑖⟧
𝑚 𝑖=1
11 Trả kết quả 𝑌 theo công thức 𝑌 = {𝑦j|ℙ(𝐻j|𝐶𝑗)/ℙ(¬𝐻j|𝐶𝑗) > 1, 1 ≤ 𝑗 ≤ 𝑞}
5 Trả kết quả Y theo công thức (1.6)
Trang 39Trang 31
2.4 Cơ sở mơ hình thống kê
2.4.1 Thuật tốn Naive Bayes
Nạve Bayes là kỹ thuật phân loại phổ biến trong học máy cĩ giám sát, đặc biệt
hiệu quả trong các bài tốn phân loại văn bản Ý tưởng chính của kỹ thuật này dựa
vào xác suất cĩ điều kiện giữa từ hay cụm từ và nhãn phân loại để dự đốn văn bản
mới cần phần loại thuộc lớp nào Điểm quan trọng của phương pháp này chính là chỗ
giả định rằng sự xuất hiện của tất cả các đặc trưng trong văn bản đều độc lập với nhau
Giả định đĩ làm cho việc tính tốn Nạve Bayes hiệu quả và nhanh chĩng hơn các
phương pháp khác vì khơng sử dụng việc kết hợp các đặc trưng để đưa ra phán đốn
nhãn Cĩ thể thấy rằng giả thuyết này cĩ vẻ khá “ngây thơ” vì trên thực tế điều này
cĩ thể nĩi là khơng thể xảy ra tức là chúng ta rất ít khi tìm được một bộ dữ liệu mà
các thành phần của nĩ khơng liên quan gì đến nhau Tuy nhiên, giả thiết này lại mang
lại những kết quả tốt bất ngờ: dựa vào giả thuyết này mà bước training và testing trở
nên vơ cùng nhanh chĩng và đơn giản Cách xác định lớp của dữ liệu dựa trên giả
thiết này cĩ tên là Naive Bayes Classifier (NBC)
Trên thực tế, NBC hoạt động khá hiệu quả trong nhiều bài tốn, đặc biệt là trong
các bài tốn phân loại văn bản, xây dựng bộ lọc thư rác tự động, hay trong bài tốn
khai phá quan điểm bởi tính dễ hiểu, đễ triển khai cũng như độ chính xác tốt mặc dù
kết quả dự đốn ảnh hưởng bởi kích thước bộ dữ liệu, chất lượng của khơng gian đặc
trưng… Đĩ cũng là lý do luận văn lựa chọn áp dụng một số mơ hình xây dựng trên
nền tảng thuật tốn này
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau:
𝑃(𝑌|𝑋) =𝑃(𝑋𝑌)
𝑃(𝑋) =
𝑃(𝑋|𝑌)𝑃(𝑌)𝑃(𝑋)
Áp dụng trong bài tốn phân loại, các dữ kiện gồm cĩ:
D: bộ dữ liệu huấn luyện đã được vec-tơ hĩa dạng 𝑥⃗ = (𝑥1, 𝑥2, … , 𝑥𝑛)
Ci: phân loại i, với i = {1,2,…,m}
Các thuộc tính độc lập điều kiện đơi một với nhau
Theo định lý Bayes:
𝑃(𝐶𝑖|𝑋) = 𝑃(𝑋|𝐶𝑖)𝑃(𝐶𝑖)
𝑃(𝑋)Theo tính chất độc lập điều kiện:
Trang 40 𝑃(𝐶𝑖|𝑋) là xác suất thuộc phân loại i khi biết trước mẫu X
𝑃(𝐶𝑖) xác suất là phân loại i
𝑃(𝑥𝑘|𝐶𝑖) xác suất thuộc tính k mang giá trị xk khi biết X thuộc phân loại i
Các bước thực hiện thuật tốn Nạve Bayes:
Bước 1: Huấn luyện Nạve Bayes (dựa vào bộ dữ liệu), tính 𝑃(𝐶𝑖) và 𝑃(𝑥𝑘|𝐶𝑖) Bước 2: Phân loại 𝑋𝑛𝑒𝑤 = (𝑥1, 𝑥2, … , 𝑥𝑛), ta cần tính xác suất thuộc từng phân loại khi đã biết trước Xnew Xnew được gán vào lớp cĩ xác suất lớn nhất theo cơng thức
Máy vec-tơ hỗ trợ (Support Vector Machine - SVM) là một phuơng pháp phân
loại được đề xuất bởi Cortes & Vapnik [1] Ý tưởng chính của thuật tốn là tìm một
siêu phẳng (Hyper Plane) hay tập các siêu phẳng trong khơng gian hữu hạn chiều của
các vec-tơ biểu diễn văn bản, phân chia các vec-tơ này thành 2 phần là hai lớp của bộ
phân loại Khoảng cách từ siêu phẳng tới điểm gần nhất được gọi là biên của bộ phân
loại Khi cĩ một vec-tơ mới, khoảng cách từ vec-tơ này đến đến siêu phẳng được tính
tốn, sau đĩ sẽ được xếp vào phân loại phù hợp với nĩ
2.4.2.1 SVM cho phân lớp nhị phân
Để đơn giản ta sẽ xét bài tốn phân loại nhị phân, sau đĩ sẽ mở rộng vấn đề ra
cho bài tốn phân nhiều lớp
Xét một ví dụ của bài tốn phân loại hình 2.10 ở đĩ ta phải tìm một đường thẳng
sao cho bên trái nĩ tồn là các điểm đỏ, bên phải nĩ tồn là các điểm xanh Bài tốn
mà dùng đường thẳng để phân chia này được gọi là phân loại tuyến tính (linear
classification)