Bài viết này trình bày phương pháp phân loại câu hỏi tiếng Việt trong miền dữ liệu đóng, dựa trên thuật toán học có giám sát Multi-Class SVM và ứng dụng mô hình học máy này để xây dựng ứng dụng chatbot hỏi-đáp.
Nội dung trích xuất từ tài liệu:
Ứng dụng thuật toán học có giám sát multi-class svm trong xây dựng hệ thống chatbot hỏi đáp tiếng việt
Nguyễn Thành Thủy 177
Ứng dụng thuật toán học có giám sát multi-class svm trong xây dựng
hệ thống chatbot hỏi đáp tiếng việt
Nguyễn Thành Thủy
Trường Đại học Kinh tế, Đại học Đà Nẵng
thuynt@due.edu.vn
Tóm tắt. Việc xác định ý định của người dùng đóng vai trò quan trọng trong thiết kế hệ
thống chatbot, nó sẽ quyết định đến câu trả lời hay hành vi kế tiếp của bot. Trong nghiên
cứu này, chúng tôi đề xuất một giải pháp ứng dụng thuật toán học có giám sát Multi-Class
SVM (Support Vector Machine) để xây dựng hệ thống chatbot hỏi – đáp tiếng Việt, mô
hình học máy sẽ giúp bot hiểu và giao tiếp được với con người thông qua đàm thoại văn
bản. Trong đó, chúng tôi sử dụng kỹ thuật túi từ BoW (Bag of Words) kết hợp với phương
pháp túi từ TF-IDF (Term Frequency – Inverse Document Frequency) để xây dựng vector
đặc trưng ngữ nghĩa của các câu văn bản tiếng Việt, sử dụng thuật toán Multi-Class SVM
để huấn luyện và tiến hành phân lớp, so sánh độ chính xác với các thuật toán khác. Bot hiểu
được ý định người dùng thông qua độ tương đồng ngữ nghĩa giữa câu hỏi đầu vào với tập
không gian câu hỏi – câu trả lời được sử dụng trong bước huấn luyện. Cuối cùng, chúng tôi
đã ứng dụng giải pháp trên để cài đặt mô phỏng hệ thống chatbot, hỗ trợ trả lời tự động các
câu hỏi thường gặp của khách hàng khi sử dụng dịch vụ của Vietnam Airlines.
Từ khóa: Chatbot, Multi-class SVM, BoW, TF-IDF.
1 Giới thiệu
Chatbot (Trợ lý ảo) là một chương trình máy tính tương tác với người dùng bằng ngôn ngữ
tự nhiên dưới một giao diện đơn giản, thông qua âm thanh (giọng nói) hoặc văn bản. Chatbot là
một hình thức thô sơ của phần mềm trí tuệ nhân tạo, hoạt động độc lập, có thể tự động trả lời
những câu hỏi hoặc xử lý tình huống càng thật càng tốt [1]. Độ phức tạp của bài toán tập trung
vào câu hỏi là làm sao Bot có thể hiểu được ý định (Intents) của con người thông qua một câu
hỏi đầu vào. Sau khi hiểu được ý định của con người thì hệ thống dễ dàng tương tác và đề xuất
câu trả lời phù hợp nhất.
Có hai mô hình Chatbot chính, (1) Mô hình ứng dụng trong miền đóng (closed domain), trả
lời theo mô hình truy xuất thông tin (retrieval-based model). Trong đó, Bot đưa ra câu trả lời đã
được chuẩn bị trước hoặc tuân theo những mô thức nhất định, thường sử dụng trong các hoạt
động hỗ trợ chăm sóc khách hàng hoặc trợ lý mua sắm trực tuyến. (2) Mô hình ứng dụng trong
miền mở (open domain), người dùng có thể thực hiện cuộc trò chuyện với bot ở mọi nơi, không
có một mục tiêu hay ý định rõ ràng, không giới hạn chủ đề [4].
178 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC
Hình 1. Cơ chế hoạt động chung của một ChatBot.
Nghiên cứu về hệ thống hỏi đáp tự động (Question Answering - QA) hiện đang thu hút sự
quan tâm của các nhà nghiên cứu, có ý nghĩa khoa học lẫn ý nghĩa thực tế. Nhiều hội nghị
thường niên về khai phá dữ liệu, trích chọn thông tin dành một chủ đề riêng cho các nghiên cứu
về hệ thống hỏi đáp như TREC [9], CLEF [10],… Ngoài ra còn có các phần mềm thương mại
liên quan đến QA cũng được phát triển như Yahoo Answers, Google QnA, Live QnA,
Answers.com của Answer Corp, Ask của InterActive Corp, M của Facebook,…
Hiện nay đã có một số nghiên cứu về bài toán phân lớp câu hỏi, đặc biệt là tiếng Anh như
nghiên cứu của Zhiheng Huang và các cộng sự [16]. Nghiên cứu của Dell Zhang và Wee Sun
Lee [2],… Hầu hết các thực nghiệm đều cho thấy kết quả phân lớp sử dụng thuật toán SVM đạt
được độ chính xác cao nhất.
Trong nghiên cứu này, chúng tôi đề xuất ứng dụng phương pháp học có giám sát Multi-Class
SVM phân lớp câu hỏi trong miền đóng, hỗ trợ xây dựng mô phỏng chatbot hỏi-đáp. Chúng tôi
đã sử dụng mô hình túi từ BoW kết hợp với phương pháp xác định trọng số của từ TF-IDF để
xây dựng vector đặc trưng ngữ nghĩa của các câu hỏi, sử dụng thuật toán Multi-Class SVM để
huấn luyện và tiến hành phân lớp. Sau đó, ứng dụng phương pháp này để xây dựng thực nghiệm
hệ thống chatbot hỗ trợ trả lời tự động các câu hỏi thường gặp của khách hàng khi sử dụng dịch
vụ của hãng Hàng không Vietnam Airlines.
2 Bài toán phân lớp ý định người dùng (Intents)
2.1 Phát biểu bài toán
Đối với miền ứng dụng đóng, chúng ta có thể giới hạn rằng số lượng Intent nằm trong một
tập hữu hạn những Intent đã được định nghĩa sẵn. Với giới hạn này, bài toán xác định ý định
người dùng có thể quy về bài toán phân lớp văn bản. Với đầu vào là một câu giao tiếp của người
dùng, hệ thống phân lớp sẽ xác định Intent tương ứng trong tập các Intent đã được định nghĩa
[4].
Håkan Sundblad [5] đã đưa ra một định nghĩa phân lớp câu hỏi như sau: “Phân lớp câu hỏi
là nhiệm vụ gán một giá trị kiểu boolean cho mỗi cặp (qj,ci) ∈ QxC, trong đó Q là miền chứa
các câu hỏi và C={c1, c2, …, c|c|} là tập các phân lớp cho trước.” Cặp (qj,ci) được gán cho giá trị
là T chỉ ra rằng câu hỏi qj thuộc phân lớp ci và được gán cho giá trị F nếu qi không thuộc phân
lớp ci.
Nguyễn Thành Thủy 179
Bài toán phân lớp câu hỏi có thể được phát biểu như sau:
Input:
─ Cho trước một tập các câu hỏi: Q = {q1, q2,…, qn}
─ Tập các lớp được định nghĩa: C = {c1, c2,…, cn}
Output:
─ Nhãn ci của câu hỏi qj.
2.2 Giải bài toán theo phương pháp học máy
Các kỹ thuật học máy (Machine Learning) sẽ thay thế các kiến thức chuyên môn bằng một
tập lớn các câu hỏi được gán nhãn (tập dữ liệu huấn luyện), sử dụng tập này, mô hình phân lớp
sẽ được ...