HỆ THỐNG ĐỐI THOẠI NGƯỜI VÀ MÁY.Các hệ thống đối thoại người máy Dialogue systems, còn được gọi là trợ lý tươngtác hội thoại, trợ lý ảo và đôi khi được gọi là thuật ngữ là chat
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO CUỐI KÌ
NHẬP MÔN TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG HỎI ĐÁP VÀ TRẢ LỜI TỰ ĐỘNG BẰNG MÔ HÌNH LONG SHORT-
TERM MEMORY
GVHD: ThS Nguyễn Thái Công Nghĩa Nhóm: 07
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN CUỐI KÌ
NHẬP MÔN TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG HỎI ĐÁP VÀ TRẢ LỜI TỰ ĐỘNG BẰNG MÔ HÌNH LONG SHORT-
TERM MEMORY
Thành viên:
19200080 Nguyễn Nhựt Hào
19200111 Nguyễn Quốc Khánh
19200268 Nguyễn Thành Đạt
19200276 Trần Trung Dũng
19200491 Phãm Hồng Lâm Thành
20200011 Tô Thế Bảo
GIẢNG VIÊN HƯỚNG DẪN:
ThS NGUYỄN THÁI CÔNG NGHĨA
Trang 3Thành phố Hồ Chí Minh – Năm 2024
BẢNG PHÂN CÔNG NHIỆM VỤ
Nguyễn Nhựt Hào 19200080
Tiền xử lý cho dữ liệu
Nguyễn Quốc Khánh 19200111 Xây dựng hệ thống trả lời tự
động
Nguyễn Thành Đạt 19200268 Xây dựng và huấn
luyện mô hình LSTM
Trần Trung Dũng 19200276 Chuẩn bị dữ liệu
dataset, Import vàload data file
Phạm Hồng lâm Thành 19200491
Biểu diễn sự thay đổicủa accuracy và losskhi huấn luyện môhình xong và đánh giá
Tiền xử lý cho dữ liệu
Trang 4BẢNG ĐÁNH GIÁ THÀNH VIÊN
Trang 5MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG 1
1.1 GIỚI THIỆU 1
1.2 HỆ THỐNG ĐỐI THOẠI NGƯỜI VÀ MÁY 1
1.3 CÁC LOẠI CHATBOT 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3
2.1 MÔ HÌNH LSTM 3
2.1.1 Giới thiệu 3
2.1.2 Cấu trúc mô hình LSTM 6
2.1.3 Sơ lược thuật toán trong mô hình LSTM 7
2.1.4 Mô hình LSTM sử dụng phương pháp seq-to-seq 10
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG TRẢ LỜI VÀ HỎI ĐÁP BẰNG MÔ HÌNH LSTM SỬ DỤNG PHƯƠNG PHÁP SEQUENCE-TO-SEQUENCE 12
3.1 CÁC BƯỚC XÂY DỰNG MỘT MÔ HÌNH DEEP LEARNING 10
3.2 XÂY DỰNG MÔ HÌNH 13
3.2.1 Tạo dữ liệu 13
3.2.2 Tiền xử lý dữ liệu 14
3.2.3 Xây dựng và huấn luyện mô hình Seq-to-seq LSTM 15
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21
4.1 KẾT LUẬN 21
4.2 HƯỚNG PHÁT TRIỂN 21
TÀI LIỆU THAM KHẢO 23
Trang 6DANH SÁCH CÁC HÌNH
Hình 2.1: Mô hình LSTM 6
Hình 2.2 : Các kí hiệu trong mô hình LSTM 6
Hình 2.3: Trạng thái tế bào là một dạng giống băng truyền 7
Hình 2.4: Tầng sigmoid 8
Hình 2.5: Quyết định xem thông tin cần bỏ đi từ trạng thái tế bào 8
Hình 2.6: : Quyết định thông tin mới nào sẽ lưu vào trạng thái tế bào 9
Hình 2.7 : Cập nhập trạng thái tế bào cũ Ct−1 thành trạng thái mới Ct 9
Hình 2.8 : Quyết định đầu ra là gì 10
Hình 2.10 : ví dụ chuyển câu tiếng anh sang tiếng pháp 10
Hình 3.1 : Tạo dữ liệu 13
Hình 3.2 : Mô hình Seq-to-seq LSTM y 17
Hình 3.3 : Huấn luyện cho mô hình 17
Hình 3.4 : Biểu đồ về độ chính xác của mô hình seq-to-seq LSTM 18 19
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG 1.1 GIỚI THIỆU
Bài toán xây dựng hệ thống trả lời tự động là một bài toán khó thuộc lĩnh vực xử lýngôn ngữ tự nhiên Bởi vì tính nhập nhằng, đa nghĩa, đa ngữ cảnh cũa ngôn ngữ tự nhiên.Bài toán đặt ra nhiều thách thức để phát hiện ra được câu trả lời phù hợp nhất, thông tinhữu ích nhất
1.2 HỆ THỐNG ĐỐI THOẠI NGƯỜI VÀ MÁY.
Các hệ thống đối thoại người máy (Dialogue systems), còn được gọi là trợ lý tươngtác hội thoại, trợ lý ảo và đôi khi được gọi là thuật ngữ là chatbot, được sữ dụng rộng rãitrong các ứng dụng khác nhau, từ các dịch vụ kỹ thuật cho đến các công cụ có thể họcngôn ngự và giải trí Các hệ thống đối thoại có thể được chia thành các hệ thống hướngmục tiêu trên một miền ứng dụng, ví dụ như các dịch vụ hỗ trợ kỹ thuật, và các hệ thốngkhông có định hướng mục tiêu, ví dụ như các công cụ học ngôn ngữ hoặc các nhân vậttrò chơi máy tính
Khi nói về trí tuệ nhân tạo, có rất ít ngôn ngữ nào linh hoạt, dễ tiếp cận và hiệu quảnhư Python Đó chính là lý do tại sao Python thường được lựa chọn đầu tiên cho việcphát triển trí tuệ nhân tạo trên khắp thế giới
Chatbot AI Python là các chương trình được thiết kế để mô phỏng cuộc trò chuyệngiống con người bằng cách sử dụng công nghệ NLP và AI Những robot thông minh này
có khả năng hiểu và phản hồi vào đầu vào văn bản hoặc giọng nói bằng ngôn ngữ tựnhiên, cung cấp dịch vụ hỗ trợ khách hàng mượt mà, trả lời câu hỏi hoặc thậm chí đưa racác gợi ý về sản phẩm
Chúng đang thay đổi động thái tương tác của khách hàng bằng cách luôn sẵn sàng,
xử lý nhiều câu hỏi của khách hàng cùng lúc và đưa ra câu trả lời ngay lập tức Điều nàykhông chỉ nâng cao trải nghiệm người dùng mà còn mang lại cho doanh nghiệp một công
cụ tuyệt vời để mở rộng dịch vụ khách hàng mà không tốn quá nhiều chi phí
Trang 81.3 CÁC LOẠI CHATBOT
Rule-Based Chatbots (Chatbot dựa trên quy tắc): Những Chatbot này
hoạt động dựa trên các quy tắc được xác định trước Chúng thích hợp chocác tình huống yêu cầu cuộc trò chuyện giữa câu hỏi và trả lời đơn giản.Hạn chế của chúng là không thể xử lý các câu hỏi phức tạp vì trí thôngminh của nó giới hạn bởi các quy tắc được lập trình
Self-Learning Chatbots (Chatbot tự học): Được cung cấp bởi học máy và
trí tuệ nhân tạo, những Chatbot này học từ những sai lầm của họ và từ cácđầu vào mà nó nhận được Càng nhiều dữ liệu chúng được đào tạo thì cácphản hồi của Chatbot với người dùng các tự nhiên Những Chatbot này phùhợp với các nhiệm vụ phức tạp nhưng việc triển khai chúng khó khăn hơn
Hybrid Chatbots (Chatbot kết hợp): Như cái tên ngụ ý, những Chatbot
này kết hợp những ưu điểm của cả hai loại Chatbot kể trên Chúng hoạtđộng dựa trên các quy tắc được định trước cho các cuộc trò chuyện đơngiản và sử dụng khả năng học máy cho các cuộc trò chuyện phức tạp.Chatbot kết hợp mang lại tính linh hoạt và có thể thích nghi với nhiều tìnhhuống khác nhau, làm cho chúng trở thành sự lựa chọn phổ biến
Trang 9CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Mô hình LSTM
2.1.1 Giới thiệu
Trong việc thách thức dự đoán trình tự, mạng bộ nhớ dài-ngắn hạn (Long term memory) là là một dạng đặc biệt của RNN , nó có khả năng học được các phụ thuộcxa.LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997), và sau đó đã được cảitiế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ênnhiề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,trong đó RNN không thể dự đoán các từ ngữ được lưu trữ trong bộ nhớ dài hạn nhưng cóthể đưa ra dự đoán chính xác hơn dựa trên dữ liệu hiện tại RNN không cung cấp hiệusuất hiệu quả khi độ dài khoảng cách tăng lên
LSTM có thể lưu giữ thông tin trong thời gian dài theo mặc định Nó được sử dụng
để xử lý, dự đoán và phân loại dữ liệu theo chuỗi thời gian Ta không cần phải huấnluyện nó để có thể nhớ được Tức là ngay nội tại của nó đã có thể ghi nhớ được mà khôngcần bất kì can thiệp nào
LSTM có các kết nối phản hồi, không giống như các mạng nơron truyền thẳng(FNN) thông thường Nó có thể xử lý không chỉ các điểm dữ liệu đơn lẻ (như ảnh) màcòn có thể xử lý các luồng dữ liệu hoàn chỉnh (chẳng hạn như lời nói hoặc video) LSTM
có thể được sử dụng cho các tác vụ như nhận dạng chữ viết tay không phân đoạn, liên kếthoặc nhận dạng giọng nói
Một số ứng dụng của mô hình LSTM:
Mô Hình Ngôn Ngữ: LSTM được sử dụng rộng rãi trong dự đoán từ tiếp theo
trong một chuỗi các từ Chúng có thể mô hình hóa ngữ cảnh của một từ trong một câuhoặc tài liệu, cho phép các ứng dụng như nhận dạng giọng nói, dịch máy và sinh văn bản
Trang 10Phân Tích Cảm Xúc: LSTM được sử dụng trong các nhiệm vụ phân tích cảm xúc
để phân loại tính cảm xúc của một đoạn văn thành tích cực, tiêu cực hoặc trung tính.Chúng có thể học các mẫu phức tạp trong dữ liệu văn bản và nắm bắt những sự tinh tếtrong ngôn ngữ, làm cho chúng hiệu quả trong phân tích cảm xúc trên mạng xã hội, đánhgiá của khách hàng
Nhận Dạng Thực Thể Được Đặt Tên (NER): LSTM được sử dụng để xác định
và phân loại các thực thể được đặt tên (như tên của người, địa điểm, tổ chức) trong vănbản Bằng cách mô hình hóa tính tuần tự của ngôn ngữ, LSTM có thể nhận diện các thựcthể ngay cả trong các câu giàu ngữ cảnh
Tóm Tắt Văn Bản: LSTM được sử dụng trong các nhiệm vụ tóm tắt văn bản trừu
tượng với mục tiêu là tạo ra một bản tóm tắt ngắn gọn của một văn bản dài trong khi vẫngiữ lại thông tin chính của nó Chúng có thể hiểu ý nghĩa của văn bản đầu vào và tạo ra
các bản tóm tắt mạch lạc
Dịch Máy: LSTM đã được áp dụng thành công trong các hệ thống dịch máy để
dịch văn bản từ một ngôn ngữ sang ngôn ngữ khác Bằng cách mã hóa chuỗi ngôn ngữnguồn thành một biểu diễn vectơ có độ dài cố định, LSTM có thể nắm bắt ý nghĩa củacâu đầu vào và tạo ra các bản dịch chính xác
Dự Đoán : LSTM được sử dụng rộng rãi trong các nhiệm vụ phân tích chuỗi thời
gian , dự báo do khả năng của chúng trong việc nắm bắt các phụ thuộc thời gian trong dữliệu tuần tự Chúng có thể mô hình các mẫu phức tạp trong dữ liệu chuỗi thời gian và đưa
ra dự đoán chính xác về các giá trị tương lai, phù hợp cho các ứng dụng như dự đoán giá
cổ phiếu, dự đoán thời tiết và dự đoán nhu cầu
Trang 11Nhận Dạng Giọng Nói: LSTM được sử dụng trong các hệ thống nhận dạng giọng
nói để chuyển đổi ngôn ngữ nói thành văn bản Bằng cách xử lý dữ liệu âm thanh tuần tự
ở các tỷ lệ thời gian khác nhau, LSTM có thể nhận diện các mẫu âm vị và chuyển đổi
chúng thành văn bản
Nhận Dạng Cử Chỉ: Trong các ứng dụng nhận dạng cử chỉ, LSTM được sử dụng
để phân tích dữ liệu tuần tự từ các cảm biến (như cảm biến gia tốc hoặc cảm biến quay)
để nhận dạng cử chỉ và chuyển động Chúng có thể nắm bắt động lực tuần tự của cử chỉvà phân loại chúng thành các loại được xác định trước
Ưu điểm và nhược điểm của LSTM:
LSTM mang lại sự linh hoạt, hiệu suất bộ nhớ được cải thiện và khả năng khắcphục các vấn đề liên quan đến phân tán độ dốc Một số lợi ích khác của mạng LSTM là:
LSTM quản lý các phụ thuộc dài hạn tốt hơn vì cổng quên cho phép mạng loại bỏthông tin không liên quan
Hiệu quả hơn so với RNN: mạng thần kinh LSTM phải cập nhật cổng cho mỗi đầuvào mới, nhưng RNN thông thường sẽ cập nhật mọi nút xuyên suốt, tốn nhiều thời gianvà sức mạnh tính toán hơn
Độ chính xác cao cho dự đoán: Khả năng nhớ lại quá khứ giúp mạng lưới thầnkinh có nhiều dữ liệu hơn để đưa ra dự đoán chính xác hơn
Tuy nhiên, mạng bộ nhớ ngắn hạn dài cũng có những hạn chế mà bạn cần lưu ý Ví
dụ, chúng có xu hướng bị trang bị quá mức, một vấn đề phổ biến khác về mạng lưới thầnkinh Điều này xảy ra khi mạng nơ-ron chuyên môn hóa quá chặt chẽ vào dữ liệu huấnluyện và không thể thích ứng cũng như khái quát hóa với các đầu vào mới
-Một thách thức khác với LSTM là chúng đòi hỏi nhiều sức mạnh tính toán và bộnhớ hơn Điều này một phần là do sự phức tạp của chúng Một số chiến lược có thể giúpbạn khắc phục vấn đề này, bao gồm cố tình giữ độ phức tạp ở mức thấp hơn hoặc sử dụngcác công nghệ khác để bổ sung cho mạng lưới thần kinh
Trang 122.1.2 Cấu trúc mô hình LSTM
LSTM được tạo thành từ bốn mạng lưới thần kinh và nhiều khối bộ nhớ được gọilà các tế bào (cel) trong cấu trúc chuỗi Một đơn vị LSTM thông thường bao gồm một ô,một cổng đầu vào (Input), một cổng đầu ra (Output) và một cổng quên (forget gate).Luồng thông tin đi vào và ra khỏi cell được điều khiển bởi ba cổng và ô ghi nhớ các giátrị trong những khoảng thời gian tùy ý Thuật toán LSTM được điều chỉnh tốt để phânloại, phân tích và dự đoán chuỗi thời gian có khoảng thời gian không chắc chắn
Hình 2.1: Mô hình LSTM
Hình 2.2: Các ký hiệu trong sơ đồ mô hình LSTM
-Ở sơ đồ trên, mỗi một đường mang một véc-tơ từ đầu ra của một nút tới đầu vàocủ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 véc-
Trang 13tơ 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.
2.1.3 Sơ lược thuật toán trong mô hình LSTM
Chìa khóa của LSTM là trạng thái tế bào (cell state) - chính đường chạy thôngngang 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 2.3: Trạng thái tế bào là một dạng giống băng truyềnLSTM 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ầngmạng sigmoid và một phép nhân
Trang 14Hình 2.4: Tầng sigmoidTầng sigmoid sẽ cho đầu ra là một số trong khoản [0,1][0,1], mô tả có bao nhiêuthông tin có thể được thông qua Khi đầu ra là 00 thì có nghĩa là không cho thông tin nàoqua cả, còn khi là 11 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 gatelayer) Nó sẽ lấy đầu vào là ℎt-1 và xt 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 Ct−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
Hì
nh 2.5: Quyết định xem thông tin cần bỏ đi từ trạng thái tế bàoBướ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 tanh tạo
Trang 15ra một véc-tơ cho giá trị mới ~C t 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
Hình 2.6: Quyết định thông tin mới nào sẽ lưu vào trạng thái tế bào
Giờ là lúc cập nhập trạng thái tế bào cũ Ct−1 thành trạng thái mới Ct Ở 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 ft để bỏ đi những thông tin ta quyết định quên lúc trước Sau đó
cộng thêm it * C t 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
Hình 2.7: Cập nhập trạng thái tế bào cũ Ct−1 thành trạng thái mới Ct.
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àotrạ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ế
Trang 16bảo qua một hàm tanh để 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
Hình 2.8: Quyết định đầu ra là gì
2.1.4 Mô hình LSTM sử dụng phương pháp sequence to sequence
Một trong những phương pháp xây dựng chatbot hiệu quả nhất là sử dụng các
mô hình seq2seq Blog này đến từ máy ảnh và hướng dẫn cách làm việc với kiến trúcseq2seq
Sequence-to-sequence (Seq2Seq) là về các mô hình huấn luyện để chuyển đổitrình tự từ một miền (ví dụ: các câu bằng tiếng anh) sang các trình tự trong một miềnkhác (ví dụ: các câu tương tự được dịch sang pháp) Điều này có thể được sử dụng đểdịch máy hoặc trả lời câu hỏi tự do (tạo câu trả lời bằng ngôn ngữ tự nhiên cho câuhỏi bằng ngôn ngữ tự nhiên)
Hình 2.10: ví dụ chuyển câu tiếng anh sang tiếng pháp
Mô hình LTSM với Seq2seq sử dụng kiến trúc Encoder-Decoder có độ dài đầu vào
và đầu ra khác nhau Kiến trúc Encoder-Decoder được coi là hai khối - Mã hóa (Encoder)