Giới thiệu dự án

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và các nền tảng mạng xã hội đã thay đổi toàn diện phương thức giao tiếp của xã hội hiện đại. Tuy nhiên, mặt trái của không gian số đang tạo ra những hệ lụy nghiêm trọng về mặt tâm lý và trật tự an toàn thông tin. Theo khảo sát về Chỉ số Văn minh Trực tuyến (DCI) của Microsoft, Việt Nam thuộc nhóm 5 quốc gia có mức độ văn minh không gian mạng thấp nhất trong số 25 quốc gia được khảo sát; cụ thể, cứ 100 người dùng mạng tại Việt Nam thì có tới 70 người từng gặp phải hành vi ứng xử không đúng mực, 97% trong số đó thừa nhận bị tổn thương tâm lý và 83% lo ngại các hành vi thù ghét này sẽ tái diễn. Quy mô dữ liệu trên các nền tảng số đang tăng theo cấp số nhân: mỗi phút trôi qua trên Facebook ghi nhận hơn 293.000 bài đăng cùng 510.000 lượt bình luận. Năm 2020, Facebook đã phải gỡ bỏ hơn 81 triệu nội dung thù địch (tăng gấp 7 lần so với năm 2018), trong khi YouTube buộc phải xóa bỏ hơn 4,8 tỷ bình luận vi phạm tiêu chuẩn cộng đồng (tăng gấp 2,7 lần so với năm 2019).

                            +-------------------------------------------------------------+
                            |                  BỐI CẢNH & THỰC TRẠNG MẠNG XÃ HỘI          |
                            +-------------------------------------------------------------+
                                                           |
                                 +-------------------------+-------------------------+
                                 |                                                   |
                                 v                                                   v
               +-----------------------------------+               +-----------------------------------+
               |       QUY MÔ DỮ LIỆU KHỔNG LỒ     |               |    HỆ LỤY XÃ HỘI & CON NGƯỜI      |
               | - Facebook: 510k comments/phút    |               | - 70/100 người gặp hành vi xấu    |
               | - 81M nội dung độc hại (2020)     |               | - 97% nạn nhân bị tổn thương      |
               | - YouTube xóa 4.8B comments (2020)|               | - Kiểm duyệt viên mắc hội chứng   |
               +-----------------------------------+               |   tâm lý sau sang chấn (PTSD)     |
                                 |                                 +-----------------------------------+
                                 +-------------------------+-------------------------+
                                                           |
                                                           v
                            +-------------------------------------------------------------+
                            |                 THÁCH THỨC CỦA TIẾNG VIỆT                   |
                            | - Ngôn ngữ phi cấu trúc, teencode, từ lóng, dấu câu lỗi     |
                            | - Mất cân bằng dữ liệu nghiêm trọng (CLEAN >> HATE)         |
                            | - Kiểm duyệt thủ công quá tải, chi phí hàng triệu USD       |
                            +-------------------------------------------------------------+
                                                           |
                                                           v
                            +-------------------------------------------------------------+
                            |            GIẢI PHÁP ĐỀ XUẤT: HỆ THỐNG PHOBERT-CNN          |
                            |  [Tiền xử lý 2 giai đoạn] -> [Tăng cường EDA] -> [Mô hình]  |
                            +-------------------------------------------------------------+

Việc phụ thuộc hoàn toàn vào đội ngũ kiểm duyệt thủ công đã bộc lộ những giới hạn nghiêm trọng: chi phí nhân sự hàng trăm triệu USD từ các tập đoàn công nghệ lớn, tình trạng thiếu hụt nhân sự bản ngữ am hiểu văn hóa địa phương và nguy cơ kiểm duyệt viên mắc hội chứng Rối loạn Căng thẳng Sau Sang chấn (Post-traumatic Stress Disorder - PTSD). Trong khi đó, các mô hình học máy và mô hình ngôn ngữ đa ngôn ngữ sẵn có thường hoạt động kém hiệu quả trên văn bản mạng xã hội tiếng Việt do đặc thù từ ngữ đa nghĩa, ngôn ngữ phi chuẩn hóa của giới trẻ (teencode), lỗi chính tả và các biểu thức thù ghét ẩn ý.

Đề tài "Nhận diện nội dung xúc phạm trên dữ liệu mạng xã hội Việt Nam sử dụng mô hình PhoBERT-CNN" được thực hiện bởi nhóm nghiên cứu chuyên ngành Khoa học Dữ liệu (Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM) nhằm cung cấp giải pháp trí tuệ nhân tạo toàn diện, phân loại chính xác các phát ngôn thù địch và xúc phạm trên không gian mạng.

Mục tiêu của dự án

  1. Xây dựng quy trình tiền xử lý dữ liệu 2 giai đoạn chuyên biệt hóa cho ngôn ngữ phi cấu trúc trên mạng xã hội tiếng Việt, loại bỏ nhiễu và bảo toàn cấu trúc ngữ nghĩa cốt lõi.
  2. Ứng dụng kỹ thuật tăng cường dữ liệu EDA (Easy Data Augmentation) nhằm giải quyết triệt để bài toán mất cân bằng phân phối nhãn trên hai bộ ngữ liệu tiêu chuẩn ViHSD và HSD-VLSP.
  3. Đề xuất kiến trúc học kết hợp PhoBERT-CNN, tận dụng khả năng biểu diễn ngữ cảnh tầng sâu của mô hình đơn ngữ quy mô lớn PhoBERT kết hợp với cơ chế trích xuất đặc trưng cục bộ (local n-gram feature extraction) của mạng tích chập Text-CNN.
  4. Triển khai kiến trúc hệ thống hoàn chỉnh gồm RESTful API, ứng dụng phân tích luồng dữ liệu thời gian thực (Real-time Streaming Pipeline) từ YouTube và ứng dụng kiểm duyệt giả lập cho tòa soạn báo điện tử (NEWSPAPER).

Định nghĩa bài toán và Phạm vi nghiên cứu

Hệ thống tiếp nhận đầu vào là các chuỗi văn bản tiếng Việt thu thập từ bình luận mạng xã hội và tiến hành phân lớp thành 3 nhãn định danh:

  • Nhãn CLEAN (0): Bình luận giao tiếp thông thường, mang sắc thái trung tính hoặc tích cực, không chứa từ ngữ độc hại hay công kích.
  • Nhãn OFFENSIVE (1): Bình luận chứa từ ngữ tục tĩu, thô thiển, mang tính quấy rối nhưng không nhắm trực tiếp vào một đối tượng hoặc tổ chức xác định.
  • Nhãn HATE (2): Bình luận mang tính thù ghét, thóa mạ, bôi nhọ hoặc kích động bạo lực nhắm vào một cá nhân, nhóm người hoặc tổ chức dựa trên các đặc tính định danh (chủng tộc, tôn giáo, giới tính, quốc tịch).

Hệ thống hoạt động trên tập dữ liệu chuẩn mực gồm 33.345 bình luận từ tập dữ liệu ViHSD (Luu et al.) và HSD-VLSP (Vu et al.). Các giới hạn hiện tại của đề tài gồm việc tập trung xử lý văn bản đơn lẻ (single text), chưa xử lý ngữ cảnh chuỗi đối thoại nhiều lượt (multi-turn conversation) và chưa tích hợp phân tích đa phương thức (multimodal: hình ảnh, video).


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Các hướng tiếp cận giải quyết bài toán phát hiện ngôn ngữ xúc phạm (Hate Speech Detection - HSD) trên văn bản tiếng Việt trước đây chủ yếu dừng lại ở các thuật toán học máy truyền thống hoặc các mạng nơ-ron hồi quy đơn lẻ, vốn bộc lộ nhiều điểm nghẽn kỹ thuật:

Phương pháp tiếp cận Ưu điểm Nhược điểm
Machine Learning (SVM, Random Forest, Logistic Regression) Tốc độ huấn luyện nhanh, chi phí tính toán thấp, dễ triển khai Dựa trên TF-IDF/Bag-of-Words bỏ qua quan hệ ngữ cảnh; hiệu suất kém khi gặp từ ngoài từ điển (OOV)
Deep Learning cổ điển (LSTM, Bi-LSTM, Text-CNN) Tự động trích xuất đặc trưng phi tuyến; nắm bắt được ngữ cảnh chuỗi phụ thuộc ngắn Không có tri thức ngôn ngữ nạp sẵn (pre-trained knowledge); dễ overfitting khi tập huấn luyện nhỏ
Mô hình Pre-trained đa ngôn ngữ (mBERT, XLM-RoBERTa) Tận dụng transfer learning quy mô lớn; hiểu cấu trúc ngữ nghĩa đa ngôn ngữ Không tối ưu hóa trên cấu trúc âm tiết ghép và thanh điệu tiếng Việt; chi phí suy diễn cao
Giải pháp đề xuất (PhoBERT-CNN + Preprocessing 2 giai đoạn) Nắm bắt ngữ cảnh sâu sắc của tiếng Việt, trích xuất n-gram đặc thù, kháng nhiễu teencode Cần bước tiền xử lý chuyên sâu; mô hình ghép đòi hỏi tối ưu bộ nhớ GPU trong quá trình huấn luyện

Ưu tiên hóa yêu cầu hệ thống theo khung phân loại MoSCoW:

  • Must have: Module tiền xử lý chuẩn hóa Unicode UTF-8, bộ phân tách từ vựng tiếng Việt VnCoreNLP, De-teencode mapper; mô hình PhoBERT-CNN đạt macro F1-score vượt baseline; RESTful API phân loại văn bản với độ trễ phản hồi dưới 100ms.
  • Should have: Kỹ thuật tăng cường dữ liệu EDA giải quyết mất cân bằng nhãn; module xử lý luồng (streaming pipeline) từ YouTube API.
  • Could have: Giao diện web mô phỏng báo điện tử tích hợp cơ chế tự động ẩn/hiện bình luận vi phạm theo ngưỡng xác suất Softmax.
  • Won't have: Xử lý ngữ cảnh video/âm thanh thời gian thực; phân loại tài khoản bot tự động.

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế theo mô hình phân lớp phân tán, tối ưu hóa từ tầng nạp dữ liệu đến tầng suy diễn (inference):

graph TD
    A[Dữ liệu thô từ MXH / YouTube Streaming] --> B[Giai đoạn 1: Chuẩn hóa Regex]
    B --> B1[Chuyển chữ thường, Xóa URL, Xóa ký tự lặp, Chuẩn hóa Unicode & Dấu tiếng Việt]
    B1 --> C[Giai đoạn 2: Ngữ nghĩa & Từ vựng]
    C --> C1[Tách từ VnCoreNLP, De-teencode, Xóa Stopwords]
    C1 --> D[Xử lý mất cân bằng: Tăng cường EDA]
    D --> E[Mô hình PhoBERT Feature Extractor]
    E --> F[PhoBERT Contextual Embeddings: 768-dim]
    F --> G[Text-CNN Multi-filter 1D Convolutions]
    G --> H[Global Max-Pooling & Dropout 0.5]
    H --> I[Fully Connected Layer & Softmax]
    I --> J[Phân loại: CLEAN / OFFENSIVE / HATE]
    J --> K[FastAPI Engine / High-throughput Endpoint]
    K --> L[Ứng dụng Streaming Dashboard & Web Báo điện tử]

Technology Stack và Thông số phiên bản

  • Ngôn ngữ lập trình: Python 3.8.12
  • Deep Learning Framework: PyTorch 1.10.2 + CUDA 11.3
  • NLP Pre-trained Libraries: HuggingFace Transformers 4.15.0, Fairseq 0.10.2, FastBPE
  • Công cụ tiền xử lý tiếng Việt: VnCoreNLP 1.1.1 (RDRSegmenter)
  • Học máy & Tối ưu hóa: Scikit-Learn 1.0.2, NumPy 1.21.5, Pandas 1.4.1
  • Backend API: FastAPI 0.75.0, Uvicorn 0.17.6, Flask 2.0.2
  • Xử lý luồng dữ liệu: PySpark 3.2.1, Spark Streaming, YouTube Data API v3
  • Môi trường huấn luyện: NVIDIA Tesla V100 16GB VRAM, Ubuntu 20.04 LTS

Thiết kế API Endpoints

Hệ thống triển khai dịch vụ suy diễn thông qua chuẩn OpenAPI/FastAPI với cấu trúc schema dữ liệu rõ ràng:

POST /api/v1/predict
Content-Type: application/json

{
  "text": "thằng này ngu vkl biến đi cho đẹp trời",
  "return_probabilities": true
}

Phản hồi chuẩn hóa:

{
  "status": "success",
  "input_raw": "thằng này ngu vkl biến đi cho đẹp trời",
  "processed_text": "thằng này ngu_vkl biến đi cho đẹp trời",
  "predicted_label_id": 1,
  "predicted_label": "OFFENSIVE",
  "confidence_scores": {
    "CLEAN": 0.0421,
    "OFFENSIVE": 0.8873,
    "HATE": 0.0706
  },
  "latency_ms": 18.4
}

Phương pháp nghiên cứu (Methodology)

Quy trình nghiên cứu áp dụng mô hình chuẩn công nghiệp CRISP-DM kết hợp các vòng lặp Agile (Sprints 2 tuần) kéo dài từ 28/01/2022 đến 01/07/2022:

[Tháng 2/2022] Khảo sát tổng quan, thu thập dữ liệu ViHSD & HSD-VLSP, phân tích phân phối nhãn.
[Tháng 3/2022] Thiết kế pipeline tiền xử lý 2 giai đoạn, xây dựng từ điển De-teencode 1.000+ từ.
[Tháng 4/2022] Hiện thực hóa mô hình PhoBERT-CNN, thực nghiệm các baseline (ML, DL, Transformers).
[Tháng 5/2022] Tối ưu hóa siêu tham số (Hyper-parameter tuning), áp dụng EDA, đánh giá Ablation Study.
[Tháng 6/2022] Đóng gói mô hình lên FastAPI, xây dựng pipeline Spark Streaming và ứng dụng Newspaper.
[Tháng 7/2022] Viết báo cáo khoa học, hoàn thiện tài liệu kỹ thuật và bảo vệ khóa luận.

Kế hoạch quản trị rủi ro:

  • Rủi ro quá khớp (Overfitting) trên nhãn đa số: Áp dụng kỹ thuật tăng cường dữ liệu EDA với tỷ lệ thay đổi $\alpha = 0.15$ và cấu hình Dropout $p = 0.5$ tại tầng fully-connected.
  • Rủi ro bùng nổ tài nguyên GPU: Cố định độ dài chuỗi đầu vào $L_{max} = 128$ tokens (bao phủ 98.7% độ dài bình luận thực tế), sử dụng gradient accumulation và mini-batch size 32.

Hiện thực hóa và kết quả thực nghiệm

Quy trình tiền xử lý 2 giai đoạn

Dữ liệu bình luận thô từ mạng xã hội có độ phân tán từ vựng cao, chứa nhiều ký tự rác và biến thể gõ teencode nhằm né tránh kiểm duyệt. Quy trình tiền xử lý được thiết kế chặt chẽ theo hai giai đoạn:

import re
import unicodedata
from vncorenlp import VnCoreNLP

class VietnameseTextPreprocessor:
    def __init__(self, vncorenlp_path: str, teencode_dict: dict, stopword_set: set):
        self.rdrsegmenter = VnCoreNLP(vncorenlp_path, annotators="wseg", max_heap_size='-Xmx500m')
        self.teencode_dict = teencode_dict
        self.stopword_set = stopword_set

    def stage_1_clean_regex(self, text: str) -> str:
        # 1. Chuyển về chữ thường
        text = text.lower()
        # 2. Xóa liên kết URL
        text = re.sub(r'https?://\S+|www\.\S+', '', text)
        # 3. Chuẩn hóa khoảng trắng thừa
        text = re.sub(r'\s+', ' ', text).strip()
        # 4. Chuẩn hóa bảng mã Unicode sang NFC
        text = unicodedata.normalize('NFC', text)
        # 5. Xóa ký tự lặp dư thừa (vd: đẹpppp -> đẹp)
        text = re.sub(r'([a-zà-ỹ])\1{2,}', r'\1', text)
        return text

    def stage_2_tokenize_normalize(self, text: str) -> str:
        # 1. Phân tách từ tiếng Việt sử dụng VnCoreNLP
        segmented_words = self.rdrsegmenter.tokenize(text)
        flat_tokens = [token for sublist in segmented_words for token in sublist]
        
        # 2. Ánh xạ De-teencode (vd: "bik" -> "biết", "vkl" -> "tục_tĩu")
        normalized_tokens = [self.teencode_dict.get(token, token) for token in flat_tokens]
        
        # 3. Loại bỏ Stopwords không mang giá trị phân biệt cảm xúc
        filtered_tokens = [token for token in normalized_tokens if token not in self.stopword_set]
        
        return " ".join(filtered_tokens)

    def process(self, text: str) -> str:
        return self.stage_2_tokenize_normalize(self.stage_1_clean_regex(text))

Kỹ thuật tăng cường dữ liệu EDA

Để cân bằng tập huấn luyện có phân phối gốc lệch (nhãn CLEAN chiếm hơn 80% tổng số lượng mẫu), nhóm nghiên cứu áp dụng 4 thao tác Easy Data Augmentation với ngưỡng xác suất $\alpha = 0.15$ trên hai nhãn thiểu số (OFFENSIVE và HATE):

  1. Synonym Replacement (SR): Thay thế ngẫu nhiên $n$ từ bằng các từ đồng nghĩa từ WordNet tiếng Việt.
  2. Random Insertion (RI): Chèn ngẫu nhiên một từ đồng nghĩa vào vị trí bất kỳ trong câu.
  3. Random Swap (RS): Hoán đổi vị trí của hai từ ngẫu nhiên trong câu.
  4. Random Deletion (RD): Xóa ngẫu nhiên một từ với xác suất $p = \alpha$.

Sau khi áp dụng EDA, tập mẫu nhãn HATE và OFFENSIVE tăng trưởng đáng kể về mặt kích thước từ vựng và số lượng mẫu huấn luyện, giúp cân bằng phân phối xác suất tiên nghiệm.

Kiến trúc mô hình PhoBERT-CNN

Mô hình tận dụng tầng Embedding đã học ngữ cảnh phong phú của PhoBERT-base (12-layer Transformer, 768 hidden dimensions). Ma trận đầu ra kích thước $(Batch_Size, L_{max}, 768)$ được truyền tiếp qua 4 nhánh tích chập 1 chiều (Conv1D) song song với các kích thước kernel $k \in {2, 3, 4, 5}$ nhằm bao quát các cụm $n$-gram khác nhau:

import torch
import torch.nn as nn
import torch.nn.functional as F
from transformers import AutoModel

class PhoBERT_CNN_Classifier(nn.Module):
    def __init__(self, phobert_model_name: str, num_classes: int = 3, 
                 num_filters: int = 128, filter_sizes: list = [2, 3, 4, 5], 
                 dropout_rate: float = 0.5):
        super(PhoBERT_CNN_Classifier, self).__init__()
        
        # Tầng trích xuất đặc trưng PhoBERT (Contextual Embedding)
        self.phobert = AutoModel.from_pretrained(phobert_model_name)
        embedding_dim = self.phobert.config.hidden_size # 768
        
        # 4 Khối tích chập Conv1D song song
        self.convs = nn.ModuleList([
            nn.Conv1d(in_channels=embedding_dim, 
                      out_channels=num_filters, 
                      kernel_size=fs)
            for fs in filter_sizes
        ])
        
        # Tầng Regularization và Fully-Connected
        self.dropout = nn.Dropout(dropout_rate)
        self.fc = nn.Linear(len(filter_sizes) * num_filters, num_classes)

    def forward(self, input_ids, attention_mask):
        # 1. Trích xuất hidden states từ PhoBERT: (batch_size, seq_len, 768)
        outputs = self.phobert(input_ids=input_ids, attention_mask=attention_mask)
        last_hidden_state = outputs.last_hidden_state
        
        # 2. Hoán vị chiều để tương thích với Conv1d: (batch_size, 768, seq_len)
        x = last_hidden_state.permute(0, 2, 1)
        
        # 3. Tích chập + Kích hoạt ReLU + 1D Global Max-Pooling
        conv_outputs = []
        for conv in self.convs:
            c = F.relu(conv(x)) # (batch_size, num_filters, L_out)
            p = F.adaptive_max_pool1d(c, 1).squeeze(2) # (batch_size, num_filters)
            conv_outputs.append(p)
            
        # 4. Ghép vector đặc trưng từ các kernel khác nhau
        concatenated = torch.cat(conv_outputs, dim=1) # (batch_size, num_filters * 4)
        
        # 5. Dropout và Softmax Classification
        features = self.dropout(concatenated)
        logits = self.fc(features)
        return logits

Hàm mất mát được sử dụng là Cross-Entropy Loss kết hợp thuật toán tối ưu hóa AdamW ($lr = 2 \times 10^{-5}$, weight decay $= 0.01$):

$$\mathcal{L} = -\sum_{c=1}^{M} y_{o,c} \ln(p_{o,c})$$

Kết quả thực nghiệm và Đánh giá hiệu năng

Thực nghiệm được thiết lập trên hai tập dữ liệu chuẩn mực ViHSD và HSD-VLSP, sử dụng phương pháp kiểm chứng chéo 5-Fold Cross Validation với 4 độ đo: Accuracy, Precision, Recall và Macro F1-score.

Bảng so sánh hiệu năng các nhóm mô hình trên bộ dữ liệu ViHSD

Nhóm phương pháp Mô hình thực nghiệm Accuracy (%) Macro Precision (%) Macro Recall (%) Macro F1-score (%)
Machine Learning Multinomial Naive Bayes 79.12 61.34 55.48 57.10
Logistic Regression 82.45 65.20 59.81 62.15
Support Vector Machine (SVM) 83.10 66.85 61.20 63.42
Random Forest 81.90 64.12 56.70 59.34
Deep Learning LSTM 82.80 64.90 60.15 62.18
Bi-LSTM 83.65 66.40 62.30 64.11
Text-CNN 84.15 67.80 63.15 65.23
Transfer Learning Multilingual BERT (mBERT) 85.10 69.20 64.80 66.72
XLM-RoBERTa (XLM-R) 86.25 70.45 65.90 67.88
PhoBERT-base 86.90 71.30 67.20 68.95
Hybrid Models BERT-CNN 85.80 70.10 65.40 67.45
RoBERTa-CNN 86.50 70.90 66.50 68.42
XLMR-CNN 86.85 71.25 67.10 68.90
Đề xuất (Proposed) PhoBERT-CNN (EDA + 2-Stage Prep) 87.76 73.15 69.80 71.42

(Ghi chú: Trên cấu hình thực nghiệm chuẩn không áp dụng tăng cường dữ liệu mở rộng, mô hình đạt F1-score 67.46% và khi tích hợp đầy đủ pipeline tối ưu đạt đỉnh 71.42% Macro F1 và 87.76% Accuracy).

Kết quả Ablation Analysis (Nghiên cứu bóc tách thành phần)

Cấu hình thử nghiệm Tiền xử lý đề xuất (OP) Tăng cường dữ liệu (DA) PhoBERT (PB) Text-CNN (TC) Macro F1-score (%) Chênh lệch ($\Delta$)
Baseline PhoBERT gốc $\times$ $\times$ $\checkmark$ $\times$ 65.12 Gốc
Tích hợp Tiền xử lý 2 giai đoạn $\checkmark$ $\times$ $\checkmark$ $\times$ 67.58 +2.46%
Tích hợp Tăng cường EDA $\checkmark$ $\checkmark$ $\checkmark$ $\times$ 69.10 +1.52%
Mô hình hoàn chỉnh (PhoBERT-CNN) $\checkmark$ $\checkmark$ $\checkmark$ $\checkmark$ 71.42 +2.32%

Đổi mới và đóng góp khoa học

  1. Chuẩn hóa quy trình tiền xử lý 2 giai đoạn đặc thù cho mạng xã hội Việt Nam: Khắc phục triệt để các hạn chế của những nghiên cứu trước đây (chỉ xóa URL cơ bản). Bổ sung cơ chế giải mã teencode theo ngữ cảnh và chuẩn hóa dấu thanh điệu tiếng Việt tự động, giúp tăng hiệu suất biểu diễn từ vựng thêm 4.66% so với baseline tiền xử lý truyền thống.
  2. Cơ chế cộng hưởng kiến trúc Transformer và Convolutional Network: Khác với việc chỉ lấy vector [CLS] từ Transformer để phân loại thông qua một tầng tuyến tính đơn giản, việc đưa toàn bộ ma trận biểu diễn chuỗi qua 4 bộ lọc Conv1D đa kích thước hạt nhân ($k=2,3,4,5$) cho phép mô hình thu nhận đồng thời cả cấu trúc cú pháp toàn cục (global syntax) lẫn các cụm từ ngữ lóng/từ chửi tục ngắn (local n-gram keyphrases).
  3. Giải quyết triệt để bài toán mất cân bằng phân phối nhãn: Ứng dụng thành công kỹ thuật EDA với hệ số tinh chỉnh phù hợp cho ngôn ngữ chắp dính/đơn lập như tiếng Việt, nâng cao độ nhạy (Recall) của nhãn thù ghét HATE lên hơn 12.3% so với tập dữ liệu gốc không qua xử lý.
  4. Cầu nối hoàn chỉnh từ nghiên cứu hàn lâm đến ứng dụng thực tiễn: Đóng góp 2 hệ thống ứng dụng demo mã nguồn mở:
    • Module xử lý dữ liệu lớn theo thời gian thực (Real-time Stream Processing) tích hợp Spark Streaming thu thập và gán nhãn hàng loạt bình luận trực tiếp từ YouTube.
    • Hệ thống web portal báo điện tử giả lập NEWSPAPER tích hợp RESTful API cho phép kiểm duyệt tự động bình luận độc hại trước khi hiển thị cho người đọc.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng trong thực tế

+-----------------------------------------------------------------------------------+
|                           HỆ THỐNG KIỂM DUYỆT ĐA NỀN TẢNG                         |
+-----------------------------------------------------------------------------------+
                                          |
        +---------------------------------+---------------------------------+
        |                                 |                                 |
        v                                 v                                 v
+-----------------------+     +-----------------------+     +-----------------------+
|  TÒA SOẠN BÁO ĐIỆN TỬ |     |  MẠNG XÃ HỘI & LIVESTREAM|   | QUẢN TRỊ DANH TIẾNG DN |
| Tự động phân luồng:   |     | Lọc tức thời bình luận|     | Phát hiện khủng hoảng |
| - CLEAN: Xuất bản ngay|     | trên YouTube/Facebook |     | truyền thông, tẩy chay|
| - OFFENSIVE: Cảnh báo |     | livestream; bảo vệ    |     | trên các diễn đàn và  |
| - HATE: Chặn vĩnh viễn|     | trẻ em & người xem.   |     | hội nhóm công khai.   |
+-----------------------+     +-----------------------+     +-----------------------+
        |                                 |                                 |
        +---------------------------------+---------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
|               HẠ TẦNG TRIỂN KHAI MICROSERVICES (Docker, FastAPI, Spark)           |
+-----------------------------------------------------------------------------------+
  1. Hệ thống kiểm duyệt tự động cho Báo điện tử & Diễn đàn: Tích hợp trực tiếp vào CMS (Content Management System) của các trang tin trực tuyến. Khi độc giả gửi bình luận, API sẽ tính toán điểm xác suất:
    • Nếu $P(\text{CLEAN}) > 0.85$: Tự động phê duyệt hiển thị ngay lập tức.
    • Nếu $P(\text{OFFENSIVE}) > 0.60$: Tự động che/ẩn từ ngữ tục tĩu và yêu cầu người dùng xác nhận chỉnh sửa.
    • Nếu $P(\text{HATE}) > 0.70$: Tự động từ chối đăng tải, chuyển vào hàng đợi kiểm duyệt thủ công và gắn cờ tài khoản vi phạm.
  2. Hệ thống giám sát luồng bình luận Trực tiếp (Live-stream Chat Moderator): Sử dụng Apache Spark Streaming kết nối với YouTube Live Chat API để phân tích hàng nghìn bình luận mỗi giây, loại bỏ ngay lập tức các nội dung công kích thần tượng, phân biệt vùng miền hoặc quấy rối trực tuyến.
  3. Phân tích danh tiếng thương hiệu (Brand Safety & Social Listening): Giúp các doanh nghiệp theo dõi các chiến dịch truyền thông xã hội, phát hiện sớm các chiến dịch bôi nhọ có chủ đích hoặc các cuộc khủng hoảng truyền thông bắt nguồn từ các bình luận thù địch.

Kiến trúc triển khai hạ tầng kỹ thuật

  • Môi trường Server: Docker Container chạy trên Kubernetes Cluster, hỗ trợ Auto-scaling dựa trên tải CPU/GPU.
  • Serving Framework: FastAPI kết hợp ONNX Runtime hoặc TorchScript để tối ưu hóa đồ thị tính toán (inference engine), giảm độ trễ từ 120ms xuống dưới 25ms cho mỗi yêu cầu.
  • Phân tích chi phí - lợi ích (ROI): Giúp các cơ quan truyền thông giảm 80% khối lượng công việc kiểm duyệt thủ công, tiết kiệm hàng trăm giờ làm việc mỗi tháng và giảm thiểu tối đa rủi ro pháp lý liên quan đến Bộ quy tắc ứng xử trên mạng xã hội do Bộ Thông tin và Truyền thông ban hành.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Khả năng nhận diện văn phong mỉa mai, châm biếm (Sarcasm/Irony): Mô hình có thể dự đoán nhầm nhãn CLEAN cho các câu nói thù ghét sử dụng từ ngữ hoa mỹ, ẩn dụ hoặc mỉa mai sâu cay do bản chất các bộ lọc CNN tập trung vào từ khóa bề mặt.
  • Sự phụ thuộc vào ngữ cảnh hội thoại (Contextual Dependency): Hiện tại mô hình chỉ đánh giá độc lập từng bình luận riêng lẻ; một số bình luận mang tính xúc phạm chỉ khi được đặt trong chuỗi ngữ cảnh trả lời (reply thread) của bài viết gốc.
  • Tiêu tốn tài nguyên phần cứng: Tầng Transformer của PhoBERT đòi hỏi năng lực tính toán GPU tương đối lớn để huấn luyện và duy trì độ trễ thấp khi tải lượng người dùng đồng thời (concurrency) tăng đột biến.

Hướng phát triển trong tương lai

  • Mở rộng tập ngữ liệu đa dạng ngữ cảnh, xây dựng tập dữ liệu chuyên biệt cho bài toán phát hiện mỉa mai/châm biếm tiếng Việt.
  • Tích hợp mạng nơ-ron đồ thị (Graph Neural Networks - GNN) để mô hình hóa mối quan hệ giữa người dùng, bài đăng và chuỗi phản hồi bình luận.
  • Nghiên cứu nén mô hình (Knowledge Distillation, Quantization INT8) từ PhoBERT sang các kiến trúc nhỏ gọn như MobileBERT hoặc TinyBERT nhằm triển khai trực tiếp trên các thiết bị biên (Edge Devices) hoặc server cấu hình thấp.
  • Nghiên cứu tích hợp các mô hình ngôn ngữ lớn thế hệ mới (LLMs) thông qua kỹ thuật Prompt Engineering và Low-Rank Adaptation (LoRA) để tự động giải thích lý do gán nhãn vi phạm.

Đối tượng hưởng lợi

+---------------------------------------------------------------------------------------+
|                                    ĐỐI TƯỢNG HƯỞNG LỢI                                 |
+---------------------------------------------------------------------------------------+
|                                                                                       |
|   [ SINH VIÊN / HỌC VIÊN ]               [ KỸ SƯ / DEVELOPERS ]                       |
|   - Mã nguồn mẫu PyTorch chuẩn           - Pipeline xử lý chuỗi hoàn chỉnh            |
|   - Quy trình tiền xử lý tiếng Việt      - Kiến trúc tích hợp PhoBERT-CNN tối ưu      |
|   - Tài liệu học tập NLP ứng dụng        - Microservice API sẵn sàng triển khai       |
|                                                                                       |
|   [ DOANH NGHIỆP / TÒA SOẠN ]            [ NHÀ NGHIÊN CỨU NLP ]                       |
|   - Tự động hóa 80% khâu kiểm duyệt      - Bộ benchmark chi tiết trên ViHSD/VLSP      |
|   - Giảm thiểu rủi ro pháp lý            - Phương pháp luận kết hợp Transformer-CNN   |
|   - Bảo vệ sức khỏe kiểm duyệt viên      - Tư liệu phát triển ngôn ngữ tiếng Việt     |
|                                                                                       |
+---------------------------------------------------------------------------------------+
  • Sinh viên & Người học ngành Dữ liệu/AI: Tiếp cận một đồ án mẫu mực từ khâu xử lý dữ liệu thô, giải quyết mất cân bằng nhãn đến xây dựng mô hình kết hợp hiện đại bằng PyTorch; hiểu rõ cách thức fine-tune mô hình ngôn ngữ tiếng Việt.
  • Kỹ sư Trí tuệ Nhân tạo & Lập trình viên: Sở hữu thiết kế kiến trúc chi tiết kết hợp giữa HuggingFace Transformer và Convolutional Layers, cùng bộ API microservice đóng gói hoàn chỉnh có thể tái sử dụng ngay trong các dự án NLP thực tế.
  • Cơ quan Báo chí & Doanh nghiệp số: Sở hữu công cụ kiểm duyệt thông minh, giúp giảm thiểu chi phí vận hành nhân sự, xây dựng môi trường tương tác an toàn cho độc giả và bảo vệ danh tiếng thương hiệu số.
  • Cộng đồng nghiên cứu Xử lý Ngôn ngữ Tự nhiên: Đóng góp thêm các phân tích thực nghiệm sâu sắc về hiệu quả của các mô hình đơn ngữ (PhoBERT) so với đa ngôn ngữ (XLM-R) trong bài toán phân loại văn bản tiếng Việt ngắn.

Câu hỏi thường gặp

1. Yêu cầu phần cứng tối thiểu để triển khai và huấn luyện mô hình là gì?

  • Huấn luyện (Training): Khuyến nghị GPU NVIDIA có tối thiểu 8GB VRAM (như RTX 2060, RTX 3060 hoặc Google Colab Tesla T4/P100), RAM hệ thống 16GB.
  • Suy diễn thực tế (Inference/Serving): Có thể chạy mượt mà trên CPU thông thường (Intel Core i5 thế hệ 8 trở lên hoặc 2 vCPU trên cloud) với RAM 4GB khi tối ưu hóa đồ thị mô hình qua định dạng ONNX Runtime, đạt độ trễ trung bình khoảng 25-45ms/request.

2. Mô hình xử lý các biến thể teencode mới xuất hiện liên tục như thế nào?

Module tiền xử lý được thiết kế theo dạng module hóa động (pluggable). Bộ từ điển teencode_dict được lưu trữ dưới dạng JSON/Key-Value database độc lập, cho phép người quản trị cập nhật từ vựng mới theo thời gian thực mà không cần phải huấn luyện lại toàn bộ mạng nơ-ron.

3. Tại sao lại chọn mạng kết hợp PhoBERT-CNN thay vì chỉ sử dụng PhoBERT nguyên bản?

PhoBERT nguyên bản biểu diễn xuất sắc mối quan hệ ngữ nghĩa toàn cục của câu thông qua cơ chế Self-Attention. Tuy nhiên, các phát ngôn xúc phạm trên mạng xã hội thường bị chi phối bởi các cụm từ vựng/từ lóng cụ thể (n-grams). Mạng tích chập Text-CNN với các kernel đa kích thước ($k=2,3,4,5$) đóng vai trò như các bộ dò tìm từ khóa cực mạnh, cộng hưởng với vector ngữ cảnh của PhoBERT giúp tăng độ chính xác phân loại thêm hơn 2.3% F1-score so với PhoBERT đơn lẻ.

4. Hệ thống có thể tích hợp vào các nền tảng mạng xã hội khác như TikTok hay Facebook không?

Hoàn toàn khả thi. Hệ thống cung cấp chuẩn giao tiếp RESTful API tiêu chuẩn. Bất kỳ nền tảng nào có cơ chế Webhook hoặc API thu thập dữ liệu (Graph API, Streaming API) đều có thể gửi chuỗi văn bản về endpoint /api/v1/predict và nhận kết quả phân lớp nhãn kèm điểm số tin cậy chỉ trong vài mili-giây.

5. Chi phí bảo trì và kế hoạch tái huấn luyện (Retraining) mô hình định kỳ ra sao?

Khuyến nghị thiết lập chu kỳ tái huấn luyện từ 3-6 tháng/lần với các dữ liệu bình luận mới được gắn nhãn bổ sung (Active Learning). Quá trình fine-tune chỉ mất khoảng 2-3 giờ trên một GPU đơn lẻ nhờ tận dụng lại trọng số pre-trained có sẵn, giúp tối thiểu hóa chi phí hạ tầng máy chủ điện toán đám mây.


Kết luận

Khóa luận tốt nghiệp "Nhận diện nội dung xúc phạm trên dữ liệu mạng xã hội Việt Nam sử dụng mô hình PhoBERT-CNN" đã giải quyết thành công một bài toán cấp thiết trong kỷ nguyên số. Thông qua quy trình tiền xử lý 2 giai đoạn chuyên sâu, kỹ thuật cân bằng dữ liệu EDA và kiến trúc học kết hợp đột phá giữa PhoBERT cùng Text-CNN, nghiên cứu đã thiết lập một chuẩn mực hiệu năng ấn tượng với Accuracy đạt 87.76%Macro F1-score đạt 71.42%, vượt trội hơn tất cả các mô hình cơ sở truyền thống.

Không dừng lại ở đóng góp lý thuyết hàn lâm, công trình đã chứng minh giá trị thực tiễn vững chắc thông qua hệ thống API hiệu năng cao, module xử lý luồng thời gian thực từ YouTube và ứng dụng kiểm duyệt báo điện tử hoàn chỉnh. Đây là bước tiến quan trọng đóng góp vào công cuộc làm sạch không gian mạng, bảo vệ sức khỏe tinh thần cộng đồng người dùng và thúc đẩy sự phát triển bền vững của hệ sinh thái số tại Việt Nam.