1. Trang chủ
  2. » Luận Văn - Báo Cáo

[LUẬN VĂN THẠC SĨ] Xây dựng hệ tư vấn tuyển sinh tự động cho Trường Đại học Phan Thiết

101 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU

Bà Rịa - Vũng Tàu, tháng 9 năm 2023

Trang 3

LỜI CAM ĐOAN

Tôi tên Lê Văn Sáng – Học viên cao học chuyên ngành Công nghệ thông tin khóa 2 năm 2020 - Trường Đại học Bà rịa - Vũng Tàu

Tôi xin cam đoan luận văn này là do tôi tìm hiểu, nghiên cứu và xây dựng dưới sự dẫn dắt của TS Bùi Thị Thu Trang Nội dung của luận văn tôi có tham khảo, sử dụng các thông tin và tài liệu từ các nguồn sách, tạp chí, bài báo và được trích dẫn, liệt kê trong danh mục các tài liệu tham khảo

Tôi xin chịu trách nhiệm về lời cam đoan này

HỌC VIÊN THỰC HIỆN

LÊ VĂN SÁNG

Trang 4

LỜI CẢM ƠN

Tôi chân thành cảm ơn Quý Thầy/Cô Trường Đại học Bà Rịa - Vũng Tàu đã tận tình giảng dạy, truyền đạt kiến thức trong suốt khóa học Đồng thời, tôi cũng xin được gửi lời cảm ơn chân thành đến Viện đào tạo Sau đại học & Phát triển nguồn nhân lực đã nhiệt tình hỗ trợ, giúp đỡ tôi trong quá trình học tập tại trường cũng như thực hiện luận văn này

Tôi xin biết ơn sâu sắc và cảm ơn chân thành nhất đến TS Bùi Thị Thu Trang - Người đã định hướng, giúp đỡ, trực tiếp hướng dẫn và tận tình chỉ bảo tôi trong suốt quá trình nghiên cứu, xây dựng và hoàn thiện luận văn này

Qua đây, tôi xin chân thành cảm ơn Trường Đại học Phan Thiết đã tạo điều kiện, hỗ trợ tôi rất nhiều trong quá trình tôi thu thập dữ liệu thực nghiệm tại Nhà trường góp phần giúp tôi thực hiện tốt luận văn

Trân trọng cảm ơn !

LÊ VĂN SÁNG

Trang 5

1.1Mở đầu 2

1.2Giới thiệu đề tài 3

1.2.1Lý do chọn đề tài 3

1.2.2Mục tiêu của đề tài 3

1.3Đối tượng và phạm vi nghiên cứu 3

1.4Phương pháp nghiên cứu 4

3.1Các kỹ thuật sử dụng trong Chatbot 20

3.1.1Mạng nơron nhân tạo 20

3.1.2Mạng nơron hồi quy 21

Trang 6

3.2.2Ưu nhược điểm của các Framework Chatbot 28

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

STT Từ viết tắt Từ đầy đủ Ý nghĩa

1 AI Artificial Intelligence Trí tuệ nhân tạo

một cách gián tiếp

8 GRU Gated Recurrent Unit

Kiến trúc mạng nơron truyền thống được sử dụng cho việc xử lý chuỗi dữ liệu

9 ICM Intent Confusion Matrix Ma trận nhầm lẫn

10 LSTM Long Short-Term Memory Một loại kiến trúc mạng nơron thần kinh nhân tạo

12 NLG Natural Language

13 NLP Natural Language

14 NLU Natural Language Understanding

Hệ thống hiểu ngôn ngữ tự nhiên

15 RNN Recurrent Neural Network Mạng nơron hồi quy

17 SVM Support Vector Machine Máy vector hỗ trợ

một cách gián tiếp

20 UPT University of Phan Thiet Trường Đại học Phan Thiết

Trang 8

DANH MỤC CÁC BẢNG BIỂU

Bảng 2.1: So sánh ưu nhược điểm các kiểu Chatbot 12

Bảng 2.2: Kỹ thuật Template-Base trong NLG 18

Bảng 3.1: Phép toán và luồng xử lý trong kiến trúc mạng LSTM 4 tầng 27

Bảng 3.2: Ưu nhược điểm của các Framework Chatbot phổ biến 29

Bảng 4.1: Một số Intent quan trọng trong Chatbot của trường Đại học Phan Thiết 38

Bảng 4.2: Bảng mô tả các tệp trong UPT BOT 46

Trang 9

DANH MỤC CÁC HÌNH

Hình 2.1: Minh họa một Chatbot [12] 5

Hình 2.2: Lịch sử ra đời và phát triển của Chatbot [13] 6

Hình 2.3: Các kiểu Chatbot 10

Hình 2.4: Kiến trúc của một Chatbot[12] 13

Hình 2.5: Kiến trúc Chatbot sử dụng NLP và công nghệ học máy [12] 14

Hình 2.6: Rule Based [26] 18

Hình 2.7: Data-driven Chatbot [29] 19

Hình 3.9: Kiến trúc mạng nơron nhân tạo [40] 21

Hình 3.1: Mạng nơron hồi quy RNN [12] 21

Hình 3.11: Kiến trúc của Rasa [45] 31

Hình 4.1: Intent trong Chatbot tư vấn tuyển sinh 37

Hình 4.2: Một số Entities trong UPT_BOT 40

Hình 4.3: Mẫu trả lời cho intent hỏi các phương thức xét tuyển 40

Hình 4.4: Trả lời ý định hỏi các ngành tuyển sinh (utter_hoinganhtuyensinh) 40

Hình 4.5: Chatbot phản hồi học sinh thông qua Action 41

Hình 4.6: Default Action trong UPT BOT 42

Hình 4.7: Kịch bản trò chuyện cơ bản giữa người dùng với Chatbot 42

Hình 4.8: Kiến trúc Chatbot tư vấn tuyển sinh UPT 43

Hình 4.9: Cài đặt Rasa cho UPT BOT 45

Hình 4.10: Khởi tạo Project Chatbot UPT_BOT với Rasa 45

Hình 4.11: Cấu trúc thư mục và tệp của UPT_BOT 45

Hình 4.12: Thực nghiệm huấn luyện UPT BOT 47

Hình 4.13: Thực nghiệm Chatbot với ý định hỏi phương thức xét tuyển 48

Hình 4.14: Thực nghiệm Chatbot với ý định hỏi điều kiện xét tuyển 48

Hình 4.15: Thực nghiệm Chatbot với ý định hỏi học phí 49

Hình 4.16: Thực nghiệm Chatbot với ý định hỏi tổ hợp môn xét tuyển 49

Hình 4.17: Thực nghiệm Chatbot với ý định hỏi đường link xét tuyển trực tuyến 50

Hình 4.18: Thực nghiệm Chatbot với ý định hỏi hồ sơ xét tuyển 50

Trang 10

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

Hình 4.22: Độ chính xác của UPT BOT trong lần thử nghiệm 53

Hình 4.23: Ma trận nhầm lẫn ý định (Intent) khi thực nghiệm Chatbot 53

Hình 4.24: Biểu đồ đo tin cậy cho các dự đoán 54

Trang 11

TÓM TẮT

Hiện nay, lĩnh vực giáo dục đang phát triển mạnh mẽ [1], hệ thống trường lớp ngày càng được mở rộng, việc cạnh tranh thu hút học sinh giữa các trường ngày càng quyết liệt hơn Vì vậy công tác tư vấn tuyển sinh là một trong những vấn đề quan tâm hàng đầu của các trường đại học trong đó có trường Đại học Phan Thiết Mặc dù trường Đại học Phan Thiết cũng đã triển khai nhiều chương trình tư vấn tuyển sinh rộng khắp trên địa bàn tỉnh Bình Thuận và các tỉnh lân cận với nhiều hình thức phong phú Tuy nhiên qua quá trình khảo sát sự tiếp cận thông tin của học sinh thì vẫn còn một số lượng không nhỏ học sinh chưa thể nắm bắt rõ ràng thông tin ngành nghề, chưa được trả lời thắc mắc một cách nhanh chóng và chính xác

Mục tiêu của đề tài là mong muốn xây dựng một hệ thống làm việc 24/7 trả lời mọi lúc các câu hỏi của học sinh cũng như phụ huynh Với mục tiêu này tác giả luận văn sử dụng Chatbot Cụ thể, luận văn 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ới Rasa Framework Đồng thời cũng nghiên cứu các kỹ thuật giúp Chatbot trả lời câu hỏi của phụ huynh và học sinh một cách tự nhiên

Nội dung nghiên cứu: Nghiên cứu về xử lý ngôn ngữ tự nhiên (Natural language processing – NLP), các phương pháp học máy như Support Vector Machine (SVM), Mạng nơron (Neural Network), các kỹ thuật và mô hình sử dụng trong Chatbot; Nghiên cứu tổng quan về Chatbot và Rasa Framework, các công nghệ và phương pháp sử dụng trong Rasa Chatbot, thiết kế kiến trúc và xây dựng Chatbot bao gồm các bước thiết kế, xác định mục tiêu của Chatbot, xây dựng các ý định (intent), trích xuất thông tin (Entity), thiết kế câu hỏi và câu trả lời, đào tạo (training) Chatbot,…, đánh giá hiệu suất của Chatbot và ứng dụng của Chatbot Rasa trong lĩnh vực giáo dục (tư vấn tuyển sinh)

Phương pháp nghiên cứu: Trong luận văn tác giả sẽ sử dụng kết hợp giữa phương pháp nghiên cứu lý thuyết và thực nghiệm Trong đó phương pháp nghiên cứu chủ yếu là thực nghiệm (experimental research) Đầu tiên, 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 Tiếp đến, thu thập dữ liệu tư vấn tuyển sinh thực tế để đà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 thực tế tại trường Đại học Phan Thiết.

Trang 12

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

1.1 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

Trang 13

1.2 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

1.3 Đố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

Trang 14

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

1.4 Phương pháp nghiên cứu 1.4.1 Phương pháp lý thuyết

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

1.4.2 Phương pháp thực nghiệm

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

1.5 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

TÓM TẮT CHƯƠNG 1

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.

Trang 15

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

2.1 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]

Trang 16

2.1.2 Lịch sử ra đời

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]

▪ 1950

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]

Trang 17

▪ 1966

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]

▪ 1972

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]

Trang 18

▪ 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] ▪ 1995

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]

▪ 2001

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]

▪ 2006

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

Trang 19

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]

▪ 2010-2016

Siri, một trợ lý cá nhân thông minh, đã được ra mắt dưới dạng một ứng dụng iPhone và sau đó được tích hợp là một phần của iOS Năm 2012, Google ra mắt Chatbot Google Now Năm 2016, Google đã giới thiệu trợ lý cá nhân thông minh mới Google Assistant, là một sự tiến hóa của Google Now Trợ lý này có thể tham gia đối thoại hai chiều với người dùng Trước đó vào năm 2014, Amazon phát hành Alexa, Microsoft giới thiệu Cortana vào 2015 Với khả năng phân tích và xử lý ngôn ngữ tự nhiên, các trợ lý ảo này kết nối với các dịch vụ web để trả lời các câu hỏi và đáp ứng các yêu cầu của người dùng [13], [14]

▪ 2016-2023

Facebook - mạng xã hội lớn nhất thế giới giới thiệu Messenger Platform Một nền tảng thân thiện hơn và cho phép bất kỳ ai cũng có thể tạo cho mình một Chatbot Ngay sau đó, các ứng dụng chat khác như LINE, WhatsApp, Telegram hay Twitter cũng đưa ra các hỗ trợ hoặc các API cho phép người dùng tạo các Chatbot trên ứng dụng nhắn tin Nhưng WeChat của Trung Quốc mới chính là tiên phong trong lĩnh vực này khi cho ra mắt Xiaoice - Chatbot khá hoàn thiện từ năm 2013 Trong cuộc đua của các nhà phát triển Chatbots, Facebook đang nắm giữ thị phần toàn cầu lớn nhất vì có đến hơn 1 tỷ người sử dụng ứng dụng Messenger hàng tháng Còn riêng ở thị trường Trung Quốc, WeChat lại là ứng dụng chat số 1 mà không ứng dụng chat nào có thể cạnh tranh nổi [13], [14]

2.2 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,

Trang 20

Menu-based Chatbots, Contextual Chatbots (Intelligent Chatbots), Hybrid Chatbots,

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]

❖ Keyword recognition-based Chatbots

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]

Trang 21

❖ Menu-based Chatbots

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]

❖ Contextual Chatbots (Intelligent Chatbots)

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]

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]

❖ Voice-enabled Chatbots

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

Trang 22

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:

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

Keyword

recognition-based Chatbots

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

Contextual Chatbots (Intelligent

Chatbots)

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

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

Trang 23

2.3 Kiến trúc của Chatbot và nhiệm vụ các thành phần của Chatbot 2.3.1 Kiến trúc

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

Trang 24

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

Trang 25

2.3.2 Nhiệm vụ các thành phần của Chatbot 2.3.2.1 Natural Language Understanding

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

2.3.2.2 Natural Language Processing

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

Trang 26

+ 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

2.3.2.3 Xác định được ý định câu hỏi (intent classification)

Để đưa ra hỗ trợ chính xác, Chatbot cần xác định được ý định của người dùng Việc xác định ý định của người dùng sẽ quyết định hội thoại tiếp theo giữa người và Chatbot sẽ diễn ra như thế nào Vì thế, nếu xác định sai ý định người dùng, Chatbot sẽ đưa ra những phản hồi không đúng, không hợp ngữ cảnh Bài toán xác định ý định người dùng vì thế đóng vai trò rất quan trọng trong hệ thống Chatbot Để giải quyết bài toán trên, chúng ta có thể quy về bài toán phân lớp văn bản Để xây dựng một mô hình phân lớp ý định, chúng ta cần một tập dữ liệu huấn luyện bao gồm các cách diễn đạt khác nhau cho mỗi ý định Ví dụ, cùng một mục đích hỏi về học phí ngành Công nghệ thông tin tại trường Đại học Phan Thiết, người dùng có thể dùng những cách diễn đạt sau:

Học phí ngành Công nghệ thông tin bao nhiêu ạ? Em muốn hỏi học phí ngành Công nghệ thông tin? Học phí ngành cntt bao nhiêu 1 tín chỉ?

2.3.2.4 Trích chọn thông tin (slots filter)

Trích chọn thông tin là một phần quan trọng trong xử lý ngôn ngữ tự nhiên (NLP) Nó được sử dụng trong quá trình slot filling, một tác vụ phổ biến trong NLP Trong slot filling, mục tiêu là trích xuất thông tin cụ thể từ đầu vào của người dùng, như ngày, giờ, địa điểm, v.v., và đổ vào các slot đã xác định trước Slots filter được sử dụng để kiểm tra và xác định tính chính xác của thông tin đã trích xuất Nó sẽ kiểm tra thông tin đã trích xuất với các quy tắc và hạn chế đã xác định trước, và chỉ thông tin hợp lệ mới được đổ vào các slot tương ứng

2.3.3 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

Trang 27

Dialogue Manager (DM) là một thành phần quan trọng trong Chatbot, nó điều khiển quá trình trao đổi giữa người dùng và Chatbot Nó xử lý các yêu cầu của người dùng, phân tích nội dung và quyết định các hành động tiếp theo của Chatbot Dialogue Manager sử dụng các quy tắc hoặc thuật toán máy học để xử lý các yêu cầu và trả lời cho người dùng một cách tốt nhất Nó cũng quản lý ngữ cảnh của cuộc trò chuyện để giúp Chatbot hiểu rõ hơn về nội dung và mục đích của cuộc trò chuyện Tất cả những thứ này giúp cho Chatbot trở nên hiệu quả và tự nhiên hơn trong việc giao tiếp với người

dùng [23], [24]

2.3.4 Natural Language Generation

Natural Language Generation (NLG) là thành phần sinh ngôn ngữ dựa vào chính sách (policy) 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 Khi phản hồi, NLG chuẩn bị phản hồi giống ngôn ngữ tự nhiên cho người dùng dựa trên ý định và thông tin ngữ cảnh Các câu trả lời thích hợp được tạo ra bởi một trong các mô hình thiết kế theo luật hoặc theo AI [25]

NLG cần phải có sự tương tác với các thuật toán xử lý ngôn ngữ tự nhiên để hiểu và biểu diễn thông tin một cách chính xác và tốt nhất

Inform (nganh_quantam=Công nghệ thông tin, noidung_quantam=Học phí)

Học phí ngành Công nghệ thông tin

Có 3 phương pháp kỹ thuật sử dụng chính trong NLG: Template-Base, Based, Data-driven generation:

Rule-+ Template-Base: Sử dụng các mẫu câu để tạo ra các câu văn tự nhiên Mẫu câu này được định nghĩa trước và chứa các placeholder để thay thế bằng dữ liệu như Bảng 2.2 dưới đây:

Semantic Frame Natural Language

Confirm() Bạn vui lòng cho biết ngành bạn đang quan tâm? Confirm

(tennganh=$Name)

Bạn muốn tìm hiểu ngành Công nghệ thông tin?

Trang 28

Semantic Frame Natural Language

Bạn muốn tìm hiểu học phí ngành công nghệ thông tin ?

Bảng 2.2: Kỹ thuật Template-Base trong NLG

Ưu điểm: Phương pháp này đơn giản, kiểm soát dễ dàng

Nhược điểm: Phương pháp này có nhược điểm là tốn thời gian định nghĩa các luật, không mang tính tự nhiên trong câu trả lời Đối với các hệ thống lớn thì khó kiểm soát các luật dẫn đến hệ thống cũng khó phát triển và duy trì

+ Rule-based: Sử dụng các quy tắc cụ thể để tạo ra câu văn tự nhiên Trong phương pháp này, người phát triển định nghĩa các quy tắc về cách tạo ra câu văn tự nhiên dựa trên các yêu cầu cụ thể và dữ liệu Quy tắc này có thể bao gồm các thuật ngữ, cấu trúc câu và các quy tắc định dạng Khi dữ liệu đầu vào được cung cấp, các quy tắc sẽ được áp dụng để tạo ra câu văn tự nhiên [26], [27], [28]

Hình 2.6: Rule Based [26]

Ưu điểm: Dễ dàng để tạo ra câu văn tự nhiên

Nhược điểm: Cần nhiều thời gian và công sức để định nghĩa các quy tắc và chắc chắn rằng chúng hoạt động đúng với mục đích Không có khả năng linh hoạt và chủ động trong việc tạo ra câu văn tự nhiên tốt nhất phù hợp với dữ liệu đầu vào

+ Data-driven generation: Phương pháp này sử dụng dữ liệu (data) để xuất ra các câu mô tả hoặc giải thích Trong Data-driven generation, mô hình sẽ được huấn luyện trên một tập dữ liệu lớn để học các mẫu câu và cách sử dụng ngôn ngữ tự nhiên để mô tả dữ liệu Sau đó, mô hình có thể dựa vào dữ liệu mới để tạo ra câu mô tả hoặc giải thích chính xác và đầy đủ [29]

Trang 29

Hình 2.7: Data-driven Chatbot [29]

Ưu điểm: Phương pháp này cung cấp đầy đủ thông tin và chính xác

Nhược điểm: Có thể tạo ra các câu cứng và không tự nhiên nếu không có sự điều chỉnh từ một người dùng hoặc một tầng xử lý giữa

TÓM TẮT CHƯƠNG 2

Ở chương này, luận văn tập trung trình bày về các khái niệm cơ bản liên quan đến Chatbot, bao gồm lịch sử phát triển của Chatbot từ những ngày đầu tiên cho đến hiện nay, đồng thời nêu lên sự tiến bộ và sự phổ biến của Chatbot trong thời gian gần đây Đồng thời ở chương này, luận văn cũng giới thiệu các loại Chatbot phổ biến hiện nay cũng như ưu nhược điểm của của mỗi loại

Chương 2 luận văn cũng đã đi sâu vào việc giải thích các thành phần chính của một Chatbot, bao gồm kiến trúc, khả năng trò chuyện và xử lý ngôn ngữ tự nhiên Đồng thời tác giả cũng trình bày vai trò của mỗi thành phần trong việc hoạt động của Chatbot

Trang 30

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 FRAMEWORK

3.1 Các kỹ thuật sử dụng trong Chatbot 3.1.1 Mạng nơron nhân tạo

3.1.1.1 Khái niệm

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

Trang 31

Hình 3.1: Kiến trúc mạng nơron nhân tạo [40]

3.1.2 Mạng nơron hồi quy

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]

Trang 32

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 𝑂𝑡 =𝑆𝑜𝑓𝑡𝑚𝑎𝑥(𝑉𝑠𝑡)

3.1.2.1 RNN hai chiều

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]

Trang 33

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 đề,

Trang 34

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ớ

Hình 3.5: Mạng LSTM [36]

Với cơ chế này, LSTM có khả năng học được các phụ thuộc xa trong các chuỗi dữ liệu dài, đồng thời tránh được vấn đề mất mát thông tin trong quá trình xử lý LSTM đã được sử dụng thành công trong nhiều ứng dụng xử lý ngôn ngữ tự nhiên, bao gồm dịch máy, nhận dạng giọng nói và tạo văn bản tự động

3.1.3.1 Vấn đề phụ thuộc xa

Một điểm nổi bật của RNN chính là ý tưởng kết nối các thông tin phía trước để dự đoán cho hiện tại Việc này tương tự như ta sử dụng các cảnh trước của bộ phim để

Trang 35

hiểu được cảnh hiện thời Nếu mà RNN có thể làm được việc đó thì chúng sẽ cực kì hữu dụng, tuy nhiên liệu chúng có thể làm được không còn tùy vào từng trường hợp

Hình 3.6: RNN phụ thuộc short-term [36]

Đôi lúc ta chỉ cần xem lại thông tin vừa có là đủ để biết được tình huống hiện tại

Ví dụ, với câu: “Học phí ngành Công nghệ thông tin” thì chỉ cần đọc tới “Học phí ngành Công nghệ thông” là đủ biết được chữ tiếp theo là “tin” rồi Trong tình huống

này, khoảng cách tới thông tin có được cần để dự đoán là nhỏ, nên RNN hoàn toàn có thể học được

3.1.3.2 Kiến trúc mạng LSTM

LSTM (Long Short-Term Memory) là một kiến trúc đặc biệt của mạng RNN (Recurrent Neural Network) được thiết kế để giải quyết vấn đề về khả năng học sự phụ thuộc dài hạn [36], [37], [38]

LSTM khắc phục được rất nhiều những hạn chế của RNN trước đây về triệt tiêu đạo hàm Tuy nhiên cấu trúc của chúng có phần phức tạp hơn mặc dù vẫn giữ được tư tưởng chính của RNN là sự sao chép các kiến trúc theo dạng chuỗi

Một mạng RNN tiêu chuẩn sẽ có kiến trúc rất đơn giản chẳng hạn như đối với kiến trúc gồm một tầng ẩn là hàm tanh như bên dưới

Hình 3.7: Kiến trúc LSTM một tầng [36]

LSTM có một kiến trúc lặp lại tương tự như RNN, tuy nhiên cấu trúc của các tầng ẩn là khác biệt Thay vì chỉ có một tầng ẩn đơn giản với hàm kích hoạt tanh, LSTM

Trang 36

có tới 4 tầng ẩn (sử dụng 3 hàm Sigmoid và 1 hàm tanh) tương tác với nhau theo một cấu trúc đặc biệt

+ Tầng quên (forget gate): Quyết định xem thông tin nào sẽ được bỏ qua từ trạng thái trước đó

+ Tầng đầu vào (input gate): Quyết định xem thông tin nào sẽ được cập nhật vào trạng thái ẩn hiện tại

+ Tầng đầu ra (output gate): Quyết định xem thông tin nào sẽ được sử dụng để tính toán đầu ra

+ Cổng trạng thái (cell state gate): Quyết định cách các thông tin sẽ được truyền qua từ trạng thái trước đó đến trạng thái hiện tại

Hình 3.8: Kiến trúc mạng LSTM 4 tầng [38]

Trong sơ đồ trên, mỗi phép tính được triển khai trên một vector, và các phép tính này bao gồm các phép toán như phép nhân ma trận, phép cộng vector, phép chập và các hàm activation phi tuyến như sigmoid và tanh

Trong sơ đồ trên, ý nghĩa của các ký hiệu được diễn giải dưới Bảng 3.1:

Biểu diễn đầu vào và đầu ra của một nút

Biểu diễn các hàm activation được sử dụng trong tầng ẩn của mạng LSTM

Trang 37

Ký hiệu Ý nghĩa

Toán tử Pointwise, biểu diễn các phép toán như cộng, nhân vector

Bảng 3.1: Phép toán và luồng xử lý trong kiến trúc mạng LSTM 4 tầng

Các phép tính trên sơ đồ này đại diện cho quá trình tính toán trong mỗi cell của mạng LSTM, trong đó các tầng ẩn tương tác với nhau để kiểm soát thông tin và đạo hàm và giúp cho mạng LSTM có khả năng học được sự phụ thuộc dài hạn

3.1.4 Mạng GRU

GRU (Gated Recurrent Unit) là một kiến trúc mạng nơron hồi quy được giới thiệu như một phiên bản đơn giản hơn của LSTM Nhưng đây là một giải pháp đáng chú ý cho các vấn đề về mất mát thông tin trong mạng LSTM Kiến trúc của GRU được thiết kế để giảm số lượng các cổng cần thiết trong LSTM và cũng giúp giảm thời gian huấn luyện GRU có hai cổng chính, một là cổng “cập nhật” (update gate), và một là cổng “tái cập nhật” (reset gate) [39]

Hình 3.9: Mạng GRU [39]

Cổng cập nhật của GRU quyết định thông tin nào sẽ được truyền tiếp và thông tin nào sẽ được bỏ qua Nó tương tự như cổng quên của LSTM, nhưng nó được tính toán bằng cách sử dụng phép Sigmoid của tổng đầu vào hiện tại và trạng thái ẩn trước đó Cổng tái cập nhật của GRU quyết định trạng thái mới sẽ được tính toán như thế nào bằng cách quyết định độ quan trọng của trạng thái ẩn trước đó Nó cũng được tính toán bằng cách sử dụng phép Sigmoid của tổng đầu vào hiện tại và trạng thái ẩn trước đó Sau đó, trạng thái ẩn mới được tính toán bằng cách sử dụng một phép trung bình trọng

Trang 38

số giữa trạng thái ẩn trước đó và trạng thái ẩn mới được tính toán bằng cách sử dụng cổng tái cập nhật Vì GRU có ít cổng hơn và tính toán đơn giản hơn so với LSTM, nó có thể huấn luyện nhanh hơn và đạt được kết quả tương đương trong nhiều tác vụ xử lý ngôn ngữ tự nhiên

3.2 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

- Phụ thuộc vào dịch vụ của Google

Microsoft Bot Framework

- 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

- Tính linh hoạt kém - Phí dịch duy trì cao

IBM Watson Assistant

- 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

- Có phí sử dụng - Không hỗ trợ nhiều

kênh nhắn tin như các Framework khác

Trang 39

Framework Ưu điểm Nhược điểm

Amazon Lex

- 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ế

Chatfuel

- 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

- Chứa quảng cáo Rasa

- 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

3.3 Rasa Framework 3.3.1 Tổng quan về Rasa

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]

Trang 40

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

Ngày đăng: 19/08/2024, 05:25