1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin

109 17 1

Đ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

Thông tin cơ bản

Tiêu đề Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh
Tác giả Nguyễn Đăng Khoa, Nguyễn Quang Hùng
Người hướng dẫn ThS. Quách Đình Hoàng
Trường học Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật Dữ liệu
Thể loại đề tài tốt nghiệp
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 109
Dung lượng 11,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hình 2: Mô tả mô hình unsupervised learning [1] Hình 2 mô tả quy trình hoạt động của mô hình unsupervised learning, theo đó mô hình này học dựa trên dữ liệu không được gán sẵn nhãn trước

Trang 1

Tp.Hồ Chí Minh, năm 2022

GVHD: ThS QUÁCH ĐÌNH HOÀNG SVTH: NGUYỄN ĐĂNG KHOA NGUYỄN QUANG HÙNG

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN ĐĂNG KHOA – 18133022 NGUYỄN QUANG HÙNG – 18133016

Đề Tài:

XÂY DỰNG HỆ THỐNG CHATBOT

CHO TƯ VẤN TUYỂN SINH TRƯỜNG ĐẠI HỌC

SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHÓA LUẬN TỐT NGHIỆP

NGÀNH KỸ THUẬT DỮ LIỆU

GIÁO VIÊN HƯỚNG DẪN ThS QUÁCH ĐÌNH HOÀNG

KHÓA 2018-2022

Trang 3

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN ĐĂNG KHOA – 18133022 NGUYỄN QUANG HÙNG – 18133016

Đề Tài:

XÂY DỰNG HỆ THỐNG CHATBOT

CHO TƯ VẤN TUYỂN SINH TRƯỜNG ĐẠI HỌC

SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHÓA LUẬN TỐT NGHIỆP

NGÀNH KỸ THUẬT DỮ LIỆU

GIÁO VIÊN HƯỚNG DẪN ThS QUÁCH ĐÌNH HOÀNG

KHÓA 2018-2022

Trang 4

ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Tp Hồ Chí Minh, ngày tháng năm 2022

Giáo viên hướng dẫn

(Ký & ghi rõ họ tên)

Trang 5

ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Tp Hồ Chí Minh, ngày tháng năm 2022

Giáo viên phản biện (Ký & ghi rõ họ tên)

Trang 6

LỜI CẢM ƠN

Đầu tiên, chúng tôi xin gửi lời cảm ơn sâu sắc nhất đến Ban giám hiệu trườngĐại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh đã tạo điều kiện, môi trường họctập chất lượng, hiệu quả để chúng tôi có thể phát huy một cách tốt nhất việc nghiêncứu đề tài

Đồng thời, chúng tôi xin gửi lời cảm ơn đến Ban chủ nhiệm khoa Công nghệThông tin và các Thầy Cô khoa Công nghệ Thông tin - trường Đại học Sư phạm Kỹthuật Thành phố Hồ Chí Minh đã tạo môi trường học tập và làm việc chuyên nghiệp,nhiệt tình giảng dạy để chúng tôi thực hiện tốt đề tài nói riêng và sinh viên trong khoaCông nghệ Thông tin nói chung trong quá trình học tập và làm việc tại trường

Đình Hoàng – giáo viên hướng dẫn khóa luận tốt nghiệp – Khoa Công nghệ Thông tin

– trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, đã hướng dẫn, quan tâm,góp ý và luôn đồng hành cùng chúng tôi trong những giai đoạn khó khăn nhất của đềtài

Tuy nhiên vì hạn chế về mặt thời gian, nên đề tài khó tránh khỏi những sai sót

và hạn chế nhất định Kính mong nhận được những phản hồi, đóng góp ý kiến và chỉbảo thêm từ Quý Thầy Cô, để chúng tôi có thể đạt được những kiến thức hữu ích, nângcao trình độ để phục vụ cho sự nghiệp sau này

Xin chân thành cảm ơn !

Trang 7

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

Thời gian làm luận văn từ 11/03/2022 đến 12/07/2022

Chuyên ngành: Kỹ thuật dữ liệu

Tên luận văn: Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường Đại học Sưphạm Kỹ thuật TP Hồ Chí Minh

Họ và tên Giáo viên hướng dẫn: ThS Quách Đình Hoàng

Nhiệm vụ thực hiện:

1 Tìm hiểu về các mô hình thuật toán xử lý chuỗi, xử lý ngôn ngữ tự nhiên

2 Tìm hiểu cơ sở lý thuyết về Rasa framework và xây dựng ứng dụng tư vấn tuyểnsinh trường Đại học Sư phạm Kỹ thuật TP HCM

Đề cương viết luận văn:

MỤC LỤC

1 PHẦN MỞ ĐẦU

1.Tính cấp thiết của đề tài

2 Mục tiêu và nhiệm vụ nghiên cứu

3 Cách tiếp cận và phương pháp nghiên cứu

4 Kết quả dự kiến đạt được

Chương 2: Lý thuyết liên quan đến xây dựng chatbot

2.1 Tổng quan về mạng neural nhân tạo

2.2 Deep learning là gì?

Trang 8

2.3 Mô hình ngôn ngữ (language model)

2.4 Recurrent neural network (RNN)

2.5 Word embedding

2.6 Mô hình DIET (Dual Intent and Entity Transformer)

Chương 3: Tổng quan về hệ thống chatbot

3.1 Tổng quan về xử lý ngôn ngữ tự nhiên (NLP)

3.2 Tổng quan về chatbot

3.3 Rasa chatbot là gì?

3.4 Cấu trúc của một Rasa chatbot

3.5 Hiểu ngôn ngữ tự nhiên (Natural Language Understanding)3.6 Quản lý cuộc hội thoại (DM)

3.7 Thành phần sinh ngôn ngữ (NLG)

3.8 Nhận dạng giọng nói (STT)

3.9 Chuyển văn bản thành giọng nói (TTS)

3.10 Cài đặt Rasa chatbot

Chương 4: Xây dựng chatbot hỗ trợ tư vấn tuyển sinh

4.1 Bài toán đặt ra và giải pháp

4.2 Các công nghệ sử dụng

4.3 Lập danh sách các yêu cầu

4.4 Lập lược đồ user case

4.5 Đặc tả user case

4.6 Xây dựng dữ liệu cho chatbot

4.7 Huấn luyện mô hình

4.8 Xây dựng giao diện và tính năng

4.9 Kiểm tra và đánh giá

3 PHẦN KẾT LUẬN

Trang 9

KẾ HOẠCH THỰC HIỆN

Tuần Thời gian Nhiệm vụ Sản phẩm dự kiến

1+2 11/03-24/03 Tìm hiểu đề tài chatbot và công

nghệ xây dựng

Định hướng các kiến thức

và công cụ cần có để xâydựng chatbot

3 25/03-31/03 Thu thập dữ liệu để huấn luyện Lấy dữ liệu từ phòng tuyển

sinh và công tác sinh viên4+5 01/04-14/04 Lập danh sách các yêu cầu và

các chức năng cần có của trang

web

Lập bảng nêu rõ các yêu cầucủa từng đối tượng Liệt kêchi tiết các user case

6 15/04-21/04 Thiết kế cơ sở dữ liệu Lập lược đồ cơ sở dữ liệu

hoàn chỉnh

7 22/04-28/04 Thiết kế giao diện Hoàn thành phần giao diện

dành cho người dùng và cho

admin

8+9 29/04-12/05 Hoàn thành ứng dụng chatbot Xây dựng, huấn luyện và

đưa chatbot lên web.10+11+12 13/05-02/06 Viết báo cáo Tiến hành viết báo cáo

13+14 03/06-16/06 Kiểm tra hệ thống Hoàn thiện sửa lỗi và chỉnh

sửa hệ thống

15 17/06-23/06 Chuẩn bị slide thuyết trình và

hoàn thiện báo cáo

Hoàn thiện báo cáo và phần

thuyết trình

16 24/06-30/06 Trao đổi với thầy hướng dẫn về

nội dung cần trình bày ở buổibảo vệ khóa luận tốt nghiệp

Có được báo cáo và sảnphẩm tốt nhất sau khi đượcgiảng viên hướng dẫn gópý

Trang 10

Ý kiến của giảng viên hướng dẫn Ngày tháng năm 2022

(Ký và ghi rõ họ tên) Người viết đề cương

ThS QUÁCH ĐÌNH HOÀNG NGUYỄN ĐĂNG KHOA

NGUYỄN QUANG HÙNG

Trang 11

MỤC LỤC

DANH SÁCH HÌNH VẼ 10

DANH SÁCH BẢNG 12

Phần 1 13

MỞ ĐẦU 13

1 Tính cấp thiết của đề tài 14

2 Mục tiêu và nhiệm vụ nghiên cứu 15

3 Cách tiếp cận và phương pháp nghiên cứu 15

4 Kết quả dự kiến đạt được 15

5 Bố cục khóa luận 16

Phần 2 17

NỘI DUNG 17

CHƯƠNG 1: 18

TỔNG QUAN VỀ MACHINE LEARNING 18

1.1 MACHINE LEARNING LÀ GÌ? 18

1.2 PHÂN LOẠI 18

CHƯƠNG 2: 21

LÝ THUYẾT LIÊN QUAN ĐẾN XÂY DỰNG CHATBOT 21

2.1 TỔNG QUAN VỀ MẠNG NEURAL NHÂN TẠO 21

2.2 DEEP LEARNING LÀ GÌ? 22

2.3 MÔ HÌNH NGÔN NGỮ (LANGUAGE MODEL) 23

2.4 RECURRENT NEURAL NETWORK (RNN) 24

2.5 WORD EMBEDDING 35

2.6 MÔ HÌNH DIET (DUAL INTENT AND ENTITY TRANSFORMER) 41

CHƯƠNG 3: 42

TỔNG QUAN VỀ CHATBOT 42

3.1 TỔNG QUAN VỀ XỬ LÝ NGÔN NGỮ TỰ NHIÊN (NLP) 42

3.2 TỔNG QUAN VỀ CHATBOT 44

3.3 RASA CHATBOT LÀ GÌ? 48

3.4 CẤU TRÚC CỦA MỘT RASA CHATBOT 49

3.5 HIỂU NGÔN NGỮ TỰ NHIÊN (NATURAL LANGUAGE UNDERSTANDING) 52

3.6 QUẢN LÝ CUỘC HỘI THOẠI (DM) 55

3.7 THÀNH PHẦN SINH NGÔN NGỮ (NLG) 57

3.8 NHẬN DẠNG GIỌNG NÓI (STT) 58

3.9 CHUYỂN VĂN BẢN THÀNH GIỌNG NÓI (TTS) 60

3.10 CÀI ĐẶT RASA CHATBOT 60

CHƯƠNG 4: 62

XÂY DỰNG CHATBOT HỖ TRỢ TƯ VẤN 62

TUYỂN SINH NGÀNH KTDL 62

4.1 BÀI TOÁN ĐẶT RA VÀ GIẢI PHÁP 62

4.2 CÁC CÔNG NGHỆ SỬ DỤNG 62

4.3 LẬP DANH SÁCH CÁC YÊU CẦU 63

4.4 LẬP LƯỢC ĐỒ USER CASE 66

4.5 ĐẶC TẢ USER CASE 67

4.6 XÂY DỰNG DỮ LIỆU CHO CHATBOT 73

4.7 HUẤN LUYỆN MÔ HÌNH 78

Trang 12

4.8 XÂY DỰNG GIAO DIỆN VÀ TÍNH NĂNG 79

4.9 KIỂM TRA VÀ ĐÁNH GIÁ 98

Phần 3 102

KẾT LUẬN 102

1 Đóng góp của luận văn 103

2 Hạn chế của luận văn 103

3 Hướng phát triển trong tương lai 103

TÀI LIỆU THAM KHẢO 104

Trang 13

DANH SÁCH HÌNH VẼ

Hình 1 : Mô tả mô hình supervised learning [1] 19

Hình 2 : Mô tả mô hình unsupervised learning [1] 19

Hình 3 : Kiến trúc mạng neural nhân tạo [3] 21

Hình 4 : Cấu trúc của một mạng RNN với 1 trạng thái ẩn [7] 25

Hình 5 : Phân loại mà ví dụ của các loại RNN khác nhau [9] 26

Hình 6 : Các bước hoạt động của một RNN với một trạng thái ẩn H t [7] 28

Hình 7 : Kiến trúc của một mạng RNN hai chiều [7] 29

Hình 8 : Minh họa cấu trúc và mô-đun lặp lại trong một LSTM [10] 30

Hình 9 : Mô tả bước xử lý đầu tiên trong LSTM [10] 31

Hình 10 : Mô tả bước xử lý thứ hai trong LSTM [10] 31

Hình 11 : Mô tả bước xử lý thứ ba trong LTSM [10] 32

Hình 12 : Mô tả bước xử lý cuối cùng trong LSTM [10] 32

Hình 13 : Mô tả biến thể LSTM thêm peephole connections [10] 33

Hình 14 : LSTM sử dụng các cổng đầu vào và quên kết hợp (coupled forget) [10] 33

Hình 15 : Biến thể Gated Recurrent Unit của LSTM [10] 34

Hình 16 : Kiến trúc của một DRNN [7] 34

Hình 17 : mô tả sơ đồ kiến trúc Transformer kết hợp với attention [12] 37

Hình 18 : Sơ đồ vị trí áp dụng self-attention trong kiến trúc Transformer [12]38 Hình 19 : Bên trái là vị trí áp dụng encoder-decoder attention [12] 39

Hình 20 : Toàn bộ tiến trình pre-training và fine-tuning của BERT [12] 40

Hình 21 : Mô tả các phân loại theo chất lượng trải nghiệm của người dùng [16] 47

Hình 22 : Mô tả chatbot theo kịch bản [16] 47

Hình 23 : Mô tả mộ chatbot trò truyện theo ngữ cảnh [16] 48

Hình 24 : Sơ đồ hoạt động của pipeline [18] 49

Hình 25 : Sơ đồ các thành phần và hoạt động của Rasa Core [19] 50

Hình 26 : Code kích hoạt Follow up Action [19] 50

Hình 27 : Code để khai báo thư viện tracker và lấy Slot [19] 52

Hình 28 : Code Python khai báo thư viện và tạo SlotSet [19] 52

Hình 29 : Code Python khai báo thư viện và ResetSlot [19] 52

Hình 30 : Quản lý cuộc hội thoại sẽ chọn hành động tốt nhất để thực hiện dựa trên cuộc trò chuyện [21] 55

Hình 31 : Quy trình đơn giản hóa của một chatbot hội thoại [21] 56

Hình 32 : Luồng điều khiển của trình quản lý đối thoại [21] 56

Hình 33 : Tạo môi trưởng ảo mới [25] 60

Hình 34 : Kích hoạt môi trường ảo [25] 60

Hình 35 : Cài đặt Rasa [25] 61

Hình 36 : Lược đồ user case ứng dụng 66

Hình 37 : Chức năng đăng ký 67

Hình 38 : Chức năng đăng nhập 68

Hình 39 : Chức năng đăng bài viết 69

Hình 40 : Chức năng bình luận bài viết 70

Hình 41 : Chức năng đặt câu hỏi cho chatbot 71

Hình 42 : Chức năng phân quyền người dùng 72

Hình 43 : Các intent trong file nlu.yml 75

Hình 44 : Ví dụ về các entities 75

Trang 14

Hình 45 : Ví dụ về các entities được khai báo ở domain.yml 76

Hình 46 : Ví dụ về các actions 76

Hình 47 : Ví dụ về các kịch bản giữa người dùng và bot 78

Hình 48 : Entity Relationship Diagram 79

Hình 49 : Lược đồ cơ sở dữ liệu mức logic 80

Hình 50 : Lược đồ cơ sở dữ liệu mức vật lý 81

Hình 51 : Cơ sở dữ liệu hoàn chỉnh 82

Hình 52 : Mô tả trang chủ của website tuyển sinh 88

Hình 53 : Mô tả các bài đăng thông báo về các thông tin tuyển sinh mới nhất88 Hình 54 : Mô tả giao diện bố trí nội dung của một bài đăng 89

Hình 55 : Mô tả giao diện của phần trả lời bình luận 90

Hình 56 : Mô tả giao diện phần đăng ký tài khoản 91

Hình 57 : Mô tả các cảnh báo mà website đưa ra cho người dùng 91

Hình 58 : mô tả cảnh báo tài khoản không hợp lệ 92

Hình 59 : Giao diện trang đăng nhập 92

Hình 60 : Mô tả tùy chọn liên hệ hỗ trợ 93

Hình 61 : Mô tả phương thức xét tuyển 95

Hình 62 : Giao diện tính năng hỗ trợ giọng nói 95

Hình 63 : Giao diện mục tùy chọn thống kê 97

Hình 64 : Biểu đồ hình tròn thể hiện tương quan giữa những câu hỏi bot trả lời được và không trả lời được 97

Hình 65 : Mô tả giao diện phần khung chat 98

Hình 66 : Confusion matrix 99

Hình 67 : Confusion matrix đơn giản 100

Trang 15

DANH SÁCH BẢNG

Bảng 1 : Bảng danh sách yêu cầu của khách 63

Bảng 2 : Bảng danh sách yêu cầu của người dùng 63

Bảng 3 : Bảng danh sách yêu cầu của admin 64

Bảng 4 : Mô tả chức năng đăng ký 67

Bảng 5 : Mô tả chức năng đăng nhập 68

Bảng 6 : Mô tả chức năng đăng bài viết 69

Bảng 7 : Mô tả chức năng bình luận bài viết 70

Bảng 8 : Mô tả chức năng đặt câu hỏi cho chatbot 71

Bảng 9 : Mô tả chức năng phân quyền người dùng 72

Bảng 10 : Kịch bản trò truyện giữa người dùng (user) và chatbot 73

Bảng 11 : Bảng Permission 83

Bảng 12 : Bảng Group 83

Bảng 13 : Bảng User 84

Bảng 14 : Bảng Post 85

Bảng 15 : Bảng Comment 85

Bảng 16 : Bảng ReplyComment 86

Trang 16

Phần 1

MỞ ĐẦU

Trang 17

1 Tính cấp thiết của đề tài

Đối với mỗi đất nước, việc giáo dục thế hệ tương lai của đất nước luôn luônđóng vai trò đặc biệt quan trọng, nó quyết định sự phát triển lâu dài và bền vững củađất nước đó Trong toàn bộ quá trình đó, kỳ thi tốt nghiệp trung học phổ thông quốcgia hay còn được gọi là kỳ thi xét tuyển đại học là một trong những bước ngoặc quantrọng nhất của mỗi một học sinh Do đó, vào mỗi kỳ tuyển sinh được tổ chức, nhu cầu

về thông tin luôn là rất lớn, điều này gây sức ép cực kỳ nhiều lên các bộ phận làmcông tác tuyển sinh và phụ trách giải đáp các thắc mắc từ phía phụ huynh và học sinh

Hiện nay có hai phương án để giải quyết điều đó là: Thuê nhân viên túc trực đểgiải đáp các câu hỏi của phụ huynh học sinh, hoặc tạo một phần mềm tự động để trảlời các câu hỏi đơn giản và lặp lại nhiều lần trong khi đó nhân viên sẽ trả lời các câuhỏi khó hơn hay lúc phụ huynh học sinh không hài lòng với câu trả lời tự động trước

đó Ta có thể thấy cách thứ hai tốt hơn khá nhiều vì nó không làm người dùng phải tốnthời gian chờ đợi để được giải đáp thắc mắc, đồng thời giảm nhẹ khối lượng công việccho nhân viên cũng như chi phí thuê nhân công

Chatbot là một cụm từ không còn xa lạ đối với nền công nghệ phát triển hiệnnay trên thế giới Về cơ bản, chatbot là một chương trình máy tính tiến hành cuộc tròchuyện thông qua nhắn tin nhanh, nó có thể tự động trả lời những câu hỏi hoặc xử lýtình huống Phạm vi và sự phức tạp của chatbot được xác định bởi thuật toán tạo nênchúng Chatbot thường được sử dụng, truy cập thông qua các ứng dụng, trang web vàtrên các nền tảng nhắn tin tức thời của nhiều tổ chức, chẳng hạn như: Google Assistant,Facebook Messenger, Line, Viber, WeChat, Skype… cho các mục đích thực tế khácnhau bao gồm: Giải trí, nghiên cứu, dịch vụ khách hàng, quảng bá sản phẩm hoặc thuthập thông tin và nhiều lĩnh vực khác

Hiện nay, sự phát triển của trí tuệ nhân tạo là tiền đề tạo điều kiện để chatbotphát triển một cách nhanh chóng Nó có thể được sử dụng trong nhiều lĩnh vực và giáodục cũng vậy Trong các kì thi tuyển sinh THPT Quốc gia hàng năm, nhu cầu tìm hiểu

về ngành nghề, thông tin xét tuyển là rất lớn, nhưng việc tìm kiếm thông tin khôngphải là việc dễ dàng và đôi khi nó còn tốn không ít thời gian Các trường Đại học sẽtrở nên quá tải bởi lượng câu hỏi được gửi về ngày một tăng Vì vậy, việc áp dụngchatbot để giải quyết trong trường hợp này là vô cùng khả thi Nó sẽ giúp giảm tải khánhiều cho bộ phận làm công tác tuyển sinh của nhà trường, đồng thời giúp việc thông

Trang 18

tin đến phụ huynh học sinh được tối ưu nhất có thể Do đó, chúng em muốn tìm hiểu

đề tài “Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường Đại học Sư phạm Kỹthuật TP Hồ Chí Minh” làm khóa luận tốt nghiệp của mình

2 Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu:

- Xây dựng hệ thống chatbot hỗ trợ tư vấn tuyển sinh cho trường Đại học Sưphạm Kỹ thuật TP HCM

Nhiệm vụ nghiên cứu:

- Tìm hiểu lý thuyết máy học và các thuật toán liên quan đến chatbot và cácthuật toán xử lý chuỗi

- Tìm hiểu các phương pháp xử lý ngôn ngữ tự nhiên với ngôn ngữ Tiếng Việt

- Tìm hiểu sâu hơn về thư viện Rasa framework

- Tìm hiểu các phương pháp nhận chuyển giọng nói thành văn bản và chuyểnvăn bản thành giọng nói

3 Cách tiếp cận và phương pháp nghiên cứu

Cách tiếp cận:

- Áp dụng các thuật toán, phương pháp xử lý chuỗi, ngôn ngữ tự nhiên

- Áp dụng kỹ thuật xây dựng chatbot dựa trên Rasa framework

- Thu thập dữ liệu về tuyển sinh của trường Đại học Sư phạm Kỹ thuật TP.HCM

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

- Nghiên cứu tập dữ liệu gồm các câu hỏi và trả lời để sử dụng cho xây dựngchatbot

- Xây dựng và mô phỏng hệ thống trợ lý ảo chatbot có thể hiểu và có thể trả lờiđược những câu hỏi thường gặp về thông tin tuyển sinh

- Xây dựng một website chứa những thông tin tuyển sinh mới nhất nhằm giúpngười dùng có thể tiếp cận với thông tin một cách nhanh nhất

4 Kết quả dự kiến đạt được

Về mặt lý thuyết:

- Thực hành các kỹ thuật xử lý chuỗi, ngôn ngữ tự nhiên

- Áp dụng các kỹ thuật học máy, khai phá dữ liệu trong huấn luyện và trang bịkhả năng tự học của chatbot

Trang 19

- Phần nội dung: Gồm 4 chương:

+ Chương 1: Tổng quan về machine learning+ Chương 2: Lý thuyết liên quan đến xây dựng chatbot+ Chương 3: Tổng quan về Rasa chatbot

+ Chương 4: Xây dựng chatbot hỗ trợ tư vấn tuyển sinh

- Phần kết luận

- Tài liệu tham khảo

Trang 20

Phần 2 NỘI DUNG

Trang 21

Bài toán machine learning thường được chia làm hai loại là dự đoán (prediction,

ví dụ: Dự đoán giá cả thị trường…) và phân loại (classification, ví dụ như: Phân biệtnhận diện khuôn mặt,…) [1]

Quy trình làm việc machine learning gồm các bước:

- Data collection – thu thập dữ liệu: Để huấn luyện máy tính, chúng ta cần cómột bộ dữ liệu (dataset) làm dữ liệu mẫu đầu vào Lưu ý là bộ dữ liệu này phải đượcthu thập từ các nguồn chính thống, nếu không việc học máy sẽ không chính xác và đạthiệu quả cao

- Preprocessing – tiền xử lý: Để chuẩn hóa dữ liệu, loại bỏ các thuộc tính khôngcần thiết, gán nhãn dữ liệu, mã hóa một số đặc trưng, trích xuất đặc trưng, rút gọn dữliệu nhưng vẫn đảm bảo độ chính xác của kết quả…

- Training model – huấn luyện mô hình: Bước này là bước huấn luyện cho môhình trên bộ dữ liệu mẫu đã thu thập và xử lý ở hai bước trên

- Evaluating model – đánh giá mô hình: Sau bước training model, chúng ta cầndùng các độ đo khác nhau để đánh giá mô hình, tùy vào từng độ đo khác nhau mà môhình sẽ được đánh giá theo các hướng khác nhau Một mô hình đạt trên 80% được cho

là tốt

- Improve – cải thiện: Sau khi đã đánh giá mô hình, nếu mô hình đạt độ chínhxác không tốt thì nó cần được train lại, chúng ta sẽ lặp lại từ bước training model, chođến khi mô hình của chúng ta đạt độ chính xác như mong muốn [1]

1.2 PHÂN LOẠI

Machine learning có 2 phân loại chính bao gồm:

- Supervised learning (học có giám sát) là việc cho máy tính học trên dữ liệu đãđược gán nhãn sẵn (label)

Trang 22

Hình 1: Mô tả mô hình supervised learning [1]

Hình 1 mô tả cách mà mô hình supervised learning học dữ liệu khi chúng đãđược gán nhãn sẵn

- Unsupervised learning (học không giám sát) là cho máy tính học trên dữ liệu

mà không được gán nhãn

Hình 2: Mô tả mô hình unsupervised learning [1]

Hình 2 mô tả quy trình hoạt động của mô hình unsupervised learning, theo đó

mô hình này học dựa trên dữ liệu không được gán sẵn nhãn trước đó, thay vào đó cácthuật toán machine learning sẽ tìm ra sự tương quan dữ liệu, mô hình hóa dữ liệu, từ

đó giúp máy tính có thể hiểu về dữ liệu và phân loại dữ liệu về sau thành các nhóm,

Trang 23

lớp (clustering) giống nhau mà chúng đã được học hoặc giảm số chiều dữ liệu(dimension reduction) [1]

Trang 24

CHƯƠNG 2:

LÝ THUYẾT LIÊN QUAN ĐẾN XÂY DỰNG CHATBOT

2.1 TỔNG QUAN VỀ MẠNG NEURAL NHÂN TẠO

Tiếp theo, chúng ta sẽ cùng tìm hiểu về mạng neural nhân tạo, kiến trúc cơ bản

và các thành phần trong mạng neural

2.1.1 Mạng neural nhân tạo là gì?

Mạng neural nhân tạo (artificial neural network - ANN) gọi ngắn gọn là mạngneural là một mô hình toán học được xây dựng bằng cách mô phỏng theo mạng neuralsinh học cấu tạo nên bộ não của động vật Mạng neural nhân tạo gồm một nhóm cácneural nhân tạo (artificial neural) còn được gọi là nút (node) nối với nhau thông quacác liên kết (connection) [2]

2.1.2 Kiến trúc cơ bản của mạng neural

Kiến trúc chung của một ANN bao gồm 3 thành phần đó là tầng đầu vào (inputlayer) dùng để đưa dữ liệu vào, tầng ẩn (hidden layer) và tầng đầu ra (output layer)được mô phỏng như hình 3 [3]

Hình 3: Kiến trúc mạng neural nhân tạo [3]

Hình 3 biểu diễn kiến trúc cơ bản của một mạng neural gồm 3 thành phần chính:Tầng đầu vào (input), tầng ẩn (hidden), tầng đầu ra (output)

Tầng đầu vào thường nhận dữ liệu dưới dạng là một vector n chiều Mỗi nút

Trang 25

Tầng ẩn lấy dữ liệu từ các liên kết với các nút ở tầng trước đó Sau đó, nó xử lýnhững dữ liệu đó thông qua các hàm tính toán Một mạng neural nhân tạo có thể cónhiều tầng ẩn Sau khi dữ liệu được xử lý ở các tầng ẩn, kết quả được trả về ở tầng đầu

ra [3]

2.1.3 Các thành phần mạng neural

Các liên kết (connection) và trọng số (weight): Một mạng gồm nhiều liên kết,mỗi liên kết sẽ có nhiệm vụ lấy kết quả từ một nút và đưa kết quả này làm đầu vào chomột nút khác Mỗi liên kết được ấn định một trọng số Một nút có thể có nhiều liên kếtđầu vào và nhiều liên kết đầu ra

Các nút: Mỗi một nút có thể có nhiều đầu vào từ đó tạo ra duy nhất một đầu ra,đầu ra này sẽ được gửi đến cho các nút khác trong mạng neural Các đầu vào có thể làcác giá trị đặc trưng của một mẫu dữ liệu bên ngoài, ví dụ như hình ảnh hoặc tài liệuvăn bản Ngoài ra, các đầu vào còn là các đầu ra của các nút khác Các đầu ra của cácnút cuối cùng của mạng neural hoàn thành nhiệm vụ, chẳng hạn như nhận dạng mộtđối tượng trong một hình ảnh Để tìm đầu ra của một nút, trước tiên chúng ta lấy tổngtrọng số của tất cả các đầu vào, được tính bằng các trọng số của các liên kết đến nút.Tổng trọng số này sau đó được chuyển qua một hàm kích hoạt (thường là hàm phituyến) để tạo ra đầu ra

Hàm truyền (propagation function): Hàm truyền tính toán đầu vào của một nút,đầu vào này là đầu ra của nút trước đó [3]

2.2.4 Các mô hình mạng neural

Mạng neural nhân tạo có các loại mô hình phổ biến ví dụ như perceptron, mạngnhiều lớp lan truyền thẳng (multi-layer feed-forward network), mạng neural hàm cơ sởxuyên tâm (radial basis function neural network - RBF), mạng neural tích chập(convolutional neural network - CNN), mạng neural hồi quy (recurrent neural network

- RNN) Trong bài khóa luận này chỉ tìm hiểu về mạng neural hồi quy để xây dựngchatbot [3]

2.2 DEEP LEARNING LÀ GÌ?

Học sâu (deep learning) là một lĩnh vực con của ngành máy học dựa trên mộttập hợp các thuật toán để cố gắng mô hình dữ liệu và trừu tượng chúng hóa ở mức caobằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác baogồm nhiều biến đổi phi tuyến [4]

Trang 26

Về cơ bản nó là một mạng neural có ba lớp trở lên Những mạng lưới thần kinhnày cố gắng mô phỏng hành vi của não người, do đó nó cho phép máy tính có thể học

từ một lượng lớn dữ liệu Mặc dù mạng neural với một lớp duy nhất vẫn có thể đưa racác dự đoán gần đúng, tuy nhiên việc có thêm các lớp ẩn bổ sung có thể giúp tối ưuhóa và tinh chỉnh để có độ chính xác của dự đoán

Học sâu thúc đẩy nhiều ứng dụng và dịch vụ trí tuệ nhân tạo (AI) nhằm cảithiện việc tự động hóa Ngoài ra, nó cũng thực hiện các tác vụ phân tích và vật lý màkhông cần sự can thiệp của con người Công nghệ học sâu nằm sau các sản phẩm vàdịch vụ hàng ngày như trợ lý ảo, điều khiển giọng nói… cũng như các công nghệ mớinổi như ô tô tự hành, nhà thông minh… [5]

2.3 MÔ HÌNH NGÔN NGỮ (LANGUAGE MODEL)

2.3.1 Mô hình thống kê ngôn ngữ (statistical language model)

Đặc điểm của các dữ liệu dạng văn bản là không được sinh ra từ những phânphối độc lập và giống hệt nhau (independently and identically distributed) Một đặcđiểm khác, đó là các dữ liệu dạng văn bản có cấu trúc tuần tự Ví dụ, trong một câuvăn, các từ không thể đổi chỗ cho nhau một cách ngẫu nhiên để tạo ra một câu văn có

ý nghĩa Vì thế, các mô hình mạng neural cơ bản rất khó để giải quyết các vấn đề liênquan đến loại dữ liệu này Các vấn đề liên quan đến dữ liệu dạng văn bản ví dụ nhưtìm từ tiếp theo, sinh văn bản, sửa lỗi cho từ Do đó, mô hình ngôn ngữ được tạo ra

và dùng để giải quyết những vấn đề liên quan đến dữ liệu dạng văn bản một cách hiệuquả nhất Ngoài ra, nhiều loại dữ liệu có cấu trúc tuần tự như dữ liệu dạng văn bảnkhác như: Biểu đồ thị trường chứng khoán, biểu đồ nhiệt độ của bệnh nhân, …

Hầu hết các vấn đề liên quan đến dữ liệu dạng văn bản đều dẫn đến bài toán tìm

từ tiếp theo dựa vào các từ trước đó để tạo thành một câu hoặc một đoạn văn hoànchỉnh Qua đó, chúng ta có thể xây dựng mô hình ngôn ngữ dựa trên lý thuyết xác suấtthống kê để giải quyết bài toán đã đề ra Mô hình ngôn ngữ được định nghĩa là phân bốxác suất của các từ trên một chuỗi [3]

Giả sử văn bản có độ dài K và các từ là �1, �2, , ��, thì �� (1 ≤ k ≤ K) có thể xem là đầu ra (hoặc nhãn) tại bước thời gian k Khi đã có chuỗi thứ tự trên, mục tiêu

của mô hình ngôn ngữ là ước tính xác suất của:

� �1, �2, , �� = � �1 �(�2|�1) �(��|�1:�−1)

Trang 27

2.3.2 Mô hình N-grams (N-grams model)

Mặt hạn chế của mô hình thống kê ngôn ngữ là khi mà ta xây dựng mô hìnhthống kê ngôn ngữ dựa theo một văn bản khá dài thì rất khó khăn và mất nhiều thờigian để tính toán Giải pháp cho vấn đề đó là áp dụng lý thuyết Markov chain vào môhình thống kê ngôn ngữ Markov chain là một quá trình ngẫu nhiên mô tả một dãy cácbiến cố khả dĩ, trong đó xác suất của mỗi biến cố chỉ phụ thuộc vào trạng thái của biến

cố trước đó Áp dụng Markov chain vào mô hình thống kê ngôn ngữ, ta được mô hìnhN-grams với N-1 là số từ đứng trước từ tại vị trí thứ k trong văn bản:

� �1, �2, , �� = �=1� � (��| ��−�+1, ��−�+2, , ��−1) [7]

Thông thường, các mô hình 2-grams, 3-grams được dùng làm mô hình ngônngữ vì nếu dùng 1-grams thì mô hình này sẽ không còn tính tuần tự

Tổng quát, mô hình thống kê ngôn ngữ và mô hình N-grams được dùng để làm

mô hình ngôn ngữ và là tiền đề để xây dựng các mạng neural chuyên xử lý các bàitoán liên quan đến văn bản trong đó có recurrent neural network [7]

2.4 RECURRENT NEURAL NETWORK (RNN)

2.4.1 Hai ứng dụng cơ bản của mô hình ngôn ngữ dựa trên RNN

Ứng dụng đầu tiên của mô hình ngôn ngữ là để đánh giá độ chính xác của mộtcâu dựa theo mức độ tương tự của chúng trên thực tế Việc này giúp ta ước lượng được

độ chính xác của văn phạm và ngữ nghĩa của một câu Nó thường được ứng dụngtrong các hệ thống dịch máy (machine translation)

Ứng dụng thứ hai là để tự động sinh văn bản Ví dụ huấn luyện mô hình với cáctác phẩm của văn học có thể cho phép ta sinh ra các câu từ tương tự cách mà tác giảviết [8]

2.4.2 Định nghĩa mạng neural hồi tiếp (RNN)

2.4.2.1 Định nghĩa:

RNN được gọi là mạng neural hồi tiếp (recurrent) là vì chúng thực hiện cùngmộ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éptính trước đó Mạng neural hồi tiếp được thiết kế để xử lý thông tin tuần tự tốt hơn.Các mạng này sử dụng các biến trạng thái để lưu trữ thông tin trong quá khứ, sau đódựa vào chúng và các đầu vào hiện tại để xác định các đầu ra hiện tại Trên lý thuyết,RNN có thể lưu và sử dụng được thông tin của một văn bản rất dài nhờ vào các nút ẩn,tuy nhiên trên thực tế thì nó chỉ có thể nhớ được một vài bước trước đó [7]

Trang 28

Ví dụ: Một mạng RNN với một trạng thái ẩn có dạng như hình 4:

Hình 4: Cấu trúc của một mạng RNN với 1 trạng thái ẩn [7]

Trong hình 4, ý nghĩa các ký hiệu như sau:

- Thông số X t là đầu vào tại bước t.

- H t là trạng thái ẩn tại bước t Nó chính là bộ nhớ của mạng H t tính toán dựatrên cả các trạng thái ẩn phía trước và đầu vào tại bước thời gian đó

- O t là đầu ra tại bước t.

Ưu điểm của một kiến trúc RNN:

- Khả năng xử lí đầu vào với bất kì độ dài nào

- Kích cỡ mô hình không tăng theo kích cỡ đầu vào

- Quá trình tính toán sử dụng các thông tin cũ

- Trọng số được chia sẻ trong suốt thời gian

Nhược điểm của một kiến trúc RNN:

- Tính toán chậm

- Khó để truy cập các thông tin từ một khoảng thời gian dài trước đây

- Không thể xem xét bất kì đầu vào sau này nào cho trạng thái hiện tại [9]

Trang 29

2.4.2.2 Phân Loại

Tiếp theo, chúng ta sẽ tìm hiểu về các loại RNN khác nhau và một số ví dụminh họa của nó qua hình 5 sau đây:

Hình 5: Phân loại mà ví dụ của các loại RNN khác nhau [9]

Trong hình 5, ý nghĩa các ký hiệu thông số như sau:

- y Ty là đầu ra tại bước T y.

- a t là trạng thái ẩn tại bước t.

- x Tx là đầu vào tại bước T x.

Trang 30

Ngoài ra, RNN còn có 2 loại là RNN có trạng thái ẩn và RNN không có trạngthái ẩn Tuy nhiên, việc không có các trạng thái ẩn sẽ mang lại một hạn chế là nókhông có các nút ẩn để lưu dữ thông tin trong các bước thời gian trước đó nên nókhông được sử dụng rộng rãi, do đó, trong bài viết này chúng ta chỉ đề cập đến RNN

có trạng thái ẩn

2.4.3 Mạng neural hồi tiếp có trạng thái ẩn

Đối với mạng neural hồi tiếp có trạng thái ẩn, giả sử trong một vòng lặp ta

có X tR n×d , t=1,…,T và H tR n×h là biến ẩn tại bước thời gian t của chuỗi Biến

mới W hhR h×h để mô tả việc sử dụng biến ẩn của bước thời gian t-1 trước đó trong

bước thời gian hiện tại Biến ẩn của bước thời gian hiện tại được xác định bởi côngthức sau:

H t =ϕ( X t W xh + H t−1 W hh +b h ) [7]

Từ công thức trên ta có thể thấy mối quan hệ giữa các biến ẩn H t và H t−1, điều

đó cho thấy chúng đã lưu lại thông tin lịch sử của chuỗi cho tới bước thời gian hiện tại.Một biến ẩn còn được gọi là một trạng thái ẩn (hidden state)

Hiện nay có rất nhiều phương pháp xây dựng RNN nhưng phổ biến nhất là

RNN có trạng thái ẩn Tại bước thời gian t, tầng đầu ra được tính theo công thức:

O t = H t W hq + b q[7]

W hhR h×h của tầng ẩn với hệ số điều chỉnh b hR 1×h , và trọng số W hqR h×q của tầng

đầu ra với hệ số điều chỉnh b qR 1×q Lưu ý rằng, RNN luôn sử dùng cùng một bộ

tham số mô hình cho dù tính toán ở các bước thời gian khác nhau Vì thế, việc tăng sốbước thời gian không làm tăng lượng tham số mô hình của RNN

Trang 31

Hình 6: Các bước hoạt động của một RNN với một trạng thái ẩn H t [7]

Hình 6 là một ví dụ minh họa logic tính toán của một RNN tại ba bước thời

gian liền kề Tại bước thời gian t, sau khi nối đầu vào X t với trạng thái ẩn H t−1tại bướcthời gian trước đó, ta có thể coi nó như đầu vào của một tầng kết nối đầy đủ với hàm

kích hoạt ϕ Đầu ra của tầng kết nối đầy đủ chính là trạng thái ẩn ở bước thời gian hiện tại H t Tham số mô hình ở bước thời gian hiện tại là W xh nối với W hh, cùng với hệ số

điều chỉnh b h Trạng thái ẩn ở bước thời gian hiện tại t, H t được sử dụng để tính trạng

thái ẩn H t+1 tại bước thời gian kế tiếp t+1 Hơn nữa, H t sẽ trở thành đầu vào cho tầng

đầu ra O t, một tầng kết nối đầy đủ, ở bước thời gian hiện tại [7]

2.4.4 Các biến thể của RNN

Tuy nhiên RNN truyền thống vẫn có những hạn chế nhất định mà trong số đónổi bật nhất là: Khả năng dự đoán trong tương lai và phụ thuộc xa Để khắc phục cácnhược điểm đó của RNN, người ta đã phát triển ra nhiền biến thể khác nhau để đápứng nhu cầu trong thực tiễn Tiêu biểu trong số đó là: RNN hai chiều, RNN sâu vàLSTM (long short term memory)

2.4.4.1 RNN hai chiều (bidirectional RNN)

RNN hai chiều khác với mạng neural truyền thống chỉ vận hành một RNN chạy

từ đầu đến cuối Đối với RNN hai chiều, ta sẽ thêm một RNN nữa chạy từ cuối lên đầu.Mạng neural hồi tiếp hai chiều (bidirectional RNN - BRNN) sẽ thêm một tầng ẩn chophép xử lý dữ liệu theo chiều ngược lại một cách linh hoạt hơn so với RNN truyềnthống

Trang 32

Hình 7: Kiến trúc của một mạng RNN hai chiều [7]

Hình 7 mô tả kiến trúc của mạng RNN 2 chiều Ngoài các tầng đầu ra và tầngđầu vào như RNN, RNN hai chiều có hai tầng ẩn đối ngược nhau về chiều

Cho một bước thời gian t, đầu vào minibatch là X tR n×d (n là số lượng mẫu, d

là số lượng đầu vào) và hàm kích hoạt của tầng ẩn là ϕ Chúng ta tính toán việc cập

nhật xuôi và ngược của trạng thái ẩn:

h

f hh t f xh

h

b hh t

b xh

2.4.4.2 LSTM (long short term memory)

LTSM là mạng bộ nhớ dài-ngắn (long short-term memory networks), thườngđược gọi là LSTM - một dạng đặc biệt của RNN, nó có khả năng học được các phụthuộc xa LSTM được giới thiệu bởi Hochreiter & Schmidhuber vào năm 1997, và sau

Trang 33

đó đã được cải tiến và phổ biến bởi rất nhiều người trong ngành Chúng hoạt động cực

kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay

LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency).Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, do đó takhông cần phải huấn luyện nó để có thể nhớ được [9]

Về mặt cấu trúc, các LSTM cũng giống như một RNN, nhưng mô-đun lặp lại cócấu trúc khác Thay vì có một lớp mạng nơ-ron duy nhất, có bốn lớp, tương tác theomột cách rất đặc biệt như hình 8 sau đây:

Hình 8: Minh họa cấu trúc và mô-đun lặp lại trong một LSTM [10]

Trong hình 8, mô-đun lặp lại trong một LSTM chứa bốn lớp tương tác Trong

đó bao gồm: Mỗi dòng mang một vector toàn bộ (entire vector), từ đầu ra của một nútđến đầu vào của những nút khác Các vòng tròn màu hồng đại diện cho các hoạt độngtheo chiều mũi tên, như phép cộng vector, trong khi các hộp màu vàng là các lớp mạngneural đã học Sau đó, hợp nhất các dòng biểu thị sự nối, trong khi một dòng cho biếtnội dung của nó đang được sao chép và các bản sao sẽ đến các vị trí khác nhau [10]

Tiếp theo, chúng ta sẽ cùng tìm hiểu về các giai đoạn trong LSTM:

- Bước 1: LSTM sẽ quyết định thông tin nào sẽ bị loại bỏ khỏi trạng thái ô (cellstate) Bước này được thực hiện bởi một lớp sigmoid được gọi là lớp cổng quên (forget

gate layer) Trong đó, dựa vào h t - 1 và x t hàm f tsẽ xuất một output là một số giữa 0 và 1

cho mỗi số trong trạng thái ẩn C t - 1(1 là giữ lại và 0 là loại bỏ đi) Điều này được thểhiện trong hình 9 dưới đây:

Trang 34

Hình 9: Mô tả bước xử lý đầu tiên trong LSTM [10]

Hình 9 mô tả bước đầu tiên trong quá trình xử lý của một vòng lặp trong LSTM

và cùng với đó là hàm f (hàm quyết định một thông tin có được giữa lại hay không).

- Bước 2: LSTM quyết định thông tin mới mà chúng ta sẽ lưu trữ trong trạngthái ô (cell state) Bước này gồm có hay phần chính:

+ Phần 1: Một lớp sigmoid được gọi là lớp cổng đầu vào (input gatelayer) quyết định những giá trị nào sẽ được cập nhật

+ Phần 2: Lớp tanh tạo ra một vectơ gồm các giá trị ứng cử viên mới

(candidate values) C~ t , chúng có thể được thêm vào trạng thái ẩn ở bước thời

gian hiện tại (bước thời gian t).

Và cuối cùng, chúng ta sẽ kết hợp hai điều này để tạo bản cập nhật chotrạng thái ẩn ở bước thời gian hiện tại như hình 10 sau đây:

Hình 10: Mô tả bước xử lý thứ hai trong LSTM [10]

- Bước 3: LSTM sẽ cập nhật trạng thái ô (cell state) cũ, C t - 1, vào trạng thái ô

(cell state) ở bước thời gian hiện tại (bước thời gian t) C t Ở bước này, chúng ta dựa

vào hàm f tđể xóa đi những thông tin không cần thiết Bước này được thể hiện ở hình

11 sau

Trang 35

Hình 11: Mô tả bước xử lý thứ ba trong LTSM [10]

Hình 11 đã mô tả bước xử lý thứ ba và công thức liên quan để tính C t(giá trịứng cử viên mới (candidate values), được chia tỷ lệ theo mức độ mà chúng tôi quyếtđịnh cập nhật từng giá trị trạng thái)

- Bước cuối: Trong bước này, chúng ta cần quyết định những gì sẽ xuất được

xuất ra Kết quả đầu ra này sẽ dựa trên trạng thái ô (cell state) C tsau khi đã được lọc.Đầu tiên, LSTM chạy một lớp sigmoid quyết định phần nào sẽ được xuất ra Sau đó,

nó đưa trạng thái ô (cell state) qua tanh (để đẩy các giá trị vào giữa - 1 và 1) và nhân

nó với đầu ra của cổng sigmoid, để xuất những phần mà đã được chọn trước đó Quátrình này được thể hiện rõ qua hình 12 sau đây

Hình 12: Mô tả bước xử lý cuối cùng trong LSTM [10]

Ngoài mô tả bước xử lý thứ tự trong LTSM, hình 2 còn có công thức dùng trongbước xử lý này

Cuối cùng trong phần tìm hiểu về LSTM chúng ta sẽ cùng điểm qua về các biếnthể chú ý nhất của nó:

- Đầu tiên là một biến thể LSTM phổ biến, nó được giới thiệu bởi Gers &

Schmidhuber (2000) So với LSTM thông thường nó thêm “peephole connections”.

Điều này có nghĩa là chúng ta để các lớp cổng xem xét trạng thái nút Hình 13 thể hiện

Trang 36

mô hình của biến thể này và sự khác biệt giữa nó với một LTSM truyền thống, cùngvới đó là các công thức sử dụng thêm trong mô hình này.

Hình 13: Mô tả biến thể LSTM thêm peephole connections [10]

- Một biến thể khác là sử dụng các cổng đầu vào và quên kết hợp (coupledforget) Thay vì quyết định riêng rẽ những gì nên xóa đi và những thông tin gì cầnthêm, biến thể LSTM này sẽ đưa ra những quyết định đó cùng nhau Chúng chỉ quênkhi sát nhập một cái gì đó vào vị trí của nó và chỉ nhập các giá trị mới vào trạng tháikhi chúng quên một cái gì đó cũ hơn Biến thể này được thể hiện trong hình 14 đướiđây cùng với các công thức dùng trong nó

Hình 14: LSTM sử dụng các cổng đầu vào và quên kết hợp (coupled forget) [10]

- Cuối cùng, một biến thể ấn tượng hơn một chút của LSTM là GRU (GatedRecurrent Unit), được giới thiệu bởi Cho, et al (2014) Nó kết hợp cổng quên và cổngđầu vào thành một cổng cập nhật Nó cũng hợp nhất trạng thái ô và trạng thái ẩn, đồngthời thực hiện một số thay đổi khác Mô hình kết quả của nó đơn giản hơn so với các môhình LSTM tiêu chuẩn và đang ngày càng trở nên phổ biến Hình 15 mô tả biến thể này

và các công thức dùng trong nó

Trang 37

Hình 15: Biến thể Gated Recurrent Unit của LSTM [10]

2.4.4.3 RNN sâu (deep RNN)

Đối với mạng neural hồi tiếp duy nhất một tầng ẩn với đơn hướng, cách cácbiến tiềm ẩn và các quan sát tương tác với nhau còn khá tuỳ ý và đây là một thách thứcvới các mạng đơn tầng Để khắc phục điều đó, người ta đưa thêm nhiều tầng vào mạngtạo thành một RNN sâu (deep RNN - DRNN) [7]

Hình 16: Kiến trúc của một DRNN [7]

Trang 38

Hình 16 mô tả kiến trúc của một DRNN, thay vì một tầng ẩn như RNN, DRNN

có nhiều tầng ẩn xếp chồng lên nhau và điều này giúp cho DRNN có thể khắc phụcđược những hạn chế mà RNN truyền thống mắc phải Trong đó, trạng thái ẩn ở tầng

thứ nhất tại bước thời gian t được tính theo công thức như sau:

) , ( ( 1 )

1 1

) 1 (

1 ) 1 (

t

l t l

t

2.5 WORD EMBEDDING

Thực tế các mô hình như RNN không thể trực tiếp xử lý dữ liệu dạng văn bản

mà phải chuyển đổi thành kiểu dữ liệu dạng số Kỹ thuật word embedding (còn đượcgọi là vector hóa các từ) nhằm ánh xạ từ ngữ dạng văn bản sang vector số thực từ đólàm đầu vào cho các mô hình như RNN để huấn luyện và đưa ra kết quả Kỹ thuật đơngiản nhất là dùng one-hot encoding để chuyển đổi Tuy nhiên kỹ thuật one-hot

encoding không thể hiện được mối liên hệ giữa các từ như word2vec, GloVE hoặcBERT Do hai kỹ thuật GloVE và BERT được ứng dụng cho chatbot nên trong bàikhóa luận này chỉ đề cập đến hai kỹ thuật xử lý là GloVE và BERT

2.5.1 Mô hình GloVE (Global Vectors for Word Representation)

GloVe là một dự án mã nguồn mở của Stanford hoàn thành vào năm 2014 nhằmtạo ra các vector biểu diễn cho các từ Nên các mô hình có thể tận dụng thông tin vềmối quan hệ ngữ nghĩa giữa các từ tốt hơn thông qua mô hình GloVE, từ đó chúng đạtđược kết quả tốt hơn trong các bài toán liên quan đến ngôn ngữ tự nhiên

Ta gọi ma trận đồng xuất hiện (word-word co-occurrence) là �, mỗi ô là ��� cho

biết số lần từ j xuất hiện khi đã có từ i (i là từ ngữ cảnh) �là số lần xuất hiện từ i trong tất cả các từ ngữ cảnh ngoại trừ i Từ đó, ta có xác suất từ j xuất hiện khi có từ ngữ cảnh i là ��� = �(� | �) = ���/��

Tác giả của mô hình GloVE sử dụng công thức���

��� để tính toán vector từ, qua đó

đạt được mục tiêu thống kê toàn cục Với i, j là từ ngữ cảnh và k là từ ta đang xét trong

Trang 39

bộ từ vựng (global statistic) Từ công thức���

���, tác giả giả sử rằng có một hàm F nhận các vector từ của i, j và từ k đang xét để tính tỷ lệ dựa theo���

���

Qua các biến đổi vector từ hàm F, tác giả đưa ra hàm mất mát (loss function)

của GloVE như sau:

- �: Là các vector từ có ngữ cảnh riêng biệt

Cuối cùng tác giả đưa ra định nghĩa về hàm �(x) hay còn được gọi là hàm trọng

số (weighting function), được thêm vào để giảm bớt sự ảnh hưởng của các cặp từ xuấthiện quá thường xuyên

Tác giả đã tìm ra hàm trọng số phù hợp nhất cho mô hình GloVE là:

Trang 40

Hình 17: mô tả sơ đồ kiến trúc Transformer kết hợp với attention [12]

Mô hình trong hình 17 bao gồm 2 phase:

- Encoder: Kiến trúc bao gồm 6 layers liên tiếp nhau Trong đó, một layer gồmmột sub-layer là Multi-Head Attention kết hợp với fully-connected layer Output củaencoder là một vector embedding output cho mỗi từ

- Decoder: Kiến trúc gồm các layers liên tiếp nhau Trong đó, một layer cũng cócác sub-layers gần tương tự như layer của encoder nhưng nó được bổ sung thêm mộtsub-layer đầu tiên là Masked Multi-Head Attention Hàm này có tác dụng loại bỏ các

từ trong tương lai khỏi quá trình attention

Trong kiến trúc Transformer, có hai dạng attention khác nhau sẽ được sử dụngtại từng bước huấn luyện:

Ngày đăng: 11/05/2023, 09:35

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] “Machine learning là gì?”, TopDev, 30-Sep-2021. [Online]. Available:https://topdev.vn/blog/machine-learning-la-gi. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Machine learning là gì
[2] “Mạng thần kinh nhân tạo”, Wikipedia tiếng Việt. [Online]. Available:https://vi.wikipedia.org/wiki/Mạng_thần_kinh_nhân_tạo. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Mạng thần kinh nhân tạo
[3] “Artificial neural network”, Wikipedia, 08-Jan-2022. [Online]. Available:https://en.wikipedia.org/wiki/Artificial_neural_network. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Artificial neural network
[4] “Học sâu”, Wikipedia, 15-May-2021. [Online]. Available: https://vi.wikipedia.org/wiki/Học_sâu.[Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Học sâu
[5] IBM Cloud Education, “What is Deep Learning?”, IBM. [Online]. Available:https://www.ibm.com/cloud/learn/deep-learning. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: What is Deep Learning
[6] “Language model”, Wikipedia, 11-Dec-2021. [Online]. Available:https://en.wikipedia.org/wiki/Language_model. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Language model
[7] Đoàn Võ Duy Thanh, Nguyễn Văn Quang, Lê Khắc Hồng Phúc, Phạm Hồng Vinh, Phạm Minh Đức và Nguyễn Văn Cường, “Mạng nơ-ron Hồi tiếp”, Đắm mình vào Học Sâu. [Online]. Available:https://d2l.aivivn.com/chapter_recurrent-neural-networks/rnn_vn.html. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Mạng nơ-ron Hồi tiếp
[8] Đỗ Minh Hải, “[RNN] RNN là gì?”, Hai's Blog. [Online]. Available:https://dominhhai.github.io/vi/2017/10/what-is-rnn/. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: [RNN] RNN là gì
[9] “Mạng neural hồi quy cheatsheet Star”, Stanford. [Online]. Available:https://stanford.edu/~shervine/l/vi/teaching/cs-230/cheatsheet-recurrent-neural-networks. [Accessed:08-Jan-2022] Sách, tạp chí
Tiêu đề: Mạng neural hồi quy cheatsheet Star
[10] “Understanding LSTM Networks”, colah's blog. [Online]. Available:https://colah.github.io/posts/2015-08-Understanding-LSTMs/. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Understanding LSTM Networks
[11] J. Pennington, “GloVe: Global Vectors for Word Representation”. [Online]. Available:https://nlp.stanford.edu/projects/glove/. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: GloVe: Global Vectors for Word Representation
[12] Phạm Đình Khánh, “Khoa học dữ liệu”, Khanh's blog. [Online]. Available:https://phamdinhkhanh.github.io/2020/05/23/BERTModel.html#141-tiếp-cận-nông-shallow-approach.[Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Khoa học dữ liệu
[13] R. Ong, “Day 101 of #NLP365: In-Depth Study Of RASA's DIET Architecture”, Medium, 13- Apr-2020. [Online]. Available: https://towardsdatascience.com/day-101-of-nlp365-in-depth-study-of-Rasas-diet-architecture-3cdc10601599. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Day 101 of #NLP365: In-Depth Study Of RASA's DIET Architecture
[14] “Xử lý ngôn ngữ tự nhiên: Công nghệ giúp máy tính hiểu và giao tiếp với con người”, FPT Digital, 03-Dec-2021. [Online]. Available: https://digital.fpt.com.vn/nghien-cuu-noi-bat/xu-ly-ngon-ngu-tu-nhien.html. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Xử lý ngôn ngữ tự nhiên: Công nghệ giúp máy tính hiểu và giao tiếp với con người
[15] Mắt Bão, “Chatbot là gì? Ứng dụng thực tế của Chatbot trong kinh doanh”, MATBAO.NET, 27- Dec-2021. [Online]. Available: https://wiki.matbao.net/chatbot-la-gi-ung-dung-thuc-te-cua-chatbot-trong-kinh-doanh/#chatbot-la-gi. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Chatbot là gì? Ứng dụng thực tế của Chatbot trong kinh doanh
[16] Big Mr, “Có thể phân loại Chatbot như thế nào?”, Cộng Đồng Chat Bot. [Online]. Available:https://congdongchatbot.com/co-the-phan-loai-chatbot-nhu-the-nao/. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Có thể phân loại Chatbot như thế nào
[17] B. T. N. Mai, “Tổng quan về Rasa Chatbot”, Mentor of developer, 23-Aug-2021. [Online].Available: https://mentorofdev.com/2021/08/19/tong-quan-ve-Rasa-chatbot. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Tổng quan về Rasa Chatbot
[18] M. Pethani, “Making of Chatbot using Rasa NLU & Rasa Core-Part 1”, Medium, 13-Nov-2019.[Online]. Available: https://chatbotslife.com/making-of-chatbot-using-Rasa-nlu-Rasa-core-part-1-7138c438581f. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Making of Chatbot using Rasa NLU & Rasa Core-Part 1
[19] B. T. Tung, “Rasa core - Khi Nào Thì Cần Thiết???”, Viblo, 10-Jul-2022. [Online]. Available:https://viblo.asia/p/rasa-core-khi-nao-thi-can-thiet-bWrZn7Qmlxw. [Accessed: 11-Jul-2022] Sách, tạp chí
Tiêu đề: Rasa core - Khi Nào Thì Cần Thiết
[20] Jay Selig, “Natural Language Understanding: What is it and How is it Different fromNLP?”, Expert.ai, 24-Nov-2021. [Online]. Available: expert.ai/blog/natural-language-understanding-different-nlp/. [Accessed: 08-Jan-2022] Sách, tạp chí
Tiêu đề: Natural Language Understanding: What is it and How is it Different fromNLP

HÌNH ẢNH LIÊN QUAN

Hình 6: Các bước hoạt động của một RNN với một trạng thái ẩn H t . [7] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 6 Các bước hoạt động của một RNN với một trạng thái ẩn H t . [7] (Trang 31)
Hình 7: Kiến trúc của một mạng RNN hai chiều. [7] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 7 Kiến trúc của một mạng RNN hai chiều. [7] (Trang 32)
Hình 17: mô tả sơ đồ kiến trúc Transformer kết hợp với attention. [12] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 17 mô tả sơ đồ kiến trúc Transformer kết hợp với attention. [12] (Trang 40)
Hình 19: Bên trái là vị trí áp dụng encoder-decoder attention. [12] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 19 Bên trái là vị trí áp dụng encoder-decoder attention. [12] (Trang 42)
Hình 20: Toàn bộ tiến trình pre-training và fine-tuning của BERT [12] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 20 Toàn bộ tiến trình pre-training và fine-tuning của BERT [12] (Trang 43)
Hình 21: Mô tả các phân loại theo chất lượng trải nghiệm của người dùng [16] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 21 Mô tả các phân loại theo chất lượng trải nghiệm của người dùng [16] (Trang 50)
Hình 25: Sơ đồ các thành phần và hoạt động của Rasa Core [19] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 25 Sơ đồ các thành phần và hoạt động của Rasa Core [19] (Trang 53)
Hình 32: Luồng điều khiển của trình quản lý đối thoại [21] - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 32 Luồng điều khiển của trình quản lý đối thoại [21] (Trang 59)
Hình 36: Lược đồ user case ứng dụng - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 36 Lược đồ user case ứng dụng (Trang 69)
Hình 49: Lược đồ cơ sở dữ liệu mức logic - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 49 Lược đồ cơ sở dữ liệu mức logic (Trang 83)
Hình 50: Lược đồ cơ sở dữ liệu mức vật lý - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 50 Lược đồ cơ sở dữ liệu mức vật lý (Trang 84)
Hình 51: Cơ sở dữ liệu hoàn chỉnh - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 51 Cơ sở dữ liệu hoàn chỉnh (Trang 85)
Hình 56: Mô tả giao diện phần đăng ký tài khoản - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 56 Mô tả giao diện phần đăng ký tài khoản (Trang 94)
Hình 59: Giao diện trang đăng nhập - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 59 Giao diện trang đăng nhập (Trang 95)
Hình 65: Mô tả giao diện phần khung chat - Xây dựng hệ thống chatbot cho tư vấn tuyển sinh trường đại học sư phạm kỹ thuật tp hcm đồ án tốt nghiệp ngành công nghệ thông tin
Hình 65 Mô tả giao diện phần khung chat (Trang 101)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w