Chương 1: Giới thiệu tổng quan về hệ thống chatbot, kiến trúc high-level và các thành phần cơ bản của AI chatbot, một số nền tảng và ứng dụng của chatbot. Chương 2: Nghiên cứu, tìm hiểu về Rasa Framework và các kỹ thuật liên quan. Chương 3: Trình bày về quá trình xây dựng chatbot trả lời thông tin tới người tiêu dùng mua xăng dầu, hỗ trợ họ về những chính sách khuyến mại, những chương trình 8 doanh nghiệp đã triển khai theo hướng có lợi. Thực nghiệm và đánh giá các kết quả.2 Mục đích và đóng góp của đề tài Mục tiêu của một hệ thống Chatbot là duy trì và tiếp tục cuộc hội thoại cùng người dùng với mục tiêu bắt chước kiểu nói chuyện "không có cấu trúc" giữa người với người.
Tính hữu dụng và độ thông minh của Chatbot được đánh giá dựa trên phép thử Turing. Hiện nay để tối ưu hóa, các hệ thống chatbot sẽ chỉ tập trung vào việc lựa chọn một số lĩnh vực nói chuyện, kiến thức cụ thể cho Chatbot (domain) và đánh giá bằng phép thử Turing trên đúng giới hạn này. Chatbot được tạo ra để hỗ trợ con người trong lĩnh vực dịch vụ khách hàng ở mức độ sơ cấp với những tác vụ được lặp đi lặp lại nhàm chán. Do đó, các doanh nghiệp sẽ loại bỏ được những áp lực về mặt nhân sự, đội ngũ tư vấn viên có thể tập trung giải quyết các công việc ở mức độ chuyên sâu và cấp thiết hơn.
Với mỗi loại hình doanh nghiệp, chatbot lại được ứng dụng theo các cách khác nhau. Một số nhiệm vụ chính của chatbot đang được nhiều doanh nghiệp áp dụng như: Tư vấn, trả lời các câu hỏi thường gặp, 24/7 cho khách hàng Hỗ trợ các chiến dịch marketing (gửi thông tin về chương trình khuyến mãi, giảm giá, ra mắt sản phẩm mới…) Gợi ý, tìm kiếm, báo giá các sản phẩm, dịch vụ theo yêu cầu của khách hàng Đặt lịch hẹn, đặt bàn, đặt phòng, đặt vé máy bay… Tiếp nhận các thông tin khai báo, mở tài khoản, mở thẻ… Thanh toán hóa đơn đặt hàng. Trong luận văn này, tác giả tập trung vào chatbot tư vấn, trả lời các câu hỏi thường gặp 24/7 cho khách hàng với bộ dữ liệu được tổng hợp thực tế từ tổng đài chăm sóc khách hàng của doanh nghiệp cụ thể là Petrolimex. Nghiên cứu về framework được sử dụng để xây dựng một chatbot hoàn chỉnh, từ đó triển khai mô hình và đánh giá độ chính xác thể hiện qua các chỉ số.
Hệ thống lại một số những kỹ thuật tiếp cận, sử dụng Machinelearning phổ biến hiện nay.3 Khái niệm, lịch sử ra đời [18] [20] Theo từ điển Cambridge, chatbot là một một chương trình máy tính được thiết kế để trò chuyện với con người qua internet. 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… Lịch sử ngắn gọn của xử lý ngôn ngữ tự nhiên (NLP). NLP là lĩnh vực sử dụng máy tính để tương tác với dữ liệu văn bản do con người tạo ra. Những năm 1950 đến 1980, người ta thực sự chỉ tập trung vào các hệ thống rule- base.
Và Eliza là một trong những bot trò chuyện sớm nhất và hoàn toàn dựa trên các quy tắc. [5] Từ 1990 đến 2000 bắt đầu chuyển sang các phương pháp thống kê, về cơ bản là đếm các đơn vị ngôn ngữ thường là các từ. 2010 có sự thay đổi một chút về thống kê bằng cách sử dụng các mô hình deep learning và neural network nói riêng như embedding, LSTM… 2017 trở đi, tiếp tục có sự phát triển của một dòng neural network mới cụ thể là transformers, gpt-3, bert. 10 Hình 1-1: Lịch sử phát triển NLP 1.4 Tổng quan về các loại Chatbot phổ biến [7] Chatbot có thể được phân loại thành nhiều loại khác nhau dự trên một số tiêu chí như sau: Hình 1-2: Phân loại Chatbot 11 Theo chế độ tƣơng tác (Interact Mode): + Dựa trên văn bản (Text-Based) + Dựa trên giọng nói (Voice-Based) Theo miền (Domain): + Miền đóng/miền cụ thể (Closed 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… Loại 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. + Miền mở (Open Domain): Loại này 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. Theo mục tiêu (Goals): + Các chatbot hướng tác vụ (Task-Oriented): được thiết kế cho một nhiệm vụ cụ thể và được thiết lập để có thời gian ngắn các cuộc hội thoại, thường là trong một miền đóng. + Các chatbot không hướng nhiệm vụ (Non Task-Oriented): có thể mô phỏng cuộc trò chuyện với một người và thường thực hiện chat cho mục đích giải trí trong các miền mở. Theo Phƣơng pháp thiết kế (Design Approach): + Dựa theo quy luật (Rule- Based): Loại chatbot này khả năng rất hạn chế.
Chỉ có khả năng phản hồi chính xác những lệnh cụ thể mà ta đã xác định từ trước hoặc người dùng không được phép tùy ý phản hồi mà phải lựa chọn cácphản hồi do lập trình viên tạo ra. Sự thông minh của chatbot phụ thuộc vào mức độ mà ta lập trình ra chatbot. + Dựa theo trí tuệ nhân tạo (AI): Loại này có khả năng “hiểu” ngôn ngữ. Nghĩa là chatbot không bị giới hạn bởi tập các luật xác định từ trước, mà có thể hiểu ở phạm vi rộng hơn.
Tất nhiên chatbot vẫn phải được “học” từ dữ liệu có sẵn, nhưng nó có khả năng “dự đoán” được ý nghĩa và ngữ cảnh của những lệnh chưa từng gặp. Một khả năng nữa của chatbot dựa trên AI là khả năng “học thêm”. Nghĩa là ta đưa vào càng nhiều câu huấn luyện, xác xuất phản hồi người dùng chính xác càng cao. Trong phương pháp này 12 có thể chia ra thành dựa trên cơ sở Generative-Based như các mô hình theo trình tự, tạo ra trả lời phù hợp trong cuộc trò chuyện hoặc dựa trên Retrieval-Based để học lựa chọn các câu trả lời từ cuộc hội thoại hiện tại từ một kho lưu trữ.5 Một số nền tảng công nghệ xây dựng chatbot - Dialogflow (https://dialogflow.com/) Cung cấp bởi Google Trước đây được gọi là Api.ai và rất phổ biến rộng rãi trong cộng đồng chatbot.
Cung cấp cho người dùng những cách mới để tương tác với sản phẩm của họ bằng cách xây dựng giao diện đàm thoại dựa trên giọng nói và văn bản hấp dẫn bằng AI. Kết nối với người dùng trên Google Assistant, Amazon Alexa, Facebook Messenger và các nền tảng và thiết bị phổ biến khác. Có khả năng phân tích và hiểu ý định của người dùng để giúp bạn phản hồi theo cách hữu ích nhất. - Rasa (https://rasa.com/) Rasa Open Source là một nền tảng để tự động hóa các trợ lý dựa trên văn bản và giọng nói sử dụng học máy.
Có thể thực hiện các hành động mà bot có thể thực hiện bằng mã Python. Thay vì một loạt các câu lệnh if…else khác, logic của bot dựa trên một mô hình học máy được đào tạo trên các ví dụ hội thoại.ai (https://wit.ai) Được Facebook mua lại trong vòng 21 tháng kể từ khi ra mắt, nhóm wit.ai đóng góp cho công cụ NLP của Facebook trong Facebook.ai giúp các nhà phát triển dễ dàng xây dựng các ứng dụng và các thiết bị mà người dùng có thể nói chuyện hoặc nhắn tin tới. Có thể sử dụng wit.ai để xây dựng chatbot, tự động hóa nhà,. - Microsoft Bot Framework (https://dev.com/) Được cung cấp bởi Microsoft.
Microsoft Bot Framework có khả năng hiểu ý định của người dùng 13 Có thể kết hợp LUIS để hiểu ngôn ngữ tự nhiên, Cortana cho giọng nói và API Bing cho tìm kiếm. - Woebot (https://woebot.io/ ) Có thể theo dõi tâm trạng của người dùng Giúp người dùng cảm thấy tốt hơn Cung cấp cái nhìn sâu sắc bằng cách xem mô hình tâm trạng Dạy người dùng làm thế nào để tích cực và năng lượng cao - Chatfuel (https://chatfuel.com/ ) Chatfuel ra đời với mục tiêu làm cho việc xây dựng bot trở nên dễ dàng với bất kỳ ai. Không cần biết lập trình cũng có thể tạo ra chatbot Đây nền tảng hàng đầu để xây dựng bot trên Facebook Messenger Theo khảo sát của cộng đồng đánh giá các giải pháp thay thế phần mềm [17], chấm điểm dựa trên một vài tiêu chí của chatbot với thang điểm 100 ta có bảng so sánh các nền tảng xây dựng chatbot sau: Microsoft Rasa Wit.ai Dialogflow Bot Chatfuel NLU Framework Chatbots 15 53 22 30 100 Chatbot Platform and Tools 18 50 23 36 43 Natural Language Understanding 25 43 21 38 0 Messaging 68 0 0 0 0 CRM 0 0 0 0 68 Hình 1-3: so sánh các nền tảng xây dựng chatbot 1.6 Kết luận chƣơng Qua các ví dụ trên, ta có thể nhận thấy bài toán chatbot trả lời thông tin, chỉ cần tập trung vào trả lời các câu hỏi đối thoại liên quan đến một miền cụ thể xoay xung quanh các thông tin về , nhằm cố gắng để đạt được các mục tiêu thông tin rất cụ thể. Đây là bài toán trong miền đóng (Closed domain).
Ngoài ra, dù có nhiều nền tảng hỗ trợ xây dựng chatbot nhưng trong luận văn này, tác giả lựa chọn Rasa framework để xây dựng thực nghiệm công cụ chatbot minh họa với các lý do sau: Hiện tại hầu hết các nền tảng lớn như Dialogflow (Google), wit.