Chương 1: NGHIÊN CỨU TỔNG QUAN 1.1 Nhu cầu phân tích lưu lượng mạng Internet Trong lĩnh vực phân loại lưu lượng Internet, những phương pháp truyền thống có một số hạn chế nhất định. Đầu tiên, đánh dấu gói (packet marking) được đề xuất để phân biệt lưu lượng dựa trên lớp QoS của nó. Một số ví dụ về các trường được sử dụng để đánh dấu gói là Loại dịch vụ (Type of Sevice - ToS), Điểm mã dịch vụ phân biệt (Differentiated Services Code Point - DSCP) và Thông báo tắc nghẽn rõ ràng (Explicit Congestion Notification - ECN). Từ đấy, một số giao thức đã được đề xuất để phân loại lưu lượng bao gồm Dịch vụ khác biệt (DiffServ), Dịch vụ tích hợp (IntServ) và Chuyển mạch nhãn đa giao thức (MPLS).
Tuy nhiên, các giao thức này không được triển khai và sử dụng một cách rộng rãi do sự phức tạp và các vấn đề tương thích với hệ thống của chúng. Ngoài ra, có hai phương pháp phân loại truyền thống được ứng dụng rộng rãi, bao gồm phương pháp phân loại dựa trên cổng (Port – based) và phương pháp phân loại dựa trên tải trọng (Payload – based). Phân loại dựa trên cổng (Port-based technique): Kỹ thuật phân loại dựa trên cổng là kỹ thuật phổ biến và thông dụng nhất để phân loại lưu lượng mạng Internet. Trong kỹ thuật này, mỗi một gói dữ liệu (packet) trong lưu lượng mạng IP đều mang số cổng (số cổng nguồn và số cổng đích) do tổ chức IANA (Internet Assigned Number Authority – Tổ chức cấp phát số hiệu Internet) ấn định.
Các ứng dụng mạng Internet nổi tiếng đều đã đăng ký số cổng tại IANA, và bằng cách này, lưu lượng mạng được xác định tương ứng với số cổng đã đăng ký. Ví dụ: các ứng dụng Email sử dụng số cổng 25 (SMTP) để gửi email và cổng 110 (POP3) được sử dụng để nhận email, các ứng dụng web sử dụng số cổng 80 [4]. Tuy nhiên, không phải tất cả các ứng dụng sử dụng mạng Internet đều đã đăng ký số cổng. Một số ứng dụng thế hệ mới như mạng ngang hàng (Peer-to-Peer, hoặc P2P Network), ứng dụng 1 chơi game trực tuyến đều không có đăng ký số cổng cố định, mà sử dụng số cổng động (dynamic port number).
Ngoài ra, một số dịch vụ mạng đường hầm (tunneling) 3 và ẩn danh (anonymization), lại ẩn đi thông tin số cổng của mình [1], [5]. Hơn nữa, trong các ứng dụng di động, hầu hết lưu lượng ứng dụng được truyền đi bằng đường hầm thông qua Giao thức truyền tải siêu văn bản an toàn (Hypertext Transfer Protocol Secure - HTTPS) [6]. Do đó, rất khó để phân loại loại ứng dụng như vậy bằng kỹ thuật dựa trên cổng. Phân loại dựa trên nội dung truyền tải (Payload-based technique): thường được biết đến dưới cái tên phương pháp kiểm tra gói chuyên sâu (Deep Packet Inspection - DPI).
Trong kỹ thuật này, nội dung của gói dữ liệu được kiểm tra dựa trên đặc trưng của các ứng dụng mạng trong lưu lượng Internet. Kỹ thuật này đặc biệt được đề xuất cho các ứng dụng Peer-to-Peer (P2P), hoặc cho những ứng dụng tương đương có sử dụng số cổng động nhằm xác định lưu lượng mạng Internet. Tuy nhiên, phương pháp này cũng có những hạn chế nhất định. Kỹ thuật này yêu cầu nhiều về phần cứng nhằm phát hiện những đặc trưng trong gói dữ liệu, DPI không thể xử lý được những gói lưu lượng truyền tải dữ liệu đã được mã hóa [7], [8], và cần được cập nhật liên tục những đặc trưng cụ thể của những ứng dụng mạng mới phát triển.
Những hạn chế trên đòi hỏi cần một giải pháp mới trong lĩnh vực phân loại lưu lượng mạng Internet nhằm đạt được những kết quả tích cực hơn. Điều này dẫn tới ứng dụng mô hình học máy được sử dụng như một giải pháp cho vấn đề này. Trên thế giới, đã từng có nhiều công trình nghiên cứu trong lĩnh vực phân loại lưu lượng Internet bằng cách áp dụng mô hình huấn luyện học máy. Trong đó, các loại thuật toán học máy khác nhau được sử dụng để phân loại lưu lượng nhằm đáp ứng những nhu cầu khác nhau trong ứng dụng phân loại lưu lượng truy cập mạng.2 Các phương pháp tiền xử lý dữ liệu Điều chỉnh thang đo đặc trưng (feature scaling) là một phương pháp được sử dụng để chuẩn hóa phạm vi của các biến độc lập hoặc các đặc trưng của dữ liệu.
Trong lĩnh vực xử lý dữ liệu, quá trình này còn được gọi là chuẩn hóa dữ liệu (normalization) và thường được tiến hành trong bước tiền xử lý tập dữ liệu. Thang đo của các mẫu giá trị trong tập dữ liệu ban đầu đa phần thường rất phân tán, dẫn đến hiệu quả của các hàm mục tiêu (objective funciton) sẽ giảm sút nếu không áp dụng 4 quá trình chuẩn hóa. Do đó, thang đo đặc trưng của các mẫu dữ liệu cần được chuẩn hóa sao cho mỗi giá trị đều mang lại đóng góp tương ứng với vị trí của chúng trong phạm vi chuẩn hóa.1 Phương pháp chuẩn hóa Chuẩn hóa tối thiểu – tối đa (Min – Max Normalization): Chuẩn hóa tối thiểu – tối đa là phương án chuẩn hóa đơn giản nhất, nhưng lại được áp dụng khá nhiều trong các bài toán tiền xử lý dữ liệu nhằm mục đích đưa thang đo các giá trị trong tập dữ liệu về mức [0,1]. Tuy nhiên, tùy theo yêu cầu cũng như đặc trưng cơ bản của tập dữ liệu, thang đo mục tiêu để điều chỉnh cũng khác nhau.
Công thức điều chỉnh thang đo của các giá trị về mức cơ bản [0,1] được miêu tả như sau, trong đó 𝑚𝑖𝑛, 𝑚𝑎𝑥 lần lượt là các giá trị nhỏ nhất và lớn nhất xuất hiện trong tập dữ liệu: 𝑥 − 𝑚𝑖𝑛 𝑥′ = , (1.1) 𝑚𝑎𝑥 − 𝑚𝑖𝑛 Để điều chỉnh lại phạm vi của các giá trị về mức [𝑎, 𝑏] tùy theo yêu cầu của bài toán tiền xử lý dữ liệu, công thức (1.1) có thể được điều chỉnh thành: (𝑥 − min)(𝑏 − 𝑎) 𝑥′ = 𝑎 + , (1.2) 𝑚𝑎𝑥 − 𝑚𝑖𝑛 Trong cả hai công thức trên, 𝑥 đại diện cho giá trị gốc của đặc trưng của dữ liệu, và 𝑥 ′ đại diện cho giá trị tương ứng của đặc trưng đó sau khi chuẩn hóa. Chuẩn hóa trung bình (Mean Normalization): Ngoài phương pháp chuẩn hóa tối thiểu – tối đa, một phương án khác được rất nhiều các chuyên gia trong lĩnh vực xử lý dữ liệu là chuẩn hóa trung bình, được miêu tả trong công thức (1.3) với 𝑚𝑒𝑎𝑛 là giá trị trung bình của từng đặc trưng tương ứng có trong tập dữ liệu: Chuẩn hóa Z – score (Độ lệch chuẩn): Trong lĩnh vực học máy, tập dữ liệu của bài toán phân loại có thể tồn tại nhiều loại dữ liệu khác nhau, ví dụ: tín hiệu âm thanh và giá trị pixel cho dữ liệu hình ảnh và dữ liệu này có thể bao gồm nhiều đặc trưng khác nhau với các giá trị tồn tại trong các phạm vi khác nhau. Chuẩn hóa Z-score cho phép giá trị của các đặc trưng trong tập dữ liệu tập trung xung quanh vùng có trị trung bình là 0 và độ lệch chuẩn có giá trị là 1. Phương 5 pháp này được áp dụng rộng rãi tại bước chuẩn hóa trong nhiều thuật toán học máy (ví dụ: máy vectơ hỗ trợ SVM, hồi quy logistic và mạng neuron nhân tạo).
Công thức tính toán cũng tương đương với (1.3), khác biệt duy nhất là giá trị độ lệch chuẩn sẽ thay thế tại vị trí mẫu thức: 𝑥 − 𝑚𝑒𝑎𝑛 𝑥′ = , (1.4) 𝑠𝑡𝑎𝑛𝑑𝑎𝑟𝑑𝑑𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛 Phương pháp mã hóa (encode) Trong lĩnh vực Học máy hoặc Khoa học dữ liệu, tập dữ liệu có thể chứa các giá trị văn bản hoặc phân loại mà không phải là định dạng số. Một số ít thuật toán như CATBOAST, cây quyết định có thể xử lý các bài toán phân loại rất tốt với dữ liệu đầu vào ở các định dạng nhãn hay lớp phân loại. Tuy nhiên, hầu hết các thuật toán và mô hình học máy đều mong muốn các giá trị số ở dữ liệu đầu vào của mô hình nhằm đạt được hiệu quả phân loại cao nhất. Do đó, thách thức chính mà các nhà nghiên cứu hoặc phân tích dữ liệu phải xử lý là chuyển đổi dữ liệu văn bản hoặc phân loại thành dữ liệu số, trong khi vẫn tạo ra một thuật toán phù hợp với định dạng đó.
Mã hóa nhãn (Label Encoding): phương pháp này vô cùng đơn giản vì chỉ liên quan đến quá trình gán một con số cho các giá trị chữ hoặc nhãn của lớp phân loại tương ứng. Tuy nhiên, điểm bất lợi của phương pháp này bao gồm việc gán các giá trị số có thể tạo ra một đặc trưng mới không mong muốn dựa trên mối liên quan về độ lớn nhỏ của các giá trị. Ví dụ như các loại thực phẩm khác nhau trong bảng 1.1, các lớp nhãn ban đầu không có sự phân biệt về độ lớn nhỏ. Minh họa quy trình mã hóa nhãn Loại thực phẩm Loại thực phẩm (định dạng chữ) (định dạng số) Thịt 0 Cá 1 Rau 2 Củ 3 Trứng 4 Sữa 5 6 Tuy nhiên, sau khi gán các giá trị số tương ứng với mỗi lớp nhãn, đặc trưng mới này đã tạo ra sự khác biệt dựa trên độ lớn nhỏ của các giá trị.
Ví dụ, ban đầu các loại thực phẩm như thịt, cá, và rau không có sự liên hệ trực tiếp nào theo như bảng 1. Sau khi gán các giá tri số tương ứng, thuật toán có thể hiểu rằng các đặc trưng có sự sắp xếp theo thứ tự từ lớn đến nhỏ. Các đặc trưng này sẽ được gán giá trị trọng số với độ lớn không mong muốn, từ đó dẫn đến sự sai lệch kết quả trong quá trình huấn luyện. Mã hóa One-hot (One-hot Encoding): Mặc dù ưu điểm của mã hóa nhãn là tính đơn giản, ngược lại các thuật toán phân loại có thể hiểu nhầm đặc trưng ban đầu thành mối liên hệ phân cấp theo độ lớn nhỏ của giá trị số được gán.
Nhược điểm này có thể được giải quyết bằng phương án tiếp cận khác được biết đến với cái tên mã hóa One-hot. Trong mã hóa One-hot, mỗi đặc trưng định dạng phân loại lớp hoặc nhãn dữ liệu sẽ được phân thêm các cột dữ liệu và được mã hóa giá trị 1 hoặc 0, tương ứng với các ký hiệu True/False cho mỗi cột dữ liệu. Bảng giá trị 1.2 minh họa quá trình mã hóa One-hot sử dụng các đặc trưng giới thiệu trong bảng 1.