Đăng ký Đăng nhập
Trang chủ Phát triển hệ thống chatbot trò chuyện nhiều tầng ...

Tài liệu Phát triển hệ thống chatbot trò chuyện nhiều tầng

.PDF
75
1
106

Mô tả:

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC - KỸ THUẬT MÁY TÍNH OOO BK TP.HCM LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC PHÁT TRIỂN HỆ THỐNG CHATBOT TRÒ CHUYỆN NHIỀU TẦNG NGÀNH: CÔNG NGHỆ PHẦN MỀM HỘI ĐỒNG GVHD GVPB SVTH : : : : KHOA HỌC MÁY TÍNH 11 PGS. TS. QUẢN THÀNH THƠ TS. NGUYỄN ĐỨC DŨNG NGUYỄN DƯƠNG MINH TÂM ĐẠT (1710059) ĐẠI HỌC QUỐC GIA TP.HCM ---------TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA:KH & KT Máy tính BỘ MÔN: KHMT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình HỌ VÀ TÊN: Nguyễn Dương Minh Tâm Đạt NGÀNH: KHMT MSSV: 1710059 LỚP: MT17KHTN 1. Đầu đề luận án: Phát triển hệ thống chat bot trò chuyện nhiều tầng 2. Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu): ✔ Nghiên cứu các lý thuyết học máy nền tảng ✔ Nghiên cứu lý thuyết xây dựng chatbot ✔ Phân tích và thiết kế hệ thống chatbot với khả năng tương tác với một số chatbot khác để hỗ trợ giao tiếp với người dùng. Các chatbot có thể giao tiếp bằng hình ảnh và văn bản. ✔ Xây dựng demo ✔ Đánh giá hệ thống 3. Ngày giao nhiệm vụ luận án: 03/09/2015 4. Ngày hoàn thành nhiệm vụ: 20/12/2015 5. Họ tên giảng viên hướng dẫn: 1) 2) 3) Phần hướng dẫn: Nội dung và yêu cầu LVTN đã được thông qua Bộ môn. Ngày ........ tháng ......... năm .......... CHỦ NHIỆM BỘ MÔN GIẢNG VIÊN HƯỚNG DẪN CHÍNH (Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên) PGS.TS. Quản Thành Thơ PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ): Đơn vị: Ngày bảo vệ: Điểm tổng kết: Nơi lưu trữ luận án: TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ---------------------------Ngày tháng năm PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người hướng dẫn/phản biện) 1. Họ và tên SV: Nguyễn Dương Minh Tâm Đạt MSSV: 1710059 Ngành (chuyên ngành): KHMT 2. Đề tài: Phát triển hệ thống chat bot trò chuyện nhiều tầng 3. Họ tên người hướng dẫn/phản biện: PGS.TS. Quản Thành Thơ 4. Tổng quát về bản thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính toán: Hiện vật (sản phẩm) 5. Tổng quát về các bản vẽ: - Số bản vẽ: Bản A1: Bản A2: Khổ khác: - Số bản vẽ vẽ tay Số bản vẽ trên máy tính: 6. Những ưu điểm chính của LVTN: - - Đề tài có tính thực tế cao. Sinh viên đã nghiên cứu nhiều mảng kiến thức học thuật liên quan đến xử lý ngôn ngữ tự nhiên sử dụng học sâu và vận dụng phù hợp vào đề tài. Đặc biệt, học viên đã vận dụng nhiều tầng xử lý bao gồm QA và Information Retrieval để hoàn thiện đề tài của mình. Đề tài đã được bắt đầu áp dụng thực tế, đáp ứng được các nhu cầu về non-functional requirement của công nghiệp. 7. Những thiếu sót chính của LVTN: - Sinh viên cần phân tích kỹ hơn về khái niệm “chatbot nhiều tầng” của mình. 8. Đề nghị: Được bảo vệ □ Bổ sung thêm để bảo vệ □ 9. 3 câu hỏi SV phải trả lời trước Hội đồng: 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Không được bảo vệ □ Điểm : 9/10 Ký tên (ghi rõ họ tên) PGS.TS. Quản Thành Thơ TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ---------------------------Ngày 01 tháng 08 năm 2021 PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người hướng dẫn/phản biện) 1. Họ và tên SV: Nguyễn Dương Minh Tâm Đạt MSSV: 1710059 Ngành (chuyên ngành): CNPM 2. Đề tài: PHÁT TRIỂN HỆ THỐNG CHATBOT TRÒ CHUYỆN NHIỀU TẦNG 3. Họ tên người hướng dẫn/phản biện: Nguyễn Đức Dũng 4. Tổng quát về bản thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính toán: Hiện vật (sản phẩm) 5. Tổng quát về các bản vẽ: - Số bản vẽ: Bản A1: Bản A2: Khổ khác: - Số bản vẽ vẽ tay Số bản vẽ trên máy tính: 6. Những ưu điểm chính của LVTN: Luận văn đã phát triển được một hệ thống chatbot hỗ trợ các cuộc trò chuyện hướng phi mục tiêu. Với hệ thống dề xuất, các câu phản hồi có thể được phân vào nhóm các câu đã biết qua hình thức template matching. Trường hợp các câu hỏi không match được và có thể phân loại các câu hỏi về người thì nhóm sử dụng module Q&A để xử lý. Trong trường hợp còn lại thì sử dụng GPT-2 model để sinh câu trả lời. Về cơ bản nhóm đã hoàn thành các yêu cầu đặt ra của đề tài với cách tiếp cận sử dụng các mô hình phù hợp có sẵn. 7. Những thiếu sót chính của LVTN: Đề tài chatbot dạng này có độ phức tạp thực tế cao hơn nhiều. Mặc dù nhóm đã hoàn thành các mục tiêu cơ bản, tuy nhiên nhóm còn chưa cân nhắc các yếu tố cần thiết cho một chatbot dạng này. Thứ nhất là vấn đề về hội thoại, tác nhân của hội thoại trong trường hợp này là người dùng, tuy nhiên với hệ thống trò chuyện, đôi khi bot phải là người bắt đầu cuộc trò chuyện, điều này cần ghi rõ trong scope đề tài. Thứ hai, về các dạng matching cơ bản là vô cùng đa dạng và khó bao phủ hết, càng bao phủ nhiều càng tốn chi phí tính toán cho module template matching. Thêm nữa, các hình thức sinh câu trả lời hiện tại đều là không có nhớ, không sử dụng thông tin ngữ cảnh. Do đó kết quả sinh ra của câu trả lời thường bị overfit trên tập dữ liệu huấn luyện. Điều này thấy rõ trong phần thí nghiệm của nhóm. 8. Đề nghị: Được bảo vệ o Bổ sung thêm để bảo vệ o Không được bảo vệ o 9. 3 câu hỏi SV phải trả lời trước Hội đồng: a. Nếu muốn cải thiện câu phản hồi của chatbot mà có yếu tố ngữ cảnh, nhóm cần thay đổi gì trong cách tiếp cận bài toán? b. Việc sử dụng lại GPT-2 hay các mô hình seq2seq có thực sự hợp lý đối với chatbot phi mục tiêu? 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm: 9 /10 Ký tên (ghi rõ họ tên) Nguyễn Đức Dũng LỜI CAM ĐOAN Tôi xin cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác có liên quan đã ghi rõ trong luận văn, các nội dung trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung nào được nộp để lấy bằng cấp ở một trường khác. TP. HCM, NGÀY 25 THÁNG 7 NĂM 2021 LỜI CẢM ƠN Đầu tiên, tôi xin gửi lời cảm ơn chân thành nhất đến PGS TS. Quản Thành Thơ, người thầy gắn bó với tôi trong quá trình thực hiện luận văn này. Xin cảm ơn những sự hướng dẫn tận tình, chu đáo của thầy, chính nhờ những kiến thức mà thầy đã truyền đạt lại đã giúp cho tôi hoàn thành tốt luận văn này. Tôi cũng xin được cảm ơn TS. Nguyễn Đức Dũng, giảng viên phản biện của đề tài trong quá trình Đề cương và Luận văn, với những định hướng và góp ý giúp cho tôi có thể hoàn thành đề tài này. Xin gửi lời cảm ơn đến các thầy cô trường Đại học Bách Khoa, đặc biệt là các thầy cô bộ môn trong khoa Khoa học và Kỹ thuật Máy tính đã truyền đạt những kiến thức quý báu trong những năm học qua. Cuối cùng, tôi xin cảm ơn các bạn sinh viên, những người đã tham gia thử nghiệm cho đề tài của tôi, cảm ơn các bạn đã đóng góp một phần quan trọng trong việc đánh giá hệ thống của tôi. Tôi cũng xin cảm ơn gia đình, bạn bè đã hỗ trợ tôi trong suốt quá trình học tập và hoàn thành luận văn. TÁC GIẢ. iii TÓM TẮT Hiện nay, có rất nhiều chatbot ra đời với nhiều mục đích khác nhau. Một số chatbot được tạo ra với mục đích nhất định, cũng có một số được tạo ra để có thể trò chuyện giúp người dùng giải trí. Cùng với sự phát triển của công nghệ và những bước tiến trong nghiên cứu, nhiều mô hình hỗ trợ cho việc tạo ra chatbot có khả năng hiểu được ngôn ngữ của con người tốt hơn. Trong đề tài luận văn này, nhóm sẽ xây dựng một hệ thống chatbot có thể trò chuyện với người dùng để giải trí. Hệ thống được thiết kế gồm nhiều tầng áp dụng nhiều mô hình học máy khác nhau để có thể trò chuyện và trả lời một số câu hỏi của người dùng. MỤC LỤC Tóm tắt iii Danh mục hình ảnh vii Danh mục bảng biểu viii Danh mục chữ viết tắt Chương 1 TỔNG QUAN 1.1 Đặt vấn đề . . . . . . . . . . . . . . . . . 1.2 Ví dụ minh hoạ . . . . . . . . . . . . . . 1.3 Mục tiêu và các giai đoạn thực hiện đề tài 1.3.1 Mục tiêu đề tài . . . . . . . . . . 1.3.2 Các giai đoạn thực hiện . . . . . . 1.4 Giới hạn đề tài . . . . . . . . . . . . . . . 1.5 Cấu trúc luận văn . . . . . . . . . . . . . ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chương 2 KIẾN THỨC NỀN TẢNG 2.1 Tổng quan về chatbot . . . . . . . . . . . . . . . . . . . 2.1.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . 2.1.2 Phân loại chatbot . . . . . . . . . . . . . . . . . 2.1.3 Các kỹ thuật thiết kế chatbot . . . . . . . . . . . 2.2 Word Embedding . . . . . . . . . . . . . . . . . . . . . 2.2.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . 2.2.2 Continuous Bag-of-Words Model . . . . . . . . . 2.2.3 Continuous Skip-gram Model . . . . . . . . . . 2.3 Mạng nơ-ron nhân tạo - Artificial Neural Network (ANN) 2.3.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . 2.3.2 Các công thức toán học . . . . . . . . . . . . . . 2.3.3 Khả năng của ANN . . . . . . . . . . . . . . . . 2.3.4 Một số hàm Activation . . . . . . . . . . . . . . 2.3.4.1 Hàm Tanh . . . . . . . . . . . . . . . 2.3.4.2 Hàm Sigmoid . . . . . . . . . . . . . . 2.3.4.3 Hàm Relu . . . . . . . . . . . . . . . . 2.3.5 Huấn luyện ANN . . . . . . . . . . . . . . . . . 2.4 Recurrent Neural Networks . . . . . . . . . . . . . . . . 2.4.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . 2.4.2 Một số ứng dụng của RNN . . . . . . . . . . . . 2.4.2.1 One-to-one . . . . . . . . . . . . . . . 2.4.2.2 Many-to-one . . . . . . . . . . . . . . 2.4.2.3 Many-to-many loại 1 . . . . . . . . . . 2.4.2.4 Many-to-many loại 2 . . . . . . . . . . 2.4.3 Long Short-Term Memory networks . . . . . . . 2.4.4 Sequence to sequence model . . . . . . . . . . . 2.5 Attention và Transformer . . . . . . . . . . . . . . . . . 2.5.1 Giới thiệu cơ chế Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 3 3 4 4 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 7 7 8 9 9 9 10 10 10 11 12 12 12 13 13 14 14 14 15 15 16 16 16 17 18 19 19 v MỤC LỤC 2.5.2 . . . . . . 21 21 22 22 23 24 Chương 3 CÁC CÔNG TRÌNH LIÊN QUAN 3.1 Chatbot tiếng Việt dựa trên mạng nơ-ron (A Neural Network Based Vietnamese Chatbot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Mô hình BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Mô hình GPT-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 26 26 28 Chương 4 TẬP DỮ LIỆU 4.1 Dữ liệu phụ đề phim tiếng Việt - OpenSubtitles . . . . . . . . . . . . . . . . . 4.2 Tập dữ liệu trả lời câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 30 30 Chương 5 ĐẶC TẢ VÀ HIỆN THỰC HỆ THỐNG 5.1 Thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . 5.1.1 Tổng quan về kiến trúc hệ thống và chức năng . . 5.1.2 Sơ đồ tình huống sử dụng (Use Case Diagram) . 5.1.3 Sơ đồ trình tự (Sequence Diagram) . . . . . . . . 5.2 Chi tiết các thành phần . . . . . . . . . . . . . . . . . . 5.2.1 Bộ xử lý tin nhắn cơ bản (General Chat Module) 5.2.2 Bộ trả lời câu hỏi (QA Module) . . . . . . . . . 5.2.3 Bộ sinh ngôn ngữ tự nhiên (GPT Module) . . . . 5.2.4 Bộ phân loại tin nhắn (Message Classifier) . . . . 5.2.5 Bộ xử lý tin nhắn (Message Handler) . . . . . . . 5.3 Vấn đề cần giải quyết . . . . . . . . . . . . . . . . . . . 5.4 Khó khăn . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Giải pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 32 32 32 35 35 35 37 38 38 39 39 39 39 Chương 6 CÔNG NGHỆ SỬ DỤNG 6.1 Ngôn ngữ lập trình . . . . . . 6.1.1 Python . . . . . . . . . 6.1.2 JavaScript . . . . . . . 6.2 Nền tảng và thư viện . . . . . 6.2.1 NodeJS . . . . . . . . 6.2.2 Pytorch . . . . . . . . 6.2.3 Pandas . . . . . . . . . 6.2.4 TensorFlow . . . . . . 6.2.5 Botkit . . . . . . . . . 6.2.6 Scikit-learn . . . . . . 6.2.7 Pymongo . . . . . . . 6.2.8 Amazon Web Services 6.2.9 HuggingFace . . . . . 6.3 Công cụ . . . . . . . . . . . . 6.3.1 Google Colab . . . . . 6.3.2 MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 42 42 42 42 42 43 43 43 43 43 43 44 44 44 44 44 2.6 2.7 Mô hình Transformer . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2.2 Encoder và Decoder . . . . . . . . . . . . . . . . . . . 2.5.2.3 Attention . . . . . . . . . . . . . . . . . . . . . . . . . Mô hình Generative Pre-trained Transformer . . . . . . . . . . . . . . . . Mô hình Bidirectional Encoders Representation from Transformer (BERT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chương 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 vi MỤC LỤC 7.1 . . . . . . . . . . . . . . . . . . . . 46 46 46 48 48 48 48 48 48 48 49 49 50 50 50 51 51 51 52 55 Chương 8 TỔNG KẾT 8.1 Các kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Các hạn chế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Định hướng trong tương lai . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 59 59 59 Tài liệu tham khảo 59 Danh mục từ khoá 62 7.2 7.3 7.4 7.5 7.6 7.7 7.8 Xây dựng bộ trả lời câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Mô hình trả lời câu hỏi áp dụng BERT . . . . . . . . . . . . . . . 7.1.2 Hệ thống truy vấn đoạn văn cho mô hình trả lời câu hỏi . . . . . . Xây dựng bộ phân loại tin nhắn . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 Phương pháp Pattern Matching . . . . . . . . . . . . . . . . . . . 7.2.2 Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Xây dựng bộ trả lời các ý định cơ bản . . . . . . . . . . . . . . . . . . . . Xây dựng mô hình ngôn ngữ . . . . . . . . . . . . . . . . . . . . . . . . 7.4.1 Môi trường huấn luyện mô hình . . . . . . . . . . . . . . . . . . 7.4.2 Mô hình ngôn ngữ dùng LSTM . . . . . . . . . . . . . . . . . . . 7.4.3 Mô hình GPT-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.4 Kết quả và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . Xây dựng cơ sở dữ liệu lưu trữ đoạn hội thoại . . . . . . . . . . . . . . . Triển khai hệ thống chatbot . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.1 Thông số hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.2 Sơ đồ triển khai phần mềm . . . . . . . . . . . . . . . . . . . . . Kiểm thử các thành phần của hệ thống chatbot . . . . . . . . . . . . . . . 7.7.1 Kiểm thử thành phần xử lý câu nói thông thường và trả lời câu hỏi 7.7.2 Kiểm thử giao diện . . . . . . . . . . . . . . . . . . . . . . . . . Đánh giá của người dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DANH MỤC HÌNH ẢNH 1.1 Ví dụ một đoạn hội thoại giữa chatbot và người dùng . . . . . . . . . . . . . . 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 Các hướng phân loại chatbot . . . . . . . . . Mô hình CBOW và Skip-gram . . . . . . . . Mô hình nơ-ron nhân tạo . . . . . . . . . . . MLP với hai hidden layer . . . . . . . . . . . Các kí hiệu và công thức tính toán trong MLP Đồ thị hàm tanh . . . . . . . . . . . . . . . . Đồ thị hàm sigmoid . . . . . . . . . . . . . . Đồ thị hàm ReLU . . . . . . . . . . . . . . . Kiến trúc cơ bản của mạng RNN . . . . . . . One-to-many RNN . . . . . . . . . . . . . . Many-to-one RNN . . . . . . . . . . . . . . . Many-to-many RNN loại 1 . . . . . . . . . . Many-to-many RNN loại 2 . . . . . . . . . . Kiến trúc của LSTM . . . . . . . . . . . . . Kiến trúc mô hình Sequence-to-sequence . . . Encoder-decoder với Attention mechanism . . Alignment matrix . . . . . . . . . . . . . . . Kiến trúc mô hình Transformer . . . . . . . . Mô tả khối decoder được dùng trong GPT . . Các tác vụ cụ thể áp dụng BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 10 11 11 12 13 13 14 14 15 16 16 17 17 19 19 20 21 23 24 3.1 3.2 3.3 3.4 3.5 3.6 Ví dụ về cặp câu hỏi và trả lời [22] . . . . . . . . . . . . . . . . . . . Một số kết quả được đề cập trong bài viết [22] . . . . . . . . . . . . . Tổng quát quá trình tiền huấn luyện và áp dụng của mô hình BER [21] So sánh kết quả trên tập SQuAD 1.1 [21] . . . . . . . . . . . . . . . . So sánh kết quả trên tập SQuAD 2.0 [21] . . . . . . . . . . . . . . . . So sánh kết quả mô hình GPT-2 [20] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 26 27 27 28 28 5.1 5.2 5.3 5.4 Kiến trúc hệ thống . . . . . . . . . . . . . . . . . . . . . . Sơ đồ tình huống sử dụng - Use Case Diagram của chatbot Sơ đồ trình tự - Sequence Diagram của hệ thống chatbot . . Chi tiết bộ trả lời câu hỏi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 33 35 38 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 Hệ thống truy vấn đoạn văn cho câu hỏi . . . . . . . . . . . . . . . . . . Sơ đồ triển khai các thành phần của hệ thống chatbot . . . . . . . . . . . Kết quả kiểm thử thành phần xử lý câu nói thông thường và trả lời câu hỏi Kết quả kiểm thử thành phần xử lý câu nói thông thường và trả lời câu hỏi Giao diện trên máy tính . . . . . . . . . . . . . . . . . . . . . . . . . . . Giao diện trên điện thoại . . . . . . . . . . . . . . . . . . . . . . . . . . Giao diện trên máy tính bảng . . . . . . . . . . . . . . . . . . . . . . . . Kết quả đánh giá độ hài lòng của người dùng về câu trả lời của chatbot . . Kết quả đánh giá của người dùng về thời gian phản hồi của chatbot . . . . Kết quả đánh giá của người dùng về giao diện . . . . . . . . . . . . . . . Kết quả đánh giá của người dùng về tương thích của giao diện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 51 52 52 52 53 54 55 56 56 57 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 DANH MỤC BẢNG BIỂU 4.1 Thống kê chi tiết bộ dữ liệu OpenSubtitles đã xử lý . . . . . . . . . . . . . . . 30 5.1 5.2 Bảng mô tả tình huống hỏi về người với chatbot . . . . . . . . . . . . . . . . . Bảng mô tả tình huống nhắn tin với chatbot . . . . . . . . . . . . . . . . . . . 33 34 7.1 7.2 7.3 Đánh giá PPL giữa hai mô hình LSTM và GPT-2 . . . . . . . . . . . . . . . . Một số câu do hai mô hình sinh ra . . . . . . . . . . . . . . . . . . . . . . . . Cấu trúc dữ liệu đoạn hội thoại . . . . . . . . . . . . . . . . . . . . . . . . . . 50 50 50 DANH MỤC CHỮ VIẾT TẮT Danh sách dưới đây liệt kê các chữ cái viết tắt sẽ được sử dụng về sau trong nội dung cuốn đề cương luận văn này. ANN Artificial Neural Network BERT Bidirectional Encoder Representation from Transformer CBOW Continuous Bag-of-Words Model DNN Deep Neural Network GPT Generative Pre-trained Transformer LSTM Long Short-Term Memory Network MLP Multilayer Perceptron NLP Natural Language Processing RNN Recurrent Neural Network Seq2Seq Sequence to Sequence Skip-gram Continuous Skip-gram Model Word2Vec Word to Vector 1 TỔNG QUAN Trong chương này, tôi xin giới thiệu sơ lược về nội dung đề tài và cấu trúc luận văn. Mục lục 1.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Ví dụ minh hoạ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Mục tiêu và các giai đoạn thực hiện đề tài . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Giới hạn đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 Cấu trúc luận văn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 CHƯƠNG 1 TỔNG QUAN 1.1 2 Đặt vấn đề Hiện nay, các trợ lý ảo hay chatbot đã rất phổ biến với mọi người, ví dụ như trợ lý ảo của Google, Alexa của Amazon hay Siri của Apple. Các trợ lý ảo này đã dần dần thay đổi cách chúng ta giao tiếp với máy móc. Giờ đây ta đã có thể điều khiển cả ngôi nhà bằng cách ra lệnh bằng giọng nói hay trò chuyện với trợ lý ảo như một người bạn và hỏi những thông tin, tin tức cần thiết hoặc về một địa điểm, một nhân vật nào đó. Ngoài ra, trợ lý ảo còn như một người bạn giúp chúng ta giải toả căng thẳng hay giải trí sau một ngày học tập, làm việc. Trợ lý ảo, hay còn được gọi là chatbot, là một phần mềm trí tuệ nhân tạo ứng dụng từ lĩnh vực xử lý ngôn ngữ tự nhiên. Mô hình chatbot được chia thành hai loại: mô hình truy vấn thông tin (Retrieval-based model) và mô hình sinh (Generative-based model). Mô hình chatbot truy vấn thông tin sẽ cung cấp câu trả lời dựa những câu trả lời đã được định nghĩa sẵn. Mô hình này có thể giúp chatbot xử lý những tình huống thường gặp như đặt vé xem phim, vé máy bay hay mua hàng trực tuyến. Ngoài ra, mô hình này còn có thể trả lời những câu hỏi thường gặp trong một lĩnh vực nhất định bằng cách định nghĩa trước một bộ các câu hỏi và lời đáp. Tuy nhiên, mô hình này không thể đưa ra câu trả lời cho những câu hỏi chưa được định nghĩa trước đó. Mô hình sinh được phát triển để giải quyết vấn đề trên. Mô hình sinh có thể tạo ra những câu trả lời dựa vào những gì mà người dùng cung cấp. Những câu trả lời này còn có thể tạo cho người dùng cảm giác đang trò chuyện với con người thật. Để sinh ra những câu trả lời không cần định nghĩa trước, mô hình cần một lượng lớn dữ liệu để huấn luyện cách sinh ra câu trả lời. Hiện nay, mô hình thường được dùng để sinh câu trả lời có thể kể đến là mô hình Sequence-to-Sequence và mô hình GPT (Generative Pretrained Transformer). Gần đây, các công trình nghiên cứu mới về cơ chế Attention trong mô hình Sequence-to-Sequence đã giúp lĩnh vực xử lý ngôn ngữ tự nhiên có thêm nhiều hướng phát triển. Các bài toán về dịch máy, phân loại văn bản, tóm tắt văn bản đều có những bước tiến mới. Bài toán về chatbot cũng không là ngoại lệ khi có thể áp dụng những sự cải tiến đó để giúp tạo ra những câu trả lời tự nhiên hơn. Ngoài ra, chatbot còn có thể tích hợp hệ thống trả lời câu hỏi. Điều này giúp cho chatbot có thể trả lời được những câu hỏi trong một lĩnh vực nhất định như về địa điểm, con người hay thời gian. Việc xây dựng một hệ thống trả lời câu hỏi có thể thực hiện bằng hai phương pháp sau: dựa vào kiến thức có sẵn và dựa trên văn bản. Trong đó, phương pháp dựa vào kiến thức có sẵn đòi hỏi phải xây dựng một cơ sở dữ liệu tri thức để có thể truy xuất được câu trả lời từ câu hỏi nhập vào. Việc xây dựng cơ sở dữ liệu như vậy là rất tốn thời gian và chi phí. Phương pháp dựa trên văn bản thì ngược lại, câu trả lời sẽ được tìm ra trong một hoặc nhiều đoạn văn bản liên quan dựa trên câu hỏi nhập vào. Phương pháp này có thể thực hiện bằng hai cách: trích xuất thông tin (Information Retrieval) hoặc dùng học sâu (Deep learning). Nhờ vào sự phát triển của những mô hình học sâu trong những năm gần đây, phương pháp trả lời câu hỏi từ văn bản đã đạt được những tiến bộ nhất định. Trong đề tài luận văn này, nhóm sẽ xây dựng một chatbot kết hợp một số phương pháp nêu trên với kiến trúc nhiều tầng. Mục tiêu của thiết kế này sẽ giúp cho chatbot có thể trò chuyện với người dùng được liên tục và trả lời được nhiều thông tin thú vị. Với thiết kế nhiều tầng, một câu hỏi hay câu nói của người dùng được xử lý qua các tầng với mỗi tầng là một phương pháp và chatbot sẽ đưa ra câu trả lời có độ phù hợp tốt hơn. Ngoài ra, việc mở rộng và thêm nhiều phương pháp khác để xử lý cũng dễ dàng hơn nhờ các tầng được thiết kế để làm nhiệm vụ độc lập với nhau, đảm bảo chatbot có thể trả lời ổn định khi có một tầng gặp sự cố. CHƯƠNG 1 TỔNG QUAN 1.2 3 Ví dụ minh hoạ Hình 1.1: Ví dụ một đoạn hội thoại giữa chatbot và người dùng Hình 1.1 là mẫu trò chuyện của người dùng với chatbot. Khi người dùng nhập một câu nói, chatbot sẽ dùng câu nói đó để sinh ra câu trả lời bám sát với ngữ cảnh của cuộc trò chuyện. Từ đó giúp cho người dùng có thể cảm thấy vui vẻ, thoải mái khi được chia sẻ cùng chatbot. 1.3 1.3.1 Mục tiêu và các giai đoạn thực hiện đề tài Mục tiêu đề tài Trong đề tài này, nhóm tập trung xây dựng một hệ thống hội thoại tự động có thể trò chuyện cùng người dùng bằng cách kết hợp truy vấn các câu trả lời định nghĩa sẵn, phương pháp sinh câu trả lời dựa vào mô hình học sâu và trả lời câu hỏi về con người bằng phương pháp trích xuất thông tin trong văn bản. Hệ thống chatbot được thiết kế theo hướng không có tác vụ cụ thể. CHƯƠNG 1 TỔNG QUAN 4 Thay vào đó, chatbot có thể đưa ra câu đáp lại với hầu hết câu nhập vào của người dùng. Hệ thống bao gồm các tính năng sau: • Trả lời các câu hỏi của người dùng về người. • Trả lời các câu trả lời của người dùng bằng cách kết hợp phương pháp truy xuất thông tin có sẵn và dùng mô hình sinh. Để đạt được những tính năng nêu trên, nhóm cần đạt được những mục tiêu sau: • Xây dựng bộ trả lời dựa trên những câu được định nghĩa sẵn. • Xây dựng bộ trả lời câu hỏi về người và truy vấn thông tin văn bản để trả lời. • Thu thập dữ liệu về hội thoại và huấn luyện mô hình sinh văn bản. • Xây dựng bộ lựa chọn câu trả lời để phản hồi về người dùng. • Xây dựng giao diện chatbot thân thiện và dễ sử dụng. 1.3.2 Các giai đoạn thực hiện Với những mục tiêu đã đề ra ở mục 1.3.1, nhóm đã chia đề tài thành các giai đoạn thực hiện như sau: • Giai đoạn 1: Thu thập dữ liệu về hội thoại và huấn luyện mô hình sinh văn bản. • Giai đoạn 2: Định nghĩa các trường hợp trả lời dùng câu trả lời có sẵn và tạo dữ liệu các câu trả lời. • Giai đoạn 3: Xây dựng bộ trả lời câu hỏi về người gồm: bộ tìm kiếm thông tin qua Google Search Engine, bộ trích xuất thông tin và bộ trích xuất câu trả lời. • Giai đoạn 4: Xây dựng bộ lựa chọn câu trả lời từ câu nhập vào của người dùng. • Giai đoạn 5: Tổng hợp các thành phần thành một hệ thống hoàn chỉnh và kiểm thử phần mềm. 1.4 Giới hạn đề tài Do chatbot có thể thiết kế theo nhiều phương pháp khác nhau, và mỗi phương pháp dùng để giải quyết những yêu cầu khác nhau của người dùng. Vì vậy, như mục tiêu của đề tài đặt ra, chatbot được thiết kế trong đề tài này sẽ bị giới hạn trong phạm vi nghiên cứu như sau: • Vì những khó khăn về công nghệ cũng như tài nguyên máy tính nên nhóm sẽ cố gắng giải quyết các câu hỏi về người cho bộ trả lời câu hỏi. 5 CHƯƠNG 1 TỔNG QUAN • Việc chatbot trả lời tự nhiên và bám sát với ngữ cảnh là một thách thức về mặt công nghệ và dữ liệu ở thời điểm hiện tại đối với tiếng Việt. Do đó, nhóm sẽ tận dụng những bộ dữ liệu dạng hội thoại có sẵn để tiến hành thử nghiệm, đánh giá trên một số mô hình học sâu khác nhau. Từ đó chọn lựa mô hình tối ưu nhất để câu trả lời của chatbot có thể tự nhiên và bám sát với ngữ cảnh ở mức chấp nhận được. 1.5 Cấu trúc luận văn Những nội dung trong quá trình luận văn được nhóm trình bày trong các chương sau: Chương 1. Tổng quan. Trong chương đầu tiên, nhóm trình bày khái quát về đề tài, mục tiêu, phạm vi và cấu trúc đề tài luận văn. Chương 2. Kiến thức nền tảng. Chương này nhóm trình bày những kiến thức nền tảng để phát triển hệ thống chatbot và các kiến thức liên quan trong xử lý ngôn ngữ tự nhiên. Chương 3. Các công trình liên quan. Chương này nhóm sẽ trình bày về những công trình và hệ thống liên quan đến đề tài của nhóm. Chương 4. Tập dữ liệu. Chương này bao gồm các tập dữ liệu đã tham khảo và được dùng để huấn luyện các mô hình trong luận văn. Chương 5. Đặc tả và hiện thực hệ thống. Chương này nhóm trình bày về phương pháp thực hiện đề tài và mô hình kiến trúc hệ thống đề xuất. Chương 6. Công nghệ sử dụng. dụng phát triển đề tài này. Chương này nhóm giới thiệu các công nghệ dự định để sử Chương 7. Thí nghiệm và đánh giá. Chương này nhóm trình bày các thí nghiệm và đánh giá hệ thống chatbot sau khi đã triển khai. Chương 8. Tổng kết. Chương cuối cùng, nhóm tổng kết lại các vấn đề trong quá trình hoàn thiện đề tài luận văn. Đồng thời, nhóm nêu ra các hạn chế cũng như mở ra các hướng phát triển của đề tài trong tương lai. 2 KIẾN THỨC NỀN TẢNG Trong chương này, tôi sẽ trình bày những kiến thức nền tảng được sử dụng trong quá trình thực hiện luận văn bao gồm: giới thiệu về hệ thống chatbot, các khái niệm thường được sử dụng trong mạng học sâu, xử lí ngôn ngữ tự nhiên và học tăng cường. Mục lục 2.1 Tổng quan về chatbot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Word Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Mạng nơ-ron nhân tạo - Artificial Neural Network (ANN) . . . . . . . . . . . . . 10 2.4 Recurrent Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Attention và Transformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6 Mô hình Generative Pre-trained Transformer . . . . . . . . . . . . . . . . . . . . 23 2.7 Mô hình Bidirectional Encoders Representation from Transformer (BERT) . . . . 24 CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 2.1 2.1.1 7 Tổng quan về chatbot Giới thiệu Chatbot là một phần mềm được thiết kế để mô phỏng lại đoạn hội thoại của người dùng, đặc biệt là những cuộc trò chuyện qua Internet. Phần mềm này đóng vai trò như là một phương thức để con người có thể giao tiếp được với máy tính. Nó cung cấp cho máy tính khả năng hiểu được câu hỏi từ ngôn ngữ tự nhiên của con người và trả lời người dùng. Hệ thống chatbot đầu tiên được thiết kế tại M.I.T vào năm 1966 là ELIZA [1]. Tiếp sau đó đã có nhiều chatbot được phát triển, ví dụ như tương tác với người dùng bằng những tính cách khác nhau [2], kết hợp với các công cụ tìm kiếm [3]. Qua từng năm, chatbot ngày càng trở nên phức tạp, có thể xử lý được những đoạn hội thoại một cách tự nhiên và giúp cho người dùng thoải mái khi được trợ giúp nhanh nhất có thể. Mặc dù không thể xử lý được tất cả những yêu cầu từ người dùng, nhưng chatbot có thể xử lý được hầu hết các yêu cầu thường gặp giúp cho thời gian xử lý được cải thiện đáng kể. 2.1.2 Phân loại chatbot Hiện tại, chatbot được chia thành nhiều loại dựa trên nhiều tiêu chí khác nhau như: dựa trên cách giao tiếp (giọng nói hoặc văn bản), dựa trên kiến thức (đóng hoặc mở), dựa trên phương pháp học (dựa theo luật, dựa theo trích xuất thông tin, hoặc dựa vào học máy), và dựa trên mục tiêu (có hoặc không có mục tiêu cụ thể) [4]. Hình 2.1: Các hướng phân loại chatbot
- Xem thêm -

Tài liệu liên quan