0

Báo cáo nghiên cứu tốt nghiệp 3 TOP LIST designing and creating chatbots

20 7 0
  • Báo cáo nghiên cứu tốt nghiệp 3 TOP LIST designing and creating chatbots

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 23/06/2022, 11:07

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ========***======== Báo cáo nghiên cứu tốt nghiệp TOP LIST: designing and creating chatbots Giáo viên hướng dẫn: PGS.T.S Nguyễn Linh Giang Sinh viên: Mã sinh viên: Tạ Quyền Anh 20167063 Hà Nội, ngày 30 tháng năm 2021 LỜI NÓI ĐẦU Trong năm gần đây, khoa học công nghệ dần tiến đến tầm cao Mặc dù mẻ lĩnh vực khoa học công nghệ Chatbots nghiên cứu phát triển với tốc độ chóng mặt trung tâm nghiên cứu, trường đại học học viện,… nhiều lĩnh vực ứng dụng cơng nghệ Chatbots hình thức thơ sơ phần mềm trí tuệ nhân tạo, chương trình tạo từ máy tính tiến hành trị chuyện thơng qua phương pháp nhập văn bản, âm thanh, cảm ứng trả lời câu hỏi xử lý tình huống, cơng cụ giao tiếp, tương tác với người thơng qua trí tuệ nhân tạo lập trình sẵn Có nhiều cơng cụ thư viện hỗ trợ cho Chatbots như: Dialogflow, Wit.ai, Watson Conversation Service, Microsoft LUIS, Google Natural Language API, Amazon Lex,… Đề tài: “Designing and creating chatbots” chủ yếu xây dựng ngôn ngữ Python, nhận liệu dataset tập liệu hội thoại từ phim để học tương tác lại với người dùng trị chuyện Để làm đề tài em cảm ơn PGS.TS Nguyễn Linh Giang trực tiếp hướng dẫn em giúp em tiếp cận đề tài điểm xuất phát từ số Em nghiên cứu tìm hiểu thuật tốn để ứng dụng xây dựng ứng dụng chatbot đơn giản để tương tác trực tiếp với người dùng Em hy vọng thầy bảo thêm học kỳ sau để em tiếp tục nghiên cứu sâu mảng học máy Em vô cảm ơn thầy Chương I: Mơ hình hệ thống Đầu tiên liệu user nhập vào sau đưa qua lớp nhúng embedding Lớp nhúng thực gửi đến mạng LSTM Encoder xây dựng chuỗi xử lý liên hoàn cho output bước liền trước input bước liền sau Khi time step truyền đầu vào véc tơ mã hóa ứng với từ Encoder trả kết đầu gồm: encoder outputs đại diện cho toàn câu input véc tơ encoder outputs đại diện cho từ câu hidden state GRU cuối hidden state sử dụng để làm giá trị hidden khởi tạo cho trình Decoder (chi tiết hình bên dưới) ma trận encoder outputs sử dụng để tính attention weight time step phrase decoder Sau phrase encoder ta thu hidden state GRU cuối ma trận encoder outputs đại điện cho toàn câu input Phrase decoder có tác dụng giải mã thông tin đầu encoder thành từ Do time step trả véc tơ phân phối xác xuất từ bước Từ ta xác định từ có khả xảy time step Tại time step , mơ hình kết hợp decoder embedding véc tơ đại diện cho token ma trận encoder outputs theo chế global attention để tính trọng số attention weight phân bố cho vị trí từ câu input lên véc tơ context đại diện cho tồn câu input tính tích trọng số attention weight với encoder véc tơ ma trận encoder outputs Tiếp theo để dự báo cho từ ta cần kết hợp véc tơ decoder hidden state véc tơ context Qúa trình lặp lại liên tục gặp token cuối đánh dấu vị trí cuối câu Như ta trải qua bước: -Tính decoder input embedding véc tơ từ biết dựa vào embedding layer -Tính attention weight đánh giá mức độ tập trung từ input vào từ dự báo dựa vào ma trận encoder outputs -Tính context véc tơ tích có trọng số attention weights với véc tơ đại diện cho từ input ma trận encoder outputs -Truyền decoder input last hidden state bước vào mơ hình decoder GRU để tính decoder hidden state -Kết hợp decoder hidden state context véc tơ để dự báo từ time step Quá trình tiếp tục gặp token đánh dấu kết thúc câu Kết đầu chuỗi indexes (lấy theo vocabulary) đại diện cho từ vị trí câu Nghiên cứu sử dụng mơ hình Model seq2seq nhận đầu vào chuỗi trả kết output chuỗi Chính tên gọi mơ hình sequence to sequence (từ câu đến câu) Chương II: Công nghệ sử dụng Tensorflow Với bùng nổ lĩnh vực Trí Tuệ Nhân Tạo – A.I thập kỷ vừa qua, machine learning deep learning rõ ràng phát triển theo Và thời điểm tại, TensorFlow thư viện mã nguồn mở cho machine learning tiếng giới, phát triển nhà nghiên cứu từ Google Việc hỗ trợ mạnh mẽ phép tốn học để tính tốn machine learning deep learning giúp việc tiếp cận tốn trở nên đơn giản, nhanh chóng tiện lợi nhiều Các hàm dựng sẵn thư viện cho toán cho phép TensorFlow xây dựng nhiều neural network Nó cịn cho phép bạn tính tốn song song nhiều máy tính khác nhau, chí nhiều CPU, GPU máy hay tạo dataflow graph – đồ thị luồng liệu để dựng nên model Nếu bạn muốn chọn đường nghiệp lĩnh vực A.I này, nắm rõ điều TensorFlow thực quan trọng Kiến trúc TensorFlow Kiến trúc TensorFlow hoạt động chia thành phần: – Tiền xử lý liệu – Dựng model – Train ước tính model Cách TensorFlow hoạt động TensorFlow cho phép lập trình viên tạo dataflow graph, cấu trúc mơ tả làm liệu di chuyển qua biểu đồ, hay sê-ri node xử lý Mỗi node đồ thị đại diện operation toán học, kết nối hay edge node mảng liệu đa chiều, hay gọi ‘tensor’ TensorFlow cung cấp tất điều cho lập trình viên theo phương thức ngơn ngữ Python Vì Python dễ học làm việc, ngồi cịn cung cấp nhiều cách tiện lợi để ta hiểu làm high-level abstractions kết hợp Node tensor TensorFlow đối tượng Python, ứng dụng TensorFlow thân chúng ứng dụng Python Các operation tốn học thực khơng thi hành Python Các thư viện biến đổi có sẵn thông qua TensorFlow viết binary C++ hiệu suất cao Python điều hướng lưu lượng phần cung cấp high-level abstraction lập trình để nối chúng lại với Lợi ích từ TensorFlow Lợi ích dễ thấy quan trọng mà TensorFlow cung cấp cho việc lập trình machine learning abstraction Thay phải đối phó với tình rườm rà từ việc thực triển khai thuật toán, hay tìm cách hợp lý để chuyển output chức sang input chức khác, bạn tập trung vào phần logic tổng thể ứng dụng TensorFlow chăm sóc phần cịn lại thay cho bạn Ngồi TensorFlow cịn ung cấp tiện ích bổ sung cho lập trình viên cần debug giúp bạn tự suy xét ứng dụng TensorFlow Chế độ eager execution cho phép bạn đánh giá sửa đổi operation biểu đồ cách riêng biệt minh bạch, thay phải dựng tồn biểu đồ dạng đối tượng độc lập vốn mơ hồ hay phải đánh giá chung tổng thể Cuối cùng, tính độc đáo TensorFlow TensorBoard TensorBoard cho phép bạn quan sát cách trực quan TensorFlow làm TensorFlow cịn có nhiều cải tiến từ hậu thuẫn từ ekíp thương mại hạng A Google Google tiếp lửa cho tiến độ nhanh chóng cho phát triển đằng sau dự án, mà tạo nhiều phục vụ độc đáo xung quanh TensorFlow để dễ dàng deploy sử dụng: silicon TPU nói để tăng tốc hiệu suất đám mây Google, online hub cho việc chia sẻ model tạo với framework, diện in-browser gần gũi với mobile framework, nhiều nữa… Keras Keras open source cho Neural Network viết ngôn ngữ Python Nó library phát triển vào năm 205 Francois Chollet, kỹ sư nghiên cứu Deep Learning Keras sử dụng chung với thư viện tiếng Tensorflow, CNTK, Theano Một số ưu điểm Keras như: - Dễ sử dụng, dùng đơn giản Tensor, xây dựng model nhanh - Run CPU GPU - Hỗ trợ xây dựng CNN , RNN hai Với người tiếp cận đến Deep chọn sử dụng Keras để build model đơn giản,dễ nắm bắt thư viện khác Chương III: Phân tích liệu Để cung cấp liệu dataset cho chatbot em thu thập số nguồn có dataset dành cho chatbot Link dataset: https://www.kaggle.com/fungusamongus/chatbot-data Khi truy cập vào link dataset ta thấy thư mục dataset sau: Ta cần quan tâm đến file move_lines.txt movie_conversations.txt Mở file move_lines.txt thấy: Trong tập liệu bao gồm 304,713 câu hội thoại từ tập phim Trên dòng bao gồm id, tên user, tên movie, tên Nhân vật lời thoại nhân vật Các trường ngăn cách dãy kí tự +++$+++ mở sang file movie_conversations.txt ta thấy: Đây file lưu giữ hội thoại user ví dụ dịng dataset hội thoại user0 user2 phim m0 với id lời thoại L194 đến L197 Khi seach lại theo id sang file move_lines.txt có đoạn hội thoại hồn chỉnh Tổng cộng có 83,097 hội thoại từ 304,713 câu thoại Việc phân tích liệu dataset chatbot ổn định chuyển sang bước xử lý liệu từ dataset Chương 2: Xử lý liệu Đầu tiên đọc liệu tách tập liệu thành câu sau loại bỏ “+++$+++” xếp thành tập tập câu hỏi ques tập câu trả lời ans Tương ứng với câu có id câu Chúng ta lưu id câu hỏi câu trả lời vào danh sách exchn Khi xử lý tập liệu lớn vấn đề nhớ vấn đề lớn để có vector đầu mã hố nóng cần xố biến khác khơng cần thiết để có cặp câu hỏi câu trả lời Loại bỏ dấu chấm câu chuyển tất thành chữ thường Vì chatbot sử dụng ngôn ngữ tiếng anh nên cần thêm list từ viết tắt ví dụ i’m = i am hay he’s = he is Sau xử lý ta list câu hỏi sau: Và list câu trả lời: Bên cạnh số dạng viết tắt convert: Để giảm nhớ sử dụng ta lọc từ hay sử dụng hay nói cách khác xuất data nhiều lần Loại bỏ từ ngữ sử dụng để chatbot học nhanh 1 số từ sử dụng nhiều data số từ sử dụng Như ta thấy you xuất 11899 lần 9th xuất lần Những từ vụng nghĩa loại bỏ bước Sau loại bỏ từ vô nghĩa ta list từ có nghĩa Tuy nhiên độ xác đến 95% Từ 30000 câu hội thoại ta lọc từ điển từ có nghĩa khoảng 3023 từ Tiếp theo cần thêm token vào cho câu hỏi câu trả lời Trước train, nhìn vào tập liệu để chuyển chiều dài câu cho giống cách padding Chúng ta sử dụng vài ký tự đặc biệt để thêm vào câu EOS: End of sentence PAD: Filler SOS: Start decoding OUT: Từ khơng có từ điển Câu trả lời có dạng answer OUT từ chưa có từ điển từ có nghĩa Vì mạng nơron thuật tốn học máy khơng thể xử lí liệu kiểu dạng chuỗi mà cần chuyển đổi tâp liệu sang dạng number Chúng ta tạo hai mã hoá chuỗi sang number cho tập câu hỏi câu trả lời mã hoá encoder mã hoá decoder Kết thu Sau mã hoá pad chuỗi có length Và cuối thiết lập giải mã Chương IV: Thiết lập encoder_decoder Mô hình sqe2sqe giới thiệu Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation kể từ đó, trở thành mơ hình Go-to cho Hệ thống đối thoại Dịch máy Nó bao gồm hai RNN (Mạng thần kinh tái phát): Một mã hóa giải mã Bộ mã hóa lấy chuỗi (câu) làm đầu vào xử lý ký hiệu (từ) bước thời gian Mục tiêu chuyển đổi chuỗi ký hiệu thành vectơ đặc trưng có kích thước cố định mã hóa thơng tin quan trọng chuỗi làm thông tin không cần thiết Có thể trực quan hóa luồng liệu mã hóa dọc theo trục thời gian, luồng thông tin cục từ đầu đến đầu khác chuỗi Mỗi trạng thái ẩn ảnh hưởng đến trạng thái ẩn trạng thái ẩn cuối xem phần tóm tắt dãy Trạng thái gọi bối cảnh vectơ suy nghĩ, đại diện cho ý định trình tự Từ ngữ cảnh, giải mã tạo chuỗi khác, ký hiệu (từ) thời điểm Ở đây, bước thời gian, giải mã bị ảnh hưởng ngữ cảnh ký hiệu tạo trước Chương V: Mơ hình đào tạo thông số Để trainning cho cải thiện hiệu suất em train với thông số sau: Epochs Batch Size Rnn size Num layer Encoding embedding size Decoding embedding size Learning rate Learning rate decay Min learning rate Keep probability Và kết thu 50 32 1024 1024 1024 0.001 0.9 0.0001 0.5 Chương VI: Tài liệu tham khảo [1] M Lewkowitz, ”Bots: The future of human-computer interaction.,” 12 Feb 2014 [Online] Available: https://chatbotsmagazine.com/botsthe-future-of human-computerinteraction56696f7aff56 [2] J Vanian, ”Google Adds More Brainpower to Artificial Intelligence Research Unit in Canada,” Fortune, 21 November 2016 [Online] Available: https://fortune.com/2016/11/21/google-canadaartificialintelligence/ [3] Barak Turovsky (November 15, 2016), ”Found in translation: More accurate, fluent sentences in Google Translate”, Google Blog, Retrieved January 11, 2017 [4] Mike Schuster, Melvin Johnson, and Nikhil Thorat (November 22, 2016), ”Zero-Shot Translation with Google’s Multilingual Neural Machine Translation System”, Google Research Blog, Retrieved January 11, 2017 [5] Gil Fewster (January 5, 2017), ”The mind-blowing AI announcement from Google that you probably missed”, freeCodeCamp, Retrieved January 11, 2017 Artificial Intelligence Festival 2.0, NED University of Engineering and Technology, 22 Nov 2019, Karachi, Pakistan [6] Arnaldo Pérez Castaño - Practical Artificial Intelligence Machine Learning, Bots and Agent Solutions using C_ (2018, Apress) [7] Srikanth Machiraju, Ritesh Modi - Developing Bots with Microsoft Bots Framework (2018, Apress) [8] Shekhar Varshney (auth.) - Building Trading Bots Using Java (2016, Apress) ... lĩnh vực khoa học công nghệ Chatbots nghiên cứu phát triển với tốc độ chóng mặt trung tâm nghiên cứu, trường đại học học viện,… nhiều lĩnh vực ứng dụng công nghệ Chatbots hình thức thơ sơ phần... thư viện hỗ trợ cho Chatbots như: Dialogflow, Wit.ai, Watson Conversation Service, Microsoft LUIS, Google Natural Language API, Amazon Lex,… Đề tài: ? ?Designing and creating chatbots? ?? chủ yếu xây... từ số Em nghiên cứu tìm hiểu thuật tốn để ứng dụng xây dựng ứng dụng chatbot đơn giản để tương tác trực tiếp với người dùng Em hy vọng thầy bảo thêm học kỳ sau để em tiếp tục nghiên cứu sâu mảng
- Xem thêm -

Xem thêm: Báo cáo nghiên cứu tốt nghiệp 3 TOP LIST designing and creating chatbots ,

Từ khóa liên quan