CHƯƠNG 2: ĐỀ XUẤT PHƯƠNG PHÁP
2.2. Phương pháp học máy
2.2.2. Mô hình, thuật toán phân loại phổ biến
Trong phần trước, luận văn đã đưa ra các phương pháp trích chọn đặc trưng của ngôn từ phản động; cách thức vector hóa các đặc trưng của văn bản. Mỗi bài viết, bình luận sau khi được trích chọn đặc trưng, đều sẽ được biểu diễn bằng một vector đặc trưng như đã được trình bày. Nội dung của Mục này sẽ trình bày một số mô hình, thuật toán phân lớp phổ biến được sử dụng để phát hiện nội dung phản động.
Trong NLP, các kiến trúc, mô hình huấn luyện được áp dụng chủ yếu là thuật toán học máy (Machine Learning) và thuật toán học sâu (Deep Learning).
Các thuật toán học máy được chia làm 3 loại chính: Học có giám sát (Supervised Learning), học không giám sát (Unsupervised Learning), học tăng cường (Reinforcement Learning). Học có giám sát thường được dùng trong các trường hợp một thuộc tính/nhãn có sẵn cho một tập dữ liệu nhất định (tập huấn luyện), nhưng không được đầy đủ và được dự đoán cho nhiều trường hợp khác. Học không giám sát thường được sử dụng trong các trường hợp cần khám phá các mối quan hệ tiềm ẩn nằm trong dữ liệu không có nhãn. Học tăng cường là phương pháp nằm giữa hai loại thuật toán trên.
Zaghloul và cộng sự [54] đã so sánh độ hiệu suất trong việc phân lớp nhị phân khi sử dụng SVM và mạng nơ-ron nhân tạo. Nghiên cứu chỉ ra rằng, SVM là bộ phân loại tốt nhất, và mạng nơ-ron nhân tạo có thể sử dụng làm bộ phân loại văn bản nếu hiệu suất của chúng tương đương với SVM. Các tác giả đã phát hiện ra rằng, mạng nơ-ron nhân tạo là công cụ phân lớp văn bản rất khả thi với hiệu suất tương đương với SVM, hơn thế, nó còn làm giảm kích thước dữ liệu đi nhiều lần. Việc sử dụng các mạng nơ-ron để phân lớp văn bản sẽ là một lợi thế lớn như một công cụ phân loại so với các công cụ khác vì nó có thể mang lại sự tiết kiệm đáng kể về thời gian và chi phí tính toán.
Trong phạm vi bài toán xây dựng giải pháp kiểm duyệt bài viết, bình luận tiếng Việt có nội dung phản động, tôi thử nghiệm một thuật toán học có giám sát là thuật toán máy vector hỗ trợ SVM và một mô hình mạng nơ-ron đa tầng truyền thẳng MLP.
2.2.2.1. Thuật toán SVM
Thuật toán SVM được Vapnik giới thiệu vào năm 1995. SVM được dùng cho bài toán phân lớp nhị phân, tức là số lớp hạn chế là hai lớp. Giả sử đầu bài cho tập hợp các điểm thuộc 2 loại trong môi trường N chiều, SVM là phương pháp để tìm ra N-1 mặt phẳng để ngăn các điểm thành 2 nhóm. Một ví dụ cụ thể đó là cho một tập hợp các điểm thuộc 2 loại như hình mô tả phía dưới, SVM có nhiệm vụ tìm ra một đường thẳng để phân tách những điểm đó thành 2 loại sao cho độ dài khoảng cách giữa đường thẳng và những điểm là xa nhất có thể.
SVM rất hiệu quả để giải quyết các bài toán với dữ liệu có số chiều lớn như các vector biểu diễn văn bản. Hiện nay, SVM được đánh giá là bộ phân lớp chính xác nhất cho bài toán phân lớp văn bản, bởi đặc tính phân lớp với tốc độ rất nhanh và hiệu quả đối với bài toán phân lớp văn bản. Đối với bài toán phân lớp văn bản sử dụng phương pháp SVM thì việc lựa chọn thuộc tính cho từng phân
lớp lại là vấn đề cực kỳ quan trọng, nó quyết định đến hiệu quả của phân lớp.
Phương pháp này thực hiện phân lớp dựa trên nguyên lý Cực tiểu hóa rủi ro có cấu trúc SRM (Structural Risk Minimization) [43], được xem là một trong các phương pháp phân lớp giám sát không tham số tinh vi. Các hàm công cụ của SVM cho phép tạo không gian chuyển đổi để xây dựng mặt phẳng phân lớp để phân chia các lớp ra thành các phần riêng biệt.
Hình 2.5. Support Vectors trong SVM
Các đường phân chia lớp được gọi là siêu phẳng (hyper-plane). Support Vectors là các đối tượng trên đồ thị tọa độ quan sát, SVM là một biên giới để chia hai lớp tốt nhất.
Hình 2.6. Margin trong SVM
Margin là khoảng cách giữa siêu phẳng đến 2 điểm dữ liệu gần nhất tương ứng với các phân lớp. Trong ví dụ ở hình trên, margin chính là khoảng cách giữa siêu phẳng và hai hình vuông, tròn gần nó nhất. Điều quan trọng ở đây đó là phương pháp SVM luôn cố gắng cực đại hóa margin này, từ đó thu được một
siêu phẳng tạo khoảng cách xa nhất so với các hình vuông và tròn.
Ưu điểm của SVM:
Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm trong số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn. Có thể kể thêm một số ưu điểm của phương pháp này như:
- Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu quả trong không gian có số chiều cao, trong đó đặc biệt áp dụng cho các bài toán phân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn.
- Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết định.
- Tính linh hoạt - phân lớp thường là phi tuyến tính. Khả năng áp dụng Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn.
Nhược điểm của SVM:
- Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi.
- Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM. Điều này chưa giải thích được xác suất xuất hiện của một thành viên trong một nhóm là như thế nào. Tuy nhiên, hiệu quả của việc phân lớp có thể được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp đã nêu trên.
2.2.2.2. Mô hình MLP
MLP là mạng nơ-ron đơn giản được tạo ra từ các liên kết giữa các perceptron (nơ-ron đơn lẻ) và là nền tảng để hiểu các mạng khác phức tạp hơn trong học sâu. Một mạng MLP tổng quát là mạng có n (n≥2) tầng (thông thường tầng đầu vào không được tính đến): Trong đó, gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn.
Hình 2.7: Cấu tạo mạng MLP cơ bản
Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:
Đầu vào là các vector (x1, x2, …, xp) trong không gian p chiều, đầu ra là các vector (y1, y2, …, yq) trong không gian q chiều. Đối với các bài toán phân loại, p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại.
Mỗi nơ-ron thuộc tầng sau liên kết với tất cả các nơ-ron thuộc tầng liền trước nó. Đầu ra của nơ-ron tầng trước là đầu vào của nơ-ron thuộc tầng liền sau nó.
Hoạt động của mạng MLP như sau:
Hình 2.8: Sử dụng mô hình MLP cho bài toán phân loại văn bản
Tại tầng đầu vào các nơ-ron nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các nơ-ron thuộc tầng ẩn thứ nhất; các nơ-ron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2. Quá trình tiếp tục cho đến khi các nơ-ron thuộc tầng ra cho kết quả. Mạng MLP có thể được huấn luyện bởi cả ba phương pháp học phổ biến là học có giám sát, học không giám sát và học tăng cường.
Ứng dụng MLP cho bài toán phân loại văn bản: Để có thể sử dụng MLP cho bài toán phân loại văn bản, cần nhúng từ (word embedding) để chuyển đổi dữ liệu văn bản sang mô hình vector. Sau khi qua các lớp ẩn, đầu ra của mạng MLP là số lượng lớp văn bản cần phần loại. Chúng ta có thể dễ dàng thiết kế mạng MLP với số lượng lớp ẩn, số lượng nút tùy biến phù hợp với yêu cầu bài toán. Các hàm kích hoạt thường được sử dụng bao gồm hàm ReLU, hàm sigmoid và hàm tanh.