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 2TRƯỜ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 3TRƯỜ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 6LỜ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 7TRƯỜ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 82.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 9KẾ 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 11MỤ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 124.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 13DANH 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 14Hì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 15DANH 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 16Phần 1
MỞ ĐẦU
Trang 171 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 18tin đế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 20Phần 2 NỘI DUNG
Trang 21Bà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 22Hì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 23lớ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 24CHƯƠ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 25Tầ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 26Về 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 272.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 28Ví 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 292.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 30Ngoà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 t∈R n×d , t=1,…,T và H t∈R n×h là biến ẩn tại bước thời gian t của chuỗi Biến
mới W hh∈R 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 hh∈R h×h của tầng ẩn với hệ số điều chỉnh b h∈R 1×h , và trọng số W hq∈R h×q của tầng
đầu ra với hệ số điều chỉnh b q∈R 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 31Hì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 32Hì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 t∈R 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 34Hì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 35Hì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 36mô 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 37Hì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 38Hì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 39bộ 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 40Hì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: