Xây dựng bộ phân loại tin nhắn

Một phần của tài liệu Phát triển hệ thống chatbot trò chuyện nhiều tầng (Trang 61)

7.2.1 Phương pháp Pattern Matching

Theo các ý định được định nghĩa ở mục 5.2.4, bộ phân loại ý định cơ bản dùng phương pháp Pattern Matching để kiểm tra từ khoá của một ý định có xuất hiện trong câu nhập của người dùng hay không. Câu nhập vào được kiểm tra với từ khoá ở mức độ từ và mức độ ký tự.

7.2.2 Kết quả

Kết quả kiểm thử trên bộ phân loại ý định cơ bản đạt được độ chính xác 85% trên tập dữ liệu kiểm thử gồm 100 câu.

7.3 Xây dựng bộ trả lời các ý định cơ bản

Sau khi các ý định cơ bản được xác định, các câu trả lời sẽ được chọn ngẫu nhiên trong tập các câu trả lời theo ý định được mô tả ở mục 5.2.1.

7.4 Xây dựng mô hình ngôn ngữ7.4.1 Môi trường huấn luyện mô hình7.4.1 Môi trường huấn luyện mô hình 7.4.1 Môi trường huấn luyện mô hình

Các mô hình học máy được huấn luyện trên môi trường có thông số như sau:

• CPU: 16 nhân

• RAM: 64GB

• GPU: 2x NVIDIA Tesla K80

7.4.2 Mô hình ngôn ngữ dùng LSTM

Mô hình ngôn ngữ dùng LSTM là mô hình cơ bản nhất, nhóm sử dụng mô hình này để có thể đưa ra đánh giá với mô hình GPT-2 ở mục 7.4.3. Cụ thể thiết lập thông số cho mạng LSTM như sau:

• vocab size: 52000

• embedding size: 256

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 49

• hidden size: 256

• number layer: 1

Mô hình được huấn luyện với tập dữ liệu ở mục 4.1 với cái tham số như sau:

• batch size: 16

• number iterator: 10

• learning rate: 0.01

Thời gian huấn luyện mô hình mất khoảng 72 giờ.

7.4.3 Mô hình GPT-2

Mô hình nhóm sử dụng là mô hình GPT-2 và được giảm các thông số để phù hợp với giới hạn về tài nguyên khi huấn luyện và sử dụng. Cụ thể các thông số của mô hình như sau:

• vocab size: 52000 • max length: 128 • dropout: 0.2 • embedding size: 256 • number layer: 8 • number head: 8

Với thiết lập trên thì mô hình có 19 triệu tham số. Và được huấn luyện với tập dữ liệu được chuẩn bị ở mục 4.1 với các tham số như sau:

• batch size: 32

• number steps: 100000

• learning rate: 0.001

Thời gian huấn luyện mô hình mất khoảng 25 giờ.

7.4.4 Kết quả và đánh giá

Hai mô hình được đánh giá trên dựa vào độ đo perplexity(PPL). Kết quả như bảng 7.1:

Bảng 7.2 đưa ra một số câu được sinh ra từ hai mô hình. Có thể thấy rằng mô hình GPT-2 có khả năng bám sát được ngữ cảnh hơn và đưa ra câu trả lời phù hợp hơn so với mô hình LSTM. Đồng thời mô hình GPT-2 còn cho khả năng huấn luyện nhanh hơn khá nhiều so với mô hình LSTM truyền thống.

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 50 PPL

LSTM 59.7 GPT-2 12.9

Bảng 7.1:Đánh giá PPL giữa hai mô hình LSTM và GPT-2

Câu nhập vào LSTM GPT-2

hôm nay chán quá đi Chúng ta đã nói chuyện này

là anh có gì? Rồi sao?

mới đi làm về mệt quá có nhiều người khác đi Đâu có mệt quá đâu. thi xong rồi đi chơi thôi làm gì vậy. Tôi không thích thế. tôi cảm thấy không được

khoẻ lắm. có.IA.Hmm...và Có lẽ cậu nên xem lại bảnthân. cậu bao nhiêu tuổi rồi? có gì đó không có một người

khác. Hai

cậu ở đâu vậy? IAaron? nhưng không biết là

anh Tớ không biết.

chào tạm biệt nhé! Chúng tôi sẽ không biết là

người đã làm gì? Đợi đã, chờ đã

hẹn gặp lại. lên? Có đi, Tạm biệt.

Bảng 7.2:Một số câu do hai mô hình sinh ra

7.5 Xây dựng cơ sở dữ liệu lưu trữ đoạn hội thoại

Bảng 7.3 mô tả cấu trúc của một đoạn hội thoại được lưu trữ. Các cuộc hội thoại được lưu trữ nhằm đánh giá độ ổn định của các mô hình. Dữ liệu được lưu trữ bằng hệ cơ sở dữ liệu MongoDB và được đặt tạihttps://cloud.mongodb.com.

Tên trường Kiểu dữ liệu

id string

history List of string

Bảng 7.3:Cấu trúc dữ liệu đoạn hội thoại

7.6 Triển khai hệ thống chatbot7.6.1 Thông số hệ thống7.6.1 Thông số hệ thống 7.6.1 Thông số hệ thống

Ứng dụng và các thành phần của chatbot được đóng gói và triển khai trong môi trường ảo của Docker. Máy chủ được nhóm dùng để chạy môi trường ảo được dùng từ hệ thống Amazon Web Service có thông số cấu hình như sau:

• instance: t3a.xlarge

• RAM: 16GB

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 51

• GPU: Không

7.6.2 Sơ đồ triển khai phần mềm

Hình 7.2:Sơ đồ triển khai các thành phần của hệ thống chatbot

Hình 7.2 mô tả các thanh phần của hệ thống chatbot sau khi triển khai. Các thành phần được tách biệt nhau để dễ dàng nâng cấp và thêm những tính năng mới cho chatbot.

7.7 Kiểm thử các thành phần của hệ thống chatbot

Kiểm thử là công đoạn quan trọng trong quá trình phát triển phần mềm nhằm phát hiện sớm các lỗi có thể xảy ra và hoạt động đúng với yêu cầu được đặt ra. Trong giới hạn đề tài luận văn này, nhóm đã thực hiện phép kiểm thử hệ thống để đảm bảo tính chính xác của phần mềm.

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

Đối với các bộ xử lý tin nhắn thông thường và trả lời câu hỏi, nhóm tiến hành nhập một số câu từ người dùng và so sánh với kết quả mong muốn để đảm bảo các thành phần trên hoạt động ổn định. Kết quả đánh giá được nhóm tổng hợp như hình 7.3.

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 52

Hình 7.3: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

7.7.2 Kiểm thử giao diện

Giao diện được nhóm kiểm thử các chức năng chính của phần mềm và được mô tả chi tiết ở hình 7.4.

Hình 7.4: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ỏiMột số ảnh chụp của giao diện chat: Một số ảnh chụp của giao diện chat:

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 53

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 54

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 55

7.8 Đánh giá của người dùng

Sau khi triển khai phần mềm, nhóm tiến hành thu thập đánh giá của 40 bạn sinh viên dùng thử và thu được kết quả như sau.

Hình 7.8:Kết quả đánh giá độ hài lòng của người dùng về câu trả lời của chatbotTừ hình 7.8, hơn 90% người dùng hài lòng với câu trả lời của chatbot. Còn một số ít câu trả lời Từ hình 7.8, hơn 90% người dùng hài lòng với câu trả lời của chatbot. Còn một số ít câu trả lời không thoả mãn được người dùng, có thể do mô hình sinh ngôn ngữ chưa nắm bắt được toàn bộ ngữ cảnh và đưa ra câu trả lời không phù hợp với câu trước đó.

Hình 7.9 cho thấy gần 90% người dùng hài lòng về thời gian phản hồi của chatbot. Tuy nhiên đối với hệ thống trả lời câu hỏi vẫn còn chậm và một số người dùng không hài lòng.

Về giao diện, đa số người dùng đánh độ thẩm mỹ và tính tương thích của giao diện đều trên mức trung bình.

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 56

Hình 7.9:Kết quả đánh giá của người dùng về thời gian phản hồi của chatbot

CHƯƠNG 7 THÍ NGHIỆM VÀ ĐÁNH GIÁ 57

8

TỔNG KẾT

Trong chương này, nhóm sẽ tổng kết trong quá trình thực hoàn thiện luận văn tốt nghiệp, bao gồm những kết quả đạt được, các hạn chế của đề tài và hướng phát triển trong tương lai.

Mục lục

8.1 Các kết quả đạt được . . . 59

8.2 Các hạn chế . . . 59

CHƯƠNG 8 TỔNG KẾT 59

8.1 Các kết quả đạt được

Những công việc mà nhóm đã hoàn thành trong quá trình hoàn thiện luận văn:

• Xây dựng một bộ trả lời câu hỏi và hệ thống thu thập các đoạn văn bản để trả lời câu hỏi. • Xây dựng một bộ nhận diện các ý định của người dùng gồm các ý định thông thường và

câu hỏi về người.

• Tiến hành huấn luyện và đánh giá hai mô hình ngôn ngữ là LSTM và GPT-2 trên tập dữ liệu OpenSubtitles.

• Kết hợp các thành phần thành một hệ thống nhiều tầng giúp chatbot xử lý tốt các trường hợp chưa được định nghĩa.

• Triển khai hệ thống dùng thử cho người dùng và thu nhận các phản hồi đánh giá.

8.2 Các hạn chế

• Bộ trả lời câu hỏi chỉ trả lời được về tên riêng của người.

• Bộ nhận diện ý định dựa vào từ khoá nên các trường hợp câu chứa nhiều từ khoá của nhiều ý định sẽ dẫn đến nhận diện sai.

• Dữ liệu về hội thoại cho tiếng Việt còn ít nên mô hình sinh chưa được tổng quát.

• Mô hình sinh ngôn ngữ đôi khi không thống nhất về ngữ cảnh đối với những câu đã sinh ra trước đó.

8.3 Định hướng trong tương lai

Sau quá trình triển khai hệ thống thử nghiệm và thu được một số nhận xét từ người dùng, nhóm dự định trong tương lai sẽ khắc phục các hạn chế nêu trên và những ý kiến đóng góp từ người dùng như sau:

• Cải thiện khả năng phân loại ý định người dùng bằng việc thu thập và huấn luyện từ dữ liệu thực tế.

• Huấn luyện thêm mô hình trả lời câu hỏi để có thể trả lời được nhiều loại câu hỏi hơn. • Tiến hành xây dựng cơ sở dữ liệu để lưu trữ các câu hỏi và câu trả lời để tăng tốc độ trả

lời các câu hỏi.

• Tìm thêm các phương pháp để huấn luyện mô hình sinh ngôn ngữ bám sát ngữ cảnh hơn. • Tích hợp hệ thống chatbot vào các nền tảng trò chuyện trực tuyến khác nhau như Messen-

TÀI LIỆU THAM KHẢO [1] J. Weizenbaum, “Eliza—a computer program for the study of natural language commu- nication between man and machine,” Communications of the ACM, vol. 9, pp. 36–45, Jan. 1966. DOI: 10.1145/365153.365168. [Online]. Available: https://dl.acm. org/doi/10.1145/365153.365168.

[2] K. M. Colby, “Human-computer conversation in a cognitive therapy program,”Machine Conversations, vol. 511, pp. 9–19, 1999. DOI: 10 . 1007 / 978 - 1 - 4757 - 5687 - 6 _ 3. (visited on 07/11/2021).

[3] Ask.com - what’s your question?Uk.ask.com. [Online]. Available: https://uk.ask. com/(visited on 07/11/2021).

[4] S. Hussain, O. Ameri Sianaki, and N. Ababneh, “A survey on conversational agents/chat- bots classification and design techniques,” Advances in Intelligent Systems and Com- puting, pp. 946–956, 2019. DOI: 10 . 1007 / 978 - 3 - 030 - 15035 - 8 _ 93. (visited on 10/22/2020).

[5] Z. S. Harris, “Distributional structure,”WORD, vol. 10, no. 2-3, pp. 146–162, Aug. 1954.

DOI:10.1080/00437956.1954.11659520. [Online]. Available:https://doi.org/ 10.1080/00437956.1954.11659520.

[6] T. Mikolov, K. Chen, G. Corrado, and J. Dean, “Efficient estimation of word representa- tions in vector space,” 2013. eprint:arXiv:1301.3781.

[7] K. Shiruru, “An introduction to artificial neural network,”International Journal of Ad- vance Research and Innovative Ideas in Education, vol. 1, pp. 27–30, Sep. 2016.

[8] V. H. Tiệp. (2017). “Multi-layer perceptron và backpropagation,” [Online]. Available:

https://machinelearningcoban.com/2017/02/24/mlp/.

[9] Wikipedia, Activation function. [Online]. Available: https://en.wikipedia.org/ wiki/Activation_function.

[10] D. E. Rumelhart, G. E. Hinton, and R. J. Williams, “Learning representations by back- propagating errors,”Nature, vol. 323, no. 6088, pp. 533–536, Oct. 1986.DOI:10.1038/ 323533a0. [Online]. Available:https://doi.org/10.1038/323533a0.

[11] D. Britz. (2015). “Recurrent neural networks tutorial, part 1 – introduction to rnns,” [Online]. Available: http : / / www . wildml . com / 2015 / 09 / recurrent - neural - networks-tutorial-part-1-introduction-to-rnns/.

[12] S. Amidi,Recurrent neural networks cheatsheet. [Online]. Available:https://stanford. edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-networks. [13] C. Olah. (2015). “Understanding lstm networks,” [Online]. Available:http://colah.

CHƯƠNG 8 TÀI LIỆU THAM KHẢO 61 [14] I. Sutskever, O. Vinyals, and Q. V. Le, “Sequence to sequence learning with neural net-

works,” 2014. eprint:arXiv:1409.3215.

[15] S. Kostadinov. (2019). “Understanding encoder-decoder sequence to sequence model,” [Online]. Available:https://towardsdatascience.com/understanding-encoder- decoder-sequence-to-sequence-model-679e04af4346.

[16] D. Bahdanau, K. Cho, and Y. Bengio, “Neural machine translation by jointly learning to align and translate,” 2016. arXiv:1409.0473 [cs.CL].

[17] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, and I. Polosukhin, “Attention is all you need,” 2017. eprint:arXiv:1706.03762.

[18] K. He, X. Zhang, S. Ren, and J. Sun,Deep residual learning for image recognition, 2015. arXiv:1512.03385 [cs.CV].

[19] J. L. Ba, J. R. Kiros, and G. E. Hinton, “Layer normalization,” 2016. eprint:1607.06450. [20] A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, and I. Sutskever, “Language models

are unsupervised multitask learners,” 2019.

[21] J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova, “Bert: Pre-training of deep bidirec- tional transformers for language understanding,”arXiv preprint arXiv:1810.04805, 2018. [22] T. Nguyen and M. Shcherbakov, “A neural network based vietnamese chatbot,”2018 In- ternational Conference on System Modeling & Advancement in Research Trends (SMART), Nov. 2018.DOI:10.1109/sysmart.2018.8746962.

[23] P. Lison and J. Tiedemann, Opensubtitles2016: Extracting large parallel corpora from movie and tv subtitles, 2016. [Online]. Available: http : / / www . lrec - conf . org / proceedings/lrec2016/pdf/947_Paper.pdf(visited on 07/06/2021).

[24] J. Tiedemann,Finding alternative translations in a large corpus of movie subtitles, 2016. [Online]. Available:http://www.lrec- conf.org/proceedings/lrec2016/pdf/ 62_Paper.pdf(visited on 07/06/2021).

[25] J. Daniel and J. Martin, Speech and language processing, 2020. [Online]. Available:

DANH MỤC TỪ KHOÁ

Danh sách dưới đây liệt kê các từ khoá được đề cập trong nội dung luận văn này theo thứ tự bảng chữ cái. A Activation Function . . . 12 Attention . . . 2, 19, 21, 22 B BERT . . . 24, 46 C CBOW . . . 9, 10 Chatbot . . . 2, 3 D Deep Learning. . . .2 E ELIZA. . . .7 F Fully Connected . . . 11 G Generative-based model . . . 2 GPT . . . 2, 23 GPT-2. . . .23, 49 I Information Retrieval. . . .2 Internet . . . 7 L LSTM. . . .17, 49 M Machine Translation . . . 16 MLP . . . 10 O One-hot vector. . . .9 P PPL . . . 49 R Retrieval-based model . . . 2 S Sequence to Sequence . . . 18 Sequence-to-Sequence. . . .2 Skip-gram . . . 9, 10 T Transformer . . . 21 W Word Embedding . . . 9

Một phần của tài liệu Phát triển hệ thống chatbot trò chuyện nhiều tầng (Trang 61)

Tải bản đầy đủ (PDF)

(75 trang)