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

Trong bối cảnh chuyển đổi số và sự phát triển của trí tuệ nhân tạo (AI), các ứng dụng hội thoại tự động (Chatbot) ngày càng giữ vai trò quan trọng trong việc tối ưu hóa quy trình giao tiếp giữa tổ chức và người dùng. Tại Việt Nam, phương thức phản hồi qua tin nhắn trực tuyến được sử dụng phổ biến trong hoạt động chăm sóc khách hàng và tư vấn thông tin. Tuy nhiên, việc vận hành thủ công đòi hỏi nguồn nhân lực lớn, tốn kém thời gian và chi phí cho các tác vụ mang tính lặp lại. Do đó, việc xây dựng một hệ thống hội thoại thông minh, hoạt động tự động là giải pháp cần thiết nhằm nâng cao hiệu suất làm việc.

Đồ án tốt nghiệp "Xây dựng Chatbot tư vấn tuyển sinh tại Trường Quốc tế — Đại học Quốc gia Hà Nội sử dụng RASA Framework" (ngành Tin học và Kỹ thuật máy tính, Trường Quốc tế – ĐHQGHN, 2022) do sinh viên Bùi Tuấn Anh thực hiện dưới sự hướng dẫn của thầy Nguyễn Doãn Đông, tập trung giải quyết các bài toán sau:

  1. Nhiệm vụ 1: Nghiên cứu tổng quan về cấu trúc, nguyên lý hoạt động và các thành phần cốt lõi của hệ thống chatbot, bao gồm Module hiểu ngôn ngữ tự nhiên (NLU), Module quản lý hội thoại (DM) và Module sinh ngôn ngữ tự nhiên (NLG).
  2. Nhiệm vụ 2: Tìm hiểu các kỹ thuật học sâu (Deep Learning) và xử lý ngôn ngữ tự nhiên (NLP) ứng dụng trong chatbot: biểu diễn ngôn ngữ (Word Embeddings), phân loại ý định (Intent Classification), trích xuất thông tin/thực thể (Entity Extraction), và theo dõi trạng thái hội thoại (Dialogue State Tracking).
  3. Nhiệm vụ 3: Nghiên cứu kiến trúc nền tảng nguồn mở Rasa (Rasa Open Source, Rasa SDK) và khảo sát mô hình tiền huấn luyện ngôn ngữ tiếng Việt PhoBERT.
  4. Nhiệm vụ 4: Thiết kế, xây dựng và đánh giá thực nghiệm hệ thống chatbot tư vấn tuyển sinh miền đóng (closed-domain) hoạt động theo mô hình truy xuất (retrieval-based), tích hợp triển khai trên nền tảng Facebook Messenger.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng phục vụ: Phụ huynh và học sinh có nhu cầu tìm hiểu thông tin tuyển sinh, chương trình đào tạo, học phí, học bổng và phương thức xét tuyển tại Trường Quốc tế – Đại học Quốc gia Hà Nội (VNU-IS).
  • Phạm vi kỹ thuật: Mô hình chatbot hướng tác vụ (task-oriented), phạm vi kiến thức đóng trong lĩnh vực tuyển sinh đại học; xử lý văn bản tiếng Việt; tích hợp qua Webhook trên giao diện Facebook Messenger và môi trường dòng lệnh.

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

Khung lý thuyết và mô hình ứng dụng

Hệ thống chatbot hướng tác vụ trong đồ án được xây dựng dựa trên mô hình kiến trúc chuẩn gồm 3 thành phần chính:

  • NLU (Natural Language Understanding): Chịu trách nhiệm tiền xử lý văn bản, phân loại ý định người dùng (Intent Classification) và trích xuất thực thể/điền khe (Entity Extraction / Slot Filling).
  • DM (Dialogue Management): Điều phối tiến trình hội thoại thông qua bộ theo dõi trạng thái hội thoại (Dialogue State Tracking - DST) và chính sách hội thoại (Dialogue Policy) nhằm xác định hành động tiếp theo của hệ thống. Đồ án khảo sát các mô hình: Máy trạng thái hữu hạn (FSM/FSA), Mô hình dựa trên khung (Frame-based), Mạng nơ-ron hồi quy (RNN) và Mô hình chú ý cục bộ - toàn cục (Global-Locally Self-Attentive DST - GLAD).
  • NLG (Natural Language Generation): Chuyển đổi các hành động của hệ thống thành phản hồi ngôn ngữ tự nhiên, sử dụng phương pháp ánh xạ dựa trên mẫu (Template-based), kết hợp Plan-based và Class-based.

Các mô hình học sâu và biểu diễn từ được nghiên cứu bao gồm:

  • Mạng nơ-ron nhân tạo (ANN): Cơ chế lan truyền thuận (Forward Propagation), thuật toán lan truyền ngược (Backpropagation), hàm kích hoạt (Sigmoid, Tanh, Softmax) và hàm mất mát Cross-Entropy.
  • Mạng nơ-ron hồi quy (RNN) & Mạng bộ nhớ ngắn-dài (LSTM): Khắc phục vấn đề phụ thuộc xa (Long-term Dependencies) và hiện tượng triệt tiêu đạo hàm (Vanishing Gradient) thông qua cấu trúc Cell State và các cổng trạng thái (Forget Gate, Input Gate, Output Gate).
  • Mô hình nhúng từ (Word Embeddings): Word2Vec (CBOW, Skip-Gram) và GloVe (ma trận đồng xuất hiện từ toàn cục).
  • Mô hình biến đổi ngôn ngữ tiếng Việt (PhoBERT): Kiến trúc dựa trên RoBERTa được tối ưu hóa cho cấu trúc ngữ pháp và từ ghép tiếng Việt.

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

  • Phương pháp thực nghiệm kỹ thuật: Xây dựng tập dữ liệu huấn luyện NLU và kịch bản hội thoại (Stories/Rules) cho bài toán tuyển sinh; tinh chỉnh pipeline NLU trên nền tảng Rasa kết hợp PhoBERT-base.
  • Phương pháp đánh giá định lượng: Đánh giá độ chính xác của phân loại ý định và trích xuất thực thể dựa trên 3 chỉ số thống kê: Độ chuẩn xác (Precision), Độ bao phủ (Recall) và Điểm số F1 (F1-Score), kết hợp phân tích ma trận nhầm lẫn (Confusion Matrix).
  • Phương pháp khảo sát trải nghiệm người dùng: Thử nghiệm tương tác với nhóm mẫu $n = 10$ người dùng thực tế trên nền tảng Facebook Messenger và thu thập đánh giá mức độ hài lòng theo thang điểm 5 sao.

Thiết kế và triển khai

Kiến trúc hệ thống

Hệ thống chatbot được thiết kế theo cấu trúc module hóa trên nền tảng Rasa Framework:

  • Rasa NLU: Tiếp nhận câu hỏi người dùng, thực hiện tách từ tiếng Việt, tạo vector nhúng với PhoBERT, sau đó phân loại ý định và trích xuất thực thể.
  • Duckling Server: Triển khai qua Docker container (http://localhost:8005) để nhận dạng và chuẩn hóa các thực thể thời gian, ngày tháng và con số.
  • Rasa Core (Dialogue Engine): Cập nhật trạng thái hội thoại vào Tracker Store, sử dụng Lock Store đảm bảo xử lý tuần tự thông điệp, áp dụng các chính sách (Policy) từ kịch bản stories.md và tập luật rules để quyết định hành động.
  • Rasa SDK Action Server: Khởi chạy trên cổng độc lập (http://localhost:5055) để thực thi các hành động tùy biến (custom actions trong action.py), truy vấn cơ sở dữ liệu MongoDB Compass và phản hồi thông tin động.
[Người dùng (Messenger / CLI)]
         [Rasa NLU Pipeline]                                [Rasa Core / Dialogue]
     (PhoBERT + Duckling :8005)                           (Tracker Store + Policies)
                                 [Rasa Action Server (:5055)]
                                   [MongoDB Database]

Phân vùng tri thức tuyển sinh

Nội dung hội thoại của chatbot được phân chia thành 3 vùng tri thức chính:

  1. Chào hỏi (Greeting): Giao tiếp cơ bản, mở đầu và duy trì luồng hội thoại.
  2. Hỏi về ngành học: Giải đáp thông tin chi tiết về danh mục ngành học, mã xét tuyển, cơ quan cấp bằng (Bằng cử nhân do ĐHQGHN cấp, bằng đồng cấp bằng, chương trình quốc tế), mức học phí (từ 4.2 – 5 triệu/tháng cho chương trình ĐHQGHN cấp bằng; 8 – 11 triệu/tháng cho chương trình đồng cấp bằng; khoảng 6.5 triệu/tháng cho chương trình quốc tế), các gói học bổng (tuyển thẳng, dài hạn, ngắn hạn) và phương thức xét tuyển.
  3. Trò chuyện ngoài lề (Chitchat / Out of scope): Xử lý các câu hỏi nằm ngoài phạm vi nghiệp vụ và các tính năng giải trí ngắn.

Quy trình tích hợp Facebook Messenger

  1. Thiết lập Webhook: Tạo ứng dụng nghiệp vụ trên cổng Facebook for Developers (developers.facebook.com), thiết lập sản phẩm Messenger, liên kết ứng dụng với Fanpage Facebook mang tên "Chatbot TA".
  2. Khởi tạo Token & Secret: Tạo Page Access Token và lấy App Secret, cấu hình tham số xác thực vào tệp credentials.yml cùng mã xác thực verify_token ("mybot").
  3. Thiết lập đường hầm Ngrok: Chạy Rasa Server tại cổng cục bộ 5005, sử dụng công cụ Ngrok ánh xạ cổng cục bộ thành địa chỉ công khai an toàn dạng HTTPS (https://[subdomain].ngrok.io/webhooks/facebook/webhook).
  4. Đăng ký sự kiện: Cấu hình Webhook Callback URL trên Facebook Developer Console và kích hoạt các trường đăng ký tin nhắn: messagesmessaging_postbacks.

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

Chương 1: Chatbot System Overview

Chương 1 hệ thống hóa các khái niệm nền tảng về hệ thống trợ lý ảo và chatbot. Tác giả trình bày các tiêu chí phân loại chatbot: theo chế độ tương tác (văn bản/giọng nói), miền tri thức (miền mở/miền đóng), mục tiêu (hướng tác vụ/phi tác vụ) và phương pháp thiết kế (dựa trên luật, truy xuất thông tin, hoặc sinh tự động). Nội dung chương phân tích chi tiết cấu trúc 3 thành phần (NLU, DM, NLG); so sánh ưu nhược điểm của các mô hình quản lý hội thoại FSA, Frame-based và các kỹ thuật sinh ngôn ngữ (Template-based, Plan-based, Class-based, mô hình chuỗi Markov, RNN, LSTM, Transformer). Đồng thời, chương này điểm luận các công trình liên quan trên thế giới như Eagle Bot (độ chính xác 56% trên Dialogflow), nghiên cứu của Windiatmoko (tích hợp MySQL API) và công trình của Anran Jiao về Rasa NLU stack.

Chương 2: Deep Learning Applied to Chatbot

Chương 2 đi sâu vào nền tảng toán học và các thuật toán học sâu ứng dụng trong xử lý ngôn ngữ tự nhiên:

  • Trình bày chi tiết giải thuật mạng nơ-ron nhân tạo (ANN), các hàm truyền non-linear ($\text{sigmoid}$, $\text{tanh}$), hàm kích hoạt $\text{Softmax}$ tại lớp đầu ra và phương pháp tối ưu hóa đạo hàm riêng (Gradient Descent / Backpropagation) dựa trên hàm tổn thất Cross-Entropy: $$L(y, \hat{y}) = - \frac{1}{N} \sum_{n \in N} \sum_{i \in C} y_{n,i} \log \hat{y}_{n,i}$$
  • Phân tích cấu trúc RNN và hạn chế trong việc ghi nhớ ngữ cảnh dài hạn; phân tích chi tiết 4 lớp mạng nơ-ron trong khối lặp của kiến trúc LSTM cùng các phương trình cổng:
    • Cổng quên (Forget Gate): $f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)$
    • Cổng vào (Input Gate) và giá trị ứng viên $\tilde{C}t$: $i_t = \sigma(W_i \cdot [h{t-1}, x_t] + b_i)$, $\tilde{C}t = \tanh(W_c \cdot [h{t-1}, x_t] + b_c)$
    • Cập nhật Cell State: $C_t = f_t * C_{t-1} + i_t * \tilde{C}_t$
    • Cổng ra (Output Gate) và trạng thái ẩn: $o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)$, $h_t = o_t * \tanh(C_t)$
  • Khảo sát các kỹ thuật nhúng từ Word2Vec (CBOW dự đoán từ mục tiêu từ ngữ cảnh, Skip-Gram dự đoán ngữ cảnh từ từ mục tiêu) và GloVe (khai phá ma trận đồng xuất hiện với hàm trọng số $f(X_{ij})$).
  • Trình bày ứng dụng RNN trong theo dõi trạng thái hội thoại (Word-based DST) và mô hình chú ý đa tầng GLAD (Global-Locally Self-Attentive DST) kết hợp BiLSTM và cơ chế Self-Attention.

Chương 3: Learn About RASA Framework

Chương 3 giới thiệu tổng quan về nền tảng Rasa Open Source và Rasa X. Tác giả trình bày kiến trúc xử lý bên trong của Rasa:

  • Vai trò của các khối Interpreter, Tracker, Tracker Lock, PolicyAction.
  • Trình tự phản hồi thông điệp: Thông điệp đầu vào $\rightarrow$ Interpreter (NLU phân tích ra Intent/Entity) $\rightarrow$ Tracker (cập nhật ngữ cảnh) $\rightarrow$ Policy (quyết định hành động) $\rightarrow$ Action (thực thi và trả kết quả qua domain hoặc action tùy biến).
  • Hướng dẫn cấu hình môi trường ảo Python (venv), cài đặt gói thư viện Rasa bằng pip, khởi tạo dự án (rasa init) và phân tích chức năng của các tệp tin cấu hình: config.yml, domain.yml, data/nlu.md, data/stories.md, actions.py, endpoints.yml, credentials.yml.

Chương 4: Build a Chatbot in the Field of Admission Consultant

Chương 4 là phần triển khai thực nghiệm chính của đồ án:

  • Phân tích thiết kế hệ thống tư vấn tuyển sinh, xây dựng biểu đồ tuần tự (Sequence Diagram) cho tác vụ hỏi thông tin ngành học.
  • Xây dựng tập dữ liệu gán nhãn NLU bằng tiếng Việt, thiết lập các mẫu hội thoại (Stories), quy tắc hội thoại (Rules) và định nghĩa phản hồi mẫu (Templates).
  • Ứng dụng mô hình tiền huấn luyện PhoBERT (kiến trúc của VinAI Research) vào pipeline NLU của Rasa nhằm nâng cao độ chính xác nhận diện ý định và trích xuất thực thể tiếng Việt.
  • Thiết lập môi trường thử nghiệm: Hệ điều hành Windows 11, cơ sở dữ liệu MongoDB Compass v1.0, mô hình PhoBERT-base, Duckling Entity Extractor chạy qua Docker.
  • Đánh giá thực nghiệm so sánh mô hình, phân tích ma trận nhầm lẫn, phân phối độ tin cậy dự đoán ý định (Confidence Histogram).
  • Kết nối triển khai thực tế trên Facebook Messenger qua cổng Ngrok và đánh giá độ hài lòng của người dùng thử nghiệm.

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

Kết quả thử nghiệm mô hình NLU

Đồ án đã tiến hành thử nghiệm so sánh 3 mô hình xử lý ngôn ngữ trong bài toán nhận diện ý định (Intent Identification) và trích xuất thực thể trên tập dữ liệu tuyển sinh:

Thuật toán / Mô hình Độ chuẩn xác (Precision) Độ bao phủ (Recall) F1-Score
Whitespace Tokenizer 0,72 0,72 0,72
BERT 0,74 0,73 0,78
RoBERTa / PhoBERT Vượt trội

Ghi chú: Theo phân tích biểu đồ ma trận nhầm lẫn và phân phối độ tin cậy trong đồ án, mô hình PhoBERT cho khả năng phân biệt chính xác nhất giữa các ý định dễ nhầm lẫn trong ngữ cảnh tiếng Việt.

Kết quả đánh giá từ người dùng

Thử nghiệm sản phẩm demo với nhóm 10 người tương tác trực tiếp qua Facebook Messenger (50% nam, 50% nữ, độ tuổi trung bình 28 tuổi) ghi nhận các kết quả đánh giá theo thang điểm 5 sao như sau:

  • Mức độ hài lòng về thông tin tuyển sinh: 4,5 / 5 sao
  • Mức độ hài lòng về tính năng giải trí / chitchat: 4,0 / 5 sao
  • Tính đa dạng trong kịch bản và phản hồi: 4,0 / 5 sao

Đóng góp thực tiễn của đề tài

  1. Xây dựng thành công bộ dữ liệu NLU và kịch bản hội thoại chuẩn hóa chuyên sâu cho lĩnh vực tư vấn tuyển sinh tại Trường Quốc tế – ĐHQGHN.
  2. Tích hợp thành công mô hình ngôn ngữ tiếng Việt PhoBERT vào pipeline của Rasa Open Source, giúp giải quyết bài toán xử lý tiếng Việt vốn có nhiều từ ghép và ngữ cảnh phức tạp.
  3. Triển khai hoàn chỉnh hệ thống hoạt động thực tế trên nền tảng Facebook Messenger thông qua kiến trúc Webhook và proxy tunnel, hỗ trợ phản hồi tự động cho phụ huynh và thí sinh.

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

Hạn chế được ghi nhận

  • Vấn đề đồng quy chiếu (Coreference Resolution): Trong giao tiếp tiếng Việt, người dùng thường sử dụng đại từ thay thế, cách viết tắt hoặc tiếng lóng địa phương. Chatbot còn gặp khó khăn trong việc xác định đối tượng mà các từ thay thế hướng tới trong các đoạn hội thoại dài.
  • Tính đa dạng trong cách nhập liệu: Sự khác biệt giữa các kiểu nhập văn bản (câu quá dài hoặc chia nhỏ thành nhiều tin nhắn rất ngắn) đôi khi làm giảm độ chính xác của bộ phân loại ý định.
  • Giới hạn kết nối đồng thời: Khi số lượng người dùng truy cập đồng thời qua webhook vượt quá 25 người, hệ thống có hiện tượng phản hồi chậm (đã bước đầu giải quyết bằng cấu hình gateway proxy để chịu tải lên đến 50 người cùng lúc).

Hướng phát triển tiếp theo

  • Tích hợp module xử lý giọng nói (kết hợp chuyển đổi giọng nói thành văn bản - Speech-to-Text và văn bản thành giọng nói - Text-to-Speech) để hỗ trợ tương tác đa phương thức.
  • Nghiên cứu áp dụng thư viện phân loại văn bản FastText nhằm tối ưu hóa tốc độ học biểu diễn từ và phân loại với chi phí tính toán thấp.
  • Phát triển phiên bản chatbot điều khiển bằng giọng nói trên nền tảng Google Assistant.
  • Xây dựng và tích hợp tính năng thực hiện bài trắc nghiệm tính cách MBTI nhằm hỗ trợ học sinh xác định nhóm tính cách và gợi ý ngành học phù hợp.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị chuyên môn đối với:

  • Sinh viên và học viên ngành Công nghệ thông tin, Kỹ thuật máy tính, Khoa học dữ liệu và Trí tuệ nhân tạo: Cung cấp cơ sở lý thuyết chi tiết về toán học trong mạng nơ-ron (ANN, RNN, LSTM, Word Embeddings) và quy trình chuẩn phát triển ứng dụng NLU hướng tác vụ.
  • Lập trình viên và kỹ sư phát triển hệ thống hội thoại (Chatbot Developers): Tài liệu hướng dẫn chi tiết từng bước (step-by-step) về việc cài đặt, cấu hình pipeline Rasa, nhúng PhoBERT cho tiếng Việt, kết nối Action Server với cơ sở dữ liệu MongoDB và tích hợp triển khai trên Facebook Messenger qua Webhook/Ngrok.
  • Các đơn vị giáo dục và đào tạo: Cung cấp mô hình kiến trúc tham khảo để số hóa quy trình giải đáp thắc mắc và tư vấn tuyển sinh tự động.

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

1. Chatbot trong đồ án thuộc loại nào và áp dụng phương pháp thiết kế nào?

Chatbot được thiết kế thuộc loại hướng tác vụ (Task-oriented chatbot), hoạt động trong phạm vi tri thức đóng (Closed-domain) chuyên biệt về tư vấn tuyển sinh đại học, sử dụng phương pháp tiếp cận truy xuất thông tin (Retrieval-based) kết hợp với các mẫu phản hồi xác định (Template-based).

2. Tại sao tác giả lại lựa chọn mô hình PhoBERT thay vì các tokenizer thông thường?

Tiếng Việt có đặc thù nhiều từ ghép và không sử dụng khoảng trắng thuần túy để phân định ranh giới từ như tiếng Anh (ví dụ từ "tài khoản"). PhoBERT (dựa trên kiến trúc RoBERTa tiền huấn luyện cho tiếng Việt) giúp trích xuất đặc trưng ngữ nghĩa theo ngữ cảnh tốt hơn, nâng cao độ chính xác trong bài toán nhận diện ý định người dùng và nhận dạng thực thể tên riêng so với Whitespace Tokenizer hay BERT tiêu chuẩn.

3. Thành phần Duckling Entity Extractor trong hệ thống đóng vai trò gì?

Duckling là module trích xuất thực thể được tác giả khởi chạy trên Docker container (cổng 8005), dùng để nhận diện và chuẩn hóa các thực thể có cấu trúc định lượng sẵn như thời gian, ngày tháng, khoảng cách và các giá trị số học xuất hiện trong câu hỏi của người dùng.

4. Hệ thống được đánh giá như thế nào và kết quả thực nghiệm ra sao?

Hệ thống được đánh giá qua hai phương pháp:

  • Đánh giá thuật toán NLU: Dựa trên Precision, Recall và F1-Score (kết quả Whitespace Tokenizer đạt F1 = 0,72; BERT đạt F1 = 0,78; PhoBERT cho kết quả vượt trội và ma trận nhầm lẫn tối ưu).
  • Đánh giá trải nghiệm thực tế: Khảo sát 10 người dùng qua Messenger, đạt điểm số 4,5/5 sao về mức độ hài lòng thông tin tuyển sinh, 4,0/5 sao về tính giải trí và 4,0/5 sao về tính đa dạng.

Kết luận

Đồ án tốt nghiệp của sinh viên Bùi Tuấn Anh đã hoàn thành toàn diện mục tiêu nghiên cứu lý thuyết và hiện thực hóa hệ thống chatbot tư vấn tuyển sinh cho Trường Quốc tế – ĐHQGHN. Bằng việc kết hợp nền tảng Rasa Framework với mô hình xử lý ngôn ngữ tiếng Việt PhoBERT và hệ thống trích xuất thực thể Duckling, đồ án đã giải quyết hiệu quả bài toán phân loại ý định và tự động hóa phản hồi thông tin tuyển sinh. Công trình có tính thực tiễn cao, quy trình triển khai rõ ràng từ môi trường thử nghiệm đến ứng dụng thực tế trên Facebook Messenger, đồng thời vạch ra các định hướng phát triển rõ ràng về tương tác giọng nói và trắc nghiệm hướng nghiệp trong tương lai.