Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.28 MB, 56 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN
---o0o---
ĐỀ TÀI
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
<b>Hà Nội, ngày 29 tháng 5 năm 2023 </b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">Đượ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ể hồ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 q báu từ q thầy cơ và bạn bè. Sự giúp đỡ của q 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 q 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
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="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ã hố 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
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">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
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">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 tốn cổng 𝑓𝑡 trong cell. ... 21
Hình 1.9 Minh hoạ tính tốn 𝑖𝑡 và 𝐶𝑡~ trong cell. ... 22
Hình 1.10 Minh hoạ tính tốn 𝐶𝑡 trong cell. ... 22
Hình 1.11 Minh hoạ tính tố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 hố 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ã hố nhãn bằng one-hot coding. ... 33
Hình 2.12 Minh hoạ kết quả sau khi mã hố 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
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">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 q 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 tố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
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">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 tố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 q 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
<b>và đáp ứng nhu cầu tư vấn tuyển sinh một cách hiệu quả. </b>
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).
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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.
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.
<b>1.4.1. Trí tuệ nhân tạo (AI). </b>
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:
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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ể.
<b>1.4.2. Xử lý ngôn ngữ tự nhiên (NLP). </b>
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): Q 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ả
<b>1.4.3. Mạng Neural Network. </b>
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.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Mạng neural network (mạng nơ-ron nhân tạo) là một mơ hình tính tố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 tố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ự đố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 q trình lan truyền ngược (backpropagation), trong đó độ lỗi của đầu ra được tính tố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 q 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:
<i>Hình 1.1 Cấu trúc mạng neural network </i>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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. Q trình này tính tố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 q trình huấn luyện để đạt được sự học tốt nhất của mạng.
<b>1.4.4. Mơ hình ngơn ngữ. </b>
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ự đố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.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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 ngun tắc xác suất dựa trên ngữ cảnh từ trước để dự đố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.
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.
<b>1.5.1. Phương pháp mã hóa One-hot coding. </b>
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.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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ã hố 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 tố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.
<b>1.5.2. Phương pháp mã hoá Sequence Encoding.</b>
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. Q trình mã hố 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 tốn và tăng tốc q trình huấn luyện.
● Bảo tồ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.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">● Đơn giản và hiệu quả: Q trình mã hố sử dụng Tokenizer là đơn giản và dễ triển khai trong các bài tố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 tồ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
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.
<b>1.6.1. Mơ hình Recurrent Neural Network (RNN). </b>
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
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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 q 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ự đố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 tốn. Ví dụ, nếu muốn đố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 tố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:
<i>Hình 1.2 Mơ hình RNN đơn giản. </i>
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
<i>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 </i>
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 tốn bên trong RNN được thực hiện như sau:
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">● 𝑥<sub>𝑡</sub> là đầu vào tại bước 𝑡. Ví dụ 𝑥<sub>1</sub> là một vectơ tương ứng với từ thứ 2 của câu (đại).
● 𝑠<sub>𝑡</sub> là trạng thái ẩn tại bước 𝑡. Nó chính là bộ nhớ của mạng.𝑠<sub>𝑡</sub> được tính tốn dựa trên các trạng thái ẩn phía trước và đầu vào tại bước đó 𝑠<sub>𝑡</sub> = 𝑓( 𝑈𝑥<sub>𝑡</sub> + 𝑊𝑠<sub>𝑡−1</sub>). 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 𝑠<sub>𝑡−1</sub>, thường giá trị được khởi tạo gán bằng 0.
● 𝑜<sub>𝑡</sub> là đầu ra tại bước t. Ví dụ, ta muốn dự đốn từ tiếp theo có thể xuất hiện trong câu thì 𝑜<sub>𝑡</sub> chính là một vector xác suất các từ trong danh sách từ vựng 𝑜<sub>𝑡</sub> = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑉𝑠<sub>𝑡</sub>) .
Ư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ự đố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 tố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 q 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 tốn chậm: RNN có tính tốn tuần tự và phụ thuộc vào kết quả tính tốn từ các bước trước đó. Điều này làm cho q 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ớ.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><b>1.6.2. Mơ hình Long Short-Term Memory (LSTM). </b>
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 tố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 𝑡𝑎𝑛ℎ.
<i>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. </i>
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.
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><i>Hình 1.4 Mơ-đun lặp lại trong LSTM chứa bốn lớp tương tác. </i>
Ở 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 tố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.
<i>Hình 1.5 Các kí hiệu trong hình trên. </i>
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.
<i>Hình 1.6 Trạng thái của một tế bào cell state. </i>
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.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><i>Hình 1.7 Minh hoạ về cổng (gate) trong cell . </i>
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à ℎ<sub>𝑡−1</sub> và 𝑥<sub>𝑡</sub> 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 𝐶<sub>𝑡−1</sub>. Đầu ra là 1 thể hiện rằng nó giữ tồn bộ thơng tin lại, cịn 0 chỉ rằng tồn bộ thông tin sẽ bị bỏ đi.
Quay trở lại với ví dụ mơ hình ngơn ngữ dự đốn từ tiếp theo dựa trên tất cả các từ trước đó, với những bài tố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.
<i>Hình 1.8 Minh hoạ tính tốn cổng 𝑓</i><sub>𝑡</sub><i> trong cell. </i>
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 𝑡𝑎𝑛ℎ
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">tạo ra một vectơ cho giá trị mới 𝐶<sub>𝑡</sub> 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 đó.
<i>Hình 1.9 Minh hoạ tính tốn 𝑖</i><sub>𝑡</sub><i> và </i> 𝐶<sub>𝑡</sub><sup>~</sup> <i> trong cell. </i>
Giờ là lúc cập nhập trạng thái tế bào cũ 𝐶<sub>𝑡−1</sub> thành trạng thái mới 𝐶<sub>𝑡</sub>. Ở 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 𝑓<sub>𝑡</sub>để bỏ đi những thông tin ta quyết định quên lúc trước. Sau đó cộng thêm 𝑖<sub>𝑡</sub>∗ 𝐶<sub>𝑡</sub><sup>~</sup> . 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 tố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 đó.
<i>Hình 1.10 Minh hoạ tính tốn 𝐶</i><sub>𝑡</sub><i> trong cell. </i>
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.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24"><i>Hình 1.11 Minh hoạ tính tốn 𝑜</i><sub>𝑡</sub><i> và </i>ℎ<sub>𝑡</sub><i> trong cell. </i>
Ư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ự đốn chính xác. Nhược điểm của LSTM:
● Độ phức tạp tính tốn: LSTM có độ phức tạp tính tố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 tố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ị q 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 q nhiều chi tiết và nhiễu trong dữ liệu huấn luyện.
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:
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="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 tồn diện: Grid Search thực hiện việc tìm kiếm tồ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 tố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 ngun tính tố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.
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">Khi thực hiện bài tốn phân loại, có 4 trường hợp của dự đố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
𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = <sup>𝑐𝑜𝑟𝑟𝑒𝑐𝑡 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑠</sup><small>𝑎𝑙𝑙 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑠</small> .
● 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 =<sup>2∗(𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛∗𝑟𝑒𝑐𝑎𝑙𝑙)</sup><small>𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙</small> .
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">Đề 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 tố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 tốn một cách trực quan nhất.
<b>2.2 Thu thập và tiền xử lý dữ liệu. 2.2.1 Thu thập dữ liệu. </b>
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”.
<i>Hình 2.1: ví dụ về dữ liệu câu hỏi và tag. </i>
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’
<i>Hình 2.2: Ví dụ minh hoạ về dữ liệu câu trả lời theo tag. </i>
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><i>Hình 2.3 Minh hoạ code đọc dữ liệu và xóa dữ liệu trùng. </i>
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’.
</div>