GIỚI THIỆU CHUNG, TỔNG QUAN VỀ CÔNG TÁC TƯ VẤN TUYỂN SINH VÀ ĐƯA RA HƯỚNG NGHIÊN CỨU, GIẢI QUYẾT BÀI TOÁN THỰC TẾ TẠI TRƯỜNG ĐẠI HỌC PHAN THIẾT
Mở đầu
Trong bối cảnh ngành giáo dục đang phát triển mạnh mẽ và sự cạnh tranh giữa các trường để thu hút học sinh ngày càng gay gắt hơn, việc tư vấn tuyển sinh đang trở thành một trong những vấn đề quan trọng nhất [2], đặc biệt là đối với các trường đại học, trong đó có trường Đại học Phan Thiết Mặc dù trường đã triển khai nhiều chương trình tư vấn tuyển sinh trên diện rộng với nhiều hình thức phong phú, tuy nhiên qua quá trình khảo sát, vẫn còn một số học sinh không nắm bắt được thông tin về ngành nghề hoặc không được trả lời thắc mắc một cách nhanh chóng và chính xác
Hơn nữa, hằng năm, Trường Đại học Phan Thiết phải bỏ ra một khoản chi phí khá lớn cho đội ngũ tư vấn tuyển sinh tuy nhiên lại không thể tư vấn và giải đáp thắc mắc của phụ huynh, học sinh nhanh, chính xác hoặc ngoài giờ hành chính được Bên cạnh đó, lượng thông tin cần giải đáp lại xoay quanh một số vấn đề mang tính chất lặp lại nhiều lần, trùng lặp trong câu trả lời dẫn đến lãng phí tài nguyên, nguồn lực con người, thời gian cũng như tiền bạc Trong khi đó cuộc cách mạng công nghiệp 4.0 với hạt nhân là trí tuệ nhân tạo (Artificial Intelligence - AI) đã đem lại nhiều ứng dụng quan trọng trong lĩnh vực giáo dục và đào tạo [3], [4], [5], [6] Một trong minh chứng cụ thể đó là Chatbot [7], [8], [9] tư vấn tuyển sinh Việc sử dụng Chatbot sẽ mang lại hiệu quả cao cho các trường đại học nói chung và trường Đại học Phan Thiết nói riêng bởi nó giúp tương tác với người dùng một cách tự động, nhanh, chính xác và 24/7 Trong khi đó, thời gian làm việc hành chính chỉ có 8 giờ/ngày và 6 ngày trong tuần nhưng nhu cầu được tiếp cận thông tin tuyển sinh từ học sinh là 24/7, dẫn đến có những thông tin không được Ban tuyển sinh giải đáp kịp thời, phản hồi kém hiệu quả và công việc bị tích tụ theo thời gian Việc này cũng là một phần nguyên nhân dẫn đến thí sinh quay qua tìm kiếm thông tin cũng ngành học đó nhưng lại ở trường khác Như vậy chúng ta sẽ mất sinh viên cũng như học sinh sẽ mất đi quyền tiếp cận thông tin nhanh, chính xác
Chính vì thế, việc xây dựng và áp dụng một Chatbot để tư vấn tuyển sinh là thực sự rất cần thiết đối với các trường đại học, trong đó có Trường Đại học Phan Thiết.
Giới thiệu đề tài
1.2.1 Lý do chọn đề tài
Hiện nay, Chatbot đang trở thành một công cụ quan trọng trong việc tương tác giữa con người và máy tính Đây là một công nghệ ngày càng phát triển và được sử dụng rộng rãi trong các lĩnh vực khác nhau như bán lẻ, dịch vụ khách hàng, giáo dục, y tế, tài chính và nhiều lĩnh vực khác
Một trong những lý do chính khiến Chatbot trở nên phổ biến là vì nó cung cấp một trải nghiệm tương tác trực tiếp giữa người dùng và máy tính một cách tự nhiên và thuận tiện Chatbot có thể giúp người dùng giải đáp các câu hỏi thường gặp, đưa ra các lời khuyên, hỗ trợ trong việc giải quyết các vấn đề liên quan đến sản phẩm hoặc dịch vụ một cách nhanh chóng và chính xác
Bên cạnh đó, Chatbot cũng là một công cụ hiệu quả trong việc giảm chi phí cho các doanh nghiệp Thay vì phải thuê một đội ngũ nhân viên chăm sóc khách hàng, Chatbot có thể tự động hỗ trợ người dùng một cách nhanh chóng và mọi lúc mọi nơi
Vì những lý do trên, tác giả luận văn lựa chọn đề tài Xây dựng hệ tư vấn tuyển sinh tự động tại trường Đại học Phan Thiết (Chatbot) để nghiên cứu, phát triển áp dụng giải pháp mới và hiệu quả cho công tác tư vấn tuyển sinh tại Nhà trường
1.2.2 Mục tiêu của đề tài
Mục tiêu của đề tài là tìm hiểu sâu hơn về Chatbot và các kỹ thuật giúp Chatbot trả lời câu hỏi một cách tự nhiên Đồng thời luận văn cũng sẽ tập trung nghiên cứu tổng thể về công tác tư vấn tuyển sinh của Nhà trường, nội dung tư vấn tuyển sinh nhằm xây dựng các kịch bản tư vấn và sử dụng Rasa Framework để giải quyết bài toán thực tế đã nêu trên bằng việc xây dựng Chatbot phục vụ công tác tư vấn tuyển sinh của trường Đại học Phan Thiết.
Đối tượng và phạm vi nghiên cứu
Đối tượng của luận văn chính là Chatbot - Một loại chương trình máy tính được thiết kế để tự động tương tác, trò chuyện với học sinh, phụ huynh thông qua giao diện chat
Phạm vi nghiên cứu luận văn tập trung vào thu thập dữ liệu từ đề án tuyển sinh năm 2022 và 2023, quy trình tuyển sinh và quy chế xét tuyển, học bổng tuyển sinh với một số thông tin: Hồ sơ xét tuyển, đợt xét tuyển, ngành xét tuyển, tổ hợp môn xét tuyển, điều kiện xét tuyển, học phí tín chỉ, chương trình đào tạo…để tạo tập dữ liệu huấn luyện cho Chatbot Bên cạnh đó, nghiên cứu sẽ phân tích nhu cầu của học sinh, phụ huynh và của Nhà trường để xây dựng các kịch bản trò chuyện, chức năng và tính năng của Chatbot; thiết kế giao diện và trải nghiệm người dùng, sử dụng trí tuệ nhân tạo và học máy để cải thiện khả năng tương tác, hiệu quả của Chatbot tư vấn tuyển sinh tại Trường Đại học Phan Thiết.
Phương pháp nghiên cứu
Về mặt lý thuyết, luận văn sẽ tập trung vào việc nghiên cứu các công nghệ và phương pháp sử dụng Rasa Framework để xây dựng Chatbot
Thiết kế kiến trúc của Chatbot bao gồm thu thập dữ liệu tư vấn tuyển sinh thực tế, xác định mục tiêu, các ý định, trích xuất thông tin để đào tạo (train), tạo ra các bộ dữ liệu và thực nghiệm trên các bộ dữ liệu đó nhằm đánh giá và cải tiến mô hình (nếu có), từ đó đưa ứng dụng Chatbot Rasa vào giải quyết bài toán tư vấn tuyển sinh tại Trường Đại học Phan Thiết.
Cấu trúc luận văn
Chương 1: Giới thiệu chung, tổng quan về công tác tư vấn tuyển sinh và đưa ra hướng nghiên cứu, giải quyết bài toán thực tế tại trường Đại học Phan Thiết
Chương 2: Tổng quan hệ thống Chatbot, kiến trúc và nhiệm vụ của các thành phần bên trong của một Chatbot
Chương 3: Tìm hiểu cơ sở lý thuyết làm nền tảng để xây dựng ứng dụng Chatbot với Rasa Freamwork
Chương 4: Xây dựng Chatbot hỗ trợ tư vấn tuyển sinh tại trường Đại học Phan Thiết Kết quả thực nghiệm và đánh giá
Danh mục tài liệu tham khảo
Trong chương này tác giả đã trình bày lý do chọn đề tài, mục tiêu của đề tài, đối tượng và phạm vi nghiên cứu của đề tài, phương pháp nghiên cứu của đề tài Bên cạnh đó, chương này tác giả cũng mô tả bố cục 4 chương của luận văn.
TỔNG QUAN HỆ THỐNG CHATBOT, KIẾN TRÚC VÀ NHIỆM VỤ CỦA CÁC THÀNH PHẦN BÊN TRONG CHATBOT
Tổng quan
2.1.1 Khái niệm Ở đây, Chat có nghĩa là cuộc trò chuyện giao tiếp qua lại giữa hai người Bot là một phần mềm thực hiện các nhiệm vụ, công việc một cách tự động Từ đó, cho thấy Chatbot chính là ứng dụng cho phép trò chuyện giao tiếp qua lại giữa người với máy một cách tự động Hay cụ thể hơn, Chatbot là một hệ thống trả lời tin nhắn nhanh chóng, tự động Bằng cách xây dựng, giả lập các mô hình tương tác, kịch bản tương tác như của con người sử dụng phương pháp trong học máy [10], [11], [12]
Hệ thống Chatbot có thể tự học, tự hiểu các câu hỏi, nhu cầu, ý định của người dùng và đưa ra các phản hồi sao cho phù hợp đảm bảo tính chính xác và tự nhiên nhất thông qua việc được huấn luyện và hoàn thiện trong thời gian dài
Chatbot trao đổi với người dùng qua hình thức tin nhắ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 Ngày nay, Chatbot thường được truy cập thông qua nền tảng web hoặc các nền tảng mạng xã hội
Hình 2.1: Minh họa một Chatbot [12]
Chatbot đã có mặt trong lịch sử từ những năm 1960, khi nhà tâm lý học Joseph Weizenbaum phát triển ELIZA - một trong những Chatbot đầu tiên vào năm 1966 Với khả năng tương tác với con người qua các câu hỏi và câu trả lời đơn giản, ELIZA đã được coi là một bước đột phá đáng kể trong lĩnh vực trí tuệ nhân tạo
Tuy nhiên, các Chatbot thời đó chưa thực sự đáp ứng được nhu cầu của người dùng vì có nhiều hạn chế về công nghệ và tính năng Các Chatbot này chỉ có khả năng xử lý các câu hỏi đơn giản và gặp khó khăn khi tương tác với nhiều ngôn ngữ hoặc xử lý các câu hỏi phức tạp
Nhưng với lịch sử phát triển của Chatbot như Hình 2.2 bên dưới cho thấy các Chatbot ngày nay có khả năng xử lý ngôn ngữ tự nhiên và đưa ra phản hồi phức tạp hơn
Hình 2.2: Lịch sử ra đời và phát triển của Chatbot [13]
Phép thử Turing là một phương pháp để xác định xem một cỗ máy có thể chứng minh trí tuệ của nó giống với não người hay không Nếu một cỗ máy có thể tham gia vào một cuộc hội thoại với con người mà không bị phát hiện là một cỗ máy, thì nó đã thể hiện được trí tuệ của con người Các phép thử Turing được thực hiện để xác định xem một chương trình máy tính có thể phân biệt được máy tính với con người trong một cuộc trò chuyện chỉ có văn bản thuần túy hay không Bằng cách gõ câu hỏi cho cả hai đối tượng thử nghiệm, người thẩm vấn sẽ cố gắng xác định đối tượng nào là máy tính và đối tượng nào là con người [13], [14]
Chatbot đầu tiên ra đời năm 1960, tên là Eliza, và là một chương trình máy tính của Joseph Weizenbaum (Viện Công nghệ Massachusetts, Mỹ) Chương trình được thiết kế theo cách bắt chước cuộc trò chuyện của con người Chatbot Eliza hoạt động bằng cách chuyển các từ mà người dùng đã nhập vào máy tính và sau đó ghép nối chúng vào danh sách các câu trả lời có kịch bản Nó sử dụng một kịch bản mô phỏng một nhà tâm lý trị liệu Kịch bản được chứng minh là một tác động đáng kể đến việc xử lý ngôn ngữ tự nhiên và trí tuệ nhân tạo và là một trong những chương trình có thể vượt qua bài kiểm tra Turing [13], [14]
Parry được xây dựng bởi bác sĩ tâm thần người Mỹ Kenneth Colby vào năm 1972 Chương trình bắt chước một bệnh nhân tâm thần phân liệt Nó là một chương trình ngôn ngữ tự nhiên tương tự như suy nghĩ của một cá nhân Parry hoạt động thông qua một hệ thống phức tạp các giả định, phân bổ và “phản ứng cảm xúc” được kích hoạt bằng cách thay đổi trọng số được gán cho các đầu vào bằng lời nói Trong cùng năm đó, Parry và Eliza đã “gặp” và “nói chuyện” với nhau tại Hội nghị Quốc tế về Truyền thông Máy tính ở Washington DC Sau đó, Parry cũng đã vượt qua một phiên bản của Turing Test [14]
▪ 1981 Được phát triển vào những năm 1980 và phát hành trực tuyến vào năm 1997, Chatbot Jabberwacky được thiết kế để “mô phỏng trò chuyện của con người tự nhiên theo cách thú vị và hài hước” Mục đích ban đầu của dự án Chatbot Jabberwacky là tạo ra một trí tuệ nhân tạo có khả năng vượt qua các phép thử Turing Nó được thiết kế để bắt chước tương tác của con người và thực hiện các cuộc hội thoại với người dùng Mục đích cuối cùng của chương trình là chuyển từ một hệ thống dựa trên văn bản sang toàn bộ hoạt động bằng giọng nói Tác giả của Chatbot Jabberwacky tin rằng nó có thể được kết hợp vào các vật thể xung quanh nhà như robot, các thiết bị thông minh, …Trong khi tất cả các Chatbot trước đó dựa trên cơ sở dữ liệu tĩnh để trả lời và trò chuyện, Jabberwacky thu thập cụm từ được sử dụng bởi những người tham gia trò chuyện với nó Nó tự thêm những câu trả lời vào cơ sở dữ liệu và tự động phát triển nội dung của riêng mình [13], [14]
▪ 1992 Được tạo ra bởi Creative Labs vào đầu những năm 1990, Dr SBAITSO là từ viết tắt của Sound Blaster Artificial Intelligent Text to Speech Operator Dr SBAITSO “trò chuyện” với người dùng như thể nó là một nhà tâm lý học Mặc dù hầu hết các câu trả lời của nó đều là “WHY DO YOU FEEL THAT WAY?” nghĩa là “Tại sao bạn cảm thấy như vậy?” Thay vì tương tác phức tạp, khi đối mặt với một cụm từ mà Dr SBAITSO không thể hiểu được, nó thường trả lời là “THAT’S NOT MY PROBLEM” (Đó không phải là vấn đề của tôi) [13], [14]
ALICE được xây dựng trên cùng một kỹ thuật được sử dụng để tạo nên ELIZA ALICE ban đầu được sáng tạo bởi Richard Wallace, ra đời vào ngày 23 tháng 11 năm
1995 Chương trình được viết lại bằng ngôn ngữ Java vào năm 1998 ALICEBOT sử dụng một lược đồ XML có tên AIML (Artificial Intelligence Markup Language - Ngôn ngữ đánh dấu trí tuệ nhân tạo) để xác định các quy tắc trò chuyện heuristic Tuy nhiên, nó lại không thể vượt qua các phép thử Turing [13], [14]
SmarterChild là một Chatbot có sẵn trên AOL Instant Messenger và Windows Live Messenger (trước đây là MSN Messenger) AOL Instant Messenger là một chương trình tin nhắn tức thời do AOL tạo ra, sử dụng giao thức nhắn tin tức thời OSCAR độc quyền và giao thức TOC để cho phép người dùng đăng ký giao tiếp trong thời gian thực SmarterChild đóng vai trò giới thiệu cho việc truy cập dữ liệu nhanh và cuộc trò chuyện được cá nhân hóa thú vị hơn Hơn nữa, khi kết hợp với các nhà mạng, chúng trở thành một kênh tiếp thị hiệu quả và miễn phí Chúng giúp người dùng giao tiếp nhanh chóng với hệ thống mạng bằng cách hiển thị các thông tin ngắn gọn với các lựa chọn trên bàn phím điện thoại [13], [14]
IBM Watson được tạo ra với mục tiêu vượt lên và chiến thắng các thí sinh tham dự cuộc thi Jeopardy Với khả năng chạy hàng trăm thuật toán phân tích ngôn ngữ cùng một lúc, IBM Watson sở hữu một sự thông minh ngôn ngữ đáng ngạc nhiên IBM thiết lập cho Watson có quyền truy cập vào cơ sở dữ liệu khổng lồ về thông tin Watson có thể nhanh chóng truy cập 200 triệu trang dữ liệu, làm cho nó trở thành một máy trả lời câu hỏi lý tưởng (hoặc, trong trường hợp của Jeopardy, Watson trở thành máy tạo câu hỏi lý tưởng) Rõ ràng, một hệ thống có thể nhanh chóng lấy thông tin dựa trên đầu vào đàm thoại cũng có thể cung cấp nền tảng cho việc tạo các trợ lý ảo mạnh mẽ Hiện nay, IBM Watson phục vụ như là “bộ não” cho nhiều Chatbots hoạt động trong nhiều ngành công nghiệp và lĩnh vực trên khắp thế giới [13], [14]
Các kiểu Chatbot
Dựa vào lĩnh vực áp dụng và nhu cầu của người dùng mà sẽ có nhiều loại Chatbot khác nhau Hiện nay, có 3 cách cơ bản phân loại Chatbot [15]:
• Phân loại Chatbot theo dịch vụ;
• Phân loại Chatbot theo nền tảng (platform);
• Phân loại Chatbot dựa trên trải nghiệm người dùng
Tuy nhiên, dựa trên chất lượng trải nghiệm mang lại cho người dùng, có thể chia làm 6 loại Chatbot như sau: Rule-based Chatbots, Keyword recognition-based Chatbots,
Menu-based Chatbots, Contextual Chatbots (Intelligent Chatbots), Hybrid Chatbots, Voice-enabled Chatbots [16]
Chatbot dựa trên quy tắc là loại bot sử dụng một loạt các quy tắc được xác định trước để trả lời câu hỏi của người dùng Để xây dựng các Chatbot như vậy, trước tiên chúng ta cần dự đoán loại câu hỏi mà người dùng có thể hỏi và sau đó nhúng các truy vấn đó vào Chatbot
Vì vậy, một cách tự nhiên, các Chatbot dựa trên quy tắc tuân theo một cấu trúc cứng nhắc – nếu một truy vấn đến không thể khớp với các quy tắc do Chatbot xác định, người dùng có thể không nhận được câu trả lời chính xác nhất và Chatbot sẽ phải chuyển truy vấn đó cho một tác nhân là con người [16]
Như tên cho thấy, các loại Chatbot này trả lời các truy vấn của người dùng dựa trên nhận dạng từ khóa Nói cách khác, các Chatbot từ khóa tìm kiếm các từ hoặc cụm từ nhất định trong câu hỏi của người dùng và đưa ra câu trả lời tương ứng Các Chatbot như vậy chủ yếu được sử dụng để trả lời các câu hỏi lặp đi lặp lại hoặc thường gặp [16]
Chatbot dựa trên menu là những Chatbot nguyên thủy nhất trong danh sách Chatbot cung cấp cho người dùng một số tùy chọn dưới dạng menu và nút Tùy thuộc vào những gì người dùng chọn, Chatbot sẽ trả lời câu hỏi
Các Chatbot này, giống như các Chatbot dựa trên quy tắc và dựa trên từ khóa, đi theo một đường dẫn định trước hoặc cây quyết định giúp chúng tìm ra câu trả lời chính xác cho một câu hỏi [16]
Những Chatbot này thông minh hơn nhiều so với những Chatbot mà chúng ta đã thảo luận trước đây và chúng thậm chí còn trở nên thông minh hơn theo thời gian Chúng được xây dựng bằng các công nghệ mạnh mẽ như xử lý ngôn ngữ tự nhiên (NLP), hiểu ngôn ngữ tự nhiên (NLU), học máy (ML) và AI
Những công nghệ này cho phép Chatbot hiểu được ý định và sở thích của người dùng để đưa ra những phản hồi tự động và trôi chảy Các Chatbot thông minh thậm chí còn ghi nhớ các tương tác trong quá khứ để mang lại trải nghiệm người dùng được cá nhân hóa hơn [16]
Hybrid Chatbot là một loại Chatbot kết hợp giữa Chatbot tương tác tự nhiên và Chatbot dựa trên luật để tăng cường khả năng tương tác và phản hồi với người dùng
Hybrid Chatbot sử dụng cả hai phương pháp để đưa ra phản hồi Nó sử dụng học máy để hiểu và phân tích các câu hỏi của người dùng và đưa ra các phản hồi tự nhiên và chính xác Đồng thời, nó cũng sử dụng các quy tắc được lập trình sẵn để đảm bảo chính xác và tính logic trong việc đưa ra phản hồi
Với sự kết hợp này, Hybrid Chatbot có khả năng xử lý các tình huống phức tạp hơn so với các loại Chatbot khác, đặc biệt là trong các lĩnh vực chuyên môn như tài chính, y tế, giáo dục, v.v Ngoài ra, Hybrid Chatbot cũng cung cấp trải nghiệm tương tác tự nhiên hơn cho người dùng, giúp tăng cường sự tương tác và giao tiếp giữa người dùng và doanh nghiệp [16]
Các Chatbot này tận dụng NLP kết hợp với tính năng chuyển lời nói thành văn bản để nghe, hiểu và phản hồi đầu vào bằng giọng nói Nó cho phép người dùng sử dụng giọng nói thay vì bàn phím hoặc màn hình cảm ứng để tương tác với Chatbot
Voice-enabled Chatbot có thể mang lại nhiều lợi ích cho người dùng, bao gồm sự tiện lợi, tăng tốc độ tương tác và giảm thời gian phản hồi Nó cũng có thể giúp người dùng với khả năng thị giác hạn chế hoặc có khó khăn trong việc sử dụng bàn phím hoặc màn hình cảm ứng [16] Ưu nhược điểm của các loại Chatbot được chi tiết trong Bảng 2.1 dưới đây:
Loại Chatbot Ưu điểm Nhược điểm
Rule-based Chatbots Dễ xây dựng và đào tạo
Chi phí triển khai thấp
Không có tính năng tự học Thiếu cá nhân hóa
Dễ thực hiện Câu trả lời nhất quán hơn Độ chính xác thấp Không có khả năng giải quyết các truy vấn phức tạp
Chatbots Đơn giản và dễ xây dựng Cung cấp câu trả lời nhanh cho các câu hỏi phổ biến
Dòng hội thoại không linh hoạt Yêu cầu sự can thiệp liên tục của con người
Có khả năng trả lời các câu hỏi nâng cao hơn
Tự học và cá nhân hóa các cuộc hội thoại
Nhiều ứng dụng nội bộ và bên ngoài doanh nghiệp
Phát triển có thể tốn kém nếu được thực hiện từ đầu
Chuyển giao tác nhân trực tiếp liền mạch
Xử lý các câu hỏi thường gặp và truy vấn lặp đi lặp lại
Không tiên tiến như Chatbot theo ngữ cảnh
Cần giám sát và bảo trì liên tục
Tăng tốc độ tương tác người dùng có thể nhập liệu bằng giọng nói khi đang di chuyển
Không có khả năng hiểu nhiều giọng nói và ngôn ngữ
Việc thực hiện tương đối tốn kém
Rule-based Chatbots Dễ xây dựng và đào tạo
Chi phí triển khai thấp
Không có tính năng tự học Thiếu cá nhân hóa
Bảng 2.1: So sánh ưu nhược điểm các kiểu Chatbot
Kiến trúc của Chatbot và nhiệm vụ các thành phần của Chatbot
Trong lĩnh vực trí tuệ nhân tạo, Chatbot đang trở thành một giải pháp phổ biến trong nhiều lĩnh vực giúp tăng cường khả năng tiếp cận và tương tác với người dùng một cách nhanh chóng, hiệu quả và tự nhiên hơn Để đảm bảo hoạt động hiệu quả, chính xác cũng như tự nhiên hơn, Chatbot được xây dựng dựa trên một kiến trúc phức tạp, bao gồm nhiều thành phần như Hình 2.4 bên dưới
Hình 2.4: Kiến trúc của một Chatbot[12]
Kiến trúc của một Chatbot thông thường bao gồm: User Interface, Natural Language Processing, Dialogue Manager, Knowledge Base, Machine Learning, Integration [12]
+ User Interface (UI): Là giao diện người dùng để giao tiếp với Chatbot, có thể là một trang web, một ứng dụng di động hoặc một widget trên mạng xã hội
+ NLP (Natural Language Processing): Đây là công nghệ giúp Chatbot hiểu và phản hồi lại các câu hỏi hoặc yêu cầu của người dùng một cách tự nhiên NLP sử dụng các thuật toán để phân tích ngữ pháp, ngữ nghĩa và ngữ cảnh để hiểu ý nghĩa của câu hỏi [17]
+ Dialogue Manager: Đây là phần quản lý điều hành các cuộc trò chuyện giữa Chatbot và người dùng Dialogue Management đảm bảo rằng Chatbot đưa ra phản hồi chính xác và liên tục tăng cường trải nghiệm của người dùng
+ Knowledge Base: Là tập hợp các thông tin và dữ liệu mà Chatbot sử dụng để đưa ra các phản hồi cho người dùng Chatbot có thể sử dụng các mẫu câu trả lời được cấu hình sẵn hoặc sử dụng các quy tắc để đưa ra câu trả lời cho người dùng Ngoài ra, Chatbot cũng có thể sử dụng học máy để tự động tạo ra các câu trả lời dựa trên thông tin đã trích xuất từ xử lý ngôn ngữ tự nhiên Quá trình này giúp Chatbot có khả năng đưa ra các câu trả lời chính xác và đáp ứng được nhu cầu của người dùng
+ Machine Learning: Đây là một công nghệ học máy giúp Chatbot học và cải thiện hiệu suất của nó Machine Learning giúp Chatbot học từ các cuộc trò chuyện trước đó và phát triển khả năng đưa ra phản hồi tự động
+ Integration Layer: Đây là tầng tích hợp, cho phép Chatbot tương tác với các hệ thống khác như CRM, ERP, hoặc các dịch vụ ngoài để trả lời các yêu cầu của người dùng
Trên cơ sở này, các kiến trúc Chatbot có thể khác nhau theo từng dự án và tùy chỉnh theo nhu cầu của người sử dụng Với một Chatbot sử dụng NLP và công nghệ học máy, kiến trúc sẽ có 3 thành phần chính như Hình 2.5 bên dưới [12]
Hình 2.5: Kiến trúc Chatbot sử dụng NLP và công nghệ học máy [12]
+ Natural Language Understanding (NLU): bao gồm việc xử lý ngôn ngữ tự nhiên có nhiệm vụ xác định được ý định câu hỏi và trích chọn thông tin
+ Dialogue Manager: Quản lý hội thoại có nhiệm vụ xác định được hành động tiếp theo dựa vào trạng thái hành động trước đó hay ngữ cảnh hội thoại Các ngữ cảnh này phải được đối chiếu trong các kịch bản dựng sẵn đã huấn luyện cho bot
+ Natural Language Generation (NLG): là thành phần sinh ngôn ngữ dựa vào chính sách và hành động được xác định trong Dialogue Manager (DM) thông qua các tập hội thoại NLG có thể được sinh ra câu trả lời dựa vào tập mẫu câu trả lời đã huấn luyện cho bot
2.3.2 Nhiệm vụ các thành phần của Chatbot
Natural Language Understanding (NLU) là một công nghệ trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP), nó giúp Chatbot hiểu được ngôn ngữ tự nhiên của con người và phân tích ý nghĩa của các câu hỏi hoặc yêu cầu của người dùng NLU sử dụng các thuật toán và kỹ thuật để phân tích cú pháp, ngữ pháp, ngữ nghĩa và ngữ cảnh để hiểu ý nghĩa của một câu hỏi hoặc yêu cầu từ người dùng [18], [19]
Các bước chính trong Natural Language Understanding (NLU):
+ Tokenization: Tách từ văn bản thành các tokens (từ hoặc cụm từ)
+ Part-of-Speech Tagging: Phân loại từng từ trong câu với nhãn về chức năng của từ (ví dụ: danh từ, động từ, tính từ, )
+ Named Entity Recognition: Nhận dạng các đối tượng đặc biệt trong văn bản, chẳng hạn như tên riêng, tên công ty, địa điểm,
+ Sentiment Analysis: Phân tích cảm xúc từ văn bản (ví dụ: tích cực, tiêu cực, trung tính, )
+ Coreference Resolution: Xác định các đối tượng được nhắc đến trong câu với những đối tượng đã được nhắc đến trước đó
+ Parsing: Phân tích cấu trúc câu văn và xác định quan hệ giữa các từ trong câu
Natural Language Processing (NLP) là một nhánh của trí tuệ nhân tạo (AI) NLP tập trung vào việc tìm hiểu và xử lý ngôn ngữ tự nhiên của con người [20], [21], [22]
NLP sử dụng các kỹ thuật và công nghệ máy học, xử lý ngôn ngữ và trí tuệ nhân tạo để giải quyết các vấn đề liên quan đến xử lý văn bản, bao gồm phân tích cảm xúc, từ điển, gợi ý từ khoá và phân tích cú pháp Cụ thể, NLP có thể giúp trích xuất thông tin từ văn bản, phân loại các văn bản theo chủ đề, tạo ra các tóm tắt văn bản, tìm kiếm thông tin, dịch thuật và xác định ý định của người dùng trong các hệ thống Chatbot
NLP đã được áp dụng rộng rãi trong nhiều lĩnh vực, bao gồm Chatbot, trợ lý ảo, phân tích dữ liệu, xử lý tiếng nói, tìm kiếm thông tin và nhiều hơn nữa Với sự phát triển của trí tuệ nhân tạo, NLP đang trở thành một lĩnh vực quan trọng và đóng vai trò quan trọng trong việc phát triển các ứng dụng và dịch vụ mới trong tương lai
Các bước chính trong xử lý NLP bao gồm: Tokenization, Pos Tagging, Parsing, Named Entity Recognition và Coreference Resolution
+ Tokenization: Đầu tiên chia một đoạn văn bản thành các từ riêng biệt
+ Pos tagging: Gán một nhãn cho mỗi từ để biểu thị vai trò của từ trong câu + Parsing: Xác định cấu trúc câu và quan hệ giữa các từ trong câu
+ Named Entity recognition: Nhận dạng và gán nhãn cho các đối tượng đặc biệt trong văn bản, chẳng hạn như tên cá nhân, tên công ty, địa điểm
+ Coreference resolution: Xác định các đối tượng trong văn bản mà được tham chiếu đến bởi các từ khác
TÌM HIỂU CƠ SỞ LÝ THUYẾT LÀM NỀN TẢNG ĐỂ XÂY DỰNG ỨNG DỤNG CHATBOT VỚI RASA FRAMEWORK
Các kỹ thuật sử dụng trong Chatbot
Mạng nơron nhân tạo (Artificial Neural Network - ANN) là một hệ thống xử lý thông tin được thiết kế dựa trên cấu trúc của mạng nơron trong não người ANN được sử dụng để giải quyết các bài toán phức tạp và xử lý dữ liệu với hiệu quả cao Với khả năng học tập và tự động điều chỉnh thông qua việc đưa vào các dữ liệu đầu vào, ANN có thể học được các mô hình phức tạp và dự đoán kết quả đáng tin cậy Trong thời đại số hóa hiện nay, ANN đang được sử dụng rộng rãi trong nhiều lĩnh vực như dự báo thời tiết, phân tích dữ liệu tài chính, nhận diện giọng nói, hình ảnh, v.v Với tiềm năng của mình, ANN được coi là một trong những công nghệ cơ bản của Trí tuệ nhân tạo và sẽ ngày càng phát triển mạnh mẽ trong tương lai [40], [41]
Mạng nơron nhân tạo được xây dựng từ nhiều nơron nhân tạo đơn lẻ kết nối với nhau để hình thành các lớp Mỗi nơron nhân tạo được thiết kế để tính toán một hàm số non-linear trên đầu vào của nó Khi tín hiệu đầu vào được đưa vào, các nơron nhân tạo tính toán các giá trị đầu ra và truyền tiếp đến các nơron khác trong mạng Quá trình này được lặp đi lặp lại qua các lớp của mạng nơron nhân tạo cho đến khi đạt được đầu ra cuối cùng
3.1.1.2 Kiến trúc mạng nơron nhân tạo
Mạng nơron nhân tạo là sự kết hợp của nhiều tầng perceptron hay còn gọi là perceptron đa tầng Và mỗi một mạng nơron nhân tạo thường bao gồm 3 tầng: input layer, outpt layer và hidden layer [40], Hình 3.9
+ Tầng input layer (tầng vào): Tầng này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng
+ Tầng output layer (tầng ra): Là tầng bên phải cùng và nó thể hiện cho những đầu ra của mạng
+ Tầng hidden layer (tầng ẩn): Tầng này nằm giữa tầng vào và tầng ra nó thể hiện cho quá trình suy luận logic của mạng
Hình 3.1: Kiến trúc mạng nơron nhân tạo [40]
Mạng nơron hồi quy (RNN - Recurrent Neural Network) là một thuật toán được dùng để xử lý các chuỗi dữ liệu, trong đó mỗi đầu ra phụ thuộc vào trạng thái trước đó của mạng Thuật toán này thường được sử dụng trong Chatbot để xử lý các chuỗi dữ liệu liên quan đến ngôn ngữ tự nhiên [30] Trong các mạng nơron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau Tức là chúng không liên kết thành chuỗi với nhau Nhưng các mô hình này không phù hợp trong rất nhiều bài toán Ví dụ, nếu muốn đoán từ tiếp theo có thể xuất hiện trong một câu thì ta cũng cần biết các từ trước đó xuất hiện lần lượt như thế nào RNN được gọi là hồi quy bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính trước đó Nói cách khác, RNN có khả năng nhớ các thông tin được tính toán trước đó Trên lý thuyết, RNN có thể sử dụng được thông tin của một văn bản rất dài, tuy nhiên thực tế thì nó chỉ có thể nhớ được một vài bước trước đó Về cơ bản một mạng RNN có dạng như Hình 3.1 dưới đây [31], [32], [33], [12]:
Hình 3.2: Mạng nơron hồi quy RNN [12]
Mô hình trên mô tả quá trình triển khai nội dung của một RNN Triển khai ở đây có thể hiểu đơn giản là ta vẽ ra một mạng nơron chuỗi tuần tự Ví dụ ta có một câu gồm bảy từ “Thông tin ngành Công nghệ thông tin”, thì mạng nơron được triển khai sẽ gồm sáu tầng nơron tương ứng với mỗi từ một tầng Lúc đó việc tính toán bên trong RNN được thực hiện như sau:
𝑋𝑡 là đầu vào tại bước 𝑡 Ví dụ, 𝑋 1 là một vec-tơ one-hot tương ứng với từ thứ 2 của câu
𝑆𝑡 là trạng thái ẩn tại bước 𝑡 Nó chính là bộ nhớ của mạng 𝑆𝑡 được tính toán dựa trên cả các trạng thái ẩn phía trước và đầu vào tại bước đó: 𝑆𝑡 = ∫(𝑈𝑥𝑡 + 𝑊𝑠𝑡 − 1) Hàm 𝑓 thường là một hàm phi tuyến tính như tang hyperbolic (tanh) hay ReLu Để làm phép toán cho phần tử ẩn đầu tiên ta cần khởi tạo thêm 𝑆 −1 thường giá trị khởi tạo được gắn bằng 0
𝑂 𝑡 là đầu ra tại bước 𝑡 Ví dụ, ta muốn dự đoán từ tiếp theo có thể xuất hiện trong câu thì 𝑂 𝑡 chính là một vec-tơ xác suất các từ trong danh sách từ vựng của ta 𝑂 𝑡 𝑆𝑜𝑓𝑡𝑚𝑎𝑥(𝑉𝑠 𝑡 )
RNN hai chiều (Bidirectional RNN - BiRNN) là một biến thể của RNN, trong đó mạng được thiết kế để xử lý thông tin theo cả hai hướng, từ trái sang phải và từ phải sang trái Với mỗi thời điểm, mạng tính toán trạng thái ẩn của đầu vào bằng cách sử dụng thông tin từ cả hai phía của chuỗi, cho phép mạng có khả năng học được cả tính phụ thuộc từ phía trước và phía sau của chuỗi dữ liệu [34], [12] Để đạt được điều này, BiRNN sử dụng hai mạng RNN độc lập, một để tính toán trạng thái ẩn từ trái sang phải và một để tính toán từ phải sang trái Sau đó, kết quả của hai mạng này được kết hợp lại để tạo ra kết quả cuối cùng của BiRNN như Hình 3.2
Hình 3.3: Mạng RNN hai chiều [12]
BiRNN được sử dụng rộng rãi trong các ứng dụng xử lý ngôn ngữ tự nhiên và thị giác máy tính, nơi nó có thể học được cả tính phụ thuộc từ trái sang phải và từ phải sang trái của văn bản hoặc hình ảnh BiRNN cũng đã được kết hợp với các kiến trúc mạng khác để tạo ra các mô hình mạng phức tạp hơn, nhưng điều quan trọng là phải chú ý đến vấn đề khối lượng tính toán và quản lý các tham số
3.1.2.2 RNN hai chiều sâu (Deep Bidirectional RNN)
RNN hai chiều sâu (Deep Bidirectional RNN) là một biến thể khác của RNN hai chiều, trong đó mạng được mở rộng với nhiều lớp ẩn Các lớp ẩn được xếp chồng lên nhau để tạo ra một kiến trúc mạng nhiều lớp, giúp mạng học được các đặc trưng phức tạp hơn từ các chuỗi dữ liệu đầu vào [35]
Hình 3.4: Mạng RNN hai chiều sâu [35]
RNN hai chiều sâu có thể được sử dụng để giải quyết nhiều vấn đề trong xử lý ngôn ngữ tự nhiên, chẳng hạn như phân loại văn bản, dịch máy, nhận dạng giọng nói và sinh văn bản tự động Tuy nhiên, mạng này có thể tốn nhiều thời gian và tài nguyên để huấn luyện, đặc biệt là với các dữ liệu lớn
Các ứng dụng của RNN hai chiều sâu đã mang lại những kết quả ấn tượng trong các bài toán xử lý ngôn ngữ tự nhiên, đặc biệt là khi phải xử lý các chuỗi dữ liệu có độ dài lớn và các phụ thuộc xa trong chuỗi
Tuy nhiên, việc huấn luyện RNN có thể gặp phải các vấn đề về gradient bị phân tán hoặc phổ biến khi mạng được huấn luyện trên các chuỗi dài Để giải quyết vấn đề, các biến thể của RNNs đã được phát triển, bao gồm LSTM và GRU, giúp mạng có khả năng học được các phụ thuộc theo chuỗi mà không bị ảnh hưởng bởi các vấn đề này
3.1.3 Mạng bộ nhớ dài-ngắn LSTM
LSTM (Long Short-Term Memory) là một dạng của mạng nơron hồi quy (RNN) được thiết kế để giải quyết vấn đề mất mát thông tin khi xử lý các chuỗi dữ liệu dài LSTM sử dụng các đơn vị bộ nhớ đặc biệt để lưu giữ thông tin quan trọng trong quá trình xử lý dữ liệu và cho phép thông tin được lưu giữ và truyền đi trong suốt quá trình huấn luyện mạng [36]
Mỗi đơn vị bộ nhớ trong LSTM bao gồm một cổng đầu vào, một cổng đầu ra và một cổng quên Cổng đầu vào quyết định thông tin nào sẽ được lưu trữ vào bộ nhớ, cổng đầu ra quyết định thông tin nào sẽ được truyền ra ngoài, và cổng quên quyết định thông tin nào sẽ bị xóa khỏi bộ nhớ
Framework Chatbot
3.2.1 Các Framework Chatbot phổ biến hiện nay
Cùng với sự phát triển của trí tuệ nhân tạo và công nghệ xử lý ngôn ngữ tự nhiên, Chatbot đang trở thành một phần không thể thiếu trong việc tương tác với người dùng trực tuyến Với sự đa dạng về mặt chức năng và tính năng, các Framework Chatbot hiện nay đang được sử dụng rộng rãi để phát triển các Chatbot trong việc cung cấp dịch vụ, hỗ trợ người dùng, hoặc thậm chí là trong lĩnh vực giáo dục và y tế Và hiện nay trên thị trường có nhiều Framework Chatbot phổ biến như Dialogflow, Microsoft Bot Framework, IBM Watson Assistant, Rasa, Amazon Lex, và nhiều hơn nữa…
3.2.2 Ưu nhược điểm của các Framework Chatbot
Với sự đa dạng về mặt chức năng và tính năng của các Framework Chatbot hiện nay nên việc chọn ra một Framework phù hợp cho mục đích sử dụng là điều cực kỳ quan trọng và có thể gặp phải nhiều thách thức Bảng 3.2 dưới đây sẽ giúp hiểu rõ hơn về từng Framework và có thể chọn ra Framework phù hợp
Framework Ưu điểm Nhược điểm
- Dễ sử dụng với giao diện đồ họa trực quan
- Có tích hợp sẵn với Google Assistant
- Hỗ trợ nhiều ngôn ngữ lập trình
- Khả năng tùy chỉnh bị hạn chế
- Phụ thuộc vào dịch vụ của Google
- Cung cấp nhiều công cụ phát triển
- Hỗ trợ nhiều kênh nhắn tin
- Có thể triển khai trên nhiều nền tảng
- Phí dịch duy trì cao
- Có khả năng tự học và tùy chỉnh cao
- Hỗ trợ nhiều ngôn ngữ lập trình
- Dễ tích hợp với các dịch vụ của IBM
- Không hỗ trợ nhiều kênh nhắn tin như các Framework khác
Framework Ưu điểm Nhược điểm
- Có tích hợp sẵn với AWS và các dịch vụ của Amazon
- Dễ tích hợp với các ứng dụng của Amazon
- Hỗ trợ xử lý ngôn ngữ tự nhiên bằng trí tuệ nhân tạo
- Phí sử dụng khá cao
- Tùy chỉnh bị hạn chế
- Dễ sử dụng với giao diện kéo và thả
- Hỗ trợ nhiều nền tảng như Facebook Messenger, Instagram, và trang web
- Giá cao khi sử dụng tính năng cao cấp
- Miễn phí và mã nguồn mở
- Tùy chỉnh cao và linh hoạt
- Hỗ trợ nhiều kênh nhắn tin
- Yêu cầu có kiến thức về lập trình và xử lý ngôn ngữ tự nhiên
Bảng 3.2: Ưu nhược điểm của các Framework Chatbot phổ biến
Từ bảng so sánh ưu nhược điểm của các Framework Chatbot trên, cho thấy với ưu điểm là miễn phí, mã nguồn mở, khả năng tùy chỉnh cao và linh hoạt và hỗ trợ nhiều kênh tin nhắn của Rasa Framework Đồng thời Framework này cũng có một cộng đồng phát triển rộng lớn và hỗ trợ tài liệu chi tiết [42], vì vậy tác giả luận văn lựa chọn Rasa Framework để phát triển Chatbot tư vấn tuyển sinh tại trường Đại học Phan Thiết.
Rasa Framework
Rasa là một nền tảng phát triển Chatbot mã nguồn mở, cho phép người dùng tạo ra các Chatbot tự động phản hồi dựa trên các mô hình ngôn ngữ tự nhiên Nó cung cấp một cách tiếp cận hiệu quả cho việc xây dựng các Chatbot chuyên nghiệp với khả năng phản hồi tự động, phân tích dữ liệu, và giải quyết các vấn đề liên quan đến ngôn ngữ tự nhiên [42]
Rasa được xây dựng với hai thành phần chính là Rasa NLU và Rasa Core Rasa NLU là một công cụ dành cho việc xử lý ngôn ngữ tự nhiên, được sử dụng để phân tích và hiểu được các yêu cầu và truy vấn từ phía người dùng Rasa Core là một công cụ cho việc tạo ra các luồng trò chuyện phức tạp, cho phép Chatbot có thể phản hồi đúng với các yêu cầu của người dùng [43]
Rasa có một cộng đồng phát triển mạnh mẽ (đến tháng 2/2023 đã có hơn 25 triệu lượt tải về) và tài liệu hướng dẫn chi tiết, vì vậy người dùng có thể dễ dàng tìm kiếm các nguồn tài liệu và hỗ trợ từ cộng đồng [42]
Tóm lại, Rasa là một nền tảng Chatbot mạnh mẽ và linh hoạt, cung cấp các công cụ để xây dựng các Chatbot thông minh và tùy chỉnh được nhiều tính năng
3.3.2 Các thành phần trong Rasa
Rasa là một nền tảng Chatbot mã nguồn mở dựa trên ngôn ngữ Python, cho phép các nhà phát triển xây dựng các ứng dụng trò chuyện tự động, hỗ trợ người dùng, trợ lý ảo và các ứng dụng liên quan đến Chatbot Theo Hình 3.10, Rasa bao gồm hai thành phần chính là Rasa NLU và Rasa Core [42], [14]
Hình 3.10: Các thành phần chính trong Rasa [14]
+ Rasa NLU là một công cụ xử lý ngôn ngữ tự nhiên để giải quyết các vấn đề nhận diện ý định và trích xuất thông tin từ câu hỏi Nó giúp Chatbot hiểu được ý định của người dùng và các thông tin cụ thể liên quan đến yêu cầu của người dùng [44] Ví dụ, nếu học sinh hỏi Chatbot về ngành Công nghệ thông tin của trường Đại học Phan Thiết, Rasa NLU sẽ giúp Chatbot hiểu được ý định của người dùng và trích xuất thông tin liên quan đến ngành Công nghệ thông tin (mã ngành, điều kiện xét tuyển, điểm chuẩn năm trước, hồ sơ xét tuyển…) để cung cấp cho học sinh
Ngoài ra, Rasa NLU còn giúp Chatbot nâng cao khả năng tương tác với người dùng bằng cách phát hiện ngữ cảnh và ngôn ngữ tự nhiên, từ đó đưa ra những câu trả lời phù hợp và tự nhiên hơn Điều này giúp tăng tính tương tác và trải nghiệm người dùng với Chatbot, giúp cho Chatbot trở nên thông minh và dễ sử dụng hơn [20]
Tóm lại, Rasa NLU đóng vai trò quan trọng trong việc xây dựng các Chatbot thông minh và tùy chỉnh được nhiều tính năng, giúp Chatbot có khả năng hiểu và phản hồi một cách logic và tự nhiên, tăng tính tương tác và trải nghiệm người dùng
+ Rasa Core là một công cụ xử lý diễn đạt tự nhiên, cho phép xây dựng các luồng trò chuyện giữa Chatbot và người dùng Rasa Core cho phép Chatbot phản hồi lại người dùng một cách tự nhiên và logic, giúp tạo ra một trải nghiệm tương tác chất lượng cao
Nó có khả năng tự động học và cải thiện các kịch bản phản hồi dựa trên phản hồi của người dùng, giúp tăng tính tương tác và trải nghiệm của người dùng với Chatbot
Ngoài ra, Rasa Core còn cung cấp nhiều tính năng hữu ích cho các Chatbot như tích hợp các API và hệ thống thứ ba, quản lý lịch trình, gửi email và nhiều hơn nữa Điều này giúp Chatbot có thể giải quyết nhiều vấn đề phức tạp và cung cấp cho người dùng những thông tin cần thiết và hữu ích
Một trong những ưu điểm của Rasa Core là khả năng tùy chỉnh được các kịch bản phản hồi dựa trên nhu cầu cụ thể của dự án Chatbot, giúp Chatbot trở nên đa dạng và linh hoạt hơn Đồng thời, Rasa Core hỗ trợ nhiều ngôn ngữ, giúp cho các dự án Chatbot đa ngôn ngữ có thể triển khai một cách dễ dàng và hiệu quả
Ngoài hai thành phần chính này, Rasa còn bao gồm các thành phần bổ sung như Rasa X (giao diện người dùng để xem, kiểm tra và phân tích các cuộc trò chuyện của Chatbot) và Rasa Action (cung cấp các hành động và phản hồi của Chatbot) Tất cả các thành phần này cùng hoạt động với nhau để tạo ra một Chatbot thông minh và linh hoạt, đáp ứng được nhiều nhu cầu của các dự án Chatbot phức tạp
Rasa Framework có bốn thành phần quan trọng là: Trình thông dịch (Interpretter), Trình theo dõi (Tracer), Chính sách (Policy), Hành động (Action) [45], [14], [12] như Hình 3.11
Hình 3.11: Kiến trúc của Rasa [45]
+ Interpreter (Trình thông dịch): Thành phần này chịu trách nhiệm xử lý các câu hỏi từ người dùng và chuyển đổi chúng thành dạng dữ liệu có thể được xử lý bởi Rasa Interpreter có nhiệm vụ phân tích ngôn ngữ tự nhiên và trích xuất thông tin quan trọng từ câu hỏi của người dùng, giúp Rasa hiểu được ý định của người dùng
+ Tracker (Trình theo dõi): Thành phần này giúp Rasa theo dõi lịch sử các hoạt động và tương tác của người dùng, bao gồm các thông tin về ý định, thực thể và trạng thái của cuộc trò chuyện Tracker lưu trữ các thông tin này trong bộ nhớ để giúp Rasa hiểu rõ hơn về ngữ cảnh của cuộc trò chuyện và tạo ra các phản hồi tốt hơn
XÂY DỰNG CHATBOT HỖ TRỢ TƯ VẤN TUYỂN SINH 36
Giới thiệu bài toán
Trong bối cảnh công nghệ ngày càng phát triển, việc sử dụng Chatbot để hỗ trợ tư vấn tuyển sinh đã trở thành một xu hướng mới của các trường đại học và trường Đại học Phan Thiết cũng không phải ngoại lệ
Việc sử dụng Chatbot trong tư vấn tuyển sinh của các trường đại học mang lại nhiều lợi ích, từ đó cải thiện trải nghiệm người dùng và giảm tải cho đội ngũ nhân viên tư vấn tuyển sinh [49] Nhưng để xây dựng và triển khai cũng là một thách thức đáng kể vì nó đòi hỏi việc xử lý và phân tích các thông tin phức tạp về chương trình học, yêu cầu đầu vào, hồ sơ tuyển sinh và các chính sách học bổng Ngoài ra, Chatbot cũng phải có khả năng tương tác với người dùng một cách trực quan, tự nhiên và hiệu quả để giải đáp các câu hỏi và cung cấp thông tin chi tiết cho phụ huynh, học sinh
Chính vì vậy, để xây dựng một Chatbot hỗ trợ tư vấn tuyển sinh chất lượng, cần phải đảm bảo các yếu tố như khả năng hiểu và phân tích ngôn ngữ tự nhiên, tương tác với người dùng một cách thân thiện và hiệu quả, cập nhật các thông tin mới nhất về tuyển sinh, đào tạo của trường Nhà trường
Cùng với sự phát triển của các công nghệ như trí tuệ nhân tạo, xử lý ngôn ngữ tự nhiên và học sâu, việc xây dựng một Chatbot hỗ trợ tư vấn tuyển sinh tại trường đại học đã trở nên khả thi hơn bao giờ hết Hiện nay có rất nhiều nền tảng hỗ trợ và phát triển Chatbot tốt như: Chatfuel, Manychat, Harafunnel, Messnow…Qua quá trình nghiên cứu, phân tích so sánh ưu nhược điểm của từng Framework thì thấy Rasa là nền tảng tốt và phù hợp nhất với bài toán này Vì thế chương này sẽ tập trung mô tả chi tiết các bước xây dựng Chatbot tư vấn tuyển sinh tại trường Đại học Phan Thiết dựa trên nền tảng Rasa.
Xây dựng chương trình
Như đã đề cập ở trên, để xây dựng một Chatbot hỗ trợ tư vấn tuyển sinh chất lượng, cần phải đảm bảo các yếu tố như khả năng hiểu và phân tích ngôn ngữ tự nhiên, cập nhật các thông tin mới nhất về tuyển sinh, đào tạo của trường Nhà trường Do vậy việc xây dựng dữ liệu cho Chatbot là cực kỳ quan trọng Dữ liệu được sử dụng trong luận văn được thu thập phân tích từ đề án tuyển sinh năm 2023 của Nhà trường và tham khảo từ các chuyên gia tư vấn tuyển sinh để xác định các Intent, Entity và tạo các mẫu câu cho các ý định và Entity đó Xác định các khung kịch bản và trường hợp sử dụng cho các ý định và Entity đã xác định từ đó đưa ra phản hồi cho học sinh
4.2.1.1 Xác định các ý định (Intent)
Trong việc xây dựng Rasa Chatbot, việc xác định các Intent (ý định) là rất quan trọng Các Intent sẽ giúp Chatbot hiểu được người dùng muốn gì và phản hồi phù hợp Thực tế, trong quá trình xây dựng Chatbot tư vấn tuyển sinh tác giả cũng đã xác định được một số Intent quan trọng cụ thể như: nganhxettuyen, dieukienxettuyen, dieukienxettuyen_chung, dieukienxettuyen_hocba, dieukienxettuyen_thpt, dieukienxettuyen_dgnl, phuongthucxettuyen, diemchuannamtruoc, chinhsachhocbong, hosoxettuyen, linkxettuyen…
Hình 4.1: Intent trong Chatbot tư vấn tuyển sinh
Bảng 4.1 dưới đây là một số Intent quan trọng
- Em muốn hỏi các ngành trường đang tuyển sinh ạ
- Năm nay trường tuyển sinh những ngành nào ạ
- Em muốn biết các ngành tuyển sinh năm nay của trường ạ
- Nhà trường xét tuyển như thế nào ạ
- Phương thức xét tuyển như thế nào ạ
- Phương thức xét tuyển của trường là gì vậy ạ?
- Em muốn biết cách thức xét tuyển vào trường thì phải làm sao ạ?
- Trường có thể cho em biết về phương thức xét tuyển không ạ?
Intent Example Điều kiện xét tuyển chung
- Điều kiện xét tuyển vào trường như thế nào ạ
- Để xét tuyển vào trường em cần điều kiện gì Điều kiện xét tuyển bằng phương thức xét học bạ
- Điều kiện xét học bạ là gì vậy ạ
- Xét tuyển bằng học bạ thì tiêu chí như thế nào
- Tiêu chí xét học bạ là gì vậy ạ
- Để xét học bạ em cần điều kiện gì Điều kiện xét kết quả kỳ thi tốt nghiệpTHPT
- Điều kiện xét kết quả kỳ thi THPT là gì vậy ạ
- Em muốn xét tuyển bằng kết quả kỳ thi THPT
- Em muốn xét tuyển bằng kết quả kỳ thi tốt nghiệp THPT thì tiêu chí như thế nào
- Tiêu chí xét kết quả kỳ thi THPT là gì vậy ạ
- Để xét bằng kết quả kỳ thi THPT thì em cần những điều kiện gì Điều kiện xét tuyển bằng kết quả kỳ thi ĐGNL
- Điều kiện xét bằng kết quả kỳ thi Đánh giá năng lực là gì vậy ạ
- Em muốn xét tuyển bằng kết quả kỳ thi Đánh giá năng lực thì tiêu chí như thế nào Điểm chuẩn năm trước
- Điểm chuẩn năm ngoái là mấy diểm
- Em muốn biết điểm chuẩn năm trước
- Điểm chuẩn năm 2022 là mấy diểm
- Trường có chính sách học bổng gì không ạ
- Em muốn tìm hiểu các loại học bổng tuyển sinh của nhà trường
- Em được học sinh giỏi năm lớp 12 thì có được học bổng tuyển sinh nào không ạ
- Hồ sơ xét tuyển vào trường gồm những gì
- Cho em hỏi các hồ sơ giấy tờ cần để xét tuyển vào trường á
- Để xét tuyển vào trường cần những hồ sơ giấy tờ gì
- Em muốn biết hồ sơ xét tuyển gồm những gì
Link đăng ký xét tuyển trực tuyến
- Cho em xin link đăng ký xét tuyển trực tuyến
- Em có thể đăng ký xét tuyển trực tuyến không
- Xét tuyển trực tuyến có được không
Bảng 4.1: Một số Intent quan trọng trong Chatbot của trường Đại học Phan Thiết
Xây dựng Entity (thực thể) là một bước quan trọng trong việc phát triển Chatbot, bởi vì nó giúp Chatbot hiểu được ý định của người dùng và trả lời một cách chính xác và hiệu quả hơn Entity có thể hiểu đơn giản là các đối tượng, thuộc tính, hoặc giá trị mà người dùng muốn Chatbot hiểu và xử lý Để xây dựng Entity trong Chatbot, đầu tiên cần phân tích cú pháp của người dùng, tìm các từ khóa liên quan đến Entity, ví dụ như: ngành đào tạo, phương thức xét tuyển, điều kiện xét tuyển, học phí Sau đó, ta cần định nghĩa các loại Entity phù hợp với mục đích sử dụng của Chatbot và các yêu cầu của người dùng
Tiếp theo, cần tạo ra một tập dữ liệu đủ lớn và đa dạng để huấn luyện Chatbot nhận dạng và trích xuất thông tin từ các cú pháp khác nhau
Khi đã hoàn thành việc xây dựng Entity, Chatbot sẽ có khả năng nhận dạng và xử lý các yêu cầu của học sinh một cách nhanh chóng và chính xác hơn Một số Entities trong tư vấn tuyển sinh bao gồm:
+ Ngành quan tâm: Đây là một Entity quan trọng trong tư vấn tuyển sinh Nó bao gồm 16 ngành đào tạo khác nhau tại Trường Đại học Phan Thiết như: Công nghệ thông tin, Kế toán, Quản trị kinh doanh, Tài chính – Ngân hàng, Ngôn ngữ Anh, Luật kinh tế, Luật, Kỹ thuật ô tô, Kỹ thuật xây dựng, Kỹ thuật cơ khí, Kỹ thuật xét nghiệm y học, Truyền thông đa phương tiện, Quản trị khách sạn, Quản trị dịch vụ du lịch và lữ hành, Quản trị nhà hàng và dịch vụ ăn uống, Logistics và quản lý chuỗi cung ứng
+ Phương thức xét tuyển: Đây là Entity để lưu trữ các phương thức xét tuyển của Nhà trường
+ Điều kiện xét tuyển: Đây là Entity để lưu trữ các điều kiện xét tuyển tương ứng với từng phương thức xét tuyển của Nhà trường
+ Khu vực ưu tiên: Entity này sẽ lưu trữ thông tin về khu vực ưu tiên của học sinh, bao gồm khu vực 1, 2, 3…
+ Học phí: Đây là Entity để xác định chi phí đào tạo của trường và ngành học, bao gồm học phí, các khoản phí khác
+ Điểm chuẩn: Đây là Entity để xác định điểm chuẩn năm trước (nếu thời điểm tư vấn chưa có điểm chuẩn) vào các ngành đào tạo của Nhà trường
Các Entities này sẽ được sử dụng để giúp Chatbot nhận diện thông tin từ người dùng và cung cấp các thông tin tuyển sinh liên quan theo yêu cầu của người dùng
Hình 4.2: Một số Entities trong UPT_BOT
4.2.1.3 Xây dựng câu trả lời cho Chatbot (Utter) Ứng với từng câu hỏi của thí sinh, cần phải xây dựng các mẫu phản hồi cho bot Tuy nhiên để tạo được tính tự nhiên cho Chatbot trong cuộc trò chuyện, cần phải xây dựng nhiều câu phản hồi để bot lấy ngẫu nhiên và trả lời cho học sinh, Hình 4.3
Hình 4.3: Mẫu trả lời cho intent hỏi các phương thức xét tuyển
Ngoài ra, đối với những câu hỏi phức tạp và chuyên sâu, ta cũng có thể tạo câu trả lời cho Bot thông qua Action [50] Nó có thể cung cấp thông tin trả lời cho học sinh thông qua việc xác định các Intent, Slots…trong câu hỏi của học sinh Có ba loại hành động trong Rasa Core:
+ Utterance Action Để xác định một hành động phát biểu (ActionUtterTemplate), tác giả thêm một phản hồi của Chatbot vào domain.yml bắt đầu bằng utter_:
Hình 4.4: Trả lời ý định hỏi các ngành tuyển sinh (utter_hoinganhtuyensinh)
Thông thường, bắt đầu tên của một hành động phát biểu bằng utter_ Tuy nhiên nếu tiền tố này bị thiếu, ta vẫn có thể sử dụng phản hồi (response) trong các hành động tùy chỉnh của mình (Custom Actions)
Trong Rasa, Custom Action là một cách để xử lý các yêu cầu của người dùng mà không thể được giải quyết bằng cách trả lời với các câu trả lời mẫu [51] Custom Actions được triển khai bằng cách tạo một lớp Action (thường được đặt tên theo tên của Action) và ghi đè phương thức run() của lớp này
Trong phương thức run(), có thể thực hiện các hoạt động như gọi API, truy vấn cơ sở dữ liệu lấy học phí theo ngành thí sinh quan tâm… dựa trên các thông tin nhận được từ người dùng Sau đó, kết quả được trả về bằng cách sử dụng các template tin nhắn đã được định nghĩa trong tệp domain.yml
Hình 4.5: Chatbot phản hồi học sinh thông qua Action
Trong Rasa, Default Actions (hành động mặc định) là các hành động được tích hợp sẵn trong Framework như lắng nghe người dùng, khởi động lại hội thoại hoặc trả lời mặc định khi không xác định được ý định của học sinh [52]
Hình 4.6: Default Action trong UPT BOT
4.2.1.4 Xây dựng Khung kịch bản trò chuyện và các Quy tắc
Khi xây dựng một Chatbot, việc xây dựng kịch bản là một bước quan trọng không thể bỏ qua Kịch bản là một tài liệu được sử dụng để mô tả chi tiết các tình huống mà Chatbot sẽ gặp phải và cách Chatbot sẽ phản hồi với những tình huống đó Kịch bản giúp xác định được các Intent, Entity và các hành động cụ thể mà Chatbot sẽ phải thực hiện trong quá trình tương tác với người dùng
Do vậy để xây dựng kịch bản, cần phải bắt đầu bằng cách định nghĩa các intent của người dùng, tức là các ý định mà người dùng có thể muốn truyền đạt cho Chatbot Sau đó, cần xác định các Entity, tức là các thực thể có thể có trong các input của người dùng mà Chatbot cần phải hiểu và xử lý
Kết quả thực nghiệm
Để tiến hành thử nghiệm Chatbot, tác giả đã chuẩn bị các tập dữ liệu và huấn luyện đào tạo với tập dữ liệu đó Đồng thời, xây dựng một môi trường thực nghiệm để kiểm tra tính năng và hiệu quả của Chatbot với các bước cần thiết để thực nghiệm Chatbot khác nhau
Hình 4.12: Thực nghiệm huấn luyện UPT BOT
4.3.1 Môi trường thực nghiệm Để thử nghiệm Chatbot, tác giả xây dựng một môi trường thực nghiệm bao gồm hệ thống phần mềm, phần cứng và môi trường mạng Môi trường này sẽ giúp cho Chatbot có thể được triển khai và chạy trên một môi trường thực tế
▪ Hệ điều hành: Windows 11, 64 bit, CPU Core I7, Ram 16Gb
▪ Giao diện người dùng: Webapp (php, Ajax, Jquery, Html)
Trong thực nghiệm, cho thấy việc triển khai Chatbot trên máy chủ đã được thực hiện thành công, và kỹ thuật NAT port đã được sử dụng để mở cổng 80, cho phép phụ huynh và học sinh có thể truy cập vào web tư vấn tuyển sinh của nhà trường từ bên ngoài Những hình ảnh này chứng minh tính khả thi và hiệu quả của hệ thống Chatbot để có thể triển khai trong môi trường thực tế
Trong hình ảnh, có thể thấy giao diện web tư vấn tuyển sinh của nhà trường, với khung Chatbot hiển thị trên trang chủ của trang web Phụ huynh và học sinh có thể dễ dàng tương tác với Chatbot thông qua giao diện người dùng thân thiện và trực quan Các cuộc trò chuyện với Chatbot được ghi lại vào CSDL MySQL và đưa vào phân tích để cải thiện khả năng phản hồi của Chatbot theo thời gian thực
Hình 4.13: Thực nghiệm Chatbot với ý định hỏi phương thức xét tuyển
Hình 4.14: Thực nghiệm Chatbot với ý định hỏi điều kiện xét tuyển
Hình 4.15: Thực nghiệm Chatbot với ý định hỏi học phí
Hình 4.16: Thực nghiệm Chatbot với ý định hỏi tổ hợp môn xét tuyển
Hình 4.17: Thực nghiệm Chatbot với ý định hỏi đường link xét tuyển trực tuyến
Hình 4.18: Thực nghiệm Chatbot với ý định hỏi hồ sơ xét tuyển
Hình 4.19: Thực nghiệm Chatbot với ý định hỏi các chính sách học bổng tuyển sinh
Hình 4.20: Thực nghiệm Chatbot với ý định hỏi điều kiện xét tuyển bằng học bạ nhưng
Chatbot trả lời điều kiện xét tuyển chung
Hình 4.21: Thực nghiệm Chatbot với ý định hỏi điều kiện xét tuyển bằng học bạ sau khi huấn luyện lại
Thông qua hình ảnh thực nghiệm, có thể thấy tính khả thi của Chatbot và độ chính xác của câu trả lời từ Bot được cải thiện sau khi được huấn luyện nhiều lần với tập dữ liệu đủ lớn
4.3.3 Phương pháp đánh giá Để có cái nhìn tổng quan về độ chính xác của mô hình Chatbot và từ đó có thể cải thiện mô hình Chatbot một cách hiệu quả hơn, tác giả sử dụng Intent Confusion matrix (ma trận nhầm lẫn) để đánh giá độ chính xác của mô hình Chatbot trong việc dự đoán các ý định (intent) của người dùng
Ma trận nhầm lẫn được xây dựng dựa trên kết quả dự đoán và kết quả thực tế của mô hình Chatbot Các giá trị trong ma trận nhầm lẫn bao gồm: true positive (TP), false positive (FP), true negative (TN), false negative (FN)
Cụ thể, trong bài toán tư vấn tuyển sinh, ma trận nhầm lẫn được sử dụng để đánh giá độ chính xác của mô hình Chatbot trong việc dự đoán các ý định cần hỏi của học sinh
Bằng cách sử dụng ma trận nhầm lẫn, tác giả có thể đánh giá độ chính xác của mô hình Chatbot và tìm cách cải thiện mô hình Chatbot bằng cách cung cấp thêm dữ liệu và huấn luyện lại để mô hình học tốt hơn Sau khi thử nghiệm lần cuối, thì độ chính xác của Chatbot đạt khoảng 92.2% (1)
Hình 4.22: Độ chính xác của UPT BOT trong lần thử nghiệm
Hình 4.23: Ma trận nhầm lẫn ý định (Intent) khi thực nghiệm Chatbot
1 Bảng Intent của Chatbot tại Phụ lục
Từ ma trận trên, cho thấy bất kỳ mẫu nào đã được dự đoán không chính xác sẽ được ghi lại để gỡ lỗi dễ dàng hơn
Hình 4.24: Biểu đồ đo tin cậy cho các dự đoán
Biểu đồ giúp ta hình dung độ tin cậy cho tất cả các dự đoán, với các dự đoán đúng được hiển thị bằng các thanh bar bên trái biểu đồ (correct) và với các dự đoán sai được hiển thị bằng các thanh bar bên phải biểu đồ (wrong) Việc cải thiện chất lượng dữ liệu huấn luyện sẽ di chuyển các thanh biểu đồ bên trái lên trên biểu đồ và các thanh biểu đồ bên phải xuống dưới
Từ ma trận nhầm lẫn này, ta có thể tính toán các chỉ số đánh giá hiệu quả của Chatbot, như độ chính xác (Accuracy), độ phủ (Recall), độ F1, và độ chính xác trung bình cho từng ý định Để tính toán các chỉ số đánh giá hiệu quả của Chatbot từ ma trận nhầm lẫn, ta có thể sử dụng các công thức bên dưới, trong đó:
+ TP: Trường hợp mà mô hình phân loại đúng một mẫu dữ liệu thuộc vào lớp positive (thực tế là positive);
+ FP: Trường hợp thuật toán dự đoán sai và không nhận diện được các mẫu thuộc positive class;
+ TN: Trường hợp mà mô hình phân loại đúng một mẫu dữ liệu thuộc vào lớp negative (thực tế là negative);
+ FN: Trường hợp thuật toán dự đoán sai và nhận diện nhầm các mẫu thuộc negative class là positive class
4.3.3.1 Độ chuẩn xác (Accuracy) Độ chuẩn xác (Accuracy) là một chỉ số đánh giá đơn giản nhất để đo lường hiệu quả của một mô hình Nó được tính bằng tỷ lệ giữa số lượng dự đoán chính xác và tổng số lượng dữ liệu đầu vào [53], [54], [55]:
(TP + TN + FP + FN) Giá trị của Accuracy càng cao thì Chatbot càng chính xác trong việc phản hồi lại các câu hỏi từ người dùng Chỉ số này thường được sử dụng khi các lớp của dữ liệu cân bằng nhau Tuy nhiên, độ chính xác không phải lúc nào cũng phản ánh đúng hiệu quả của mô hình, đặc biệt khi các lớp dữ liệu không cân bằng
4.3.3.2 Độ phủ (Recall) và độ chính xác (Precision) Độ phủ (Recall) và độ chính xác (Precision) là hai chỉ số quan trọng trong đánh giá hiệu quả của mô hình Độ phủ (Recall) là tỉ lệ giữa số lượng truy vấn được phân loại đúng trong một ý định (Intent) và tổng số truy vấn thực tế thuộc ý định đó Nó cho biết mức độ mô hình có thể tìm ra được tất cả các truy vấn thực tế thuộc một ý định cụ thể hay không Công thức tính độ phủ [53], [54], [55]:
(TP + FN) Độ chính xác (Precision) đánh giá khả năng của mô hình trong việc xác định đúng các trường hợp dương
Precision được tính bằng số lượng các trường hợp dự đoán đúng chia cho tổng số trường hợp được dự đoán là đúng Nó thể hiện tỷ lệ phần trăm của các trường hợp dự đoán đúng trên tổng số các trường hợp được dự đoán là đúng [53], [54] Recall là một chỉ số đánh giá hiệu suất của mô hình dự đoán, đo lường tỷ lệ các trường hợp dự đoán đúng so với tất cả các trường hợp có thật trong dữ liệu Recall được tính theo công thức:
Đánh giá
Sau khi thực nghiệm với 35 câu hỏi của thí sinh dành cho Bot 2 (32 câu xác định đúng và 3 câu xác định sai), tác giả tính toán được bảng độ phủ và độ chính xác, F1- Score bên dưới:
Từ số liệu tính toán được, có thể thấy được rằng:
+ Việc xác định chính xác các ý định là rất quan trọng đối với Chatbot Nếu là bài toán miền đóng, cần phải xác định các ý định một cách rõ ràng, thu thập và xử lý đầy đủ dữ liệu, gán nhãn cho chúng và tiến hành huấn luyện mô hình
+ Xây dựng dữ liệu, viết các kịch bản và quá trình huấn luyện dữ liệu là cực kỳ quan trọng để đạt được độ chính xác cao cho Chatbot
+ Dùng ngôn ngữ địa phương, và đa dạng cách nhập thông điệp của học sinh có thể gây khó khăn cho Bot trong việc hiểu ý định của học sinh
+ Kết quả thử nghiệm cho thấy việc sử dụng Chatbot để tư vấn tuyển sinh là khả thi và có tính ứng dụng cao, có thể áp dụng ngay trong thực tế
2 Bảng hội thoại Chatbot tại Phụ lục
Trong chương này, tác giả luận văn đã thực hiện xây dựng dữ liệu cho Chatbot bằng cách xác định các ý định (Intent), xây dựng Entity và các trả lời cho Chatbot (Utter), xây dựng khung kịch bản trò chuyện (Stories) và các quy tắc (Rules) Sau đó, tác giả đã cài đặt Rasa Framework và sử dụng nó để xây dựng Chatbot hỗ trợ tư vấn tuyển sinh tại trường Đại học Phan Thiết
Kết quả của chương trình thực nghiệm cho thấy Chatbot đã được triển khai thành công trên trang web tuyển sinh của trường Đại học Phan Thiết và nhận được sự quan tâm của rất nhiều từ phía nhà trường và học sinh Chatbot hỗ trợ các thông tin liên quan đến tuyển sinh như điểm chuẩn, hồ sơ xét tuyển, các chương trình đào tạo, chi tiết về các ngành học và các hoạt động của trường Đại học Phan Thiết
Kết quả này chứng tỏ rằng việc triển khai Chatbot để hỗ trợ tư vấn tuyển sinh là rất khả thi và hiệu quả trong việc cung cấp thông tin cho người dùng Các kết quả của nghiên cứu này có thể được áp dụng để phát triển Chatbot hỗ trợ các nhu cầu trả lời các hoạt động đào tạo tại trường.