Bối cảnh và vấn đề nghiên cứu

Trong kỷ nguyên chuyển đổi số thuộc cuộc Cách mạng Công nghiệp lần thứ tư, khả năng tiếp cận và tìm kiếm thông tin trên không gian mạng qua các công cụ tìm kiếm diễn ra nhanh chóng. Tuy nhiên, sự gia tăng với khối lượng thông tin khổng lồ từ các kênh truyền thông dẫn đến thực trạng lan truyền thông tin sai lệch, chưa qua kiểm chứng hoặc giả mạo, gây ra những tác động tiêu cực về kinh tế và xã hội. Tại Việt Nam, với tỷ lệ người dùng Internet chiếm hơn 3/4 tổng dân số, nguy cơ chịu ảnh hưởng từ các nguồn tin không chính xác là rất lớn.

Mặc dù các cơ quan chức năng và tổ chức uy tín đã đẩy mạnh các biện pháp tuyên truyền, công tác kiểm duyệt thông tin hiện nay vẫn đối mặt với hai rào cản lớn:

  1. Quy trình kiểm tra tính xác thực phần lớn được thực hiện thủ công, phụ thuộc vào nguồn nhân lực chuyên gia có hạn, dẫn đến việc không thể đáp ứng kịp thời trước tốc độ xuất hiện của tin tức mới.
  2. Các công cụ và hệ thống tự động hỗ trợ kiểm tra tính đúng đắn của thông tin dành riêng cho văn bản tiếng Việt còn rất khan hiếm.

Nhằm giải quyết các hạn chế này, khóa luận tốt nghiệp kỹ sư ngành An toàn thông tin của nhóm tác giả Nguyễn Hoàng Long và Trịnh Huỳnh Trọng Nhân (Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. Hồ Chí Minh) đã đề xuất giải pháp xây dựng hệ thống tự động kiểm tra tính đúng đắn của thông tin dựa trên khung làm việc hỏi và trả lời (Question Answering - QA).

Mục tiêu cụ thể của đề tài được xác định gồm:

  1. Đề xuất và xây dựng một hệ thống xác thực thông tin tự động cho ngôn ngữ tiếng Việt.
  2. Triển khai hệ thống xác thực thông tin đến người dùng dưới dạng dịch vụ thông qua giao thức API và giao diện người dùng trên nền tảng web.

Đối tượng nghiên cứu của khóa luận bao gồm:

  • Các phương pháp xử lý dữ liệu văn bản tiếng Việt.
  • Các phương pháp truy hồi thông tin (Information Retrieval - IR).
  • Các mô hình học máy cho bài toán hỏi đáp (Question Answering) và bài toán suy luận ngôn ngữ tự nhiên (Natural Language Inference - NLI).
  • Các tập dữ liệu phục vụ bài toán xác thực thông tin và các bài toán con liên quan.
  • Các công cụ, thư viện có khả năng mở rộng phục vụ lưu trữ, quản lý và tìm kiếm trên tập dữ liệu lớn.
  • Các công cụ và khung phát triển ứng dụng web để triển khai hệ thống tới người dùng cuối.

Phạm vi nghiên cứu tập trung vào việc nghiên cứu các giải pháp cho các bài toán con (truy hồi thông tin, hỏi đáp, suy luận ngôn ngữ) trong xử lý ngôn ngữ tự nhiên (NLP), tích hợp các giải pháp này để xây dựng hệ thống tự động cho tiếng Việt, tiến hành thực nghiệm đo lường độ chính xác và mức độ tiêu thụ tài nguyên, đồng thời xây dựng hoàn chỉnh ứng dụng web gồm backend cung cấp API và giao diện frontend.


Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng trên nền tảng kết hợp giữa các kỹ thuật truy hồi thông tin và các mô hình ngôn ngữ tiên tiến trong xử lý ngôn ngữ tự nhiên:

1. Truy hồi thông tin (Information Retrieval - IR)

Hệ thống sử dụng kết hợp hai phương pháp truy hồi nhằm đảm bảo độ chính xác cả về mặt từ vựng và ngữ nghĩa:

  • Tìm kiếm toàn văn (Full-text search): Tìm kiếm dựa trên sự xuất hiện của từ khóa thông qua các kỹ thuật như biểu thức chính quy (Regex), thuật toán thống kê TF-IDF (Term Frequency - Inverse Document Frequency) và Okapi BM25. Thuật toán Okapi BM25 được sử dụng chính để tính điểm tương đồng giữa câu truy vấn và tài liệu dựa trên tần suất từ khóa kết hợp với độ dài tài liệu.
  • Tìm kiếm ngữ nghĩa (Semantic search): Chuyển đổi văn bản thành các vector nhúng (embedding vectors) mang đặc trưng ngữ nghĩa, sau đó tính toán khoảng cách vector (như khoảng cách Euclid L2 hoặc độ tương đồng Cosine) để truy xuất các đoạn văn bản có sự tương đồng về mặt ý nghĩa nội dung.

2. Các công cụ và thư viện truy hồi

  • ElasticSearch: Hệ thống tìm kiếm phân tán dựa trên Apache Lucene, sử dụng cấu trúc chỉ mục đảo (inverted index). Dữ liệu văn bản tiếng Việt khi đưa vào ElasticSearch trải qua quy trình phân tích gồm 3 bước: Character filters (lọc bỏ thẻ HTML/ký tự thừa), Tokenizers (tách từ tiếng Việt thông qua plugin chuyên dụng elasticsearch-analysis-vietnamese) và Token filters (loại bỏ từ dừng - stop words).
  • FAISS (Facebook AI Research): Thư viện hỗ trợ lưu trữ chỉ mục vector và tìm kiếm láng giềng gần nhất với không gian vector quy mô lớn, tối ưu hóa bộ nhớ và hỗ trợ tính toán khoảng cách L2.

3. Khung hệ thống Hỏi đáp (Question Answering - QA) và Suy luận ngôn ngữ (NLI)

  • Hệ thống Hỏi đáp (QA): Gồm 3 mô-đun chính theo chuẩn học thuật: Mô-đun xử lý câu hỏi (Question Processing: phân tích, phân loại dạng câu hỏi, tái cấu trúc câu hỏi); Mô-đun xử lý tài liệu (Document Processing: truy xuất tài liệu, lọc đoạn văn, sắp xếp đoạn văn); và Mô-đun xử lý câu trả lời (Answer Processing: nhận diện, trích xuất câu trả lời, xác thực dựa trên điểm tin cậy Confidence score).
  • Suy luận ngôn ngữ tự nhiên (NLI): Đóng vai trò cốt lõi trong việc xác thực tính đúng đắn. Bài toán NLI xác định mối quan hệ giữa cặp câu gồm Tiền đề (Premise) và Giả thuyết (Hypothesis) theo ba nhãn: Tương đồng (Entailment), Trung tính (Neutral), Mâu thuẫn (Contradiction). Khi áp dụng vào bài toán xác thực thông tin, câu nhận định (Claim) từ người dùng được đối chiếu với bằng chứng (Evidence) thu thập được để gán nhãn tương ứng: Ủng hộ (SUPPORT), Trung tính (NEUTRAL), hoặc Bác bỏ (REFUTE).

4. Mô hình ngôn ngữ tiền huấn luyện

Khóa luận phân tích cấu trúc của mô hình Transformer và BERT (với hai phiên bản $BERT_{BASE}$ 12 tầng Encoder và $BERT_{LARGE}$ 24 tầng Encoder; cơ chế chuyển đổi văn bản qua ba lớp nhúng Token, Segment, Position Embeddings). Tác giả thực hiện so sánh các biến thể của BERT:

Tiêu chí BERT RoBERTa DistilBERT
Số tham số (Triệu) Base: 110 / Large: 340 Base: 110 / Large: 340 Base: 66
Thời gian huấn luyện Base: 8 x V100 x 12 ngày Base: 1024 x V100 x 1 ngày Base: 8 x V100 x 3.5 ngày
Hiệu suất Vượt trội SOTA (10/2018) Cải thiện 2 - 20% so với BERT Giảm khoảng 3% so với BERT
Dung lượng dữ liệu 16 GB (BooksCorpus + Wiki) 160 GB 16 GB

Dựa trên yêu cầu xử lý tiếng Việt, nhóm nghiên cứu lựa chọn và tích hợp:

  • Sentence-BERT (SBERT): Bổ sung lớp gom cụm trung bình (mean pooling) tại đầu ra của khối Encoder nhằm tạo vector biểu diễn câu phục vụ tìm kiếm ngữ nghĩa.
  • XLM-RoBERTa: Mô hình đa ngôn ngữ được huấn luyện trên tập ngữ liệu lớn, tối ưu hóa để tinh chỉnh cho các tác vụ hỏi đáp trích xuất và suy luận quan hệ ngữ nghĩa tiếng Việt.

5. Nguồn dữ liệu thực nghiệm

Tác giả sử dụng các tập dữ liệu hỏi đáp đa ngôn ngữ gồm MLQA (bộ dữ liệu hỏi đáp đa ngữ có tiếng Việt) và XQuAD làm cơ sở chuẩn hóa dữ liệu đầu vào và đánh giá các mô hình trích xuất.


Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo cấu trúc mô-đun hóa, phân tách luồng dữ liệu thành hai giai đoạn độc lập: Tiền xử lý dữ liệu và Xử lý yêu cầu người dùng.

                    [ Giao diện Web (ReactJS) ]
                                |
                         (REST API Call)
                                v
                   [ Thành phần Core (Django) ]
                                |
        +-----------------------+-----------------------+
        |                                               |
[ Giai đoạn Truy hồi ]                          [ Giai đoạn Xử lý ]
  - ElasticSearch (BM25 -> Top-K docs)            - Dịch vụ QA (Reader trích xuất span)
  - Sentence-BERT Encoder -> Vector               - Dịch vụ Xác thực (Inferrer phân loại
  - FAISS + MySQL (L2 Search -> Top-L sentences)    SUPPORT / REFUTE / NEUTRAL)

1. Quy trình tiền xử lý và lưu trữ dữ liệu

  • ElasticSearch: Tiếp nhận tài liệu văn bản thô, áp dụng bộ tách từ elasticsearch-analysis-vietnamese và bộ lọc từ dừng để lập chỉ mục đảo.
  • Phân đoạn câu (Sentence Tokenization): Văn bản thô được chia tách thành từng câu độc lập nhằm tối ưu hóa ngữ nghĩa cho vector nhúng, tránh việc biểu diễn một văn bản dài làm suy giảm độ chính xác của ngữ cảnh.
  • Mã hóa và lưu trữ vector: Các câu sau khi tách được đưa qua mô hình Sentence-BERT Encoder để chuyển thành vector nhúng và nạp vào chỉ mục FAISS.
  • Cơ sở dữ liệu quan hệ (MySQL): Quản lý cấu trúc văn bản thông qua hai bảng chính: Bảng Document (lưu trữ thông tin văn bản gốc) và bảng Sentence (lưu trữ nội dung câu, vị trí và khóa ngoại liên kết với văn bản). Tác giả sử dụng thư viện SQLAlchemy trên môi trường Python để thực hiện kết nối và ghi dữ liệu.

2. Quy trình truy hồi và xử lý thông tin thời gian thực

  • Truy hồi lai hai tầng (Hybrid Retrieval):
    1. Tầng 1 (Toàn văn): Khi người dùng nhập truy vấn, thành phần Retriever gửi truy vấn tới ElasticSearch để lọc ra $K$ văn bản liên quan nhất bằng thuật toán Okapi BM25.
    2. Tầng 2 (Ngữ nghĩa): Hệ thống truy vấn MySQL để lấy danh sách các câu thuộc $K$ văn bản này. Đồng thời, câu truy vấn được mã hóa thành vector qua Encoder. Khối FAISS tính khoảng cách tương đồng L2 giữa vector truy vấn và vector của các câu ứng viên để chọn ra $L$ câu (hoặc $L$ đoạn tài liệu) có điểm số cao nhất.
  • Xử lý thông tin chuyên biệt:
    • Tác vụ Hỏi đáp: Mô-đun Reader (sử dụng mô hình ngôn ngữ tinh chỉnh) tiếp nhận câu hỏi và ngữ cảnh từ $L$ câu được truy hồi để trích xuất vị trí bắt đầu và kết thúc của câu trả lời.
    • Tác vụ Xác thực thông tin: Mô-đun Inferrer nhận câu nhận định (Claim) và tập bằng chứng (Evidence) từ $L$ câu truy hồi, sau đó thực hiện phân loại quan hệ ngữ nghĩa để trả về kết luận: "Ủng hộ", "Bác bỏ" hoặc "Trung tính".

3. Công nghệ và môi trường triển khai

  • Hạ tầng dịch vụ: ElasticSearch được đóng gói và vận hành dưới dạng Docker container.
  • Backend: Xây dựng trên nền tảng Django framework, cung cấp các điểm cuối REST API phục vụ tác vụ trả lời câu hỏi và xác thực thông tin.
  • Frontend: Xây dựng bằng thư viện ReactJS trên môi trường NodeJS, cung cấp giao diện tương tác trực quan cho phép nhập truy vấn/nhận định và hiển thị kết quả phân loại kèm bằng chứng liên quan.

Nội dung chính theo từng chương

Chương 1. Tổng quan

  • Giới thiệu bối cảnh bùng nổ thông tin số và tác động tiêu cực của tin giả, tin sai lệch đối với kinh tế - xã hội.
  • Nêu rõ tính cấp thiết của việc xây dựng công cụ xác thực tự động cho tiếng Việt do các giải pháp hiện hành chủ yếu dựa vào chuyên gia thủ công.
  • Trình bày mục tiêu nghiên cứu gồm hai điểm: xây dựng hệ thống tự động và triển khai ứng dụng web dịch vụ.
  • Xác định đối tượng và phạm vi nghiên cứu xoay quanh các phương pháp NLP, IR, mô hình máy học và công cụ triển khai.

Chương 2. Cơ sở lý thuyết

  • Phân tích nguyên lý truy hồi thông tin (IR), so sánh chỉ mục thuận (Forward Index) và chỉ mục đảo (Inverted Index), làm rõ cơ chế tính điểm của các thuật toán TF-IDF và Okapi BM25.
  • Trình bày kiến trúc và quy trình xử lý 3 giai đoạn (Character filters, Tokenizers, Token filters) của ElasticSearch, cơ chế tìm kiếm vector quy mô lớn của thư viện FAISS.
  • Trình bày khung lý thuyết của hệ thống hỏi đáp (QA) đa mô-đun và bài toán suy luận ngôn ngữ tự nhiên (NLI).
  • Phân tích kiến trúc mạng Transformer, mô hình BERT, quy trình tinh chỉnh lớp phân loại qua token <CLS> cho bài toán NLI và lớp Dense cho bài toán QA, cùng các biến thể mở rộng gồm RoBERTa, DistilBERT, Sentence-BERT và XLM-RoBERTa.

Chương 3. Nội dung và phương pháp

  • Đề xuất kiến trúc tổng quát của hệ thống xác thực thông tin tiếng Việt gồm khối Core và giao diện người dùng.
  • Chi tiết hóa quy trình tiền xử lý: tách văn bản thành câu (Sentence Tokenization), mã hóa câu bằng Sentence-BERT và lưu chỉ mục vào FAISS, đồng thời lưu trữ cấu trúc văn bản/câu vào CSDL MySQL.
  • Mô tả chi tiết phương pháp truy hồi hai giai đoạn: tìm kiếm toàn văn qua ElasticSearch để lấy top-K tài liệu, tiếp nối bởi tìm kiếm ngữ nghĩa qua FAISS trên tập câu ứng viên để chọn top-L dữ liệu phù hợp.
  • Trình bày cơ chế hoạt động của khối Reader (trích xuất câu trả lời) và khối Inferrer (suy luận nhãn xác thực thông tin).

Chương 4. Thực nghiệm và đánh giá

  • Thiết lập môi trường thực nghiệm, cấu hình các thành phần hệ thống: Docker ElasticSearch tích hợp bộ phân tích tiếng Việt, chỉ mục FAISS, bảng dữ liệu Document và Sentence trong MySQL thông qua SQLAlchemy.
  • Cấu hình và tích hợp các mô hình ngôn ngữ cho khối Encoder, Reader và Inferrer.
  • Xây dựng hệ thống API backend bằng Django và giao diện web người dùng bằng ReactJS/NodeJS.
  • Đánh giá hiệu năng hoạt động: Hệ thống đạt tốc độ xử lý trung bình xấp xỉ 1 giây cho một yêu cầu xác thực; mức tiêu thụ tài nguyên phần cứng duy trì ổn định khi thay đổi quy mô dữ liệu thử nghiệm.

Chương 5. Tổng kết và hướng phát triển

  • Đánh giá mức độ hoàn thành các mục tiêu nghiên cứu đã đặt ra từ đầu khóa luận.
  • Định hướng các nghiên cứu tiếp theo nhằm nâng cao hiệu năng và mở rộng phạm vi ứng dụng thực tế.

Kết quả và đóng góp

1. Kết quả chính

  • Xây dựng thành công hệ thống tích hợp hoàn chỉnh hai dịch vụ: trả lời câu hỏi tự động và kiểm tra tính đúng đắn của thông tin cho ngôn ngữ tiếng Việt.
  • Thời gian phản hồi của hệ thống đạt mức xấp xỉ 1 giây cho mỗi lượt xử lý yêu cầu xác thực thông tin.
  • Mức tiêu thụ tài nguyên của hệ thống duy trì ở mức ổn định, không bị biến động lớn giữa các tập dữ liệu có kích thước khác nhau, chứng minh tính khả thi về khả năng mở rộng quy mô.
  • Hoàn thiện giao diện người dùng trực quan trên nền web và hệ thống API chuẩn hóa, cho phép người dùng nhập câu nhận định và nhận về kết quả đánh giá (như nhãn "Ủng hộ") kèm theo các đoạn bằng chứng văn bản trích xuất từ cơ sở tri thức.

2. Đóng góp của đề tài

  • Đề xuất mô hình kết hợp hiệu quả giữa kỹ thuật truy hồi toàn văn (Okapi BM25 trong ElasticSearch) và truy hồi ngữ nghĩa (FAISS kết hợp Sentence-BERT), giúp cân bằng giữa độ bao phủ từ vựng và tính chính xác về mặt ý nghĩa cho văn bản tiếng Việt.
  • Ứng dụng thành công các mô hình ngôn ngữ tiên tiến (XLM-RoBERTa, Sentence-BERT) vào chuỗi xử lý khép kín cho hai bài toán QA và NLI trên tiếng Việt.
  • Thiết kế kiến trúc dạng mô-đun linh hoạt, tạo điều kiện thuận lợi cho việc cập nhật, thay thế các mô hình học sâu mới mà không làm thay đổi cấu trúc tổng thể của hệ thống.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận chỉ ra một số điểm cần tiếp tục nghiên cứu và hoàn thiện:

  • Hạn chế: Hệ thống phụ thuộc vào chất lượng của kho dữ liệu ban đầu được lập chỉ mục trong cơ sở dữ liệu; việc đánh giá mô hình chủ yếu dựa trên các bộ ngữ liệu tiêu chuẩn sẵn có (như MLQA, XQuAD) mà chưa bao phủ toàn diện các biến thể ngôn ngữ phức tạp trong thực tế đời sống mạng xã hội.
  • Hướng nghiên cứu tiếp:
    • Nâng cấp và thử nghiệm các mô hình ngôn ngữ có quy mô tham số lớn hơn cho khối Reader và Inferrer nhằm tăng độ chính xác trích xuất và suy luận.
    • Tối ưu hóa hiệu năng của các thuật toán gom cụm và lập chỉ mục trong FAISS khi mở rộng kho dữ liệu lên quy mô cực lớn.
    • Tự động hóa quá trình thu thập và cập nhật nguồn dữ liệu chứng cứ từ Internet theo thời gian thực.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho:

  • Sinh viên và học viên ngành An toàn thông tin, Khoa học máy tính, Công nghệ thông tin: Cung cấp tài liệu thực hành về việc ứng dụng xử lý ngôn ngữ tự nhiên (NLP) vào bài toán an toàn thông tin và chống tin giả.
  • Các nhà phát triển hệ thống tìm kiếm và hỏi đáp: Tham khảo chi tiết kiến trúc kết hợp ElasticSearch và FAISS (Hybrid Search) để xử lý dữ liệu văn bản tiếng Việt.
  • Kỹ sư phần mềm: Tham khảo cấu trúc tích hợp hệ thống end-to-end từ mô hình học máy (Python, PyTorch/Transformers) qua API backend (Django) đến ứng dụng frontend (ReactJS).

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

1. Tại sao hệ thống phải kết hợp cả ElasticSearch và FAISS trong giai đoạn truy hồi thông tin?

ElasticSearch thực hiện tìm kiếm toàn văn dựa trên thuật toán Okapi BM25 để lọc nhanh các văn bản có chứa từ khóa trùng khớp từ câu truy vấn (mặt từ vựng). Sau đó, FAISS thực hiện tìm kiếm ngữ nghĩa trên các câu được trích xuất từ các văn bản này bằng cách so khớp vector nhúng từ Sentence-BERT. Sự kết hợp này giải quyết được hạn chế không hiểu ngữ nghĩa của tìm kiếm toàn văn, đồng thời giảm tải không gian tìm kiếm vector cho FAISS.

2. Tác vụ xác thực thông tin được mô hình hóa dựa trên bài toán NLP nào?

Tác vụ xác thực thông tin được mô hình hóa dựa trên bài toán Suy luận ngôn ngữ tự nhiên (Natural Language Inference - NLI). Trong đó, câu nhận định của người dùng đóng vai trò là Giả thuyết (Hypothesis), còn văn bản truy hồi được xem là Bằng chứng (Evidence). Mô hình Inferrer sẽ phân loại mối quan hệ này thành các nhãn tương ứng: Ủng hộ (SUPPORT), Bác bỏ (REFUTE) hoặc Trung tính (NEUTRAL).

3. Plugin nào được sử dụng để hỗ trợ ElasticSearch tách từ tiếng Việt?

Khóa luận sử dụng plugin elasticsearch-analysis-vietnamese tích hợp vào ElasticSearch trong môi trường Docker nhằm hỗ trợ phân tích và tách các từ phức đặc trưng của tiếng Việt trong quá trình lập chỉ mục đảo.

4. Dữ liệu văn bản được tổ chức như thế nào trong cơ sở dữ liệu MySQL?

Dữ liệu được quản lý qua hai bảng quan hệ thông qua SQLAlchemy: Bảng Document lưu trữ định danh và nội dung toàn văn của tài liệu; Bảng Sentence lưu trữ từng câu riêng lẻ đã được phân đoạn từ văn bản gốc, kèm theo khóa ngoại liên kết tới bảng Document để phục vụ việc truy xuất câu tương ứng sau bước lọc toàn văn.

5. Thời gian phản hồi và mức tiêu thụ tài nguyên của hệ thống được ghi nhận ra sao?

Theo số liệu thực nghiệm trong báo cáo, hệ thống mất khoảng 1 giây để thực hiện quy trình xác thực một đoạn thông tin đầu vào. Đồng thời, mức tiêu thụ tài nguyên phần cứng duy trì ổn định giữa các tập dữ liệu thử nghiệm có kích thước khác nhau.


Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Hoàng Long và Trịnh Huỳnh Trọng Nhân đã xây dựng thành công giải pháp tự động hóa quy trình kiểm tra tính đúng đắn của thông tin và trả lời câu hỏi cho ngôn ngữ tiếng Việt. Bằng cách kết hợp linh hoạt giữa cơ chế truy hồi hai tầng (ElasticSearch, FAISS) và các mô hình ngôn ngữ biến thể từ BERT (XLM-RoBERTa, Sentence-BERT), hệ thống đạt thời gian phản hồi xấp xỉ 1 giây với mức tiêu thụ tài nguyên ổn định. Công trình đã được triển khai hoàn chỉnh thành ứng dụng web với giao diện tương tác thực tế, đóng góp một giải pháp kỹ thuật khả thi cho công tác phòng chống tin giả trong môi trường số tại Việt Nam.