1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

81 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 3,19 MB

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

Nội dung

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 1

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

Trang 2

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

i

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 4

ii

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 5

iii

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 6

iv

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 7

v

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 8

vi

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 9

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

Phâ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 11

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

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

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

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

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

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

https://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 18

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

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

http://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 21

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

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

Trang 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 24

Trang 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 25

Trang 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 26

Trang 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 27

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

Vậ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 29

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

Trang 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 31

Trang 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 32

Trang 24

phân loại ( i , ( c1, c2, , ck)) với ciC 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 33

Trang 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 34

Trang 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 35

Trang 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 36

Trang 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 37

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

Trang 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 39

Trang 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)

Ngày đăng: 27/02/2021, 23:49

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w