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• Bước 5: Đánh giá và sử dụng mô hình... o Ta sử dụng thư viện padas để tạo các
Trang 1Môn: Nhập Môn Trí Tuệ Nhân Tạo
Giảng viên: Ths Đặng Lê Khoa
ĐỀ 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
BÁO CÁO ĐỒ ÁN CUỐI KỲ
Nhóm 7:
19200080 Nguyễn Nhựt Hào19200111 Nguyễn Quốc Khánh19200268 Nguyễn Thành Đạt
19200276 Trần Trung Dũng19200491 Phạm Hồng Lâm Thành
20200011 Tô Thế Bảo20200063 Đỗ Nhật Phát
Trang 2NỘI DUNG
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNGCHƯƠNG 2: CƠ SỞ LÝ THUYẾT
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 TO-SEQUENCE
SEQUENCE-CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Môn: Nhập Môn Trí Tuệ Nhân Tạo
Giảng viên: Ths Đặng Lê Khoa
Trang 3CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
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 tin hữu ích nhất.
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
2 HỆ THỐNG ĐỐI THOẠI NGƯỜI VÀ MÁY.
• Ứng dụng:
Dịch vụ kỹ thuật
Công cụ học ngôn ngữGiải trí
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
2 HỆ THỐNG ĐỐI THOẠI NGƯỜI VÀ MÁY.
• Lý do chọn Python:
Linh hoạtDễ tiếp cậnHiệu quả
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
2 HỆ THỐNG ĐỐI THOẠI NGƯỜI VÀ MÁY.• Lợi ích của chatbot AI Python:
Mô phỏng cuộc trò chuyện giống con người
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
Đưa ra các gợi ý về sản phẩmLuôn sẵn sàng
Xử lý nhiều câu hỏi của khách hàng cùng lúcĐưa ra câu trả lời ngay lập tức
Nâng cao trải nghiệm người dùng
Mở rộng dịch vụ khách hàng mà không tốn quá nhiều chi phí
Trang 7Self-Learning Chatbots (Chatbot Tự Học)
Hybrid Chatbots (Chatbot Kết Hợp)
Hoạt động dựa trên các quy tắc được xác định trước.
Triển khai khó khăn hơn.
Kết hợp ưu điểm của Based và Self-Learning Chatbots.
Rule-Sử dụng quy tắc cho các cuộc trò chuyện đơn giản.
Sử dụng học máy cho các cuộc trò chuyện phức tạp.
Linh hoạt, thích nghi nhiều tình huống.
Lựa chọn phổ biến.
Trang 8CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Khắc phục vấn đề phụ thuộc xa của RNN thông thường.Lưu trữ thông tin dài hạn mà
không cần huấn luyện.
Sử dụng các kết nối phản hồi, xử lý luồng dữ liệu.
Trang 9CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
ỨNG DỤNG:
Mô hình ngôn ngữ: Dự đoán từ tiếp theo, nhận dạng giọng nói, dịch máy,
sinh văn bản.
Phân tích cảm xúc: Phân loại cảm xúc của văn bản.
Nhận dạng thực thể được đặt tên (NER): Xác định, phân loại thực thể
trong văn bản.
Tóm tắt văn bản: Tạo bản tóm tắt ngắn gọn, giữ thông tin chính.
Dịch máy: Dịch văn bản từ ngôn ngữ này sang ngôn ngữ khác.
Dự đoán: Dự báo giá cổ phiếu, dự đoán thời tiết, dự đoán nhu cầu.
Nhận dạng giọng nói: Chuyển đổi ngôn ngữ nói thành văn bản.
Nhận dạng cử chỉ: Phân tích cử chỉ, chuyển động từ cảm biến.
Trang 10CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Trang 11CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Hình: Mô hình LSTM
Thành phần:
o Tế bào (Cell): Lưu trữ thông tin,
quyết định giá trị cập nhật cho trạng thái ẩn.
o Cổng quên (Forget Gate): Quyết
định thông tin nào từ trạng thái ẩn trước được lưu giữ.
o Cổng đầu vào (Input Gate):
Quyết định thông tin mới được thêm vào trạng thái ẩn.
o Cổng đầu ra (Output Gate):
Quyết định phần nào trạng thái ẩn được đưa ra làm đầu ra.
Luồng thông tin:
o Điều khiển bởi 3 cổng: quên, đầu vào, đầu ra.
o Tế bào ghi nhớ giá trị trong khoảng thời gian tùy ý.
CẤU TRÚC CHI TIẾT
Trang 12CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
oNút: kết hợp/sao chép dữ liệu.Giải thích sơ đồ:
o: giá trị đầu ra cổng quên tại thời điểm t.o: giá trị đầu ra cổng đầu vào tại thời
điểm t.
o: trạng thái ẩn tại thời điểm t.
o: giá trị đầu ra cổng đầu ra tại thời điểm t.
o: đầu ra LSTM tại thời điểm t.
CẤU TRÚC CHI TIẾT
oNút: kết hợp/sao chép dữ liệu.Giải thích sơ đồ:
o: giá trị đầu ra cổng quên tại thời điểm t.o: giá trị đầu ra cổng đầu vào tại thời
điểm t.
o: trạng thái ẩn tại thời điểm t.
o: giá trị đầu ra cổng đầu ra tại thời điểm t.
o: đầu ra LSTM tại thời điểm t.
CẤU TRÚC CHI TIẾT
Trang 13CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Hình: Trạng thái tế bào là một dạng giống băng truyền
o 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ẽ.
o 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.
SƠ LƯỢC THUẬT TOÁN
Trang 14CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Hình: Tầng sigmoid
o 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).
o 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.
o Tầng sigmoid của LSTM cho đầu ra trong khoảng [0, 1], biểu thị lượng thông tin được truyền qua Đầu ra 00 nghĩa là không truyền thông tin, còn đầu ra 11 nghĩa là truyền toàn bộ thông tin Một
LSTM có 3 cổng sigmoid để duy trì và điều hành trạng thái của tế
SƠ LƯỢC THUẬT TOÁN
Trang 15CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
o Bước đầu tiên của LSTM là quyết định thông tin nào cần bỏ từ
trạng thái tế bào, được thực hiện bởi "tầng cổng quên" (forget
gate layer) Tầng sigmoid này nhận đầu vào là ℎt-1 và xt, đưa ra kết quả trong khoảng [0, 1] cho mỗi phần tử của trạng thái Ct−1 Đầu ra 1 giữ lại toàn bộ thông tin, còn 0 bỏ toàn bộ
thông tin.
SƠ LƯỢC THUẬT TOÁN
Trang 16CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
o Bước tiếp theo là quyết định thông tin mới nào sẽ lưu vào
trạng thái tế bào, gồm hai phần Đầu tiên, tầng sigmoid "tầng
cổng vào" (input gate layer) quyết định giá trị nào sẽ được cập nhật Tiếp theo, tầng tanh tạo một véc-tơ giá trị mới () để thêm vào trạng thái Cuối cùng, hai giá trị này được kết hợp để cập nhật trạng thái.
SƠ LƯỢC THUẬT TOÁN
o Bước tiếp theo là quyết định thông tin mới nào sẽ lưu vào
trạng thái tế bào, gồm hai phần Đầu tiên, tầng sigmoid "tầng
cổng vào" (input gate layer) quyết định giá trị nào sẽ được cập nhật Tiếp theo, tầng tanh tạo một véc-tơ giá trị mới () để thêm vào trạng thái Cuối cùng, hai giá trị này được kết hợp để cập nhật trạng thái.
SƠ LƯỢC THUẬT TOÁN
Trang 17CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
o Cuối cùng, ta cần quyết định đầu ra là gì Đầu ra sẽ dựa trên trạng thái tế bào, nhưng được sàng lọc thêm Đầu tiên, tầng sigmoid quyết định phần nào của trạng thái tế bào sẽ được xuất ra Sau đó, trạng thái tế bào được đưa qua hàm tanh để giá trị nằm trong khoảng [−1, 1], rồi nhân với đầu ra của tầng sigmoid để tạo giá trị đầu ra
mong muốn.
SƠ LƯỢC THUẬT TOÁN
Trang 18CHƯƠ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
• Bước 5: Đánh giá và sử dụng mô hình
Trang 19o Ta sử dụng thư viện padas để tạo các cuộc đàm thoại giữa user_a và user_b, sau đó lưu data đã tạo vào
thành phần: tag, input, response
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
Bước 1: Thu thập dữ liệu
Trang 20o Nối hai câu trở lên nếu câu trả lời có từ hai câu trở lên.o Loại bỏ các loại dữ liệu không mong muốn.
o Nối thêm vào tất cả các câu trả lời.
o Tạo Tokenizer và tải toàn bộ từ vựng (câu hỏi + câu trả lời) vào đó.
o Tiến hành cập nhật từ vựng dựa trên danh sách các input.
o Vector hóa từng input của danh sách các input thành chuỗi các số nguyên (sequences).
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
Bước 2: Tiền xử lý dữ liệu
Trang 21o Tạo Embedding layer
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
Bước 3: Xây dựng mô hình
embedding_layer_question = Embedding(VOCAB_SIZE,embeddings_dim
,input_length=maxlen_questions ,weights = [embedding_matrix] ,trainable=False)
embedding_layer_answer = Embedding(VOCAB_SIZE,embeddings_dim
,input_length=maxlen_answers ,weights = [embedding_matrix] ,trainable=False)
Trang 22o Tạo mô hình Seq-to-seq LSTM:
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
encoder_inputs = Input(shape = (maxlen_questions, ))
decoder_lstm = LSTM(300, return_state=True, return_sequences=True,dropout=0.05)
decoder_outputs , _ , _ = decoder_lstm(decoder_embedding, initial_state=encoder_states)decoder_dense = Dense(VOCAB_SIZE, activation='softmax')
output = decoder_dense(decoder_outputs)
model = Model([encoder_inputs, decoder_inputs], output)
model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics=['accuracy'])
Bước 3: Xây dựng mô hình
Trang 23o Biên dịch mô hình với các thiết lập thông số như: hàm loss là
‘categorical_crossentropy’, sử dụng thuật toán ‘adam’ để tối ưu hóa mô hình kèm theo chỉ số độ chính xác ‘accuracy’ để quan sát.
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
Bước 3: Xây dựng mô hình
Trang 24CHƯƠ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
Bước 3: Xây dựng mô hình
Trang 25o Sau đó, chúng ta huấn luyện mô hình đã tạo với số lượng epochs là 100 và với hàm
categorical_crossentropy.loss Ta được kết quả huấn luyện mô hình với độ chính xác là 0.9437
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
Bước 4: Huấn luyện mô hình
Trang 26CHƯƠ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
o : Biểu đồ về độ chính xác của mô hình seq-to-seq LSTM
Bước 4: Huấn luyện mô hình
Trang 27o Tạo inference models:
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
Encoder inference model: Lấy câu hỏi làm input và output LSTM state (h và c).
Decoder inference model: Nhận 2 đầu vào, một là LSTM state (output của mô hình encoder), thứ hai là các câu trả lời
input sequence
Bước 4: Huấn luyện mô hình
Trang 28CHƯƠ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
Bước 5: Đánh giá và sử dụng mô hình
o Lấy một câu hỏi làm input và dự đoán các value state bằng cách sử dụng enc_model.
o Đặt các value state trong LSTM của decoder.
o Tạo ra một sequence chứa phần tử.
o Nhập seqence này vào dec_model.
o Thay thế phần tử này bằng phần tử đã được dec_model dự đoán và cập nhật các value state.
o Thực hiện lặp đi lặp lại các bước trên cho đến khi đạt được tag hoặc độ dài câu trả lời đã đạt tối đa.
Trang 29CHƯƠ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
Bước 5: Đánh giá và sử dụng mô hình
o Nhận xét: Hệ thống thực hiện được cuộc đàm thoại suôn sẻ dựa trên những gì đã học, tuy vẫn có khả năng dự đoán sai với từ khóa chưa có trong dữ liệu Dù vậy, kết quả cho thấy mô hình hoạt động hiệu quả và chính xác, có thể ứng dụng vào thực tế Tuy nhiên, bộ dữ liệu huấn luyện vẫn còn nhỏ, cần được nghiên cứu và bổ sung thêm để cung cấp câu trả lời tốt hơn, đáp ứng nhu cầu người dùng.
Trang 30CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
o Bộ nhớ ngắn-dài hạn (LSTM) là một kiến trúc học sâu dựa trên mạng thần kinh hồi quy (RNN), hiệu quả trong lưu giữ và sử dụng thông tin dài hạn, vượt trội so với
RNN truyền thống LSTM được ứng dụng trong dự đoán chuỗi thời gian, dịch máy và nhận dạng giọng nói Trong hệ thống hỏi đáp tự động, mô hình Seq-to-Seq LSTM với kiến trúc Encoder-Decoder đã chứng minh khả năng chuyển đổi câu hỏi thành câu trả lời phù hợp, giữ lại ngữ cảnh và ý nghĩa thông tin đầu vào, đạt độ chính xác cao nhưng yêu cầu nhiều thời gian và tài nguyên hệ thống LSTM đã chứng minh khả năng trong xử lý ngôn ngữ tự nhiên và hệ thống đối thoại, tuy nhiên cần phần cứng mạnh và thời gian đào tạo dài, có thể cải thiện với công nghệ và kỹ thuật tối ưu hóa mô hình Cần bổ sung dữ liệu và cải thiện xử lý ngôn ngữ tiếng Việt.
Trang 31CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
o Tối ưu hóa mô hình: Sử dụng các kỹ thuật tối ưu hóa như giảm độ phức tạp của mô hình, cải thiện thuật toán học tập để tăng tốc độ đào tạo và giảm yêu cầu tài
nghiên cứu tiếp theo, mô hình này sẽ ngày càng trở nên mạnh mẽ và linh hoạt hơn.