Chương 1: Giới thiệu tổng quan về hệ thống Chatbot : Chương này sẽ giới thiệu những kiến thức tổng quan về hệ thống Chatbot, các thành phần của Chatbot và phân biệt các loại Chatbot. Chương 2: Cơ sở lý thuyết: Tìm hiểu về Deep learning, mạng nơ ron hồi quy RNN, mô hình học sâu Transformer, DIET và Rasa Framework. Chương 3: Trình bày về quá trình xây dựng Chatbot trả lời thông tin về tuyển sinh đại học, thực nghiệm và đánh giá các kết quả. 2 TỔNG QUAN VỀ CHATBOT 1.1 Khái niệm Chatbot Chatbot là một phần mềm trí tuệ nhân tạo(AI) giả lập cuộc hội thoại của con người bằng văn bản hoặc giọng nói, giúp trả lời tự động tin nhắn của con người thông qua các ứng dụng tin nhắn trên website hoặc trên điện thoại di động.
Chatbot thường trao đổi với người dùng qua hình thức văn bản hoặc âm thanh. Do được thiết kế để mô phỏng cách trò chuyện với con người, các hệ thống Chatbot thường phải điều chỉnh và thử nghiệm liên tục. Chatbot thường được sử dụng trong các hệ thống hội thoại cho các mục đích khác nhau bao gồm dịch vụ khách hàng, định tuyến yêu cầu hoặc để thu thập thông tin. Mặc dù một số ứng dụng Chatbot sử dụng các phương pháp phân loại từ (word- classification), xử lý ngôn ngữ tự nhiên (NLP) và trí tuệ nhân tạo (AI), một số ứng dụng khác chỉ cần quét các từ khóa chung và tạo phản hồi bằng các cụm từ phổ biến thu được từ thư viện hoặc cơ sở dữ liệu liên quan.
Ngày nay, hầu hết các Chatbot được truy cập trực tuyến thông qua cửa sổ popup của các trang web hoặc thông qua các trợ lý ảo như Google Assistant, Amazon Alexa hoặc các ứng dụng nhắn tin như Facebook Messenger, Telegram, WeChat, Zalo… Chatbot chia thành 2 loại [1] miền mở (open domain) và miền đóng (close domain). Ứng dụng chatbot mền mở là mô hình trả lời tự động trên không giới hạn lĩnh vực, cho phép người dùng có thể tham gia trò chuyện với một chủ đề bất kỳ, không nhất thiết phải có một mục tiêu rõ ràng hay một ý định cụ thể nào. Ứng dụng chatbot miền đóng thường tập trung vào trả lời các câu hỏi đối thoại liên quan đến một lĩnh vực cụ thể, ví dụ như: y tế, giáo dục, du lịch, mua sắm… Trong luận văn này tôi sẽ tập trung vào xây dựng Chatbot thuộc loại miền đóng, cụ thể là bài toán hỗ trợ người dùng hiểu rõ về chương trình tuyển sinh của Trường Đại học Nội vụ Hà Nội.2 Các thành phần của Chatbot Bước đầu tiên trong việc thiết kế bất kỳ hệ thống nào là chia nó thành các bộ phận cấu thành theo một tiêu chuẩn để có thể tuân theo cách tiếp cận phát triển mô đun. Trong hình dưới giới thiệu một kiến trúc chung của Chatbot.
3 Hình 1-1: Kiến trúc chung của chatbot Ứng dụng chatbot được xây dựng từ 3 thành phần chính [2]: thành phần hiểu ngôn ngữ tự nhiên (NLU), thành phần quản lý hội thoại (DM) và thành phần sinh ngôn ngữ (NLG). Mỗi thành phần có một tác vụ riêng biệt: - NLU: Là quá trình xử lý để hiểu ngôn ngữ tự nhiên, thành phần giúp Chatbot hiểu được ý định người dùng (intent) và trích xuất các thực thể (entity) trong câu. Khi người dùng nhập câu hỏi “Học phí ngành luật là bao nhiêu?” Chatbot sẽ cần xử lý, bởi vì Chatbot không hiểu được ngôn ngữ của con người do đó NLU sẽ chuyển nó thành dữ liệu có cấu trúc, từ đó có thể phân tích câu hỏi trên với ý định là “hỏi học phí”, thực thể sản phẩm “ngành luật” - DM: Quản lý hội thoại có nhiệm vụ xác định được hành động (action) tiếp theo dựa vào trạng thái hành động trước đó hoặc ngữ cảnh của hội thoại. Các ngữ cảnh của hội thoại sẽ được học qua kịch bản xây dựng sẵn (story).
Xử lý truy xuất dữ liệu từ hệ thống khác thông qua các API/Data sources cũng sẽ được thực hiện trong thành phần này. - NLG: Là thành phần bao gồm nhiều mẫu câu trả lời đã được định nghĩa trước và phụ thuộc vào hành động được dự đoán ở DM kết hợp với chính sách (policy) của hệ thống để đưa ra câu trả lời cho người dùng. Ví dụ ở câu hỏi “Học phí ngành luật là bao nhiêu?” ta sẽ định nghĩa trước mẫu câu “Chào bạn, học phí hiện tại ngành{ma_nganh} là {gia_hoc_phi} nhé”, và ở thành phần DM hệ thống sẽ lấy được thông tin mã ngành thông qua NLU và gọi đến API của hệ thống khác để lấy thông tin học phí, từ đó kết quả NLG trả về sẽ là “Chào bạn, học phí hiện tại ngành luật là 387.3 Một số phân loại khác về Chatbot 1.1 Chatbot dựa trên luật (Rules Based Chatbot) Rule-based Chatbot [2] (Chatbot dạng menu/button) là Chatbot dựa theo luật được đề ra sẵn, người dùng không được phép tùy ý phản hồi mà phải lựa chọn các phản hồi do lập trình viên đã tạo ra, là một dạng Chatbot trở nên nổi tiếng sau khi Facebook cho ra mắt nền tảng Messenger cho phép cá nhân hoặc doanh nghiệp tạo ra bot hỗ trợ khách hàng tự động. Xây dựng Chatbot theo Rule- based là việc định nghĩa các luật hoặc đưa ra các mẫu có trước mà Chatbot muốn hướng đến, để thao tác với Chatbot ứng dụng sẽ sử dụng cả nút bấm, thanh menu hoặc hệ thống điều hướng để người dùng lựa chọn.
Giống với việc gọi điện đến tổng đài hỗ trợ khách hàng ta cần chọn ngôn ngữ, chọn phòng ban phụ trách sau đó mới được chuyển hướng đến hỗ trợ viên thích hợp, Rule-based Chatbot cũng hoạt động như vậy chỉ khác là sẽ hiển thị các nút bấm hoặc menu trên cửa sổ chat. Hình 1-2: Chatbot hỗ trợ nút bấm để thao tác của Pizza Hut Hình phía trên là ví dụ của Chatbot dạng menu/button, đây là ảnh của Chatbot hệ thống cửa hàng Pizza Hut trên ứng dụng Messenger Facebook, người dùng có thể sử dụng để đặt hàng, theo dõi đơn hàng hoặc liên hệ hỗ trợ thông qua điều hướng menu. Ví dụ nếu người dùng ấn nút “Customer support” cuộc trò 5 chuyện sẽ được chuyển hướng đến hỗ trợ viên trực tiếp. Lợi thế của Rule-based Chatbot so với các loại Chatbot khác là hiển thị được tất cả các lựa chọn, giúp người dùng đưa ra quyết định chính xác mà không cần suy nghĩ sẽ hỏi như thế nào và câu hỏi đó Chatbot có hiểu được không.
Rule-based Chatbot được sử dụng khi người dùng muốn thực hiện một hành động cụ thể, ví dụ đặt vé máy bay, đặt vé xem phim. Rule-based Chatbot cũng sẽ dễ dàng cập nhật hơn, thay vì việc phải huấn luyện lại Chatbot mỗi khi có dữ liệu mới, ta chỉ cần thêm nút hoặc menu và câu phản hồi cho chủ đề mới đó, Chatbot cũng không cần phải training. Chatbot cũng sẽ không gặp trường hợp không hiểu ý định của khách hàng, với việc thiết kế thêm nút chọn “Liên hệ trực tiếp” sẽ dẫn khách hàng đến nhân viên hỗ trợ trong trường hợp không tìm thấy lựa chọn phù hợp ở giao diện chat. Một số nền tảng giúp xây dựng Rule-based Chatbot như Manychat, Chatfuel, Botsify… Bên cạnh những ưu điểm nêu trên, Rule-based Chatbot cũng gặp phải hạn chế, một trong những hạn chế là không thể trả lời câu hỏi khách hàng mà Chatbot không được định nghĩa trước.
Khách hàng cần đi qua nhiều bước mới đến được câu trả lời phù hợp, do vậy trong vài trường hợp sẽ ảnh hưởng đến trải nghiệm người dùng. Chatbot dựa trên trí tuệ nhân tạo và học máy (AI and Machine learning) Khác với Rule-based Chatbot, AI-based Chatbot không sử dụng các menu/button để điều hướng người dùng, thay vào đó sử dụng trí tuệ nhân tạo AI để xử lý tin nhắn và phản hồi đến người dùng. Khoảng 5 năm trở lại đây, trí tuệ nhân tạo phát triển mạnh mẽ, Chatbot cũng được trang bị thêm công nghệ trí tuệ nhân tạo và công nghệ học máy giúp Chatbot có khả năng tự học từ những cuộc trò chuyện thực tế với người dùng để trở nên thông minh hơn theo thời gian. Công nghệ xử lý ngôn ngữ tự nhiên NLP giúp Chatbot AI hiểu ý định trong câu nói của người dùng và đưa ra những phản hồi chính xác.
Người dùng không phải nhập những câu rập khuôn máy móc để giao tiếp với Chatbot mà hoàn toàn có thể diễn tả ý định theo cách của riêng mình. Nhờ xác định các từ khóa, các biến trong câu nói của người dùng mà Chatbot thông minh hiểu và đối đáp linh hoạt 6 với người dùng. Bên cạnh đó, Chatbot AI có khả năng tích hợp nhiều tính năng tiện ích bổ sung, nhằm giải quyết đa dạng các bài toán của doanh nghiệp. Chatbot không những có thể tư vấn, cung cấp thông tin về các sản phẩm dịch vụ của doanh nghiệp, mà Chatbot còn có thể thực hiện nhiều tác vụ như thu thập thông tin khách hàng, đặt hàng, đặt lịch hẹn.
Chatbot phạm vi đóng (Close – domain) Phạm vi của Chatbot chỉ giải quyết một số vấn đề trong phạm vi nhất định. Ví dụ: Khách hàng mua ô tô, tư vấn khách hàng mua bảo hiểm nhân thọ, dự báo thời tiết… Chatbot này phổ biến, dữ liệu huấn luyện trong phạm vi nhỏ nên dễ huấn luyện, độ chính xác cao. Chatbot phạm vi mở (Open – domain) Chatbot phạm vi mở là mục tiêu của trí tuệ nhân tạo. Một Chatbot biết mọi thứ và có thể trả lời mọi vấn đề.
Rất nhiều Chatbot thông minh được tạo ra. Tuy nhiên trả lời mọi vấn đề và vượt qua được Turing test thì vẫn chưa thể đạt tới. Một số nền tảng công nghệ xây dựng Chatbot Chatbot đã không còn khái niệm xa lạ với người dùng Internet nói chung và các doanh nghiệp nói riêng. Hiện nay nhiều nền tảng xây dựng Chatbot được ra đời, hỗ trợ người dùng giao diện trực quan và khả năng đưa ra câu trả lời phù hợp với câu hỏi của người dùng một cách chính xác như Chatfuel, FPT.AI Conversation, Harafunnel…Hoặc doanh nghiệp có thể tự xây dựng hệ thống Chatbot dựa trên các framework nổi tiếng như Rasa, Dialogflow…Sau đây là một số nền tảng Chatbot nổi tiếng trên thế giới mà bất kỳ cá nhân hoặc doanh nghiệp nào cũng có thể tiếp cận: a.
Một số nền tảng trả phí - FPT.AI Conversation [11]: là nền tảng trí tuệ nhân tạo được Bộ Thông tin và Truyền thông trao Giải thưởng Sản phẩm công nghệ số Made in Vietnam năm 2020.AI Conversation cung cấp nền tảng tạo và quản lý Chatbot với giao diện người dùng. Được trang bị Machine Learning và NLP, Chatbot của FPT.AI có thể hiểu được ý định và yêu cầu của khách hàng.