Bối cảnh và vấn đề nghiên cứu
Hệ thống Hỏi - Đáp tự động (Question Answering System) đóng vai trò quan trọng trong việc hỗ trợ người dùng tiếp cận nguồn tri thức bằng ngôn ngữ tự nhiên. Kể từ khi đại dịch COVID-19 bùng phát, số lượng câu hỏi thuộc lĩnh vực y tế và chăm sóc sức khỏe gia tăng nhanh chóng trên các diễn đàn trực tuyến, dẫn đến hiện tượng quá tải và trùng lặp thông tin trong cơ sở dữ liệu. Việc khai thác nguồn tri thức sẵn có từ các chuyên gia y tế nhằm xây dựng hệ thống tự động truy xuất câu trả lời là yêu cầu cấp thiết, giúp giảm thiểu thời gian chờ đợi của người bệnh và giảm áp lực tư vấn cho đội ngũ y bác sĩ. Tuy nhiên, trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) tiếng Việt, các tài nguyên và bộ dữ liệu dành cho bài toán Hỏi - Đáp miền đóng (closed domain), đặc biệt là chuyên ngành sức khỏe, vẫn còn rất khan hiếm so với các ngôn ngữ phổ biến như tiếng Anh hay tiếng Trung.
Bài toán Hỏi - Đáp tự động trong đề tài được phát biểu với đầu vào là câu hỏi bằng tiếng Việt về chủ đề sức khỏe của người dùng, và đầu ra là câu trả lời phù hợp nhất được truy xuất tự động từ cơ sở dữ liệu của hệ thống. Nhóm tác giả xác định năm mục tiêu nghiên cứu cụ thể:
- Xây dựng bộ dữ liệu Hỏi - Đáp tiếng Việt chuyên biệt cho miền y tế và sức khỏe đạt yêu cầu về quy mô và chất lượng.
- Thực hiện tiền xử lý, chuẩn hóa dữ liệu và ứng dụng các phương pháp thống kê để phân tích chuyên sâu đặc điểm ngữ liệu.
- Nghiên cứu, thử nghiệm và so sánh đa dạng các phương pháp từ mô hình truyền thống đến các mô hình học sâu hiện đại nhằm tìm ra giải pháp tối ưu.
- Phân tích lỗi và đánh giá toàn diện các kết quả thực nghiệm để đúc kết kinh nghiệm cho các nghiên cứu tiếp nối trong cộng đồng NLP tiếng Việt.
- Xây dựng một ứng dụng thử nghiệm minh họa để trực quan hóa khả năng truy xuất của mô hình đề xuất.
Đối tượng nghiên cứu của khóa luận là bài toán Hỏi - Đáp tự động trên văn bản tiếng Việt thuộc miền dữ liệu sức khỏe. Phạm vi nghiên cứu giới hạn ở các cặp câu hỏi của người dùng và câu trả lời tương ứng của bác sĩ chuyên khoa, được thu thập từ các chuyên mục tư vấn y tế trên các trang thông tin điện tử uy tín tại Việt Nam trong giai đoạn diễn ra đại dịch COVID-19.
Cơ sở lý thuyết và phương pháp
Khóa luận tiếp cận bài toán truy xuất thông tin ngữ nghĩa theo định hướng miền đóng. Về mặt lý thuyết, nghiên cứu khảo sát hai nhóm phương pháp biểu diễn văn bản:
- Mô hình không gian vector thưa (sparse vector): Dựa trên tần suất từ vựng, bao gồm kỹ thuật TF-IDF kết hợp độ tương tự cosine (TFIDF-Cos), thuật toán Okapi BM25 tối ưu hóa tần suất từ (TF) và nghịch đảo tần suất tài liệu (IDF) có xét đến chiều dài tương đối của văn bản, cùng mô hình ngôn ngữ unigram dựa trên xác suất (Language Model - LM) tiếp cận theo hướng hợp lý hóa câu hỏi (query likelihood model) kết hợp xác suất nền của toàn bộ tập ngữ liệu.
- Mô hình biểu diễn vector dày đặc (dense vector): Dựa trên kiến trúc Transformer và Sentence-BERT (SBERT) sử dụng mạng Siamese/Triplet để ánh xạ câu thành các vector nhúng ngữ nghĩa (sentence embedding). Các mô hình tiền huấn luyện được khảo sát gồm PhoBERT (mô hình đơn ngữ tiếng Việt dựa trên RoBERTa), XLM-RoBERTa (mô hình đa ngữ huấn luyện trên 2,5TB dữ liệu của 100 ngôn ngữ) và mBERT (huấn luyện trên 104 ngôn ngữ từ Wikipedia với hai tác vụ MLM và NSP).
Phương pháp nghiên cứu thực nghiệm bao gồm:
- Thu thập và tinh lọc dữ liệu: Sử dụng kỹ thuật trích xuất tự động bằng thư viện Beautiful Soup (Python) từ các trang web Vinmec và VnExpress; loại bỏ thủ công các thành phần giao tiếp xã tiếp (lời chào mở đầu, lời chào kết thúc, lời mời thăm khám) để chuẩn hóa thành các câu trả lời cô đọng chứa đựng tri thức y khoa.
- Phân tích ngữ liệu: Sử dụng công cụ tách từ RDRSegmenter của VnCoreNLP để xử lý đặc thù từ ghép và từ đa âm tiết trong tiếng Việt, kết hợp thống kê tần suất từ vựng bằng WordCloud.
- Phương pháp huấn luyện và hàm mất mát: Ứng dụng hàm mất mát xếp hạng đa mẫu tiêu cực (Multiple Negatives Ranking - MNR) có bản chất là Cross Entropy kết hợp lớp lấy trung bình (mean pooling) để tối ưu hóa khoảng cách cosine giữa câu hỏi và câu trả lời tương ứng (positive document) so với các câu trả lời khác trong cùng một batch (negative documents).
- Độ đo đánh giá: Hiệu năng hệ thống được đo lường thông qua các chỉ số chuẩn trong truy xuất thông tin gồm độ chính xác tại vị trí K (Precision at K - P@K với K = 1, 3, 5, 10) và độ chính xác trung bình trung bình (Mean Average Precision - mAP).
Nguồn dữ liệu thực nghiệm là bộ ngữ liệu ViHeathQA do nhóm tác giả tự xây dựng, bao gồm 10.015 cặp câu hỏi - trả lời có gắn kèm siêu dữ liệu định danh và đường dẫn gốc.
Thiết kế và triển khai hệ thống SPBERTQA
Hệ thống đề xuất mang tên SPBERTQA được thiết kế với kiến trúc hai giai đoạn nhằm giải quyết trở ngại về độ dài văn bản y khoa và giới hạn xử lý 256 từ của mô hình PhoBERT:
- Giai đoạn 1 - Truy xuất câu bằng BM25: Dữ liệu huấn luyện sau bước tiền xử lý được đưa qua mô-đun Okapi BM25 để tính toán mức độ liên quan giữa câu hỏi và từng câu đơn trong đoạn trả lời. Mô-đun này lọc và chỉ giữ lại $K$ câu có điểm số cao nhất, tạo thành văn bản tích cực ngắn gọn đại diện cho câu trả lời. Cơ chế này giúp thu gọn 65,3% số lượng câu trả lời dài trên 300 từ về dưới ngưỡng giới hạn 256 từ, loại bỏ nhiễu và giảm chi phí tính toán.
- Giai đoạn 2 - Tinh chỉnh PhoBERT bằng hàm mất mát MNR: Cặp câu hỏi và văn bản tích cực (đã rút gọn còn $K$ câu) cùng với $batch_size - 1$ văn bản tiêu cực được đưa vào mô hình tiền huấn luyện PhoBERT. Đầu ra là ma trận token embedding kích thước $256 \times 768$ được đưa qua lớp mean pooling để chuyển hóa thành sentence embedding kích thước $1 \times 768$. Hàm mất mát MNR tối ưu hóa mô hình sao cho độ tương tự cosine giữa câu hỏi và văn bản tích cực đạt giá trị lớn nhất trong batch.
Khi vận hành thực tế, mô hình BM25-SPhoBERT mã hóa câu hỏi mới thành sentence embedding, tính độ tương tự cosine với toàn bộ các câu trả lời đã được mã hóa sẵn trong kho dữ liệu, sau đó xếp hạng để trích xuất ra câu trả lời có độ tương đồng cao nhất.
Bên cạnh mô hình lõi, nhóm tác giả triển khai một ứng dụng giao diện trực quan bằng framework Streamlit (ngôn ngữ Python). Ứng dụng tích hợp cơ chế bộ nhớ đệm (caching) để tối ưu hóa tốc độ tải mô hình và dữ liệu, cung cấp thanh nhập câu hỏi và hiển thị danh sách các câu trả lời y tế liên quan nhất kèm chỉ số tương đồng cho người sử dụng.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 giới thiệu khái niệm hệ thống Hỏi - Đáp, phân biệt giữa hệ thống miền mở (open domain) và miền đóng (closed domain). Tác giả làm rõ các thách thức khi phát triển hệ thống Hỏi - Đáp y tế tiếng Việt: sự khan hiếm nguồn dữ liệu chuyên gia được kiểm duyệt, độ phức tạp của các mô hình học máy hiện đại, và các đặc trưng ngôn ngữ học tiếng Việt như từ ghép và từ đa nghĩa. Chương này cũng phân tích tiềm năng ứng dụng thực tế của đề tài trong việc hỗ trợ sàng lọc bệnh nhân và giảm tải áp lực cho hệ thống y tế công cộng.
Chương 2: Các công trình nghiên cứu liên quan
Chương 2 tổng hợp các hướng nghiên cứu truy xuất thông tin trên thế giới từ mô hình vector thưa (Salton, Manning) đến vector dày đặc (BERT, SBERT). Tác giả điểm qua các tập dữ liệu quốc tế như TriviaQA (95.956 cặp câu), SQuAD (107.785 cặp câu), CliCR (100.000 câu), MedQA (270.000 câu) và PubMedQA (273.000 câu). Tại Việt Nam, nghiên cứu nổi bật nhất là ViNewsQA (22.057 cặp câu hỏi - đáp dựa trên 4.416 bài báo VnExpress, mô hình tốt nhất là ALBERT đạt EM 65,26% và F1 84,89%) và nghiên cứu độ tương đồng câu hỏi của tác giả Hà cùng cộng sự sử dụng SBERT với hàm MNR. Từ việc phân tích các hạn chế của công trình trước, tác giả xác định hướng đi: xây dựng bộ dữ liệu sức khỏe thực tế và phát triển mô hình kết hợp (ensemble) giữa kỹ thuật truyền thống và học sâu.
Chương 3: Bộ dữ liệu
Chương 3 trình bày chi tiết quy trình xây dựng bộ dữ liệu ViHeathQA gồm 10.015 cặp câu hỏi - đáp thu thập từ Vinmec và VnExpress, được phân chia thành 3 tập: Huấn luyện (Train - 7.009 mẫu), Phát triển (Dev - 993 mẫu) và Kiểm tra (Test - 2.013 mẫu). Các thuộc tính lưu trữ gồm: ID, câu hỏi, câu trả lời và đường dẫn gốc. Tác giả chỉ ra ưu điểm của ViHeathQA là dữ liệu thực tế đòi hỏi suy luận ngữ nghĩa cao, khác biệt với dạng khớp từ vựng đơn thuần (word matching) của các bộ dữ liệu đọc hiểu máy (MRC). Các số liệu thống kê ngữ liệu chính được ghi nhận:
| Chỉ số thống kê đặc trưng |
Giá trị ghi nhận |
| Độ dài trung bình của câu hỏi |
103,87 từ |
| Độ dài trung bình của câu trả lời |
495,33 từ |
| Kích thước bộ từ vựng (sau tách từ) |
18.271 từ/cụm từ |
| Số lượng câu trung bình trong mỗi câu trả lời |
3,95 câu |
Phân tích phân bố độ dài cho thấy 52,24% câu hỏi tập trung trong khoảng 50–100 từ, phản ánh xu hướng mô tả chi tiết triệu chứng của người bệnh; trong khi 65,23% câu trả lời có độ dài từ 100 đến 500 từ do đặc thù giải thích cặn kẽ của bác sĩ. Về từ vựng, từ "bác sĩ" xuất hiện phổ biến nhất (7.856 lần), tập câu hỏi tập trung vào các từ "dị ứng" (866 lần), "tiêm", "vaccine", "covid19", "thuốc"; tập câu trả lời xuất hiện nhiều các từ "thuốc" (2.448 lần), "bác sĩ", "khám", "y tế", "bệnh viện".
Chương 4: Hệ thống SPBERTQA
Chương 4 mô tả cấu trúc chi tiết của hệ thống đề xuất SPBERTQA. Giai đoạn một sử dụng thuật toán BM25 để xếp hạng các câu trong câu trả lời theo câu hỏi, trích xuất $K$ câu quan trọng nhất nhằm vượt qua giới hạn đầu vào 256 từ của PhoBERT. Giai đoạn hai mô tả cấu hình PhoBERT kết hợp lớp pooling trung bình biến đổi ma trận $256 \times 768$ thành vector $1 \times 768$, áp dụng hàm mất mát MNR nhằm tối đa hóa độ tương tự cosine giữa câu hỏi và câu trả lời đích trong từng batch huấn luyện.
Chương 5: Các phương pháp tiếp cận khác
Chương 5 cung cấp nền tảng toán học của các phương pháp đối sánh: mô hình TFIDF-Cos; thuật toán Okapi BM25 với các hệ số chuẩn hóa $k_1 = 1,2$ và $b = 0,75$ cùng bảng công thức cải tiến TF và IDF; mô hình ngôn ngữ unigram theo xác suất dựa trên mô hình likelihood câu hỏi kết hợp xác suất nền qua tham số $\alpha_D$; mô hình lai đa ngôn ngữ BM25-SXLMR (sử dụng XLM-RoBERTa huấn luyện qua nhiệm vụ Masked Language Modeling); và BM25-SmBERT (sử dụng multilingual BERT huấn luyện qua MLM và Next Sentence Prediction). Tác giả giải thích hiện tượng khoảng trống từ vựng (lexical gap) là nguyên nhân cốt lõi khiến các phương pháp truyền thống giảm hiệu năng khi câu hỏi và câu trả lời không dùng chung từ khóa.
Chương 6: Cài đặt, kết quả và đánh giá
Chương 6 trình bày các bước tiền xử lý, cấu hình siêu tham số thử nghiệm và phân tích kết quả định lượng. Nhóm tác giả thực hiện ba phương pháp phân tích lỗi: kiểm tra trực tiếp các trường hợp sai lệch trên chỉ số P@1, xây dựng ma trận nhầm lẫn đối sánh giữa PhoBERT và TFIDF-Cos, và phân tích các mẫu dự đoán sai do hiện tượng diễn ngôn khác biệt giữa người bệnh và chuyên môn y khoa.
Chương 7: Kết luận và hướng phát triển
Chương 7 tổng kết các mục tiêu đã hoàn thành, nêu bật các hạn chế về tài nguyên tính toán cũng như độ dài văn bản, đồng thời đề ra định hướng nghiên cứu mở rộng trong tương lai.
Kết quả và đóng góp
Mô hình đề xuất BM25-SPhoBERT đạt hiệu năng vượt trội so với tất cả các phương pháp truyền thống và mô hình lai đa ngôn ngữ trên cả hai tập dữ liệu đánh giá:
| Tập dữ liệu |
mAP (%) |
P@1 (%) |
P@10 (%) |
| Tập phát triển (Dev) |
69,52 |
69,52 |
89,12 |
| Tập kiểm tra (Test) |
62,25 |
50,92 |
83,76 |
So sánh với các phương pháp tiếp cận khác được triển khai thử nghiệm (TFIDF-Cos, Okapi BM25, Language Model unigram, BM25-SXLMR, BM25-SmBERT), mô hình BM25-SPhoBERT giải quyết hiệu quả bài toán khoảng trống từ vựng (lexical gap) nhờ khả năng trích xuất ngữ nghĩa sâu của mô hình đơn ngữ tiếng Việt PhoBERT kết hợp khả năng định vị thông tin chuẩn xác của BM25.
Các đóng góp khoa học và ứng dụng chính của khóa luận gồm:
- Đóng góp về tài nguyên dữ liệu: Xây dựng và công bố bộ dữ liệu Hỏi - Đáp y tế tiếng Việt ViHeathQA gồm 10.015 cặp câu hỏi - đáp thực tế, được chuẩn hóa và phân chia bài bản, bổ sung nguồn tài nguyên đang thiếu hụt cho cộng đồng nghiên cứu NLP tiếng Việt.
- Đóng góp về mặt giải pháp kỹ thuật: Đề xuất kiến trúc kết hợp SPBERTQA giải quyết thành công bài toán giới hạn số lượng token đầu vào của các mô hình Transformer tiếng Việt khi xử lý văn bản y khoa có độ dài lớn.
- Đóng góp về mặt công bố khoa học: Toàn bộ kết quả nghiên cứu của khóa luận đã được biên soạn thành bài báo khoa học và được chấp nhận đăng tại Hội nghị quốc tế KSEM 2022 (The 15th International Conference on Knowledge Science, Engineering and Management - CORE Rank B).
- Đóng góp về sản phẩm ứng dụng: Xây dựng hoàn chỉnh chương trình giao diện trực quan dựa trên Streamlit, minh chứng tính khả thi khi tích hợp mô hình vào các hệ thống hỗ trợ y tế thực tế.
Hạn chế và hướng nghiên cứu tiếp
Về mặt hạn chế, văn bản khóa luận ghi nhận các điểm sau:
- Độ dài câu hỏi và câu trả lời tương đối lớn: Chiều dài trung bình văn bản cao (câu hỏi xấp xỉ 104 từ, câu trả lời xấp xỉ 495 từ) gây áp lực lớn lên tài nguyên tính toán và thời gian huấn luyện mô hình.
- Giới hạn số lượng từ đầu vào: Mô hình tiền huấn luyện PhoBERT bị giới hạn ở mức 256 từ/token, buộc hệ thống phải áp dụng bước trung gian lọc $K$ câu bằng BM25, điều này có khả năng làm mất mát một phần ngữ cảnh toàn vẹn của câu trả lời gốc.
- Phạm vi nguồn dữ liệu: Dữ liệu mới chỉ được thu thập từ hai nguồn trang tin điện tử (Vinmec và VnExpress), chưa bao phủ toàn diện mọi chuyên khoa sâu trong lĩnh vực y tế.
Về hướng nghiên cứu tiếp theo, các tác giả đề xuất:
- Mở rộng quy mô bộ dữ liệu ViHeathQA từ nhiều nguồn thông tin y khoa chính thống khác nhau nhằm tăng cường tính đa dạng bệnh lý.
- Nghiên cứu các phương pháp mã hóa và xử lý văn bản dài tiên tiến hơn để khắc phục triệt để hạn chế độ dài đầu vào của các mô hình Transformer.
- Tối ưu hóa mô hình nhằm giảm độ phức tạp tính toán và nâng cao khả năng tích hợp thực tế vào các hệ thống chatbot y tế, trợ lý ảo bệnh viện hoặc tổng đài tư vấn sức khỏe cộng đồng.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo chuyên môn phù hợp cho sinh viên, học viên cao học và các nhóm nghiên cứu thuộc ngành Công nghệ thông tin, Khoa học dữ liệu và Trí tuệ nhân tạo đang làm việc với bài toán Truy xuất thông tin (Information Retrieval) và Hỏi - Đáp tự động (Question Answering) trên ngôn ngữ tiếng Việt.
Những nội dung có giá trị tham khảo ứng dụng cao bao gồm:
- Quy trình xây dựng, thu thập tự động và chuẩn hóa bộ dữ liệu thực tế từ các diễn đàn chuyên môn y tế.
- Phương pháp kết hợp giữa thuật toán xếp hạng truyền thống BM25 và mô hình học sâu PhoBERT thông qua hàm mất mát Multiple Negatives Ranking (MNR) để giải quyết bài toán giới hạn cửa sổ ngữ cảnh (context window limitation).
- Phương pháp luận phân tích lỗi đa chiều kết hợp việc phân tích ma trận nhầm lẫn để đối chiếu trực quan giữa mô hình dựa trên từ vựng thưa và mô hình biểu diễn ngữ nghĩa dày đặc.
Câu hỏi thường gặp
1. Bộ dữ liệu ViHeathQA được xây dựng từ những nguồn nào và phân chia tỷ lệ dữ liệu ra sao?
Bộ dữ liệu được thu thập từ chuyên mục hỏi đáp y tế của hai trang tin điện tử uy tín tại Việt Nam là Vinmec và VnExpress. Tổng quy mô bộ dữ liệu đạt 10.015 cặp câu hỏi - đáp, được chia thành ba tập: tập Huấn luyện (Train) gồm 7.009 mẫu, tập Phát triển (Dev) gồm 993 mẫu và tập Kiểm tra (Test) gồm 2.013 mẫu.
2. Tại sao hệ thống SPBERTQA phải sử dụng thuật toán BM25 ở giai đoạn 1 mà không đưa trực tiếp văn bản vào PhoBERT?
Do mô hình tiền huấn luyện PhoBERT giới hạn chiều dài đầu vào tối đa là 256 từ, trong khi có tới 65,3% câu trả lời y tế trong tập huấn luyện có độ dài vượt quá 300 từ (độ dài trung bình câu trả lời là 495,33 từ). Giai đoạn 1 sử dụng BM25 để lọc và chỉ giữ lại $K$ câu trong câu trả lời có độ liên quan cao nhất với câu hỏi, giúp dữ liệu đầu vào tương thích với giới hạn của PhoBERT mà vẫn bảo toàn các nội dung mang thông tin cốt lõi.
3. Hàm mất mát Multiple Negatives Ranking (MNR) hoạt động như thế nào trong mô hình BM25-SPhoBERT?
Hàm mất mát MNR có bản chất dựa trên Cross Entropy. Trong một batch huấn luyện, với mỗi câu hỏi đầu vào, câu trả lời tương ứng đã rút gọn đóng vai trò là văn bản tích cực (positive document), trong khi tất cả các câu trả lời khác của các cặp câu còn lại trong cùng batch đó được xem là các văn bản tiêu cực (negative documents). Hàm mất mát tối ưu hóa để độ tương tự cosine giữa vector nhúng của câu hỏi và văn bản tích cực luôn lớn hơn so với tất cả các văn bản tiêu cực.
4. Kết quả thực nghiệm của mô hình BM25-SPhoBERT trên tập kiểm tra (Test) đạt được cụ thể là bao nhiêu?
Trên tập kiểm tra (Test), mô hình đề xuất BM25-SPhoBERT đạt kết quả cao nhất trong số các mô hình thử nghiệm với chỉ số mAP đạt 62,25%, chỉ số P@1 đạt 50,92% và chỉ số P@10 đạt 83,76%.
5. Điểm khác biệt căn bản giữa ViHeathQA và các bộ dữ liệu Hỏi - Đáp đọc hiểu như ViNewsQA hay SQuAD là gì?
Các bộ dữ liệu như SQuAD hay ViNewsQA chủ yếu phục vụ bài toán đọc hiểu văn bản (MRC), trong đó các câu hỏi được tạo thủ công dựa trên đoạn văn có sẵn nên tồn tại mức độ trùng lặp từ ngữ rất lớn (word matching). Ngược lại, ViHeathQA thu thập các câu hỏi thực tế của người bệnh và câu trả lời chuyên môn của bác sĩ; nhiều cặp câu hỏi - đáp không có sự tương đồng về mặt từ khóa mà đòi hỏi mô hình phải hiểu và suy luận ngữ nghĩa (semantic search) mới có thể truy xuất chính xác câu trả lời.
Kết luận
Khóa luận tốt nghiệp của tác giả Nguyễn Thị Hồng Nhung và Hà Phan Diệu Phương đã giải quyết thành công bài toán Hỏi - Đáp tự động miền đóng cho tiếng Việt trong lĩnh vực sức khỏe. Đề tài đóng góp bộ ngữ liệu thực tế ViHeathQA với 10.015 cặp câu hỏi - đáp chuyên gia được chuẩn hóa chặt chẽ. Hệ thống đề xuất SPBERTQA kết hợp hiệu quả giữa thuật toán lọc câu BM25 và mô hình tinh chỉnh PhoBERT qua hàm mất mát MNR, đạt hiệu năng 62,25% mAP và 83,76% P@10 trên tập kiểm tra. Kết quả nghiên cứu đã được công nhận học thuật thông qua bài báo xuất bản tại Hội nghị quốc tế KSEM 2022, tạo tiền đề vững chắc cho việc phát triển các ứng dụng y tế số phục vụ cộng đồng.