Chương 1, Giới thiệu đề tài: Trình bày tổng quan về đề tài, lý do thực hiện đề tài và ý nghĩa thực tiễn của bài toán, cũng như giới hạn và phạm vi của đề tài. Cuối cùng là nhiệm vụ và cấu trúc của luận văn. − Chương 2, Cơ sở lý thuyết: Tổng hợp những vấn đề học thuật liên quan nhất sẽ áp dụng để giải quyết bài toán, tập trung chủ yếu vào nội dung của học sâu, từ các kiến trúc về Rasa, Mạng nơ-ron tích chập, các phương pháp Few-shot Learn- ing trong cách học tổng quát (transductive learning), cụ thể là mô hình Model- agnostic Meta-Learning (MAML), Prototype Network, Matching Network và một số kiến thức liên quan đến xây dựng, đo đạc hệ thống. − Chương 3, Các công trình nghiên cứu liên quan: Trình bày một cách tổng quát về những nghiên cứu liên quan đã và đang được thực hiện, cũng như xu hướng chung hiện nay trong việc giải quyết bài toán.
Phần này cũng đưa ra những bàn luận và đánh giá cho các phương pháp kể trên vì đó là cơ sở quan trọng cho những nghiên cứu của em trong quá trình thực hiện luận văn. − Chương 4, Mô hình, kiến trúc hệ thống đề xuất: Giới thiệu mô hình cơ sở cho bài toán Few-shot Learning trong lĩnh vực thời trang. Đồng thời đưa ra phương pháp giúp việc tạo ra các mô hình Rasa cá nhân hoá cho từng cửa hàng hay kiến trúc hệ thống phục vụ cho ứng dụng Chatbot giúp đảm bảo độ trễ mỗi API trong vòng 3 giây. Cuối cùng, trình bày các bước tiến hành thí nghiệm trên những tập dữ liệu khác nhau và đánh giá kết quả của những cải tiến so với mô hình cơ sở.
8 − Chương 5, Kết luận: Tổng hợp các kết quả đạt được trong quá trình thực hiện luận văn từ bước nghiên cứu và xây dựng giả thuyết đến triển khai thực nghiệm. Phần này cũng trình bày những hạn chế và vấn đề tồn đọng, cuối cùng đề xuất các giải pháp cải tiến trong tương lai. Mục lục, Danh sách hình vẽ, Danh sách bảng được cung cấp ở đầu luận văn. Tài liệu tham khảo sẽ được trình bày ở cuối luận văn.
9 CHƯƠNG 2 Cơ sở lý thuyết Tóm tắt: Tổng hợp những vấn đề học thuật liên quan nhất sẽ áp dụng để giải quyết bài toán, tập trung chủ yếu vào nội dung của học sâu, từ các kiến trúc về Rasa, Mạng nơ-ron tích chập, các phương pháp Few-shot Learning trong cách học tổng quát (transductive learning), cụ thể là mô hình Model-agnostic Meta-Learning (MAML), Prototype Network, Matching Network và một số kiến thức liên quan đến xây dựng, đo đạc hệ thống.1 Định nghĩa về Chatbot Chatbot [5] là một trợ lý ảo không thể thiếu trong bất kỳ lĩnh vực nào thường xuyên giao tiếp với khách hàng. Chatbot có thể được tích hợp trong nhiều hệ thống khác nhau, từ đó, tiết kiệm rất nhiều thời gian bằng cách cho phép khách hàng yêu cầu hỗ trợ nhận được phản hồi ngay lập tức 24/7 mà không cần đợi nhân viên hỗ trợ kết nối. Về phía người dùng, họ sẽ không phải đối phó với thư rác, các cuộc trò chuyện không cần thiết hay các cuộc gọi điện thoại xâm phạm mà chỉ có nhận những thông tin hữu ích. Có thể chia bài toán Chatbot thành các nhóm liên quan dựa trên các mục đích (purpose), nơi được sử dụng (location), loại giao diện (type of interface), số lượng khách hàng sử dụng (number of users), hình thức truy cập (form of access), chức năng (functionality), giải thuật (algorithm).
Dựa trên mục đích sử dụng, có thể chatbot thành 2 loại chính: chatbot với các chủ đề rộng hoặc với chủ đề đặc thù [5]. Chatbot với các chủ đề rộng được dùng để trò chuyện với người dùng về nhiều chủ đề trừu tượng với không mục đích 10 Hình 2.1: Phân loại của Chatbot [5] rõ ràng nào. Còn chatbot với chủ đề đặc thù sẽ tập trung vào các thông tin xoay quanh đến chủ đề đó. Nếu phân tích chatbot dựa trên tiêu chí nơi được sử dụng có thể dễ dàng chia chatbot thành 3 loại [5].
2 loại đầu tiên, chatbot đóng vai trò là bên thứ ba. Tức, chatbot được nhúng thẳng trên website của một riêng một tổ chức hay cá nhân để trả lời câu hỏi hoặc thực hiện các yêu cầu riêng hoặc chatbot được nhúng vào các ứng dụng tin nhắn như Messenger, Telegram, Slack,. Loại cuối cùng là chatbot được thiết kế riêng trên một ứng dụng đặc thù nào đó. Tiêu chí phân loại thứ ba được nhắc đến là loại giao diện của chatbot [5].
Lúc này, chatbot được phân thành 5 loại chính. Đó là loại mà người dùng phản hồi với chatbot dưới dạng nút bấm chọn. Đó còn là loại mà người dùng phản hồi với dạng đoạn tin nhắn. Hay thậm chí chatbot có cả sự kết hợp cả hai loại vừa đề cập.
Loại tiếp theo là chatbot giao tiếp thông qua giọng nói, tin nhắn giọng nói được chuyển thành văn bản để phân tích và tạo phản hồi âm thanh. Cuối cùng là loại chạy thời gian thực là những loại chatbot được kết nối với các hệ thống bên ngoài, lấy thông tin động để tiếp tục trò chuyện hoặc thực hiện hành động. Loại thứ ba này cần hỗ trợ các lệnh, phân tích lệnh từ tin nhắn người dùng và hiểu ngữ cảnh của cuộc trò chuyện. Nếu xét trên tiêu chí số lượng người dùng [5], chúng ta có thể chia chatbot làm 11 2 loại chính.
Một là chatbot cá nhân, hai là chatbot dành cho doanh nghiệp. Chatbot cá nhân có thể chia làm 2 loại nhỏ hơn, đó chính là loại cá nhân nhưng không sử dụng các thông tin hỗ trợ như tin nhắn cũ hay lịch sử tương tác và loại cá nhân nhưng có sử dụng. Chatbot doanh nghiệp là những chatbot được thiết kế để có thể tương tác với khách hàng mà không cần sự hỗ trợ của các nhân viên thuộc doanh nghiệp đó. Tiếp theo, tiêu chí hình thức truy cập cũng có thể chia chatbot làm 3 loại [5].
Chatbot được sử dụng trong các nhóm trò chuyện, các thành viên trong nhóm sẽ tương tác với nhóm. Hay chatbot được gọi bằng việc sử dụng ký tự @ và chatbot sẽ tương tác sau đó. Loại cuối cùng là những chatbot mà người dùng đăng ký vào đó và chatbot sẽ có nhiệm vụ gửi các bản tin, tin tức đến với người đã đăng ký. Năm tiêu chí phân loại đầu tiên dựa theo các đặc điểm, bối cảnh bên ngoài.
Hai tiêu chí tiếp theo sẽ dựa trên đặc trưng riêng của chatbot. Một trong hai tiêu chí đó là dựa trên giải thuật [5]. Dự trên tiêu chí giải thuật, chatbot có thể được chia làm 3 loại chính: chatbot đơn giản, chatbot thông minh và chatbot lai giữa 2 loại đầu tiên. Chatbot đơn giản là những loại chatbot dựa trên các tập luật cho trước, một cấu trúc tập luật đưa ra các quyết định dựa theo cấu trúc cây, mỗi câu trả lời sẽ ứng với từng từ khoá mà chatbot nhận thấy được trong câu hỏi.
Chatbot loại này thường tránh các câu hỏi phức tạp và có thể sử dụng các nút bấm để lựa chọn các câu hỏi tiếp theo cho chatbot một cách phù hợp. Mặc dù hạn chế về chức năng nhưng nó sẽ hữu ích trong những tình huống cụ thể mà người thiết kế tạo ra. Loại chatbot thứ hai là chatbot thông minh hay các chatbot dựa trên mô hình mạng lưới Nơ-ron (Neural Network) để hiểu được ý nghĩa của cuộc hội thoại. Người thiết kế cần huấn luyện các mẫu có sẵn và số lượng các mẫu cần rất lớn để có thể học tốt được.
Cốt lõi của chatbot thông minh dựa trên các mô hình Xử lý Ngôn ngữ Tự nhiên (NLP - Natural Language Processing, NLU - Natural Language Understanding và NLG - Natural Language Generation). − NLP là khả năng xử lý của mô hình với những gì được nói, hiểu ý nghĩa của nó, xác định hành động đáp lại và trả lời bằng ngôn ngữ dễ hiểu đối với người dùng, bằng cách chuyển đổi văn bản máy tính thành dữ liệu có cấu trúc. − NLU là xương sống của bất kỳ chatbot nào và về cơ bản là một phần của quy trình NLP. Nó chịu trách nhiệm về khả năng của mô hình trong việc chọn 12 cách tốt nhất để xử lý đầu dưới dạng phi cấu trúc và biến nó thành một cấu trúc có thể học.
NLU cực kỳ quan trọng đối với dữ liệu không thể đoán trước như chữ viết tắt, từ sửa đổi và từ sai chính tả, tiếng lóng, ngôn ngữ khó hiểu, phép ẩn dụ mà con người có thể hiểu và máy không thể hiểu được. − NLG là quá trình mô hình chuyển đổi dữ liệu có cấu trúc thành văn bản. Về bản chất, đây là việc tạo ra một văn bản để giao tiếp với người dùng. Chatbot có thể thu thập thông tin về người dùng, theo dõi hành động của họ và sau đó, nếu cần, phân tích thói quen của họ.
Được thu thập trong quá trình đối thoại, dữ liệu người dùng cho phép bạn cá nhân hóa các ưu đãi khác nhau. Tiêu chí cuối cùng được sử dụng đó là về chức năng [5]. Với tiêu chí này, chatbot có thể được chia làm 4 loại khác nhau. Loại chatbot thông tin được dùng để phân phối các tin tức, mã giảm giá hoặc sự kiện được định trước.
Hay loại chatbot câu hỏi và trả lời, tức người thiết kế đã định nghĩa trước từng câu trả lời ứng với từng câu hỏi đơn giản khác nhau, từ đó, giảm tải cho các hệ thống bởi những câu việc đơn giản, tối ưu chi phí nhân viên và chỉ khi người dùng gặp các câu hỏi phức tạp mới cần những quản lý liên quan. Còn đó là loại chatbot hỗ trợ nhằm tạo ra các dữ liệu từ những phản hồi của người dùng với mục đích hỗ trợ người dùng trong việc đưa ra các quyết định quan trọng khác. Loại chatbot cuối cùng là chatbot chức năng theo từng hành động cụ thể mà có tính lặp đi lặp lại cao. Như vậy, có thể thấy rằng hệ thống chatbot tồn tại ở hầu hết các sản phẩm dịch vụ gồm hai bên tham gia: nhà thiết kế và người sử dụng.
Cách thức triển khai và mục tiêu đề xuất của các hệ thống là vô cùng đa dạng và không hoàn toàn giống nhau, tùy thuộc vào lĩnh vực và loại sản phẩm là gì. Để có thể tạo ra một hệ thống chatbot hoàn chỉnh, hệ thống đó đòi hỏi cần có sự kết hợp của nhiều các loại chatbot khác nhau mà đã được đề cập ở trên. Đó cũng chính là thách thức được đặc ra khi người thiết kế chatbot cần phải vận dụng từng đặc điểm của từng loại mà tạo ra một hệ thống toàn diện và có tính ứng dụng cao.2 Kiến thức về RASA 2.