Nhan đề : Xây dựng Chatbot dựa trên AI Techniques Tác giả : Đặng Ngọc Sơn Người hướng dẫn: Ban Hà Bằng Từ khoá : Chatbot; Hệ thống trả lời tự động; Hội thoại Năm xuất bản : 2020 Nhà xuất bản : Trường đại học Bách Khoa Hà Nội Tóm tắt : Tổng quan về hệ thống chatbot; xây dựng mô hình hệ thống chatbot; cài đặt và thử nghiệm.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Xây dựng Chatbot dựa AI Techniques ĐẶNG NGỌC SƠN Son.DNCA190192@sis.hust.edu.vn Ngành Công nghệ Thông tin Giảng viên hướng dẫn: TS Ban Hà Bằng Viện: Công nghệ Thông tin Truyền thông HÀ NỘI - 2020 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Xây dựng Chatbot dựa AI Techniques ĐẶNG NGỌC SƠN Son.DNCA190192@sis.hust.edu.vn Ngành Công nghệ Thông tin Giảng viên hướng dẫn: TS Ban Hà Bằng Viện: Công nghệ Thông tin Truyền thông HÀ NỘI - 2020 Chữ ký GVHD LỜI CAM ĐOAN Tôi Đặng Ngọc Sơn, học viên lớp 19AMMT, Trường Đại Học Bách Khoa Hà Nội Tôi xin cam kết Luận văn tốt nghiệp cơng trình nghiên cứu thân hướng dẫn TS.Ban Hà Bằng Các kết Luận văn tốt nghiệp trung thực, học viên tìm tịi nghiên cứu đúc kết Khơng chép tồn văn cơng trình khác HỌC VIÊN Đặng Ngọc Sơn LỜI CẢM ƠN Trước tiên, tác giả muốn gửi lời cảm ơn chân thành sâu sắc tới Tiến Sĩ Ban Hà Bằng, người tận tình dạy dỗ, bảo, giúp đỡ tác giả hoàn thành Luận Văn trình học tập nghiên cứu Đồng thời, tác giả xin bày tỏ lòng biết ơn tới thầy cô giáo Khoa tận tình giảng dạy, truyền đạt kiến thức quan trọng, làm tảng cho việc thực Luận Văn q trình cơng tác sau Tác giả xin gửi lời cảm ơn tới bạn học khóa lớp 19AMMT, cảm ơn bạn bên cạnh động viên giúp đỡ trình học tập q trình hồn thành Luận Văn Cuối cùng, xin bày tỏ lịng biết ơn Gia đình hậu phương vững cho yên tâm công tác, học tập Do thời gian, kiến thức, kinh nghiệm chắn hạn chế, khiếm khuyết nên tác giả mong muốn quý thầy cô, anh chị, bạn góp ý cho tác giả để Luận Văn trở nên hồn thiện TĨM TẮT NỘI DUNG LUẬN VĂN Trong năm gần đây, công nghệ Chatbot ngày trở nên phổ biến nhiều lĩnh vực khác Chatbot tích hợp vào nhiều tảng khác nhau, nhiều lĩnh vực khác nhau, trở thành công cụ đắc lực giúp kết nối khách hàng với doanh nghiệp tổ chức, giúp cho cơng việc chăm sóc khách hàng trở nên dễ dàng, giải phóng người khỏi cơng việc mang tính chất lặp lặp lại Từ nhu cầu thiết thực đó, tác giả đề xuất phép nghiên cứu đề tài: “Xây dựng Chatbot dựa AI Techniques” Trong khuôn khổ Luận Văn, tác giả đề xuất mơ hình xây dựng Chatbot, thực thực nghiệm, so sánh, ứng dụng mơ hình vào xây dựng ứng dụng Mobile chatbot hỗ trợ điều trị cho trẻ em vị thành niên mắc chứng rối loạn giao tiếp HỌC VIÊN Đặng Ngọc Sơn MỤC LỤC DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT iii DANH MỤC HÌNH VẼ iv MỞ ĐẦU CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ HỆ THỐNG CHATBOT 1.1 Giới thiệu toán Chatbot 1.2 Phân loại Chatbot 1.3 Nguyên tắc xây dựng hệ thống 1.4 Một số ứng dụng thương mại hóa Chatbot 1.5.Ứng dụng cơng trình nghiên cứu vào thực tế CHƯƠNG 2: XÂY DỰNG MƠ HÌNH HỆ THỐNG CHATBOT 10 2.1 Các công nghệ tảng 10 2.1.1 Tìm hiểu số kỹ thuật thiết kế Chatbot 10 2.1.2 Giới thiệu RNN 12 2.1.3 Giới thiệu LSTM (Long Short-Term Memory Networks) 16 2.1.4 Giới thiệu mô hình Seq2Seq 21 2.1.5 Giới thiệu mơ hình kỹ thuật Attention mơ hình Seq2Seq 23 2.1.6 Giới thiệu Word Embedding 24 2.2 Kiến trúc đề xuất mơ hình Chatbot 26 CHƯƠNG 3: CÀI ĐẶT VÀ THỰC NGHIỆM 31 3.1 Thiết lập môi trường liệu huấn luyện 31 3.2 Xử lý, huấn luyện liệu 31 3.2.1 Tiền xử lý liệu 31 3.2.2 Định nghĩa tham số sử dụng 35 3.2.3 Tiền xử lý liệu đầu vào 35 3.2.4 Định nghĩa tham số LSTM Cell 36 3.2.5 Thực decoding training/test set 36 3.2.6 Thiết lập Hyper parameters cần thiết 37 3.2.8 Bắt đầu training liệu 38 3.3 Kết thực nghiệm 39 3.3.1 Tập liệu huấn luyện 39 3.3.2 Độ đo sử dụng 39 3.3.3 Phương pháp thực nghiệm 40 3.3.4 Nhận xét đánh giá kết thực nghiệm 41 i 3.3.5 Kết thực nghiệm 41 3.4 Ứng dụng nghiên cứu đề tài vào thực tế sống 44 CHƯƠNG IV: KẾT LUẬN 48 4.1 Hướng phát triển tương lai 48 4.2 Kết luận 48 TÀI LIỆU THAM KHẢO 49 ii DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT Tên viết tắt Tên đầy đủ Ý nghĩa Chatbot Chatbot Hệ thống trả lời tự động ML Machine Learning Học máy ANN Artificial Neural Network Mạng Nơ-ron nhân tạo RNN Recurrent Neural Network Mạng Nơ-ron hồi quy LSTM Long Short-Term Memory Mạng Nơ-ron nhớ dài ngắn GRU Gated Recurrent Units Mạng Nơ-ron với đơn vị cổng hồi quy Seq2Seq Sequence to Sequence NLP Natural language processing Xử lý ngôn ngữ tự nhiên MLP Multilayer Perceptrons CNN Convolution Network EncoderDecoder Encoder-Decoder BiRNN Bi-directional Recurrent Mạng hai chiều RNN Neural Network Mạng Nơ-ron đa lớp Neural Mạng Nơ-ron tích chập Mã hóa - Giải mã iii DANH MỤC HÌNH VẼ Hình 1 Giao diện cửa sổ Chatbot hỗ trợ người dùng Hình Logo số ứng dụng thương mại Chatbot Hình Ứng dụng Chatbot sống Hình Mơ hình thu gọn RNN 13 Hình 2 Mơ hình đầy đủ RNN 13 Hình Phân loại RNN 14 Hình Cập nhật trọng số mạng RNN 15 Hình Trọng số khơng cập nhật lại đáng kể huấn luyện 15 Hình Bên cell RNN 16 Hình Bên cell LSTM 16 Hình Giải thích số ký hiệu sử dụng 17 Hình Chi tiết hoạt động LSTM 17 Hình 10 Chi tiết hoạt động LSTM 18 Hình 11 Chi tiết hoạt động LSTM 18 Hình 12 Chi tiết hoạt động LSTM 19 Hình 13 Chi tiết hoạt động LSTM 20 Hình 14 Chi tiết hoạt động LSTM 21 Hình 15 Kiến trúc mơ hình Seq2Seq 22 Hình 16 Mơ hình Seq2seq dùng attention tốn dịch máy 24 Hình 17 Ví dụ Word Embedding 26 Hình 18 Kiến trúc đề xuất mơ hình Chatbot 27 Hình 19 Beam Search với beam size cố định 30 Hình Tiền xử lý liệu 31 Hình Tiền xử lý liệu 32 Hình 3 Tiền xử lý liệu 32 Hình Tiền xử lý liệu 33 Hình Tiền xử lý liệu 34 Hình Tiền xử lý liệu 34 Hình Tiền xử lý liệu 35 Hình Tiền xử lý targets 36 Hình Sơ đồ Flow Diagram hệ thống 44 Hình 10 Sơ đồ Sequence Diagram hệ thống 45 Hình 11 Giao diện ứng dụng “Small Talk Daily” 46 iv MỞ ĐẦU Chatbot ứng dụng phần mềm cho phép thực đoạn hội thoại thông qua văn bản, từ văn thành giọng nói, nhằm cung cấp tương tác trực tiếp người máy Được thiết kế cho mô cách mà người nói chuyện giao tiếp hàng ngày, hệ thống Chatbot thường xuyên cần tối ưu hóa, kiểm tra ‘Chatter Bot’ thuật ngữ lần đầu đưa Michael Mauldin vào năm 1994 để mô tả chương trình hội thoại Chatbot thường dùng hệ thống hội thoại nhiều lĩnh vực, ví dụ dịch vụ khách hàng, dịch vụ đường, hay thu thập thông tin Ngày nay, phần lớn chatbot thường thấy trang web dạng popup, hay ‘trợ lý ảo’ Google Assistant, Amazon Alexa hay Cortana Chatbot thường phân loại thành nhiều loại, ví dụ sử dụng lĩnh vực thương mại điện tử, giáo dục, giải trí, tài chính, chăm sóc sức khỏe Luận văn tổ chức gồm phần: Giới thiệu Lý thực đề tài mục tiêu cần đạt Chương Các kiến thức hệ thống Chatbot cung cấp thông tin Chatbot tiêu chí xây dựng, phân loại Chatbot, ứng dụng thực tế Chatbot đời sống Đồng thời giới thiệu sơ lược số ứng dụng tiếng thương mại hóa Chương Xây dựng mơ hình hệ thống Chatbot giới thiệu số cách tiếp cận xây dựng Chatbot, giới thiệu số cơng trình nghiên cứu Chatbot đưa kiến trúc đề xuất mơ hình Chatbot nghiên cứu cài đặt khuôn khổ Luận Văn Chương Cài đặt thực nghiệm, chương đưa cách thức chi tiết việc xây dựng, cài đặt mơ hình kiến trúc đề xuất đưa Chương 2, đồng thời thực nghiệm so sánh kết với số mơ hình kiến trúc khác, từ đưa nhận xét Chương Kết luận chương trình bày việc ứng dụng Chatbot vào tình thực tế sống, đồng thời đưa hướng phát triển tương lai thuận lợi, khó khăn gặp phải q trình nghiên cứu mơ hì CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ HỆ THỐNG CHATBOT Chương giới thiệu Chatbot tiêu chí xây dựng, phân loại Chatbot, ứng dụng thực tế Chatbot đời sống Đồng thời giới thiệu sơ lược số cơng trình nghiên cứu, ứng dụng liên quan đến Chatbot số nhà khoa học, nhà nghiên cứu năm gần 1.1 Giới thiệu toán Chatbot Chúng ta sống thời đại Công nghiệp 4.0 - kỷ nguyên thông tin, liệu lớn Ngày ngày từ báo đài, Internet tiếp cận với nhiều loại thông tin mà cách 5-10 năm việc tiếp cận nhiều đa dạng hạn chế Việc thông tin tiếp cận không hạn chế đem lại cho người nhiều lựa chọn hỗ trợ cho định nhanh chóng thuận tiện Khi lượng thông tin nhiều lên, giao dịch trở nên lớn hơn, việc xử lý thông tin hệ thống trở nên nhiều Đơn cử hệ thống khiếu nại mạng xã hội, số lượng người dùng ít, quản trị viên th nhân viên hỗ trợ việc tiếp nhận khiếu nại phát sinh từ phía người dùng báo cáo lên Ban đầu thiết lập tổng đài, nhân viên trực tiếp nhận gọi để xử lý khiếu nại Khi số lượng người dùng nhiều thuê thêm nhân viên, thêm đường dây liên lạc … Cho tới số lượng khiếu nại, người dùng trở nên nhiều việc sử dụng điện thoại trở nên khó khăn nhiều Đó lúc Chatbot xuất thể vai trị Chatbot ứng dụng phần mềm cho phép tương tác với người sử dụng theo cách giống giao tiếp với người Khi Chatbot tự động thu thập thông tin khiếu nại khách hàng, lưu trữ phân loại theo format định sử dụng thuật tốn Machine Learning, AI … Vì thân khiếu nại từ khách hàng mẫu liệu để học máy, hệ thống Chatbot tương tác nhiều, độ xác tăng lên Trong chi phí đầu tư phần cứng, thiết bị … khiêm tốn nhiều so với đầu tư điện thoại tổng đài viên sở hạ tầng kèm theo Tương tự cho lĩnh vực khác, ví dụ lĩnh vực thương mại điện tử Khách hàng thường có nhiều câu hỏi, thắc mắc sản phẩm, nhu cầu thân Chatbot giúp người dùng trả lời câu hỏi nâng cao thơng tin đặc tính sản phẩm, dịch vụ … từ giúp người dùng sớm đưa định mà bảo đảm chất lượng tư vấn Hình Tiền xử lý liệu 3.2.2 Định nghĩa tham số sử dụng - Learning rate: Tốc độ học siêu tham số sử dụng việc huấn luyện mạng nơ ron Giá trị số dương, thường nằm khoảng Tốc độ học kiểm sốt tốc độ mơ hình thay đổi trọng số để phù hợp với toán Tốc độ học lớn giúp mạng nơ ron huấn luyện nhanh làm giảm độ xác - Keep_prob: Để điều khiển dropout rate Dropout rate tỷ lệ Nơ-ron chọn để deactivate vòng lặp huấn luyện Ví dụ để 20% vịng huấn luyện deactivate 20% số Nơ-ron vòng training 3.2.3 Tiền xử lý liệu đầu vào Cần bước tiền xử lý bước Decoder chấp nhận input targets có định dạng cho trước Cụ thể đây, targets cần format dạng batch (Gồm tập số lượng ghi quy định trước), không chấp nhận đơn lẻ Tiếp theo xử lý thêm target để phù hợp với decoder, thứ cần bổ sung thêm token đầu câu trả lời, thứ hai loại bỏ phần tử cuối câu trả lời 35 Hình Tiền xử lý targets 3.2.4 Định nghĩa tham số LSTM Cell Thiết lập giá trị cho tham số như: số lượng lớp, giá trị Keep prob, giá trị độ dài câu hỏi tối đa batch truyền vào, số lượng input Tensor lớp Encoder RNN Sau xây dựng LSTM Cell áp dụng Dropout rate Lớp cho phép vòng lặp huấn luyện deactivate số lượng phần trăm định số nơ-ron mạng (sẽ không update lại) 3.2.5 Thực decoding training/test set Ở bước thực việc decode training set Để tăng tính hiệu việc dự đốn kết huấn luyện, ta áp dụng Cơ chế Attention Thực thiết lập số tham số trước thực decode Attention Score Function, Dropout Rate… Ở bước decode test set, chatbot học, huấn luyện có logic riêng Từ tri thức học huấn luyện, chatbot suy luận (inference) câu trả lời cho câu hỏi đưa Vì chatbot suy luận câu trả lời không cần áp dụng dropout rate phần decode 36 training set nữa, việc áp dụng cần thiết training, giúp giảm overfitting tăng tính xác 3.2.6 Thiết lập Hyper parameters cần thiết - Epoch: số lần mà training set duyệt qua lần, trọng số cập nhật Nếu số lần lặp (số epoch) nhỏ, không cho kết tốt, ngược lại, số vịng lặp q nhiều thời gian training lớn tốn Các tham số Batch_size, Rnn_size, Num_layers - Encoding_embedding_size, Decoding_embedding_size: Số cột Embedding matrix Decoding matrix, ma trận giúp cho việc ánh xạ từ vựng thành Véc-tơ Word Embedding để làm liệu đầu vào cho mơ hình học máy - Learning_rate: để cao học nhanh, k hiệu Nếu để thấp tiêu tốn nhiều thời gian để học - Learning_rate_decay: Tỷ lệ leaning_rate giảm sau vòng lặp training Việc giảm learning_rate giúp Chatbot học sâu logic đoạn hội thoại , mối liên hệ bên dataset (thuật toán cài đặt để 0.9) - Min_learning_rate: ngưỡng learning_rate, learning_rate đạt tới mức dừng huấn luyện Nguyên nhân learning_rate giảm, việc học ‘sâu’ hơn, nhiên tốn nhiều thời gian - Sequence length: ta thiết lập kích thước lớn sequence 25 - Gradient Clipping kỹ thuật giúp tránh vấn đề liên quan tới gradient, áp dụng với Adam Optimizer Sau áp dụng clipping gradient cho Optimizer - Thực xây dựng tính tốn hàm mát (Loss Function), thực thuật toán Gradient Descent để cập nhật lại trọng số mơ hình 3.2.7 Thực padding liệu đầu vào Lấy độ dài lớn câu batch, với câu có độ dài nhỏ độ dài đó, bổ sung thêm token vào cho đủ độ dài lớn Sau thực chia liệu huấn luyện qua tiền xử lý thành batch, sẵn sàng cho trình huấn luyện Q: [‘Who’, ‘are’, ‘you’] A: [‘’, ‘I’, ‘am’, ‘SonDang’, ‘’] (độ dài = 3) (độ dài = 5) Thêm token để độ dài Q: [‘Who’, ‘are’, ‘you’, ‘’,‘’,‘’] A: [‘’, ‘I’, ‘am’, ‘SonDang’, ‘’,’’] (độ dài = 6) (độ dài = 6) 37 3.2.8 Bắt đầu training liệu Thiết lập số tham số trước huấn luyện, gồm có: - Batch_index_training_loss: Dùng để kiểm tra training loss sau số lượng batch quy định - Batch_index_check_validation_loss: Dùng để kiểm tra validation loss sau số lượng batch quy định - Total_training_loss_error: Tổng tích lũy training loss sau batches - List_validation_loss_error: Sau lần validation lưu thông tin validation loss biến - Early_stopping_check: Tổng số lần check validation loss liên tục mà chưa giảm validation loss - Early_stopping_stop : Tổng số lần check validation loss cho phép - Checkpoint: Tên file checkpoint để lưu training xong epoch Khởi tạo Gradient Clipping với Adam Optimizer Sau thực training sử dụng tham số này, từ tính tốn tham số batch_training_loss_error, tính tổng tích lũy vào total_training_loss_error Sau số lượng batch định training (theo tham số batch_index_check_training_loss), hiển thị thơng tin q trình huấn luyện, reset total_training_loss_error = Sau số lượng batch định training (theo tham số batch_index_check_validation_loss) thực tính tốn validation loss, lưu thơng tin validation loss error vào biến batch_validation_loss_error, tổng tích lũy vào total_validation_loss_error, tính trung bình validation loss error vào biến average_validation_loss_error Mỗi lần tính tốn validation_loss_error learning_rate giảm dần theo learning_rate_decay Việc giảm learning_rate giúp Chatbot học sâu logic đoạn hội thoại Tuy nhiên learning_rate giảm thời gian học lâu, cần set ngưỡng bên min_learning_rate Lưu danh sách trung bình validation error vào biến list_validation_loss_error Nếu average_validation_loss_error phần tử nhỏ mảng thực lưu thơng tin q trình training lại vào file Checkpoint, ngược lại tiếp tục training Q trình training kết thúc khơng phát sinh kết tốt sau số lần check validation loss quy định trước biến early_stopping_stop 38 3.3 Kết thực nghiệm 3.3.1 Tập liệu huấn luyện Tác giả sử dụng Bộ liệu chuẩn Cornell Movie-Dialog Corpus cung cấp tổ chức cs.cornell.edu (https://www.cs.cornell.edu/~cristian/Cornell_MovieDialogs_Corpus.html) Bộ liệu bao gồm câu hội thoại phim tổng hợp lại thành file sau: Tên file Số Thông tin lưu trữ ghi movie_conversations.t 83097 ID câu đoạn đối thoại xt movie_lines.txt 307714 ID câu thoại Từ liệu này, tác giả thực tiền xử lý liệu (Lọc bỏ câu thoại dài ngắn, lọc bỏ ký tự đặc biệt khỏi đoạn hội thoại …) Sau trình xử lý liệu, tác giả thu 155.428 cặp câu hội thoại Ta gọi liệu A Sau tác giả thực lấy 85% liệu A làm liệu huấn luyện (A-training) phần lại làm liệu kiểm thử (A-test) Chỉ có tập A-training dùng q trình huấn luyện cho mơ hình 3.3.2 Độ đo sử dụng Tác giả chọn sử dụng độ đo Bilingual Evaluation Understudy (BLEU) [6] Độ đo giúp đánh giá độ tương đồng ghi sinh mơ hình học máy (candidate) ghi tham khảo (reference) Giá trị BLEU khoảng (0.0 - 1.0) Trong 1.0 tức khớp hồn tồn, cịn 0.0 tức khơng khớp hồn tồn BLEU có nhiều ưu điểm, kể đến như: + Nhanh chi phí tính tốn thấp + Dễ hiểu + Khơng phụ thuộc vào ngơn ngữ + Có độ tương đồng cao với cách đánh giá người + Được sử dụng rộng rãi BLEU tính dựa việc đếm số matching n-grams candidate reference (mặc match reference có nhiều reference), 39 kết số match chia cho số từ candidate Các match khơng phụ thuộc vào vị trí, du BLEU không bị phụ thuộc vào thứ tự từ văn bản, nhiều match điểm số khớp cao Để hạn chế việc từ match với reference lặp lại nhiều lần, đếm matching n-grams, cần ý số lần xuất từ reference, từ reference match khơng nên match BLEU cịn dùng để đánh giá corpus (tập hợp sentence, hay đoạn văn) tốt Đầu tiên tính số match với câu Cộng số chia cho tổng số n-gram từ câu modified precision score cho test corpus C{Candidate} C '{Candidate} Countclip (n − gram) n− gram'C ' Count (n − gram' ) n− gramC Khơng có hồn hảo nên khơng có dịch hồn hảo Điểm người dịch khơng phải lúc 1.0 Điểm BLEU phụ thuộc vào số lượng chất lượng của reference, yếu tố gây khó khăn cho việc tính điểm dataset 3.3.3 Phương pháp thực nghiệm Tác giả chọn ngưỡng BLEU Score = 0.65 Nếu kết kiểm tra câu lớn điểm số câu coi tương đồng ngữ nghĩa Tác giả chọn 1000 câu hội thoại ngẫu nhiên tập liệu A-test Sau đưa câu hỏi vào Mơ hình Chatbot thu câu trả lời tương ứng câu hỏi Tác giả thực tính điểm BLEU Score với câu trả lời đưa Chatbot câu trả lời tương ứng tập A-test Tác giả thực nghiệm mơ hình đề xuất kỹ thuật học máy LSTM, RNN, GRU thời điểm huấn luyện 50 Epochs, 70 Epochs 100 Epochs Kết tổng hợp độ xác bảng dưới: 50 Epochs 70 Epochs 100 Epochs LSTM 71% 74.6% 74% RNN 64.7% 67% 66% GRU 71% 73% 75% Bảng so sánh độ xác giai đoạn huấn luyện (Đơn vị: %) 40 3.3.4 Nhận xét đánh giá kết thực nghiệm Mơ hình RNN ba giai đoạn huấn luyện có kết yếu Độ xác đạt mơ hình chưa tới 70% ba trường hợp Nguyên nhân hạn chế RNN việc nhớ khoảng cách xa, vấn đề liên quan tới Vanishing Gradient, logic câu trở nên lỏng lẻo, khả nắm bắt ngữ nghĩa mơ hình hạn chế LSTM khắc phục vấn đề RNN, cách thiết kế lại Cell, cho chế lọc, nhớ, quên thông tin trở nên hiệu Mơ hình GRU nhìn chung có kết nhỉnh không nhiều so với LSTM số giai đoạn huấn luyện 3.3.5 Kết thực nghiệm Sau huấn luyện, tác giả kiểm thử môi trường CLI số đoạn chat sau: You: hello CB: How is it going You: great CB: how are you? You: fine, thanks CB: thank you You: who are you CB: could not you just tell me please? You: you are chatbot CB: how? You: you are designed to talk to humans CB: look at me i not care what you are saying, i just not understand what that means You: hello ChatBot: how is it going? You: excellent! ChatBot: I am sorry are you ok? You: im absolutely fine ChatBot: sit down what are you doing in my bed? You: I don't know ChatBot: where are you? You: In hospital ChatBot: and is that right? You: no ChatBot: why are you doing this? 41 You: Because i hate you ChatBot: because? You: i hate you ChatBot: and who are you You: your master ChatBot: if I am talking to you now You: hey ChatBot: what? You: how are you ChatBot: you not know me You: okay ChatBot: I not You: Are you ok ChatBot: I am not married You: very happy to know that ChatBot: not be ridiculous You: what happen ChatBot: it is time for me You: yes i agree ChatBot: tell me what You: what you wany ChatBot: I mean I not care You: okay got it thanks ChatBot: look! You: yes ChatBot: tell me about it You: I have nothing to say now ChatBot: okay You: cool ChatBot: not be too sure You: okay ChatBot: I am not crazy You: yes i know that ChatBot: there nothing to talk about You: hi ChatBot: how is it going? You: good, and you? ChatBot: great You: I am tired today ChatBot: oh hi that is good You: what about you? ChatBot: I not know You: I'm at work right now 42 ChatBot: yeah? You: yup where are you? ChatBot: I am pregnant You: congrats! when did you find out? ChatBot: yes I said it is saturday You: Wow! ChatBot: I am sorry You: why are you sorry? ChatBot: I am fine You: what's bothering you? ChatBot: what are you talking about? You: you are acting strange ChatBot: what the hell is that supposed to mean? You: nothing ChatBot: that is exactly what I am feeling You: Good morning ChatBot: you have got to leave You: Are you going to make me leave ChatBot: now You: I refuse ChatBot: I not want to be You: Tell me why I need to leave ChatBot: because I am not alone You: what is your name? ChatBot: I am not sure You: my name is John ChatBot: she is not here You: who is she? ChatBot: a woman You: really? ChatBot: yeah You: ok then where is she? ChatBot: I not know Mặc dù kết thử nghiệm chưa tốt phân tích ban đầu, Chatbot đáp ứng phần hợp lý với trường hợp giao tiếp thường ngày Bên cạnh đó, Chatbot thể khả phản hồi thích hợp trường hợp liên quan tới chủ đề, hội thoại mà chưa huấn luyện Vì liệu ngơn ngữ giao tiếp phổ thơng, nên hoạt động chưa đáp ứng tốt với ngữ 43 cảnh hỏi/trả lời (Q&A) Việc huấn luyện Chatbot hiệu có lượng liệu lớn để thực nghiệm, phần cứng để đáp ứng thời gian huấn luyện 3.4 Ứng dụng nghiên cứu đề tài vào thực tế sống Người dùng thao tác với hệ thống cách thực Chat, hệ thống thực xử lý trả câu trả lời cho người sử dụng Chi tiết cách thức xử lý liệu hệ thống Chatbot đề cập chi tiết phần sau Ở bước này, hệ thống gọi tới Chatting Core - nơi áp dụng mơ hình Seq2Seq tập liệu để đưa phản hồi phù hợp Người dùng sau chat xong nghe lại câu hội thoại cách gọi chức chuyển text thành audio nhờ gọi API hỗ trợ Text-to-speech Hình Sơ đồ Flow Diagram hệ thống 44 Hình 10 Sơ đồ Sequence Diagram hệ thống Ứng dụng Luận văn phát triển có tên “Small Talk Daily - Getting Better Everyday” Ứng dụng xây dựng giúp hỗ trợ điều trị nâng cao lực giao tiếp cho trẻ vị thành niên mắc chứng rối loạn giao tiếp Ứng dụng mobile chạy Android Khi bắt đầu, cửa sổ ứng dụng mở ra: 45 Hình 11 Giao diện ứng dụng “Small Talk Daily” Chọn vào chủ đề mong muốn luyện tập Ví dụ chọn chủ đề “Popular” (Phổ thơng) Sau có nhiều chủ đề khác “Animal” (Động vật) hay Plant (Thực vật) Cửa sổ chat ra, nói chuyện bắt đầu Với câu thoại cho phép bấm vào để đọc thành tiếng Ứng dụng cho phép người dùng vừa học vừa chơi, việc tương tác trực tiếp với Chatbot giúp cho người dùng trở nên linh hoạt cách giao tiếp Đồng thời việc nghe phát âm câu đoạn chat cho phép người dùng phát âm học theo, từ nâng cao khả phát âm đọc từ vựng Ứng dụng cịn cơng cụ hỗ trợ cho giáo viên ngữ âm 46 việc hỗ trợ điều trị cho trẻ vị thành niên mắc chứng rối loạn giao tiếp, giúp cho học viên tự học khơng có giáo viên bên cạnh, đồng thời với vốn từ vựng phong phú Chatbot giúp cho học viên luyện tập với nhiều từ 47 CHƯƠNG IV: KẾT LUẬN Chương tập trung vào việc thực nghiệm, so sánh, đối chiếu kết huấn luyện Chatbot sử dụng mơ hình Seq2Seq với mơ hình khác đề cập Chương I Bên cạnh đó, chương cịn giới thiệu ứng dụng “Small Talk Daily” để giải toán “Nâng cao lực giao tiếp, hỗ trợ điều trị cho trẻ vị thành niên mắc chứng rối loạn giao tiếp” 4.1 Hướng phát triển tương lai Việc xây dựng Chatbot dựa mơ hình Seq2Seq có tính ưu việt nắm bắt việc hội thoại Tuy nhiên số tồn kể Trong tương lai, tác giả thực xây dựng số chức cho phép thu thập hội thoại định dạng format mà Chatbot hiểu Hai tối ưu hóa giá trị, ngưỡng … để tối ưu hóa trình huấn luyện Ba kết hợp với thuật tốn khác để tối ưu hóa tính AI Chatbot, đồng thời giảm bớt thời gian huấn luyện tài nguyên cần thiết cho việc training 4.2 Kết luận Tác giả nghiên cứu, tìm hiểu chi tiết RNN, lớp LSTM, mơ hình Seq2Seq thực xây dựng Chatbot dựa theo mơ hình Trực tiếp thực thử nghiệm so sánh, đối chiếu với chương trình Chatbot xây dựng sử dụng mơ hình khác, đưa thơng tin chi tiết kết thực nghiệm Ở bước xây dựng Chatbot, tác giả mô tả cách rõ ràng cách thức hoạt động, kết thu Bộ liệu dùng để training Chatbot với số lượng ghi lớn cho phép Chatbot sau huấn luyện tương tác cách tự nhiên với chủ thể Tác giả ứng dụng nghiên cứu Luận văn để xây dựng ứng dụng “Small Talk Daily” - ứng dụng cho phép hỗ trợ điều trị nâng cao lực giao tiếp cho trẻ vị thành niên mắc chứng rối loạn giao tiếp Những vấn đề cịn tồn tại: - Việc tìm kiếm, xây dựng liệu học cần nhiều thời gian, liệu cần format định dạng cho trước - Việc training Chatbot tương đối lâu tốn nhiều tài ngun máy móc - Thuật tốn chưa thực hiệu mặt thời gian 48 TÀI LIỆU THAM KHẢO [1] Ritu Agarwal & Mani Wadhwa (2020) Review of State-of-the-Art Design Techniques for Chatbots [2] https://www.hubtype.com/blog/rule-based-chatbots-vs-ai-chatbots/ [3] Ilya Sutskever, Oriol Vinyals, Quoc V Le (2014) Sequence to Sequence Learning with Neural Networks, 06-08 [4] https://colah.github.io/posts/2015-08-Understanding-LSTMs/ [5] https://towardsdatascience.com/nlp-sequence-to-sequence-networkspart-2-seq2seq-model-encoderdecoder-model-6c22e29fd7e1 [6] Sourav Dutta (2019) Evaluating a neural multi-turn chatbot using BLEU score, 03-04 [7] https://machinelearningmastery.com/calculate-bleu-score-for-textpython/ [8] https://www.letsmt.eu/Bleu.aspx [9] Shafquat Hussain, Omid Ameri Sianaki, Nedal Ababneh (2019) A Survey on Conversational Agents/Chatbots Classification and Design Techniques, 05-07 [10] K Papineni, S Roukos, T Ward, and W J Zhu BLEU: a method for automatic evaluation of machine translation In ACL, 2002 [11] http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S140555462016000400647#fn5 [12] Ryan Lowe,Michael Noseworthy,Iulian V Serban el al (2018) Learning to Evaluate Dialogue Responses [13] Sourav Dutta (2019) Evaluating a neural multi-turn chatbot using BLEU score [14] Faisal Rautomo, Masayoshi Aritsugi, Teruaki Kitasuran (2012) Semantic Cosine Similarity [15] https://trituenhantao.io/kien-thuc/hieu-ve-mo-hinh-encoder-decoderseq2seq/ [16] https://towardsdatascience.com/understanding-encoder-decodersequence-to-sequence-model-679e04af4346 [17] https://www.guru99.com/seq2seq-model.html [18] https://medium.com/analytics-vidhya/intuitive-understanding-ofseq2seq-model-attention-mechanism-in-deep-learning-1c1c24aace1 49 ... đề tài: ? ?Xây dựng Chatbot dựa AI Techniques? ?? Trong khuôn khổ Luận Văn, tác giả đề xuất mơ hình xây dựng Chatbot, thực thực nghiệm, so sánh, ứng dụng mơ hình vào xây dựng ứng dụng Mobile chatbot. .. Nguyên tắc xây dựng hệ thống Với hệ thống xây dựng thường kèm theo tiêu chuẩn, nguyên tắc đặt thước đo để theo trình xây dựng, Chatbot Cụ thể cần xem xét đáp ứng sau việc xây dựng Chatbot: -... việc xây dựng Chatbot + AIML: Là viết tắt Artificial Intelligence Markup Language, công nghê tiên tiến để xây dựng Chatbot Nó sử dụng 10 mơ hình hội thoại chatbot người Có cơng nghệ tàng AIML,