Thử nghiệm và đánh giá chương trình

Một phần của tài liệu Xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 62 - 72)

Thử nghiệm được tiến hành trên chính tập dữ liệu training bao gồm 36 intent với 1024 câu mẫu và 4 entity, việc đánh giá chất lượng Chatbot dựa trên độ chính xác của câu trả lời khi hỏi các câu đơn lẻ trong tập dữ liệu. Để thực hiện quá trình kiểm thử tôi chia ngẫu nhiên dữ liệu huấn luyện ban đầu thành 768 câu mẫu dùng để huấn luyện và 256 câu mẫu dùng để kiểm thử và 4 entity, huấn luyện dựa theo cấu hình được trình bày trong 3.3.4 Cấu hình các thành phần. Kết quả được đánh giá dựa vào 3 thông số lần lượt là Precision, Recall và F1-score.

- Precision: là tỉ lệ số câu đúng (TP) trong số những câu được phân loại là

đúng (TP + FP). Với TP là true positive là những câu dự đoán là đúng và kết quả là đúng, FP là false positive là những câu dự đoán là sai nhưng kết quả là đúng. Precision càng cao thì độ chính xác các câu dự đoán đúng càng cao.

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑇𝑃

𝑇𝑃 + 𝐹𝑃 (3.1)

- Recall: là tỉ lệ số câu đúng (TP) trong tổng số những câu thực sự là đúng

(TP + FN). Với FN là false negative là những câu dự đoán sai nhưng kết quả là đúng. Recall càng cao thì tỉ lệ bỏ sót các câu thực sự đúng càng thấp.

𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃

52

-F1-score: là điểm trung bình điều hòa (harmonic mean) của Precision và

Recall. Điểm F1-score càng cao thì mô hình dự đoán càng chính xác và tin cậy.

𝐹1−𝑠𝑐𝑜𝑟𝑒 = 2 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛  𝑅𝑒𝑐𝑎𝑙𝑙

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙 (3.3) Dưới đây là bảng kết quả thử nghiệm cho intent và entity:

Bảng 3.1. Thông số đo intent

Ý định (Intents) Số câu test Thông số đo

Precision Recall F1-score

chao_hoi 6 1.00 0.83 0.91 bao_gia 7 1.00 1.00 1.00 loi_font_chu 7 1.00 0.86 0.92 bao_cao_ton_kho 8 0.90 1.00 0.95 nhap_tu_dien 5 0.80 0.80 0.80 tao_lai_so_phieu 8 1.00 1.00 1.00 cai_dat_phan_mem 14 0.82 1.00 0.90 doi_mat_khau 7 1.00 0.86 0.92 tao_du_lieu_moi 17 0.93 0.82 0.87 hoa_don_dien_tu 8 1.00 1.00 1.00 in_nhieu_phieu 7 0.88 1.00 0.93 copy_du_lieu 8 0.89 1.00 0.93 … … … … … Trọng số trung bình 256 0.92 0.91 0.91

Bảng 3.2. Thông số đo entity

Thực thể (Entities) Số câu test Thông số đo Precision Recall F1- score tu_dien_tai_khoan 23 0.85 1.00 0.92 so_dien_thoai 4 1.00 1.00 1.00 san_pham 4 1.00 1.00 1.00 ten_khach_hang 13 1.00 0.62 0.76 Trọng số trung bình 44 0.92 0.89 0.89

53

Hình 3.17. Biểu đồ thống kê mức độ tin cậy dự đoán ý định (intent)

54

Hình 3.19. Biểu đồ ma trận nhầm lẫn (Confusion matrix) giữa các nhãn dự đoán và nhãn đúng trong tác vụ phân loại ý định

Nhãn

đún

g

55

Hình 3.20. Biểu đồ ma trận nhầm lẫn (Confusion matrix) giữa các nhãn dự đoán và nhãn đúng trong tác vụ trích xuất thực thể

Kết quả chỉ ra rằng Chatbot dự đoán chính xác khoảng 90%. Để lưa chọn được cấu hình tốt nhất và ổn định nhất tôi đã so sánh các biến thể cấu hình khác nhau, với cấu hình đầu tiên là cấu hình mặc định được cung cấp bởi Rasa đặt tên là default-config, cấu hình thứ hai sử dụng mô hình DIET với thành phần

tokenizer được tùy biến sử dụng thư viện Underthesea [25] của tác giả Vũ Anh, và cấu hình thứ 3 cũng chính là cấu hình được sử dụng cho ứng dụng dùng pretrained-model spaCy hỗ trợ Tiếng Việt [15] của tác giả Trần Việt Trung đã được huấn luyện dựa trên 18GB các bài báo Tiếng Việt và được đặt tên là spaCy-

56

Hình 3.21. Thang đo so sánh điểm intent của 3 cấu hình Bảng 3.3. Kết quả so sánh điểm intent của 3 cấu hình

Cấu hình Precision Recall F1-score

spaCy-config 0.9191 0.9102 0.9086

custom-tokenizer 0.8945 0.8867 0.8843

default-config 0.8657 0.8555 0.8520

Hình 3.22. Thang đo so sánh điểm entity của 3 cấu hình

57

Bảng 3.4. Kết quả so sánh điểm entity của 3 cấu hình

Cấu hình Precision Recall F1-score

spaCy-config 0.9226 0.8864 0.8878

custom-

tokenizer 0.8328 0.8333 0.8208

default-config 0.8028 0.8103 0.8028

Ở cấu hình mặc định của Rasa default-config đạt điểm thấp nhất ở cả nhiệm vụ phân loại ý định và trích chọn thực thể, lý do chính là cấu hình này phù hợp với mọi ngôn ngữ chữ Latinh nhưng không thể chính xác ở một ngôn ngữ cụ thể ví dụ Tiếng Việt. Cấu hình custom-config thể hiện kết quả vượt trội hơn default-config ở cả 2 tác vụ, điều đó chứng minh được rằng lựa chọn tokenizer phù hợp với ngôn ngữ sẽ tăng đáng kể khả năng dự đoán của Chatbot. Ở cấu hình spaCy-config ta thu được kết quả tốt nhất, với việc sử dụng tính năng tokenizer và pretrain-model spaCy sử dụng cho Tiếng Việt giúp Chatbot có đủ thông tin ngữ cảnh của từ vựng dù chưa từng huấn luyện trước đó. Với kết quả tốt nhất, tôi đã chọn cấu hình spaCy- config để xây dựng Chatbot Nhất Nam.

Từ quá trình tìm hiểu nghiệp vụ, xây dựng và các kết quả từ thực nghiệm thì tôi có những đánh giá sau:

Dữ liệu huấn luyện và các kịch bản xây dựng là yếu tố vô cùng quan trọng trong xây dựng một Chatbot, dữ liệu và kịch bản được cung cấp càng nhiều và tỉ mỉ thì Chatbot sẽ càng linh hoạt và thông minh.

Việc định nghĩa và xây dựng các ý định, thực thể cũng đóng vai trò rất quan trọng. Nếu dữ liệu huấn luyện nhiều nhưng được phân loại một cách mập mờ, không có hoạch định rõ ràng, ví dụ các câu mẫu cùng một ý định nhưng lại đặt vào 2 intent khác nhau sẽ rất khó cho Chatbot biết được ý định của người hỏi.

Không thể có một bài toán cụ thể để quy hoạch hết các trường hợp có thể xảy ra trong một phiên hỏi của người dùng, cho nên cần xây dựng kịch bản cho những trường hợp chưa được huấn luyện để Chatbot không bị trong tình cảnh không thể đưa ra câu trả lời cho người dùng hoặc đưa câu trả lời sai lệch.

58

KẾT LUẬN

Trong luận văn này tôi đã tìm hiểu tổng quan về hệ thống Chatbot, các thành phần cấu trúc và nhiệm vụ của các thành phần trong Chatbot, tìm hiểu mô hình Transformer và mô hình DIET để ứng dụng vào trong Chatbot giải quyết bài toán bán hàng, tư vấn và hỗ trợ khách hàng. Chatbot được xây dựng dựa trên công cụ Rasa và tích hợp triển khai trên website của doanh nghiệp.

Các vấn đề mà luận văn đã đạt được

1. Xây dựng phương pháp phân loại ý định và trích xuất thực thể giúp Chatbot có khả năng trả lời tự động các câu hỏi của khách hàng một cách chính xác nhất. Những câu hỏi khó không có trong dữ liệu huấn luyện sẽ được chuyển đến chuyên viên tư vấn.

2. Xây dựng Chatbot bằng công cụ Rasa sử dụng mô hình DIET trong quá trình huấn luyện và tích hợp thành công vào Website công ty sử dụng Wordpress. Tùy chỉnh mô hình để có thể xử lý Tiếng Việt tốt hơn.

3. Đánh giá độ chính xác mô hình trong nhiệm vụ phân loại ý định và trích xuất thực thể.

4. So sánh với các tùy chỉnh cấu hình để đưa ra cấu hình tốt nhất ứng dụng cho Chatbot.

Định hướng phát triển

1. Mở rộng thêm các ý định và thực thể phục vụ nghiệp vụ doanh nghiệp. 2. Xây dựng Chatbot hỗ trợ multi intent – người dùng có thể hỏi nhiều câu hỏi kép với cùng một intent.

3. Xây dựng Chatbot có khả năng phân tích cảm xúc để đánh giá và đưa ra câu trả lời phù hợp từng hoàn cảnh.

59

TÀI LIỆU THAM KHẢO

[1] Moussiades, E. Adamopoulou and Lefteris, "An Overview of Chatbot Technology".

[2] P. Suta, X. Lan, B. Wu, P. Mongkolnam and J. H. Chan, "An Overview of Machine Learning in Chatbots," 2020.

[3] Kompella and Ravindra, 2018. [Online]. Available: https://towardsdatascience.com/architecture-overview-of-a-

conversational-ai-chat-bot-4ef3dfefd52e.

[4] R. Vargas, A. Mosavi and R. Ruiz, "DEEP LEARNING: A REVIEW," 2018.

[5] "WildML," 2015. [Online]. Available: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial- part-1-introduction-to-rnns/.

[6] Ruder and Sebastian, "An overview of gradient descent optimization algorithms," 2017.

[7] R. Pascanu, T. Mikolov and Y. Bengio, "On the difficulty of training recurrent neural networks".

[8] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser and I. Polosukhin, Attention is all you need, 2017.

[9] F. Chaubard, M. Fang, G. Genthial, R. Mundra and R. Socher, "Natural Language Processing with Deep Learning," 2019.

[10] L. Google, "Tensor2Tensor," 2018. [Online]. Available: https://colab.research.google.com/github/tensorflow/tensor2tensor/blob/ master/tensor2tensor/notebooks/hello_t2t.ipynb#scrollTo=OJKU36Qafq OC.

60 [11] J. L. Ba, J. R. Kiros and G. E. Hinton, "Layer Normalization," 2016. [12] K. He, X. Zhang, S. Ren and J. Sun, "Deep Residual Learning for Image

Recognition," 2015.

[13] T. Bunk, D. Varshneya, V. Vlasov and A. Nichol, "DIET: Lightweight Language Understanding for Dialogue Systems," 2020.

[14] X.-S. Vu, T. Vu, S. N. Tran and L. Jiang, "https://github.com/sonvx/word2vecVN," [Online].

[15] T. V. Trung. [Online]. Available: https://gitlab.com/trungtv/vi_spacy. [16] D. Q. Nguyen and A. T. Nguyen, "PhoBERT: Pre-trained language

models for Vietnamese," [Online]. Available: https://github.com/VinAIResearch/PhoBERT.

[17] Y. Liu, M. Ott, NamanGoyal, J. Du, M. Joshi, D. Chen, OmerLevy, MikeLewis, L. Zettlemoyer and V. Stoyanov, "RoBERTa: ARobustly Optimized BERT Pretraining Approach," 2019.

[18] J. Lafferty, A. McCallum and F. Pereira, "Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data," 2001. [19] M. Korobov, "sklearn-crfsuite," 2015. [Online]. Available:

https://sklearn-crfsuite.readthedocs.io/.

[20] Ledell, A. Fisch, S. Chopra, K. Adams, A. Bordes and J. Westom, "Emed All The Things!," 2017.

[21] X. Liu, A. Eshghi, P. Swietojanski and V. Rieser, "Benchmarking Natural Language Understanding Services for building Conversational Agents," 2019.

[22] A. Vanzo, E. Bastianelli and O. Lemon, Hierarchical multi-task natural language understanding for cross-domain conversation ai: Hermit nlu, 2019, pp. 254-263.

61 [23] T. Bocklisch, J. Faulkner, N. Pawlowski and A. Nichol, "Rasa: Open

Source Language Understanding and Dialogue Management," 2017. [24] V. Vlasov, J. E. M. Mosig and A. Nichol, "Dialogue Transformers," 2020. [25] V. Anh, "Underthesea - Vietnamese NLP Toolkit," 2018. [Online].

Available: https://underthesea.readthedocs.io/en/latest/readme.html. [26] A. Sherstinsky, "Fundamentals of Recurrent Neural Network (RNN) and

Long Short-Term Memory (LSTM) Network," 2021.

[27] M.-W. C. K. L. K. T. Jacob Devlin, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," 2019.

[28] O. V. Q. V. L. Ilya Sutskever, "Sequence to Sequence Learning with Neural Networks".

[29] "Michael Phi," 25 9 2018. [Online]. Available: https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a- step-by-step-explanation-44e9eb85bf21.

[30] M. Sonali, B. Maind and M. P. Wankar, "Research Paper on Basic of Artificial Neural Network," 2014.

[31] Mavuduru and Amol, 2 12 2020. [Online]. Available: https://towardsdatascience.com/what-are-transformers-and-how-can- you-use-them-f7ccd546071a.

[32] J. Alammar, "The Illustrated Transformer," [Online]. Available: https://jalammar.github.io/illustrated-transformer/.

[33] J. Mosig and V. Vlasov, "Why Rasa uses Sparse Layers in Transformers," 19 4 2021. [Online]. Available: https://rasa.com/blog/why-rasa-uses- sparse-layers-in-transformers/.

Một phần của tài liệu Xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 62 - 72)