Báo cáo nghiên cứu và xây dựng chatbot tư vấn tuyển sinh về công nghệ thông tin

56 0 0
Tài liệu đã được kiểm tra trùng lặp
Báo cáo nghiên cứu và xây dựng chatbot tư vấn tuyển sinh về công nghệ thông tin

Đang tải... (xem toàn văn)

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

Thông tin tài liệu

Trong thời đại công nghệ số hiện nay, sự phát triển của trí tuệ nhân tạo (AI) và hệ thống tư vấn thông minh đã đem lại những tiện ích vượt trội trong việc cung cấp thông tin và tư vấn cho người dùng. Nhận thấy nhu cầu tư vấn tuyển sinh của các học sinh và phụ huynh đối với khoa Công nghệ thông tin (CNTT) tại Đại học Giao thông Vận tải, em đã chọn đề tài "Phát triển chatbot tư vấn tuyển sinh khoa Công nghệ thông tin Đại học Giao thông Vận tải" nhằm tạo ra một công cụ hữu ích và tiện lợi để hỗ trợ quá trình tìm hiểu và đưa ra quyết định tuyển sinh. Đồ án tập trung vào việc phát triển một chatbot tư vấn tuyển sinh cho khoa Công nghệ thông tin Đại học Giao Thông Vận Tải. Đặc điểm nổi bật của chatbot này là khả năng cung cấp thông tin chi tiết về chương trình đào tạo, môi trường học tập, các ngành học, điều kiện tuyển sinh, thông tin về kỳ thi đầu vào và các thông tin liên quan khác.Qua đó, chatbot sẽ giúp học sinh và phụ huynh tiết kiệm thời gian và công sức trong việc tìm kiếm thông tin, đồng thời mang lại sự chính xác và đáng tin cậy trong quá trình tư vấn. Đề tài nghiên cứu này nhằm mục đích tìm hiểu và đánh giá và trình bày các phương pháp pháp xây dựng mô hình chatbot dựa trên các thuật toán trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên (NLP) cụ thể là: ● Mô hình Recurrent Neural Network (RNN) ● Mô hình Long short term memory (LSTM) ● Phương pháp mã hóa One-hot coding ● Phương pháp mã hoá Sequence Encoding. Cấu trúc đồ án bao gồm 3 chương chính: ● Chương 1: Tổng quan về đề tài và cơ sở lý thuyết. - Tổng quan về chatbot và vai trò của nó trong tư vấn tuyển sinh. - Tổng quan về các phương pháp và công nghệ được sử dụng. - Pham vi đề tài - Trình bày các kiến thức cơ bản về trí tuệ nhân tạo, xử lý ngôn ngữ tự nhiên. - Giới thiệu chi tiết về các phương pháp nghiên cứu. ● Chương 2: Triển khai và xây dựng mô hình. - Mô tả quy trình triển khai chatbot từ việc thu thập dữ liệu, huấn luyện mô hình. - Trình bày kết quả thực nghiệm, đánh giá hiệu suất. ● Chương 3: Thử nghiệm mô hình. - Trình bày kết quả chạy thử mô hình LSTM ● Kết luận và kiến nghị ● Danh mục tài liệu tham khảo

Trang 1

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN

-o0o -

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI

NGHIÊN CỨU VÀ XÂY DỰNG CHATBOT

TƯ VẤN TUYỂN SINH VỀ CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn : TS.Lại Mạnh Dũng

Sinh viên thực hiện : Nguyễn Phong Hoàng Sơn Mã sinh viên : 191203804

Hà Nội, ngày 29 tháng 5 năm 2023

Trang 2

LỜI CẢM ƠN

Được sự đồng ý của Khoa Công nghệ thông tin Trường Đại Học Giao Thông Vận Tải cùng với sự hướng dẫn của Thầy giáo hướng dẫn - TS Lại Mạnh Dũng, em đã thực hiện và hoàn thành đề tài “Nghiên cứu và xây dựng chatbot tư vấn tuyển sinh về công nghệ thông tin”

Em xin chân thành cảm ơn tới các thầy cô giáo đã tận tình hướng dẫn, giảng dạy trong quá trình học tập và nghiên cứu và rèn luyện ở Trường Đại Học Giao Thông Vận Tải

Đặc biệt, em xin gửi lời cảm ơn đặc biệt và sâu sắc nhất đến Thầy giáo hướng dẫn - TS Lại Mạnh Dũng Sự chu đáo, tận tâm và kiến thức sâu sắc của Thầy đã giúp em có được sự hiểu biết rõ hơn về đồ án tốt nghiệp và hướng dẫn em từng bước để hoàn thiện đồ án này

Bản thân em đã cố gắng hết sức để thực hiện đồ án một cách hoàn chỉnh nhất Tuy nhiên, do trình độ hiểu biết và nhận thức chưa cao, đồ án có thể còn mắc phải những thiếu sót Vì vậy, em rất mong nhận được ý kiến đóng góp và nhận xét từ quý thầy cô và bạn bè để em có thể hoàn thiện đồ án này tốt hơn

Một lần nữa, em xin chân thành cảm ơn sự hỗ trợ và đóng góp quý báu từ quý thầy cô và bạn bè Sự giúp đỡ của quý thầy cô và tình thân ái của bạn bè đã trở thành động lực quan trọng để em hoàn thành đồ án này Em hy vọng rằng đồ án của em có thể góp phần nhỏ vào sự phát triển của lĩnh vực này

Xin chân thành cảm ơn và kính chúc quý thầy cô giáo sức khỏe, hạnh phúc và thành công trong công việc

Trân trọng,

Nguyễn Phong Hoàng Sơn

Trang 3

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI VÀ CƠ SỞ LÝ THUYẾT 9

1.1 Tổng quan về chatbot và vai trò của nó trong tư vấn tuyển sinh 9

1.2 Tổng quan về các phương pháp và công nghệ được sử dụng để xây dựng chatbot 9

1.5 Các phương pháp mã hoá dữ liệu được sử dụng 14

1.5.1 Phương pháp mã hóa One-hot coding 14

1.5.2 Phương pháp mã hoá Sequence Encoding 15

1.6 Các mô hình học sâu được áp dụng 16

1.6.1 Mô hình Recurrent Neural Network (RNN) 16

1.6.2 Mô hình Long Short-Term Memory (LSTM) 19

1.7 Phương pháp tìm kiếm siêu tham số Grid Search 23

1.8 Các phương pháp đánh giá mô hình 25

CHƯƠNG 2: TRIỂN KHAI VÀ XÂY DỰNG MÔ HÌNH 26

2.1 Công cụ và thư viện 26

2.2 Thu thập và tiền xử lý dữ liệu 26

2.2.1 Thu thập dữ liệu 26

2.2.2 Tiền xử lý dữ liệu 26

2.3 Xử lý ngôn ngữ tự nhiên 32

2.3.1 Mã hóa câu hỏi bằng Sequence Encoding 32

2.3.2 Mã hoá nhãn bằng One-hot coding 33

Trang 4

2.3.4 Chuyển đổi các câu về các vectơ bằng nhau 34

2.4 Xây dựng và đánh giá mô hình 35

2.4.1 Chia tập dữ liệu 35

2.4.2 Tìm kiếm siêu tham số bằng Grid Search 35

a, Tìm kiếm siêu tham số cho mô hình RNN 36

b, Tìm kiếm siêu tham số cho mô hình LSTM 39

2.4.3 Xây dựng mô hình 41

a, Xây dựng mô hình RNN 41

b, Xây dựng mô hình LSTM 42

2.5 So sánh và đánh giá kết quả đạt được 43

2.5.1 Kết quả đạt được với mô hình RNN 43

2.5.2 Kết quả đại được với mô hình LSTM 44

2.5.3 Kết quả giữa mô hình RNN và LSTM 46

CHƯƠNG 3: CÀI ĐẶT VÀ CHẠY THỬ MÔ HÌNH 48

DANH MỤC TÀI LIỆU THAM KHẢO 55

1 Tài liệu Tiếng Việt 55

2 Tài liệu Tiếng Anh 55

Trang 5

DANH MỤC CÁC TỪ VIẾT TẮT

Trang 6

DANH MỤC BẢNG BIỂU

Bảng 2.1 Giá trị accuracy, precision, recall, f1_score của mô hình RNN 44Bảng 2.2 Giá trị accuracy, precision, recall, f1_score của mô hình LSTM 46Bảng 2.3 So sánh giá trị các giá trị của mô hình LSTM và RNN 46

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1.1 Cấu trúc mạng neural network 12

Hình 1.2 Mô hình RNN đơn giản 17

Hình 1.3 Mô-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất 19

Hình 1.4 Mô-đun lặp lại trong LSTM chứa bốn lớp tương tác 20

Hình 1.5 Các kí hiệu trong hình trên 20

Hình 1.6 Trạng thái của một tế bào cell state 20

Hình 1.7 Minh hoạ về cổng (gate) trong cell 21

Hình 1.8 Minh hoạ tính toán cổng 𝑓𝑡 trong cell 21

Hình 1.9 Minh hoạ tính toán 𝑖𝑡 và 𝐶𝑡~ trong cell 22

Hình 1.10 Minh hoạ tính toán 𝐶𝑡 trong cell 22

Hình 1.11 Minh hoạ tính toán 𝑜𝑡 và ℎ𝑡 trong cell 23

Hình 2.1: ví dụ về dữ liệu câu hỏi và tag 26

Hình 2.2: Ví dụ minh hoạ về dữ liệu câu trả lời theo tag 26

Hình 2.3 Minh hoạ code đọc dữ liệu và xóa dữ liệu trùng 27

Hình 2.4: Ví dụ minh hoạ về dữ liệu được đọc 28

Hình 2.5 Minh hoạ code tách từ và chuẩn hóa dữ liệu 28

Hình 2.6 Ví dụ minh hoạ về kết quả dữ liệu được chuẩn hoá và tách từ 29

Hình 2.7 Minh hoạ dữ liệu từ trước khi được loại bỏ stopwords 30

Hình 2.8 Minh hoạ code loại bỏ stopwords 30

Hình 2.9 Minh hoạ dữ liệu từ sau khi được loại bỏ stopwords 31

Hình 2.10 Minh hoạ code mã hóa câu hỏi bằng Sequence Encoding 32

Hình 3.1.2 Ví dụ về mã hóa một câu hỏi 32

Hình 2.11 Minh hoạ mã hoá nhãn bằng one-hot coding 33

Hình 2.12 Minh hoạ kết quả sau khi mã hoá nhãn bằng one-hot coding 34

Hình 2.13 Minh hoạ kết quả sau khi chuyển các câu về các vectơ bằng nhau 35

Hình 2.14 Minh hoạ code chia tập dữ liệu 35

Hình 2.15 Minh hoạ kết quả tập train sau khi chia dữ liệu 35

Hình 2.16 Minh hoạ code tìm siêu tham số RNN mô hình 1 36

Hình 2.17 Minh hoạ kết quả sau khi tìm siêu tham số RNN mô hình 1 37

Hình 2.18 Minh hoạ code tìm siêu tham số RNN mô hình 2 38

Trang 8

Hình 2.19 Minh hoạ kết quả sau khi tìm siêu tham số RNN mô hình 2 38

Hình 2.20 Minh hoạ code tìm siêu tham số LSTM mô hình 1 39

Hình 2.21 Minh hoạ kết quả sau khi tìm siêu tham số LSTM mô hình 1 40

Hình 2.22 Minh hoạ code tìm siêu tham số LSTM mô hình 2 40

Hình 2.23 Minh hoạ kết quả sau khi tìm siêu tham số LSTM mô hình 1 41

Hình 2.24 Minh hoạ mô hình RNN 41

Hình 2.25 Minh họa tham số các lớp mô hình RNN 42

Hình 2.26 Minh hoạ mô hình LSTM 42

Hình 2.27 Minh họa tham số các lớp mô hình LSTM 43

Hình 2.28 Minh hoạ code train tập dữ liệu với mô hình RNN 43

Hình 2.29 Minh hoạ kết quả sau khi chuyển các câu về các vectơ bằng nhau 44

Hình 2.30 Minh hoạ kết quả sau khi chuyển các câu về các vectơ bằng nhau 44

Hình 2.31 Minh hoạ code train tập dữ liệu với mô hình LSTM 45

Hình 2.32 Minh hoạ kết quả sau khi chuyển các câu về các vectơ bằng nhau 45

Hình 2.33 Minh hoạ kết quả accuracy, precision, recall, f1_score 46

Hình 3.1 Minh họa code lưu trữ các đối tượng vào tệp 48

Hình 3.2 Minh họa code khởi tạo mô hình LSTM chạy thử 49

Hình 3.3 Minh họa code tiền xử lý dữ liệu trước khi đưa vào mô hình 50

Hình 3.4 Minh học code đưa ra dự đoán cho câu hỏi 50

Hình 3.5 Minh họa code sử dụng mô hình với UI 51

Hình 3.5 Kết quả chạy thử với mô hình LSTM 52

Trang 9

MỞ ĐẦU

Trong thời đại công nghệ số hiện nay, sự phát triển của trí tuệ nhân tạo (AI) và hệ thống tư vấn thông minh đã đem lại những tiện ích vượt trội trong việc cung cấp thông tin và tư vấn cho người dùng Nhận thấy nhu cầu tư vấn tuyển sinh của các học sinh và phụ huynh đối với khoa Công nghệ thông tin (CNTT) tại Đại học Giao thông Vận tải, em đã chọn đề tài "Phát triển chatbot tư vấn tuyển sinh khoa Công nghệ thông tin Đại học Giao thông Vận tải" nhằm tạo ra một công cụ hữu ích và tiện lợi để hỗ trợ quá trình tìm hiểu và đưa ra quyết định tuyển sinh

Đồ án tập trung vào việc phát triển một chatbot tư vấn tuyển sinh cho khoa Công nghệ thông tin Đại học Giao Thông Vận Tải Đặc điểm nổi bật của chatbot này là khả năng cung cấp thông tin chi tiết về chương trình đào tạo, môi trường học tập, các ngành học, điều kiện tuyển sinh, thông tin về kỳ thi đầu vào và các thông tin liên quan khác.Qua đó, chatbot sẽ giúp học sinh và phụ huynh tiết kiệm thời gian và công sức trong việc tìm kiếm thông tin, đồng thời mang lại sự chính xác và đáng tin cậy trong quá trình tư vấn

Đề tài nghiên cứu này nhằm mục đích tìm hiểu và đánh giá và trình bày các phương pháp pháp xây dựng mô hình chatbot dựa trên các thuật toán trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên (NLP) cụ thể là:

● Mô hình Recurrent Neural Network (RNN) ● Mô hình Long short term memory (LSTM) ● Phương pháp mã hóa One-hot coding ● Phương pháp mã hoá Sequence Encoding Cấu trúc đồ án bao gồm 3 chương chính:

● Chương 1: Tổng quan về đề tài và cơ sở lý thuyết

- Tổng quan về chatbot và vai trò của nó trong tư vấn tuyển sinh - Tổng quan về các phương pháp và công nghệ được sử dụng - Pham vi đề tài

- Trình bày các kiến thức cơ bản về trí tuệ nhân tạo, xử lý ngôn ngữ tự nhiên - Giới thiệu chi tiết về các phương pháp nghiên cứu

● Chương 2: Triển khai và xây dựng mô hình

- Mô tả quy trình triển khai chatbot từ việc thu thập dữ liệu, huấn luyện mô hình

- Trình bày kết quả thực nghiệm, đánh giá hiệu suất ● Chương 3: Thử nghiệm mô hình

- Trình bày kết quả chạy thử mô hình LSTM ● Kết luận và kiến nghị

● Danh mục tài liệu tham khảo

Trang 10

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI VÀ CƠ SỞ LÝ THUYẾT

1.1 Tổng quan về chatbot và vai trò của nó trong tư vấn tuyển sinh

Trong thời đại công nghệ số, chatbot đã trở thành một công cụ quan trọng và tiện ích trong việc cung cấp thông tin và tư vấn cho người dùng Chatbot là một loại chương trình máy tính được thiết kế để tương tác với con người thông qua các giao diện đơn giản và tự nhiên như văn bản, giọng nói hoặc hình ảnh

Với vai trò trong tư vấn tuyển sinh, chatbot có thể mang đến nhiều lợi ích đáng kể Đầu tiên, nó giúp học sinh và phụ huynh tiết kiệm thời gian và công sức trong việc tìm kiếm thông tin về quy trình tuyển sinh, các ngành học, điều kiện tuyển sinh và các thông tin liên quan khác Thay vì phải tìm hiểu qua nhiều nguồn thông tin khác nhau, họ có thể trực tiếp tương tác với chatbot để nhận được câu trả lời và thông tin chi tiết

Chatbot cũng đáng chú ý vì khả năng tư vấn và cung cấp thông tin chính xác và đáng tin cậy Các chatbot tuyển sinh được xây dựng dựa trên các thuật toán trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên, cho phép chúng hiểu và phân tích ngôn ngữ con người để đưa ra phản hồi thích hợp Điều này giúp người dùng nhận được thông tin chính xác và đáng tin cậy trong quá trình tư vấn tuyển sinh

Thêm vào đó, chatbot cũng có khả năng tương tác tự nhiên với người dùng, giúp tạo ra trải nghiệm người dùng tốt hơn Thay vì phải đọc thông tin từ các trang web hay tài liệu, người dùng có thể đặt câu hỏi và nhận được câu trả lời tức thì từ chatbot Điều này mang lại sự thuận tiện và dễ sử dụng, giúp người dùng tiếp cận thông tin một cách nhanh chóng và hiệu quả

Với những lợi ích trên, chatbot trong tư vấn tuyển sinh đóng vai trò quan trọng trong việc hỗ trợ học sinh và phụ huynh trong quá trình tìm hiểu và đưa ra quyết định tuyển sinh Nó là một công cụ hữu ích và tiện lợi, giúp nâng cao trải nghiệm người dùng

và đáp ứng nhu cầu tư vấn tuyển sinh một cách hiệu quả

1.2 Tổng quan về các phương pháp và công nghệ được sử dụng để xây dựng chatbot

Dưới đây là một số phương pháp trong trí tuệ nhân tạo được áp dụng trong chatbot: ● Học máy (Machine Learning): Naive Bayes, Decision Tree, Random Forest Support Vector Machines (SVM), K-Nearest Neighbors (KNN), Logistic Regression, Gradient Boosting…

● Học sâu (Deep Learning): Neural Networks, Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), Long Short-Term Memory (LSTM), Gated Recurrent Unit (GRU), Transformer

● Học tăng cường (Reinforcement Learning): Q-Learning, Deep Q-Network (DQN), Proximal Policy Optimization (PPO), Deep Deterministic Policy Gradient (DDPG), Monte Carlo Tree Search (MCTS)

Trang 11

Công nghệ đáng chú ý được sử dụng trong chatbot bao gồm:

● Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) ● Mạng nơ-ron nhân tạo (Artificial Neural Networks - ANN) ● Công nghệ xử lý ngôn ngữ tự nhiên

Trong đồ án này, sử dụng một số phương pháp và công nghệ để xây dựng chatbot tư vấn tuyển sinh cho khoa Công nghệ thông tin Đại học Giao Thông Vận Tải Dưới đây là một số phương pháp và công nghệ chính được áp dụng:

● Trí tuệ nhân tạo (Artificial Intelligence - AI)

● Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) ● Mô hình Recurrent Neural Network (RNN)

● Mô hình Long Short-Term Memory (LSTM) ● Phương pháp mã hóa One-hot coding

● Phương pháp mã hoá Sequence Encoding

1.4 Các kiến thức cơ bản về trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên được áp dụng trong đề tài

Chatbot là một ứng dụng của trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên Nó là một chương trình máy tính có khả năng tự động tương tác với con người thông qua việc trao đổi tin nhắn hoặc giọng nói Chatbot có thể được sử dụng trong nhiều lĩnh vực khác nhau như dịch vụ khách hàng, hỗ trợ kỹ thuật, giáo dục, bán hàng và nhiều ứng dụng khác

Để chatbot có thể hiểu và phản hồi đúng ý của người dùng, nó cần sử dụng các kỹ thuật và công nghệ trong trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên Cụ thể, các phần mềm chatbot thường sử dụng các thuật toán và mô hình học máy để hiểu và phân tích ngôn ngữ tự nhiên, bao gồm gán nhãn từ loại, tách từ, phân tích cú pháp và hiểu ý ngữ cảnh

1.4.1 Trí tuệ nhân tạo (AI)

Trí tuệ nhân tạo (Artificial Intelligence) là một lĩnh vực trong khoa học máy tính nhằm tạo ra các hệ thống hoạt động giống như con người, có khả năng tự học, tư duy, và ra quyết định dựa trên dữ liệu Trí tuệ nhân tạo có mục tiêu xây dựng các máy tính và hệ thống có khả năng thực hiện các nhiệm vụ thông minh, từ việc nhận dạng hình ảnh và giọng nói đến việc hiểu và tương tác với ngôn ngữ tự nhiên

Trong lĩnh vực trí tuệ nhân tạo, có ba phương pháp chính được sử dụng:

Trang 12

● Học máy (Machine Learning): Phương pháp này cho phép máy tính học từ dữ liệu mà không cần được lập trình cụ thể Máy tính sẽ tìm hiểu các mẫu và quy tắc trong dữ liệu để thực hiện các nhiệm vụ cụ thể

● Học sâu (Deep Learning): Đây là một phương pháp học máy sử dụng các mạng nơ-ron nhân tạo (Artificial Neural Networks) sâu và nhiều lớp để mô phỏng cấu trúc và hoạt động của não người Học sâu cho phép máy tính tự động tìm ra các đặc trưng và mẫu phức tạp trong dữ liệu

● Học tăng cường (Reinforcement Learning): Phương pháp này dựa trên việc huấn luyện máy tính thông qua việc tương tác với một môi trường và nhận phần thưởng hoặc phạt tương ứng với hành động của nó Máy tính sẽ tự tìm hiểu các chiến lược tối ưu để đạt được mục tiêu cụ thể

1.4.2 Xử lý ngôn ngữ tự nhiên (NLP)

Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là một lĩnh vực trong trí tuệ nhân tạo liên quan đến việc làm việc và hiểu ngôn ngữ tự nhiên của con người NLP tập trung vào việc phân tích, xử lý và tạo ra ngôn ngữ tự nhiên để máy tính có thể hiểu và tương tác với con người một cách tự nhiên

Các khía cạnh cơ bản trong xử lý ngôn ngữ tự nhiên bao gồm:

● Phân tích cú pháp (Syntax Parsing): Quá trình này tìm hiểu cấu trúc ngữ pháp của một câu, xác định các thành phần cú pháp như danh từ, động từ, tính từ, và cấu trúc câu chính xác

● Trích xuất thông tin (Information Extraction): Quá trình này tìm hiểu và trích xuất các thông tin quan trọng từ văn bản, như tên riêng, địa chỉ, ngày tháng, sự kiện, hoặc mối quan hệ giữa các thực thể

● Chuyển đổi ngôn ngữ (Language Translation): Quá trình này dịch từ văn bản của một ngôn ngữ sang một ngôn ngữ khác một cách tự động

● Phân loại và gán nhãn (Classification and Labeling): Quá trình này xác định và gán nhãn các văn bản vào các danh mục hay nhóm tương ứng dựa trên nội dung Các công nghệ trong xử lý ngôn ngữ tự nhiên bao gồm: thu thập và tiền xử lý dữ liệu văn bản, mô hình ngôn ngữ, phân loại, gán nhãn, và các kỹ thuật học máy và học sâu để xử lý văn bản và hiểu ngôn ngữ tự nhiên

Những kiến thức cơ bản về trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên này cung cấp cơ sở cho việc xây dựng các mô hình chatbot thông minh, giúp chatbot có khả năng hiểu và đáp ứng nhu cầu của người dùng một cách tự nhiên và hiệu quả

1.4.3 Mạng Neural Network

Deep learning là một trong những phương pháp phổ biến để xây dựng chatbot thông minh Deep learning là một lĩnh vực của trí tuệ nhân tạo, tập trung vào việc xây dựng và huấn luyện các mạng neural sâu có khả năng tự học và tự điều chỉnh thông qua việc xử lý dữ liệu lớn

Trang 13

Mạng neural network (mạng nơ-ron nhân tạo) là một mô hình tính toán được lấy cảm hứng từ cấu trúc và hoạt động của hệ thống thần kinh trong não người Nó là một tập hợp các đơn vị tính toán gọi là nơron nhân tạo hoạt động cùng nhau để thực hiện các tác vụ học và dự đoán thông qua việc xử lý dữ liệu đầu vào

Mạng neural network bao gồm các lớp nơron được tổ chức thành các kiến trúc khác nhau, với mỗi nơron trong mỗi lớp kết nối với nơ-ron trong lớp trước và lớp sau nó Mỗi kết nối giữ một trọng số đại diện cho mức độ quan trọng của tín hiệu từ một nơron sang nơron khác

Các nơ-ron trong mạng neural network nhận đầu vào từ các nơron trong lớp trước đó, thực hiện phép tính tuyến tính và áp dụng một hàm kích hoạt phi tuyến để tạo ra đầu ra Đầu ra của mỗi nơ-ron sau đó được truyền tiếp làm đầu vào cho các nơron trong lớp tiếp theo, và quá trình này lặp lại cho đến khi đạt đến lớp cuối cùng của mạng, cho ra đầu ra cuối cùng

Trong quá trình huấn luyện mạng neural network, các trọng số của các kết nối giữa các nơron được điều chỉnh để mô hình có thể học từ dữ liệu Điều này được thực hiện thông qua quá trình lan truyền ngược (backpropagation), trong đó độ lỗi của đầu ra được tính toán và lan truyền ngược từ lớp cuối cùng về lớp đầu tiên của mạng Các trọng số được cập nhật dựa trên độ lỗi này để cải thiện khả năng dự đoán và học của mạng

Mạng neural network có khả năng học các mẫu phức tạp và tìm ra các quy luật ẩn trong dữ liệu thông qua quá trình huấn luyện Điều này cho phép nó được áp dụng rộng rãi trong nhiều lĩnh vực, bao gồm nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, dự đoán dữ liệu, và nhiều ứng dụng khác

Cấu trúc của một mạng neural network bao gồm các thành phần sau:

Hình 1.1 Cấu trúc mạng neural network

Trang 14

Hình 1.1 mô tả:

● Lớp đầu vào (Input layer): Đây là lớp đầu tiên của mạng neural network, nhận đầu vào là dữ liệu đầu vào của bài toán Số nơron trong lớp này phụ thuộc vào kích thước của dữ liệu đầu vào

● Các lớp ẩn (Hidden layers): Là các lớp nằm giữa lớp đầu vào và lớp đầu ra của mạng neural network Mỗi lớp ẩn bao gồm nhiều nơron được kết nối với nhau Số lượng lớp ẩn và số nơtron trong mỗi lớp ẩn có thể thay đổi tùy thuộc vào cấu trúc của mạng

● Lớp đầu ra (Output layer): Đây là lớp cuối cùng của mạng neural network, cho ra đầu ra của mạng dự đoán cho bài toán Số nơron trong lớp này phụ thuộc vào số lượng các lớp đầu ra cần dự đoán

● Trọng số (Weights): Là các giá trị được gán cho các kết nối giữa các nơron trong các lớp Trọng số đại diện cho mức độ quan trọng của tín hiệu từ một nơron sang nơron khác Trọng số này được điều chỉnh trong quá trình huấn luyện để mạng có thể học từ dữ liệu

● Hàm kích hoạt (Activation function): Là hàm được áp dụng lên đầu ra của mỗi nơron để tạo ra đầu ra phi tuyến tính Hàm kích hoạt giúp mạng neural network có khả năng học và mô hình các mối quan hệ phi tuyến tính trong dữ liệu ● Quá trình lan truyền ngược (Backpropagation): Là quá trình được sử dụng trong

quá trình huấn luyện mạng neural network Quá trình này tính toán độ lỗi giữa đầu ra dự đoán và đầu ra thực tế, sau đó lan truyền ngược từ lớp cuối cùng về lớp đầu tiên để điều chỉnh trọng số và cải thiện khả năng dự đoán của mạng

● Hàm mất mát (Loss function): Là một hàm được sử dụng để đo lường mức độ sai lệch giữa đầu ra dự đoán và đầu ra thực tế Hàm mất mát được tối thiểu hóa trong quá trình huấn luyện để đạt được sự học tốt nhất của mạng

1.4.4 Mô hình ngôn ngữ

Mô hình ngôn ngữ (language model) là một thành phần quan trọng trong việc xây dựng chatbot thông minh Mô hình ngôn ngữ có khả năng hiểu và dự đoán ngôn ngữ tự nhiên, dựa trên việc học từ dữ liệu huấn luyện

Mô hình ngôn ngữ là một khái niệm trong xử lý ngôn ngữ tự nhiên (NLP) để mô hình hóa cấu trúc và quy luật ngôn ngữ Mô hình ngôn ngữ giúp máy tính hiểu và tạo ra văn bản tự nhiên, dựa trên một tập dữ liệu ngôn ngữ đã được huấn luyện

Khi xây dựng chatbot, mô hình ngôn ngữ được sử dụng để:

● Hiểu câu hỏi và ngữ cảnh: Mô hình ngôn ngữ giúp chatbot hiểu ý nghĩa và cấu trúc của câu hỏi từ người dùng Nó có khả năng xác định ý định của người dùng và các thành phần ngữ pháp như từ loại, cấu trúc câu, và ý nghĩa của các từ ● Phản hồi tự nhiên: Mô hình ngôn ngữ cũng được sử dụng để tạo ra các phản hồi

tự nhiên từ chatbot Nó học từ dữ liệu huấn luyện để tự động sinh ra các câu trả lời phù hợp và mượt mà dựa trên ngữ cảnh và thông tin có sẵn

Trang 15

● Đo lường độ tương tự: Mô hình ngôn ngữ có thể được sử dụng để đo lường độ tương tự giữa các câu hoặc văn bản Điều này hữu ích để chatbot tìm kiếm các câu trả lời tương tự hoặc các thông tin liên quan trong cơ sở tri thức của nó Một mô hình ngôn ngữ thông thường bao gồm hai thành phần chính:

● Từ vựng (Vocabulary): Từ vựng là tập hợp các từ và biểu thức được sử dụng trong ngôn ngữ Trước khi xây dựng mô hình ngôn ngữ, cần xác định và xây dựng từ vựng từ tập dữ liệu huấn luyện

● Xác suất xảy ra câu (Sentence Probability): Mô hình ngôn ngữ xác định xác suất xảy ra của một câu hay một chuỗi từ Mục tiêu của mô hình ngôn ngữ là đánh giá và so sánh xác suất của các câu khác nhau, từ đó xác định câu nào là "hợp lý" hơn

Có một số phương pháp và mô hình được sử dụng trong mô hình ngôn ngữ, bao gồm: ● Mô hình ngôn ngữ dựa trên từ (n-gram models): Mô hình ngôn ngữ dựa trên từ

sử dụng nguyên tắc xác suất dựa trên ngữ cảnh từ trước để dự đoán từ tiếp theo Phổ biến nhất là mô hình bigram (2-gram) và trigram (3-gram), trong đó xác suất xảy ra của từ tiếp theo chỉ phụ thuộc vào từ trước đó một hoặc hai từ

● Mô hình ngôn ngữ dựa trên mạng neural (neural network-based language models): Mô hình ngôn ngữ dựa trên mạng neural sử dụng mạng neural để học mô hình ngôn ngữ từ dữ liệu huấn luyện Các mô hình như Recurrent Neural Network (RNN) và Long Short-Term Memory (LSTM) thường được sử dụng để mô hình hóa các mẫu ngôn ngữ phức tạp và xác định xác suất câu

● Mô hình ngôn ngữ dựa trên Transformer: Transformer là một kiến trúc mạng neural mạnh mẽ, đặc biệt phù hợp cho các tác vụ xử lý ngôn ngữ tự nhiên Mô hình ngôn ngữ dựa trên Transformer như GPT (Generative Pre-trained Transformer) đã đạt được những tiến bộ đáng kể trong việc tạo ra văn bản tự nhiên và xử lý ngôn ngữ tự nhiên

Mô hình ngôn ngữ được sử dụng trong NLP để nắm bắt cấu trúc ngôn ngữ và xác định xác suất của các câu hoặc từ, từ đó giúp xây dựng các ứng dụng NLP như chatbot, dịch máy, phân loại văn bản và nhiều tác vụ khác

1.5 Các phương pháp mã hoá dữ liệu được sử dụng

Trong việc xây dựng chatbot, chúng ta cần biểu diễn ngôn ngữ tự nhiên thành dữ liệu số hóa để có thể sử dụng trong các mô hình học máy Điều này đảm bảo rằng chatbot có thể hiểu và xử lý thông tin từ người dùng

1.5.1 Phương pháp mã hóa One-hot coding

One-hot coding (mã hóa one-hot) là một phương pháp mã hoá dữ liệu dạng categorical thành dữ liệu dạng số hóa để có thể sử dụng trong các mô hình học máy Phương pháp này thường được áp dụng trong xử lý ngôn ngữ tự nhiên khi muốn biểu diễn các từ, câu, hoặc danh mục thành dạng số để có thể sử dụng trong các thuật toán học máy

Trang 16

Ý tưởng của mã hóa one-hot là biểu diễn mỗi giá trị của biến categorical bằng một vector nhị phân có độ dài bằng số lượng các giá trị có thể có của biến Mỗi vector này có giá trị 0 cho các giá trị không tương ứng và giá trị 1 cho giá trị tương ứng

Ví dụ, giả sử chúng ta có một biến categorical với các giá trị ["apple", "banana", "orange"] Chúng ta có thể mã hóa one-hot như sau:

● "apple" sẽ được biểu diễn thành [1, 0, 0] ● "banana" sẽ được biểu diễn thành [0, 1, 0] ● "orange" sẽ được biểu diễn thành [0, 0, 1]

Với mã hóa one-hot, mỗi giá trị của biến categorical sẽ tạo ra một chiều mới trong dữ liệu và chúng độc lập với nhau Điều này cho phép mô hình học máy nhận biết và sử dụng thông tin từ mỗi giá trị của biến để đưa ra dự đoán

Tuy nhiên, mã hoá one-hot cũng có một số nhược điểm Đầu tiên, nếu biến categorical có số lượng giá trị lớn, việc sử dụng mã hóa one-hot sẽ tạo ra một ma trận rất lớn, dẫn đến tăng đáng kể về kích thước dữ liệu và tài nguyên tính toán Thứ hai, mã hóa one-hot không giữ thông tin về mối quan hệ giữa các giá trị của biến, mà chỉ đơn thuần biểu diễn sự xuất hiện hay không xuất hiện của mỗi giá trị Điều này có thể làm mất đi một số thông tin quan trọng trong dữ liệu

1.5.2 Phương pháp mã hoá Sequence Encoding.

Sequence Encoding là một phương pháp trong xử lý ngôn ngữ tự nhiên (NLP) để mã hoá các chuỗi văn bản thành các biểu diễn số học có thể được sử dụng trong các mô hình học máy Ý tưởng chính của Sequence Encoding là chuyển đổi các từ và câu văn bản thành các vectơ số

Có nhiều phương pháp Sequence Encoding khác nhau, và một trong số đó là sử dụng Tokenizer Quá trình mã hoá bằng Tokenizer bao gồm các bước sau:

● Xây dựng từ điển: Tạo ra một danh sách chứa tất cả các từ khác nhau trong tập dữ liệu Mỗi từ được gán một chỉ số duy nhất

● Mã hóa câu văn bản: Với mỗi câu văn bản, chuyển đổi các từ thành các chỉ số tương ứng trong từ điển Kết quả là một chuỗi các chỉ số

● Padding: Đảm bảo rằng các chuỗi chỉ số có cùng độ dài bằng cách thêm các giá trị đệm (thường là 0) vào cuối chuỗi

Ưu điểm của Sequence Encoding:

● Giảm chiều dữ liệu: Sequence Encoding giúp giảm kích thước không gian đặc trưng bằng cách chuyển đổi văn bản thành vectơ số, từ đó giảm độ phức tạp tính toán và tăng tốc quá trình huấn luyện

● Bảo toàn thông tin: Mặc dù Sequence Encoding loại bỏ thông tin cấu trúc và mối quan hệ giữa các từ, nhưng nó vẫn giữ lại thông tin từ vựng và sự xuất hiện của các từ trong câu

Trang 17

● Đơn giản và hiệu quả: Quá trình mã hoá sử dụng Tokenizer là đơn giản và dễ triển khai trong các bài toán NLP Nó cung cấp một biểu diễn số học đơn giản cho văn bản

Nhược điểm của Sequence Encoding:

● Mất thông tin cấu trúc: Sequence Encoding không bảo toàn thông tin về cấu trúc và mối quan hệ giữa các từ trong câu Nó chỉ coi mỗi từ là một đơn vị riêng lẻ mà không quan tâm đến thứ tự và ngữ nghĩa

● Mất thông tin về từ loại: Trên cùng một chỉ số, các từ có thể được biểu diễn giống nhau dù có ý nghĩa và chức năng khác nhau trong câu

● Kích thước không đồng nhất: Khi sử dụng padding để đảm bảo

1.6 Các mô hình học sâu được áp dụng

Mô hình RNN (Recurrent Neural Network) và LSTM (Long Short-Term Memory) thường được sử dụng trong việc xây dựng chatbot vì tính chất tuần tự và khả năng mô hình hóa ngữ cảnh dài hạn trong dữ liệu ngôn ngữ tự nhiên Dưới đây là một số lý do chính:

● Xử lý dữ liệu tuần tự: Mô hình RNN được thiết kế để xử lý dữ liệu tuần tự, trong đó thông tin được truyền từ một thời điểm sang thời điểm tiếp theo Trong trường hợp chatbot, câu hỏi và câu trả lời thường có tính chất tuần tự, vì vậy mô hình RNN cho phép chatbot nắm bắt ngữ cảnh và phụ thuộc tuần tự giữa các từ và câu

● Mô hình hóa ngữ cảnh dài hạn: LSTM là một biến thể của RNN, được thiết kế để xử lý vấn đề biến mất gradient (vanishing gradient) trong việc huấn luyện mô hình RNN truyền thống Với các kết nối đặc biệt gọi là "cổng quên" (forget gate) và "cổng cập nhật" (update gate), LSTM có khả năng ghi nhớ thông tin lâu dài từ quá khứ và sử dụng thông tin này để đưa ra quyết định trong tương lai Điều này giúp chatbot xử lý ngữ cảnh dài hạn và hiểu ý nghĩa của các câu dựa trên lịch sử tương tác

● Phân tích ngữ nghĩa và ý nghĩa: RNN và LSTM có khả năng mô hình hóa các mối quan hệ ngữ nghĩa và ý nghĩa giữa các từ và câu Ví dụ, chatbot có thể nhận biết từ ngữ tương đương, hiểu được ý nghĩa của từ trong ngữ cảnh cụ thể và sinh ra các phản hồi tự nhiên dựa trên thông tin đó

● Tính linh hoạt và khả năng tùy chỉnh: Mô hình RNN và LSTM có tính linh hoạt và khả năng tùy chỉnh cao Các kiến trúc mạng và siêu tham số có thể được điều chỉnh để phù hợp với yêu cầu cụ thể của chatbot, từ việc xử lý ngôn ngữ đơn giản đến tạo ra phản hồi tự nhiên phức tạp hơn

1.6.1 Mô hình Recurrent Neural Network (RNN)

Mạng Neural Recurrent (Recurrent Neural Network - RNN) là một loại mạng neural được thiết kế để xử lý dữ liệu tuần tự, chẳng hạn như dữ liệu chuỗi hoặc dữ liệu

Trang 18

thời gian Điểm mạnh của RNN là khả năng xem xét thông tin liên quan từ quá khứ khi xử lý dữ liệu hiện tại

RNN được cấu tạo từ một tập hợp các đơn vị nhỏ gọi là cell Các cell RNN được sắp xếp theo một chuỗi thời gian và liên kết với nhau theo cấu trúc đệm ngược Mỗi cell có thể nhận đầu vào từ cell trước đó và sản sinh đầu ra cũng như trạng thái ẩn (hidden state) Trạng thái ẩn chứa thông tin từ quá khứ và được truyền tiếp qua các cell trong quá trình xử lý

Mạng RNN có thể được áp dụng trong nhiều nhiệm vụ khác nhau như dịch máy, xử lý ngôn ngữ tự nhiên, nhận dạng giọng nói, dự đoán chuỗi thời gian, và nhiều ứng dụng khác Tuy nhiên, RNN cũng có một số hạn chế như khả năng xử lý các mối quan hệ phức tạp trong dữ liệu, vấn đề gradient vụn và khó khăn trong việc xử lý dữ liệu dài Ý tưởng chính của RNN (Recurrent Neural Network) là sử dụng chuỗi các thông tin Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau Tức là chúng không liên kết thành chuỗi với nhau Nhưng các mô hình này không phù hợp trong rất nhiều bài toán Ví dụ, nếu muốn đoán từ tiếp theo có thể xuất hiện trong một câu thì ta cũng cần biết các từ trước đó xuất hiện lần lượt thế nào chứ nhỉ ? RNN được gọi là hồi quy (Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính trước đó Nói cách khác, RNN có khả năng nhớ các thông tin được tính toán trước đó Trên lý thuyết, RNN có thể sử dụng được thông tin của một văn bản rất dài, tuy nhiên thực tế thì nó chỉ có thể nhớ được một vài bước trước đó Về cơ bản một mạng RNN có dạng như sau:

Hình 1.2 Mô hình RNN đơn giản

Mô hình trên (hình 1.2) mô tả phép triển khai nội dung của một RNN Triển khai ở đây có thể hiểu đơn giản là ta vẽ ra một mạng nơ-ron chuỗi tuần tự Ví dụ ta có một

câu gồm 5 chữ “Trường Đại Học Giao Thông Vận Tải”, thì mạng nơron được triển khai

sẽ gồm 7 tầng nơron tương ứng với mỗi chữ một tầng Lúc đó việc tính toán bên trong RNN được thực hiện như sau:

Trang 19

● 𝑥𝑡 là đầu vào tại bước 𝑡 Ví dụ 𝑥1 là một vectơ tương ứng với từ thứ 2 của câu (đại)

● 𝑠𝑡 là trạng thái ẩn tại bước 𝑡 Nó chính là bộ nhớ của mạng.𝑠𝑡 được tính toán dựa trên các trạng thái ẩn phía trước và đầu vào tại bước đó 𝑠𝑡 = 𝑓( 𝑈𝑥𝑡 + 𝑊𝑠𝑡−1) Hàm 𝑓 thường là một hàm phi tuyến tính như tang hyperbolic (tanh) hay Relu Đề làm phép toán cho phần tử lần đầu tiên ra cần khởi tạo thêm 𝑠𝑡−1, thường giá trị được khởi tạo gán bằng 0

● 𝑜𝑡 là đầu ra tại bước t Ví dụ, ta muốn dự đoán từ tiếp theo có thể xuất hiện trong câu thì 𝑜𝑡 chính là một vector xác suất các từ trong danh sách từ vựng 𝑜𝑡 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑉𝑠𝑡)

Ưu điểm của RNN:

● Xử lý dữ liệu chuỗi: RNN được thiết kế đặc biệt để xử lý dữ liệu chuỗi như văn bản, âm thanh và thời gian Nó có khả năng hiểu và mô hình hóa mối quan hệ giữa các thành phần trong dữ liệu chuỗi

● Ghi nhớ thông tin trước đó: Với các đơn vị nhớ như LSTM (Long Short-Term Memory) và GRU (Gated Recurrent Unit), RNN có khả năng ghi nhớ thông tin từ các bước trước đó trong chuỗi dữ liệu Điều này cho phép nó xử lý các tác vụ phụ thuộc vào lịch sử và có khả năng dự đoán thông tin tiếp theo

● Tính linh hoạt: RNN có thể xử lý đầu vào có độ dài và kích thước khác nhau Điều này làm cho nó phù hợp với các tác vụ xử lý ngôn ngữ tự nhiên, dịch máy, nhận dạng giọng nói và nhiều ứng dụng khác

● Độ phức tạp tính toán tương đối thấp: So với một số mô hình khác như mạng ron hồi quy đa lớp (MLP) hay mạng nơ-ron tích chập (CNN), RNN có độ phức tạp tính toán thấp hơn, đặc biệt là khi áp dụng các lớp đơn giản như LSTM hoặc GRU

nơ-Nhược điểm của RNN:

● Hiện tượng mất thông tin xa: Một nhược điểm chung của RNN là nếu chuỗi dữ liệu quá dài, thông tin từ các bước xa nhau có thể mất đi do hiện tượng vanishing gradient Điều này ảnh hưởng đến khả năng mô hình hóa các mối quan hệ dài hạn trong dữ liệu

● Khả năng tính toán chậm: RNN có tính toán tuần tự và phụ thuộc vào kết quả tính toán từ các bước trước đó Điều này làm cho quá trình huấn luyện và dự đoán trở nên chậm hơn so với một số mô hình khác

● Khó khăn trong việc xử lý dữ liệu thưa: RNN không hiệu quả khi xử lý dữ liệu thưa, tức là dữ liệu có nhiều giá trị không có hoặc gần như không có Điều này có thể ảnh hưởng đến khả năng của RNN trong việc học và dự đoán

● Giới hạn bộ nhớ: Một nhược điểm khác của RNN là giới hạn bộ nhớ của nó RNN không thể hiệu quả xử lý các chuỗi dữ liệu rất dài hoặc có nhiều thông tin cần ghi nhớ

Trang 20

1.6.2 Mô hình Long Short-Term Memory (LSTM)

Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), thường được gọi là LSTM - là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc xa LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997), và sau đó đã được cải tiến và phổ biến bởi rất nhiều người trong ngành Chúng hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay

LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency) Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta không cần phải huấn luyện nó để có thể nhớ được Tức là ngay nội tại của nó đã có thể ghi nhớ được mà không cần bất kỳ can thiệp nào

Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng nơ-ron Với mạng RNN chuẩn, các modun này có cấu trúc rất đơn giản, thường là một tầng 𝑡𝑎𝑛ℎ

Hình 1.3 Mô-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất

LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó có cấu trúc khác với mạng RNN chuẩn Thay vì chỉ có một tầng mạng nơ-ron, chúng có tới 4 tầng tương tác với nhau một cách rất đặc biệt

Trang 21

Hình 1.4 Mô-đun lặp lại trong LSTM chứa bốn lớp tương tác

Ở sơ đồ trên, mỗi một đường mang một vectơ từ đầu ra của một nút tới đầu vào của một nút khác Các hình trong màu hồng biểu diễn các phép toán như phép cộng vectơ chẳng hạn, còn các ô màu vàng được sử dụng để học trong các từng mạng nơ-ron Các đường hợp nhau kí hiệu việc kết hợp, còn các đường rẽ nhánh ám chỉ nội dung của nó được sao chép và chuyển tới các nơi khác nhau

Hình 1.5 Các kí hiệu trong hình trên

Chìa khóa của LSTM là trạng thái tế bào (cell state) - chính đường chạy thông ngang phía trên của sơ đồ hình vẽ

Trạng thái tế bào là một dạng giống như băng truyền Nó chạy xuyên suốt tất cả các mắt xích (các nút mạng) và chỉ tương tác tuyến tính đôi chút Vì vậy mà các thông tin có thể dễ dàng truyền đi thông suốt mà không sợ bị thay đổi

Hình 1.6 Trạng thái của một tế bào cell state

LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái tế báo, chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là cổng (gate)

Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân

Trang 22

Hình 1.7 Minh hoạ về cổng (gate) trong cell

Tầng sigmoid sẽ cho đầu ra là một số trong khoản [0, 1] , mô tả có bao nhiêu thông tin có thể được thông qua Khi đầu ra là 0 thì có nghĩa là không cho thông tin nào qua cả, còn khi là 1 thì có nghĩa là cho tất cả các thông tin đi qua nó

Một LSTM gồm có 3 cổng như vậy để duy trì và điều hành trạng thái của tế bào Bước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ trạng thái tế bào Quyết định này được đưa ra bởi tầng sigmoid - gọi là “tầng cổng quên” (forget gate layer) Nó sẽ lấy đầu vào là ℎ𝑡−1 và 𝑥𝑡 rồi đưa ra kết quả là một số trong khoảng [0,1]cho mỗi số trong trạng thái tế bào 𝐶𝑡−1 Đầu ra là 1 thể hiện rằng nó giữ toàn bộ thông tin lại, còn 0 chỉ rằng toàn bộ thông tin sẽ bị bỏ đi

Quay trở lại với ví dụ mô hình ngôn ngữ dự đoán từ tiếp theo dựa trên tất cả các từ trước đó, với những bài toán như vậy, thì trạng thái tế bào có thể sẽ mang thông tin về giới tính của một nhân vật nào đó giúp ta sử dụng được đại từ nhân xưng chuẩn xác Tuy nhiên, khi đề cập tới một người khác thì ta sẽ không muốn nhớ tới giới tính của nhân vật nữa, vì nó không còn tác dụng gì với chủ thế mới này

Hình 1.8 Minh hoạ tính toán cổng 𝑓𝑡 trong cell

Bước tiếp theo là quyết định xem thông tin mới nào ta sẽ lưu vào trạng thái tế bào Việc này gồm 2 phần Đầu tiên là sử dụng một tầng sigmoid được gọi là “tầng cổng vào” (input gate layer) để quyết định giá trị nào ta sẽ cập nhập Tiếp theo là một tầng 𝑡𝑎𝑛ℎ

Trang 23

tạo ra một vectơ cho giá trị mới 𝐶𝑡 nhằm thêm vào cho trạng thái Trong bước tiếp theo, ta sẽ kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái

Chẳng hạn với ví dụ mô hình ngôn ngữ của ta, ta sẽ muốn thêm giới tính của nhân vật mới này vào trạng thái tế bào và thay thế giới tính của nhân vật trước đó

Hình 1.9 Minh hoạ tính toán 𝑖𝑡 𝐶𝑡~ trong cell

Giờ là lúc cập nhập trạng thái tế bào cũ 𝐶𝑡−1 thành trạng thái mới 𝐶𝑡 Ở các bước trước đó đã quyết định những việc cần làm, nên giờ ta chỉ cần thực hiện là xong.Ta sẽ nhân trạng thái cũ với 𝑓𝑡để bỏ đi những thông tin ta quyết định quên lúc trước Sau đó cộng thêm 𝑖𝑡∗ 𝐶𝑡~ Trạng thái mới thu được này phụ thuộc vào việc ta quyết định cập nhập mỗi giá trị trạng thái ra sao

Với bài toán mô hình ngôn ngữ, chính là việc ta bỏ đi thông tin về giới tính của nhân vật cũ, và thêm thông tin về giới tính của nhân vật mới như ta đã quyết định ở các bước trước đó

Hình 1.10 Minh hoạ tính toán 𝐶𝑡 trong cell

Cuối cùng, ta cần quyết định xem ta muốn đầu ra là gì Giá trị đầu ra sẽ dựa vào trạng thái tế bào, nhưng sẽ được tiếp tục sàng lọc Đầu tiên, ta chạy một tầng sigmoid để quyết định phần nào của trạng thái tế bào ta muốn xuất ra Sau đó, ta đưa nó trạng thái tế bảo qua một hàm 𝑡𝑎𝑛ℎ để có giá trị nó về khoảng [−1, 1] và nhân nó với đầu ra của cổng sigmoid để được giá trị đầu ra ta mong muốn

Với ví dụ về mô hình ngôn ngữ, chỉ cần xem chủ thể mà ta có thể đưa ra thông tin về một trạng từ đi sau đó Ví dụ, nếu đầu ra của chủ thể là số ít hoặc số nhiều thì ta có thể biết được dạng của trạng từ đi theo sau nó phải như thế nào

Trang 24

Hình 1.11 Minh hoạ tính toán 𝑜𝑡ℎ𝑡 trong cell

Ưu điểm của LSTM:

● Giải quyết hiện tượng mất thông tin xa: LSTM được thiết kế để giải quyết vấn đề vanishing gradient trong RNN Với cơ chế cổng (gate) và đơn vị nhớ (cell state), LSTM có khả năng giữ và truyền thông tin trong thời gian dài, giúp nắm bắt mối quan hệ dài hạn trong chuỗi dữ liệu

● Xử lý dữ liệu dài và phức tạp: LSTM có khả năng xử lý chuỗi dữ liệu dài hơn RNN thông thường, giúp mô hình hóa các tương quan phức tạp và phụ thuộc vào lịch sử dài hạn trong dữ liệu

● Tính linh hoạt và ứng dụng rộng: LSTM có thể được áp dụng trong nhiều lĩnh vực khác nhau như xử lý ngôn ngữ tự nhiên, dịch máy, nhận dạng giọng nói, dự báo thời tiết và nhiều tác vụ khác, do khả năng của nó trong việc xử lý dữ liệu chuỗi

● Khả năng học và khám phá các mối quan hệ phức tạp: LSTM có khả năng học và khám phá các mối quan hệ không tuyến tính và phức tạp trong dữ liệu Điều này giúp nó mô hình hóa các đặc trưng phức tạp và đưa ra dự đoán chính xác Nhược điểm của LSTM:

● Độ phức tạp tính toán: LSTM có độ phức tạp tính toán cao hơn so với một số mô hình khác, đặc biệt là khi xử lý dữ liệu lớn và phức tạp Điều này có thể làm tăng thời gian huấn luyện và tính toán của mô hình

● Số lượng siêu tham số: LSTM có nhiều siêu tham số cần tinh chỉnh, bao gồm số lượng đơn vị ẩn, kích thước batch, tốc độ học, và cấu trúc mạng Việc tìm kiếm và điều chỉnh các siêu tham số này có thể tốn thời gian và công sức

● Dễ bị quá khớp: Như các mô hình học máy khác, LSTM cũng có nguy cơ bị quá khớp dữ liệu huấn luyện Điều này có thể xảy ra khi mô hình học quá nhiều chi tiết và nhiễu trong dữ liệu huấn luyện

1.7 Phương pháp tìm kiếm siêu tham số Grid Search.

Grid Search là một phương pháp tìm kiếm siêu tham số để tìm ra bộ siêu tham số tối ưu cho một mô hình học máy Đây là một phương pháp thường được sử dụng để tối ưu hóa hiệu suất mô hình trên tập dữ liệu huấn luyện

Quá trình GridSearch diễn ra như sau:

Trang 25

● Xác định các siêu tham số: Xác định danh sách các siêu tham số của mô hình mà bạn muốn tinh chỉnh Ví dụ: learning rate, số lượng lớp ẩn, kích thước batch, v.v ● Xác định các giá trị khả thi: Cần xác định các giá trị khả thi cho từng siêu tham số Thông thường, bạn sẽ xác định một danh sách các giá trị để GridSearch thử nghiệm

● Tạo các tổ hợp siêu tham số: Grid Search tạo ra tất cả các tổ hợp siêu tham số từ các giá trị khả thi đã xác định Điều này có nghĩa là GridSearch sẽ thử nghiệm tất cả các tổ hợp có thể có từ các giá trị siêu tham số đã cho

● Huấn luyện và đánh giá: Đối với mỗi tổ hợp siêu tham số, mô hình được huấn luyện trên tập dữ liệu huấn luyện và được đánh giá trên tập dữ liệu kiểm tra hoặc thông qua các phương pháp cross-validation

● Chọn bộ siêu tham số tốt nhất: Grid Search sẽ xác định bộ siêu tham số tốt nhất dựa trên hiệu suất mô hình trên tập dữ liệu kiểm tra hoặc các độ đo đánh giá khác Có thể chọn bộ siêu tham số có hiệu suất cao nhất hoặc bộ siêu tham số có giá trị độ đo đánh giá tốt nhất

Ưu điểm của Grid Search:

● Tìm kiếm toàn diện: Grid Search thực hiện việc tìm kiếm toàn bộ không gian siêu tham số đã được xác định trước Điều này đảm bảo rằng không có giá trị siêu tham số nào bị bỏ qua, giúp đạt được kết quả tốt nhất có thể trong không gian siêu tham số đã cho

● Dễ triển khai: Grid Search là một phương pháp đơn giản và dễ triển khai Không yêu cầu kiến thức chuyên sâu về thuật toán hay mô hình, và có thể áp dụng cho mọi loại mô hình học máy

● Không yêu cầu định nghĩa hàm mục tiêu: Grid Search không yêu cầu định nghĩa hàm mục tiêu riêng biệt Thay vào đó, nó dựa trên độ đo hiệu suất đã được xác định trước (như độ chính xác, độ F1, hoặc độ mất mát) để đánh giá và so sánh các mô hình

Nhược điểm của Grid Search:

● Tốn thời gian và tài nguyên: Grid Search tạo ra một lưới các siêu tham số và kiểm tra tất cả các kết hợp có thể trong lưới đó Điều này đồng nghĩa với việc thực hiện nhiều lần huấn luyện và đánh giá mô hình, đòi hỏi nhiều thời gian và tài nguyên tính toán

● Khả năng mở rộng: Grid Search trở nên không khả thi khi không gian siêu tham số lớn và kích thước dữ liệu lớn Số lượng mô hình cần huấn luyện và đánh giá có thể tăng một cách phi tuyến, làm gia tăng thời gian và tài nguyên cần thiết ● Không linh hoạt: Grid Search chỉ thực hiện kiểm tra các điểm trên lưới đã xác

định trước, không thể tìm kiếm các giá trị khác trong không gian siêu tham số Điều này có thể làm bỏ qua các giá trị tốt hơn nằm ngoài lưới đã chọn

Trang 26

1.8 Các phương pháp đánh giá mô hình

Khi thực hiện bài toán phân loại, có 4 trường hợp của dự đoán có thể xảy ra:

● True Positive (TP): đối tượng ở lớp Positive, mô hình phân đối tượng vào lớp Positive (dự đoán đúng)

● True Negative (TN): đối tượng ở lớp Negative, mô hình phân đối tượng vào lớp Negative (dự đoán đúng)

● False Positive (FP): đối tượng ở lớp Negative, mô hình phân đối tượng vào lớp Positive (dự đoán sai) – Type I Error

● False Negative (FN): đối tượng ở lớp Positive, mô hình phân đối tượng vào lớp Negative (dự đoán sai) – Type II Error

Bốn trường hợp trên thường được biểu diễn dưới dạng ma trận hỗn loạn (confusion matrix) Chúng ta có thể tạo ra ma trận này sau khi dự đoán xong trên tập dữ liệu thử nghiệm và rồi phân loại các dự đoán vào một trong bốn trường hợp

Trong thực tế có bốn độ đo chủ yếu để đánh giá một mô hình phân loại là Accuracy, Precision, Recall và F1 Score

● Accuracy được định nghĩa là tỷ lệ phần trăm dự đoán đúng cho dữ liệu thử nghiệm Nó có thể được tính toán dễ dàng bằng cách chia số lần dự đoán đúng cho tổng số lần dự đoán

𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑐𝑜𝑟𝑟𝑒𝑐𝑡 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑠𝑎𝑙𝑙 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑠

● Precision được định nghĩa là phần nhỏ của các ví dụ có liên quan (tích cực thực sự) trong số tất cả các ví dụ được dự đoán là thuộc một lớp nhất định

𝐹1 =2∗(𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛∗𝑟𝑒𝑐𝑎𝑙𝑙)𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙

Trang 27

CHƯƠNG 2: TRIỂN KHAI VÀ XÂY DỰNG MÔ HÌNH

2.1 Công cụ và thư viện

Đề tài sử dụng ngôn ngữ Python được triển khai trên nền tảng Jupyter trên công cụ Visual Studio Code Lý do chọn Python làm ngôn ngữ để triển khai bài toán này vì nó có những thư viện hỗ trợ mạnh mẽ cho việc phân tích dữ liệu như: NumPy, Pandas, Scikit-Learn, và các thư viện hỗ trợ rất tốt cho việc xây dựng,huấn luyện các mô hình học máy,học sâu như :Keras,Tensorflow, Đồng thời sử dụng ngôn ngữ Python trên nền tảng Jupyter giúp ta có thể tương tác trực tiếp với code và kết quả trong cùng 1 giao diện, ngoài ra Jupyter cũng cho phép kết hợp những đoạn mô tả ,hình ảnh giúp cho việc trình bày bài toán một cách trực quan nhất

2.2 Thu thập và tiền xử lý dữ liệu 2.2.1 Thu thập dữ liệu

Tập dữ liệu được thu thập câu hỏi và thông tin từ trang web của khoa Công nghệ thông tin đại học Giao thông vận tải hoặc từ các nguồn tin chính thức khác như trang web của trường, bộ giáo dục, và các tài liệu tuyển sinh được lưu trữ trong file “data.xlsx”

Hình 2.1: ví dụ về dữ liệu câu hỏi và tag

Hình 2.1 mô tả:

● Cột “ question” là những câu hỏi về vấn đề tuyển sinh ● Cột “tag” là nhãn được đánh dấu theo chủ đề của câu hỏi Dữ liệu câu trả lời được lưu trữ trong file ‘data.json’

Hình 2.2: Ví dụ minh hoạ về dữ liệu câu trả lời theo tag

Trang 28

Hình 2.3 Minh hoạ code đọc dữ liệu và xóa dữ liệu trùng

Hình 2.3 mô tả:

● X chứa dữ liệu câu hỏi ‘question’ ● Y chứa dữ liệu nhãn được gắn ‘tag’

Ngày đăng: 05/06/2024, 01:35