Dialog System
Định nghĩa
Dialog system là hệ thống xử lý hội thoại theo từng turn để hiểu người dùng, giữ ngữ cảnh, quyết định hành động tiếp theo và sinh phản hồi phù hợp.
Cấu trúc cốt lõi
User utterance
-> intent / dialog act
-> slot extraction
-> dialog state / context
-> policy / action
-> response generationVới bot thoại, pipeline thường mở rộng thêm:
Speech input
-> speech recognition
-> NLU
-> dialog manager
-> NLG
-> speech synthesisThành phần cần nhớ
intenthoặcdialog act: người dùng đang muốn làm gì.slothoặcentity: thông tin cụ thể cần trích ra để phục vụ intent.dialog state: các giá trị đã biết của cuộc hội thoại ở thời điểm hiện tại.context: state cộng với lịch sử các turn trước.dialog manager: module quyết định nên hỏi thêm, xác nhận hay gọi action nào tiếp theo.response generator: sinh câu trả lời cuối cùng cho người dùng.
Deep dive theo chapter
Dialog act classificationlà bài toán phân loại vai trò của utterance trong hội thoại, và trong chapter nó được xem như phiên bản dialog-specific của Intent Detection.Slot identificationthường dùng sequence labeling để gắn entity/slot vào từng span trong câu, rồi chuyển giá trị đó vào state.Joint understanding and trackinglà hướng gộp intent và slot vào một biểu diễn dialog state duy nhất, ví dụinform(price-cheap).Response generationcó ba mức: fixed responses, template-based responses và automatic generation.- Fixed responses phù hợp FAQ bot; template-based phù hợp clarifying question hoặc câu trả lời fact-driven; automatic generation phù hợp khi muốn tự nhiên hơn nhưng khó kiểm soát hơn.
- Các model cho dialog thường cần cân bằng giữa độ chính xác, chi phí nhãn và độ nặng khi triển khai.
Pipeline modular và end-to-end
- Pipeline modular tách hệ thống thành NLU, dialog manager, policy và response generation. Ưu điểm là dễ debug, dễ kiểm soát từng bước; nhược điểm là cần ontology và dữ liệu gán nhãn riêng cho từng component.
- End-to-end dialog học trực tiếp từ utterance hoặc lịch sử hội thoại sang response. Ưu điểm là giảm thiết kế thủ công và có thể học pattern tiềm ẩn; nhược điểm là khó kiểm soát factual correctness, dễ sinh response chung chung và khó biết lỗi nằm ở module nào.
- Reinforcement Learning for Dialogue Generation bổ sung góc nhìn dài hạn: response hiện tại được xem như action, và action tốt là action giúp cuộc hội thoại tiến gần mục tiêu.
- Human-in-the-Loop Labeling trong dialog system giúp đưa feedback của người thật vào quá trình học, nhất là khi bot hiểu sai query, chọn sai action hoặc gặp câu ngoài scope.
- Rasa NLU là ví dụ framework đưa các component này vào pipeline triển khai được: context/state, slot-value, interactive learning, annotation, API integration và custom models.
Cách hiểu bằng lời của tôi
Dialog system không chỉ là trả lời câu hỏi. Nó là một vòng lặp: hiểu câu hiện tại, ghép nó với những gì đã biết từ các turn trước, rồi quyết định bước tiếp theo để tiến gần tới mục tiêu của người dùng.
Phần khó nhất là không chỉ hiểu text, mà còn phải biến nó thành state có thể điều khiển được: intent nào, slot nào còn thiếu, nên hỏi tiếp hay đã đủ để trả lời.
Khi áp dụng
- FAQ bot.
- Flow-based bot như đặt pizza, đặt vé, đặt lịch.
- Hệ thống cần thu thập slot theo nhiều lượt hội thoại.
- Bot có fallback hoặc handoff sang người thật.
- Hệ goal-oriented cần NLU rõ ràng và dialog manager có khả năng giữ state.