Mỗi thành phần trong chatbot đều có vai trò riêng: NLU: bao gồm việc xử lý ngôn ngữ tự nhiên NLP có nhiệm vụ xác định được ý định câu hỏi intent classification và trích chọn thông tin
Trang 1ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
BÁO CÁO ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHAT TỰ
ĐỘNG VỚI DEEP LEARNING
Giảng viên hướng dẫn: ThS LÊ SONG TOÀN
Sinh viên thực hiện:
1 Nguyễn Quốc Cường 17IT130
2 Nguyễn Thị Ngà 17CE029
ĐÀ NẴNG, THÁNG 08 NĂM 2020
Trang 2ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
BÁO CÁO ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHAT TỰ ĐỘNG VỚI DEEP
LEARNING
Đà Nẵng, tháng 08 năm 2020
Trang 3MỞ ĐẦU
Trong những năm gần đây, cùng với sự phát triển của nhân loại thì khoa họccông nghệ cũng có những bước tiến vượt trội, điển hình là ngành công nghiệp 4.0 Vớinhững sự phát triển vượt bậc của công nghệ việc triển khai công nghệ vào đời sốngmỗi người cũng ngày càng hoàn thiện Điển hình là việc sự dụng trí thông minh nhântạo nhằm thay thế những công cụ truyền thống giúp cải thiện cuộc sống hơn
Trong nhiều năm trở lại đây, với nhu cầu về hội nhập ngày càng cao giữa cácquốc gia cả về kinh tế lẫn văn hóa, khiến nhu cầu về giao tiếp ngày càng tăng cao.Nhưng đối với nhiều người không có thời gian để gặp bạn bè, người khó bắt chuyện, ítnói thì việc nâng cao trong giao tiếp diễn ra khá khó khăn Chính vì vậy cần có nhữngphần mềm, công cụ để hỗ trợ việc giao tiếp bất cứ đâu hay bất cứ thời gian nào
Nhờ sự tiên tiến của khoa học công nghệ và sự vượt trội từ trí thông minh nhântạo, để tạo ra phần mềm hay công cụ tương tác giữa người và máy thì một trong nhữngứng dụng dựa trên nền tảng trí tuệ nhân tạo phổ biến hiện nay có thể kể đến là ứngdụng dựa trên Chatbot Có thể nói Chatbot là một hình thức thô sơ của trí tuệ nhân tạo,
là một chương trình được tạo ra từ máy tính, tiến hành cuộc trò chuyện thông qua cácphương thức như văn bản, hình ảnh, âm thanh,…
Hiện nay có khá nhiều chatbot hoặc sự nâng cấp của chatbot là trợ lý ảo có trênthị trường hiện nay do các ông lớn trong ngành công nghệ tạo ra Bên cạnh họ cũngcung cấp nhiều tư liệu về nó Điều đó giúp ta có thể tiếp cận việc xây dựng mộtchatbot trở nên đơn giản hơn
Trang 4LỜI CẢM ƠN
Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡ vàhướng dẫn rất tận tình của các thầy cô thuộc Đại Học Công Nghệ Thông Tin VàTruyền Thông Việt Hàn – Đại Học Đà Nẵng Em xin cảm ơn các thầy cô thuộc bộmôn chuyên ngành đã cung cấp cho chúng em các thông tin, kiến thức vô cùng quýbáu và cần thiết trong suốt thời gian quá để em có thể thực hiện và hoàn thành đồ áncủa mình Đặc biệt em xin chân thành cảm ơn thầy Lê Song Toàn, người đã trực tiếphướng dẫn chúng em trong thời gian thực hiện đồ án này
Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thông tin đãủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúp chúng tôitrong quá trình nghiên cứu và thực hiện đề tài
Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thực tiễn nên
đề tài không tránh khỏi những sai sót Em rất mong nhận được sự thông cảm của quýthầy cô và mong đón nhận những góp ý của thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 6(Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày … tháng … năm 20… Giảng viên hướng dẫn
ThS.Lê Song Toàn
Trang 7MỤC LỤC
Chương 1: 1
TỔNG QUAN VỀ HỆ THỐNG CHATBOT 1
1.1Chatbot là gì ? 1
1.2Cấu trúc các thành phần của Chatbot: 2
1.3 Hiểu ngôn ngữ tự nhiên (NLU): 2
1.3.1 Xác định ý định người dùng 5
1.4 Quản lý hội thoại (DM) 6
1.4.2 Mô hình Frame-based 8
1.5 Thành phần sinh ngôn ngữ (NLG) 9
1.5.1 Template-based NLG 9
1.5.2 Plan-based NLG 10
1.5.3 Class-based NLG 11
Chương 2: 12
CƠ SỞ LÝ THUYẾT 12
2.1 Kiến trúc mạng nơ ron nhân tạo 12
2.2 Mạng nơ ron hồi quy RNN 16
2.3 Long Short-Term Memory: 18
2.3.1 Vấn đề phụ thuộc quá dài 18
2.3.2 Cấu trúc mạng 19
2.3.3 Phân tích mô hình LSTM 20
2.4 Giới thiệu về mô hình Sequence: 23
2.5 Seq2Seq Model: 23
2.6 Beam Search – Thuật toán tìm kiếm hỗ trợ Seq2Seq: 25
2.7 Word embeddings 27
2.7.1 Word2vec 28
2.7.2 Glove 29
Chương 3: 31
XÂY DỰNG ỨNG DỤNG CHATBOT 31
3.1 Kiến trúc ứng dụng 31
3.2 Quá trình xây dựng 31
3.2.1 Tiền xử lý dữ liệu: 31
Trang 83.2.2 Xây dựng mô hình Seq2Seq 32
3.2.3 Đào tạo mô hình Seq2Seq 33
3.2.4 Thử nghiệm mô hình Seq2Seq 33
3.3 Kết quả đạt được 34
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 36
1 Kết luận: 36
2 Hướng phát triển: 36
DANH MỤC THAM KHẢO 37
Trang 9DANH MỤC HÌNH
Hình 1 Chatbot 1
Hình 2 Các thành phần của Chatbot 2
Hình 3 Các bước xử lý chính của NLU 3
Hình 4 Các bước xử lý trong NLU 4
Hình 5 Mô hình các bước xác định ý định 5
Hình 6 Mô hình quản lý trạng thái và quyết định hành động trong hội thoại 7
Hình 7 Quản lý hội thoại theo mô hình FSA 8
Hình 8 Khung chat bot hỏi thông tin khách hàng 9
Hình 9 Phương pháp sinh ngôn ngữ dựa trên tập mẫu câu trả lời 10
Hình 10 Phương pháp sinh ngôn ngữ dựa trên Plan based 10
Hình 11 Phương pháp sinh ngôn ngữ Class based 11
Hình 12 Cấu trúc mạng nơtron nhân tạo 12
Hình 13 Quá trình xử lý thông tin của mạng nơ ron nhân tạo 13
Hình 14 Mạng RNN 16
Hình 15 Mạng RNN 2 chiều 17
Hình 16 Mạng RNN nhiều tầng 18
Hình 17 RNN phụ thuộc long-term 18
Hình 18 Các module lặp của mạng RNN 19
Hình 19 Các module lặp của mạng LSTM chứa 4 lớp 19
Hình 20 Tế bào trạng thái (Cell state) LSTM 20
Hình 21 Cổng trạng thái LSTM 20
Hình 22 LSTM focus f 21
Hình 23 LSTM focus I 21
Hình 24 LSTM focus c 22
Hình 25 LSTM focus 0 22
Hình 26 Thành phần của LSTM 24
Hình 27 LSTM Encoder 24
Hình 28 LSTM Decoder 25
Hình 29 RNN/LSTM lồng nhau 25
Hình 30 Cây xác suất 27
Hình 31 Mô hình từ nhúng 28
Hình 32 Mô hình CBOW và Skip-Ngram 29
Hình 33 Kiến trúc của ứng dụng chatbot 31
Hình 34 Quá trình huấn luyện 34
Hình 35 Tương tác trò chuyện với chatbot 34
Hình 36 Trực quan từ nhúng với TensorBoard 35
Hình 37 Giao diện web 35
Trang 11Hình 1 Chatbot
Hiện nay chatbot được dùng trong nhiều lĩnh vực như tư vấn, tiếp thị,… giúp tăng tính hiệu quả trong mỗi ngành được sử dụng Ngoài ra, trong lĩnh vực học máy thìchatbot được hiểu là Q & A System (Question and Answering System)
Hiện tại có hai loại chatbot:
- Chatbot dựa theo kịch bản có sẵn: Kiểu chatbot này thường được dùng với
các thiết đặt có sẵn Người sử dụng chỉ cần chọn các lựa chọn đã cài đặt trên chatbot Đối với những loại câu hỏi khó hơn thì sẽ chuyển sang cho con người
để giải quyết Độ linh động không cao Các nền tảng hiện tại hỗ trợ chatbot kiểunày là: Facebook Messenger, Slack, Zalo, Telegram,…
- Chatbot sử dụng Machine Learning: Đối với kiểu này chatbot sẽ xử lý ngôn
ngữ tự nhiên (Natural Language Processing) kết hợp sử dụng mạng neutron để đào tạo và cho ra kết quả hợp lý nhất có thể Những công việc cần làm để tạo rachatbot bao gồm:
o Phân loại câu hỏi
o Trích xuất câu trả lời (Dựa trên các tài liệu hoặc bộ dữ liệu mẫu (dataset) liên quan)
o Trích xuất câu trả lời
Trang 12o Trong những công việc trên thì việc phân loại câu hỏi là công việc khó khăn
và vất vả nhất Vì vậy, đi đôi với những yêu cầu trên là khả năng hỏi và trả lời một cách linh động và chính xác
1.2 Cấu trúc các thành phần của Chatbot:
Hình 2 Các thành phần của Chatbot
Chatbot có 3 thành phần chính là hiểu ngôn ngữ tự nhiên (NLU), quản lý hội thoại (DM), thành phần sinh ngôn ngữ (NLG) Các thành phần nhận dạng giọng nói Speech Recognition (text to speech hay speech to text) là các thành phần tăng cường Mỗi thành phần trong chatbot đều có vai trò riêng:
NLU: bao gồm việc xử lý ngôn ngữ tự nhiên (NLP) có nhiệm vụ xác định được
ý định câu hỏi (intent classification) và trích chọn thông tin (slots filter)
DM: Quản lý hội thoại có nhiệm vụ xác định được hành động (action) tiếp theo dựa vào trạng thái hành động trước đó hay ngữ cảnh hội thoại Các ngữ cảnh này phải được đối chiếu trong các kịch bản dựng sẵn (history) đã đào tạo cho bot Thành phần này cũng đảm nhiệm việc lấy dữ liệu từ hệ thống khác qua các API gọi trong action
NLG: là thành phần sinh ngôn ngữ dựa vào chính sách (policy) và hành động được xác định trong DM thông qua các tập hội thoại NGL có thể được sinh ra câu trả lời dựa vào tập mẫu câu trả lời (pre-defined template) đã đào tạo cho bot
Trang 131.3 Hiểu ngôn ngữ tự nhiên (NLU):
Đây có thể nói là thành phần quan trọng nhất của chatbot Chatbot có thông minh hay không thì đây là thành phần quyết định Mục tiêu của thành phần này là trích xuất
ra 3 thành phần thông tin từ câu nói của người dùng:
Đầu tiên là phân loại lĩnh vực (domain classification), nó có thể là lĩnh vực ngân hàng, y tế hay bảo hiểm Nếu trong trường hợp chỉ có một lĩnh vực thì không cần thiết cho bước phân loại này
Tiếp đến là phân loại ý định (intent classification), ví dụ như xác định được ý định tra cứu thông tin tài khoản hoặc ý định kiểm tra số dư
Cuối cùng là bước trích xuất thông tin (slot fillter hay entity extraction) trong câu hỏi người dùng Ví dụ ta phải trích chọn được thông tin số tháng trong câu hỏi người dùng: “lãi suất kỳ hạn 3 tháng là bao nhiêu” Từ việc trích xuất được thông tin 3 tháng thì chatbot mới có cơ sở trả lời cho người dùng
NLU xử lý tin nhắn người dùng bằng một đường ống (pipeline) nơi mà cấu hình các bước xử lý liên tiếp theo tuần tự :
Hình 3 Các bước xử lý chính của NLU
Trong đường ống này thì bạn có thể tùy chỉnh các thành phần từ bước tiền xử lý
dữ liệu, mô hình hóa ngôn ngữ, các thuật toán dùng để tách từ và trích xuất thông tin thực thể
Trang 14Hình 4 Các bước xử lý trong NLU
Để phân loại được ý định câu của người dùng thì ta cần mô hình hóa ngôn ngữ, tức là việc biểu diễn ngôn ngữ dưới dạng vector số học cho máy có thể hiểu được (vectorization) Phương pháp phổ biến nhất hiện tại là word embedding (nhúng từ) Tập nhúng từ là tên chung cho một tập hợp các mô hình ngôn ngữ và các phương pháphọc đặc trưng trong xử lý ngôn ngữ tự nhiên (NLP), nơi các từ hoặc cụm từ từ vựng được ánh xạ tới vectơ số thực Về mặt khái niệm, nó liên quan đến việc nhúng toán học từ một không gian với một chiều cho mỗi từ vào một không gian vectơ liên tục vớikích thước thấp hơn nhiều Một số phương pháp biểu diễn phổ biến như Word2Vec, GloVe hay mới hơn là FastText sẽ được giới thiệu trong phần sau
Sau khi mô hình hóa ngôn ngữ bao gồm dữ liệu đầu vào training cho bot thì việc xác định ý định người dùng từ câu hỏi người dùng dựa trên tập đã training là bướcphân loại ý định (intent classification) hay phân loại văn bản Ở bước này ta có thể dùng một số kỹ thuật như: Naive Bayes, Decision Tree (Random Forest), Vector Support Machine (SVM), Convolution Neural Network (CNN), Recurrent Neural Network (RNN), Long Short-Term Memory (LSTM, Bi-LSTM) Hầu hết các chatbot hiện tại đều ứng dụng mô hình deep learning như RNN và LSTM để phân loại ý định người dùng Bài toán thách thức lớn nhất cho các chatbot ở bước này là xác định nhiều
ý định (multiple intents) trong một câu nói người dùng Ví dụ nếu bạn nói “xin chào, kiểm tra cho tôi số dư tài khoản” thì bot phải xác định được 2 ý định “chào hỏi” và
“kiểm tra số dư” trong câu nói người dùng Nếu bot có thể hiểu và trả lời được câu hỏi loại này sẽ giúp việc tương tác với bot trở nên tự nhiên hơn
Tiếp đến là việc trích xuất thông tin trong câu hội thoại người dùng Các thông tin cần trích xuất thường dưới dạng số, chuỗi hoặc thời gian và chúng phải được khai báo và huấn luyện trước
Trang 15Phân tách các từ (Tokenization hay word segmention): Tách từ là một quá trình
xử lý nhằm mục đích xác định ranh giới của các từ trong câu văn, cũng có thể hiểu đơngiản rằng tách từ là quá trình xác định các từ đơn, từ ghép có trong câu Đối với xử
lý ngôn ngữ, để có thể xác định cấu trúc ngữ pháp của câu, xác định từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là phải xác định được đâu là từ trong câu Vấn đề này tưởng chừng đơn giản với con người nhưng đối với máy tính, đây là bài toán rất khó giải quyết Thông thường thì các ngôn ngữ phân tách các từ bởi khoảng trắng nhưng đối với ngôn ngữ tiếng việt thì có rất nhiều từ ghép và cụm từ Ví dụ từ ghép
“tài khoản” được tạo bởi 2 từ đơn “tài” và “khoản” Có một số thuật toán hỗ trợ giải quyết bài toán này như mô hình so khớp từ dài nhất (longest matching), so khớp cực đại (Maximum Matching), Markov ẩn (Hidden Markov Models- HMM) hay mô hình CRF (conditinal random field)
1.3.1 Xác định ý định người dùng
Tiếp đến là bước trích xuất đặc trưng (feature extraction hay feature engineering)
từ những dữ liệu đã được làm sạch Trong mô hình học máy truyền thống (trước khi
Trang 16mô hình học sâu được áp dụng rộng rãi), bước trích xuất đặc trưng ảnh hưởng lớn đến
độ chính xác của mô hình phân lớp Để trích xuất được những đặc trưng tốt, chúng ta cần phân tích dữ liệu khá tỉ mỉ và cần cả những tri thức chuyên gia trong từng miền ứng dụng cụ thể
Bước huấn luyện mô hình nhận đầu vào là các đặc trưng đã được trích xuất và áp dụng các thuật toán học máy để học ra một mô hình phân lớp Các mô hình phân lớp
có thể là các luật phân lớp (nếu sử dụng decision tree) hoặc là các vector trọng số tương ứng với các đặc trưng được trích xuất (như trong các mô hình logistic
regression, SVM, hay mạng Neural)
Sau khi có một mô hình phân lớp intent, chúng ta có thể sử dụng nó để phân lớp một câu hội thoại mới Câu hội thoại này cũng đi qua các bước tiền xử lý và trích xuất đặc trưng, sau đó mô hình phân lớp sẽ xác định “điểm số” cho từng intent trong tập các intent và đưa ra intent có điểm cao nhất
Để đưa ra hỗ trợ chính xác, chatbot cần xác định được ý định (intent) đó của người dùng Việc xác định ý định của người dùng sẽ quyết định hội thoại tiếp theo giữa người và chatbot sẽ diễn ra như thế nào Vì thế, nếu xác định sai ý định người dùng, chatbot sẽ đưa ra những phản hồi không đúng, không hợp ngữ cảnh Khi đó, người dùng có thể thấy chán ghét và không quay lại sử dụng hệ thống Bài toán xác định ý định người dùng vì thế đóng vai trò rất quan trọng trong hệ thống chatbot
Đối với miền ứng dụng đóng, chúng ta có thể giới hạn số lượng ý định của người dùng nằm trong một tập hữu hạn những ý định đã được định nghĩa sẵn, có liên quan đến những nghiệp vụ mà chatbot có thể hỗ trợ Với giới hạn này, bài toán xác định ý định người dùng có thể quy về bài toán phân lớp văn bản Với đầu vào là một câu giao tiếp của người dùng, hệ thống phân lớp sẽ xác định ý định tương ứng với câu đó trong tập các intent đã được định nghĩa trước
Để xây dựng một mô hình phân lớp intent, chúng ta cần một tập dữ liệu huấn luyệnbao gồm các cách diễn đạt khác nhau cho mỗi intent Ví dụ, cùng một mục đích chào hỏi ta có thể dùng những cách diễn đạt sau:
Hello (Xin chào)
Hi (Xin chào)
Có thể nói, bước tạo dữ liệu huấn luyện cho bài toán phân lớp intent là một trong những công việc quan trọng nhất khi phát triển hệ thống chatbot và ảnh hưởng lớn tới chất lượng sản phẩm của hệ thống chatbot về sau Công việc này cũng đòi hỏi thời gian, công sức khá lớn của nhà phát triển chatbot
1.4 Quản lý hội thoại (DM)
Trang 17Trong các phiên trao đổi dài (long conversation) giữa người và chatbot, chatbot
sẽ cần ghi nhớ những thông tin về ngữ cảnh (context) hay quản lý các trạng thái hội thoại (dialog state) Vấn đề quản lý hội thoại (dialoge management) khi đó là quan trọng để đảm bảo việc trao đổi giữa người và máy là thông suốt
Chức năng của thành phần quản lý hội thoại là nhận đầu vào từ thành phần NLU, quản lý các trạng thái hội thoại (dialogue state), ngữ cảnh hội thoại (dialogue context), và truyền đầu ra cho thành phần sinh ngôn ngữ (Natural Language
Generation, viết tắt là NLG)
Hình 6 Mô hình quản lý trạng thái và quyết định hành động trong hội thoại
Trạng thái hội thoại (dialog state) được lưu lại và dựa vào tập luật hội thoại (dialog policy) để quyết định hành động tiếp theo cho câu trả lời của bot trong một kịch bản hội thoại, hay hành động (action) chỉ phụ thuộc vào trạng thái (dialog state) trước của nó
Ví dụ module quản lý dialogue trong một chatbot phục vụ đặt vé xem phim cần biết khi nào người dùng đã cung cấp đủ thông tin cho việc đặt vé để tạo một ticket tới
hệ thống hoặc khi nào cần phải xác nhận lại thông tin do người dùng đưa vào Hiện nay, các sản phẩm chatbot thường dùng mô hình máy trạng thái hữu hạn (Finite State Automata – FSA), mô hình Frame-based (Slot Filling), hoặc kết hợp hai mô hình này Một số hướng nghiên cứu mới có áp dụng mô hình ANN vào việc quản lý hội thoại giúp bot thông minh hơn
1.4.1 Mô hình máy trạng thái hữu hạn FSA
Trang 18Hình 7 Quản lý hội thoại theo mô hình FSA
Mô hình FSA quản lý hội thoại đơn giản nhất Ví dụ hệ thống đặt vé máy bay, đặt vé và gửi thông tin của khách hàng đã được cung cấp từ trước Nhiệm vụ của chatbot là hỏi thời gian và địa điểm sẽ đi Ảnh trên minh hoạ về một mô hình quản lý hội thoại cho chatbot đặt vé máy bay Các trạng thái của FSA tương ứng với các câu hỏi mà dialogue manager hỏi người dùng Các cung nối giữa các trạng thái tương ứng với các hành động của chatbot sẽ thực hiện Các hành động này phụ thuộc phản hồi của người dùng cho các câu hỏi Trong mô hình FSA, chatbot là phía định hướng người sử dụng trong cuộc hội thoại
Ưu điểm của mô hình FSA là đơn giản và chatbot sẽ định trước dạng câu trả lời mong muốn từ phía người dùng Tuy nhiên, mô hình FSA không thực sự phù hợp cho các hệ thống chatbot phức tạp hoặc khi người dùng đưa ra nhiều thông tin khác nhau trong cùng một câu hội thoại Trong ví dụ chatbot ở trên, khi người dùng đồng thời cung cấp cả thời gian và địa điểm trong câu đầu tiên, chatbot sẽ hỏi tiếp câu tiếp theo, điều đó khiến người dùng có thể cảm thấy khó chịu
1.4.2 Mô hình Frame-based
Mô hình Frame-based (hoặc tên khác là Form-based) có thể giải quyết vấn đề
mà mô hình FSA gặp phải Mô hình Frame-based dựa trên các frame định sẵn để định hướng cuộc hội thoại Mỗi frame sẽ bao gồm các thông tin (slot) cần điền và các câu hỏi tương ứng mà dialogue manager hỏi người dùng Mô hình này cho phép người dùng điền thông tin vào nhiều slot khác nhau trong frame Bảng dưới là một ví dụ về một frame cho chatbot ở trên
Trang 19Hình 8 Khung chat bot hỏi thông tin khách hàng
Thành phần quản lý dialogue theo mô hình Frame-based sẽ đưa ra câu hỏi cho khách hàng, điền thông tin vào các slot dựa trên thông tin khách hàng cung cấp cho đến khi có đủ thông tin cần thiết Khi người dùng trả lời nhiều câu hỏi cùng lúc, hệ thống sẽ phải điền vào các slot tương ứng và ghi nhớ để không hỏi lại những câu hỏi
đã có câu trả lời
Trong các miền ứng dụng phức tạp, một cuộc hội thoại có thể có nhiều frame khác nhau Vấn đề đặt ra cho người phát triển chatbot khi đó là làm sao để biết khi nàocần chuyển đổi giữa các frame Cách tiếp cận thường dùng để quản lý việc chuyển điều khiển giữa các frame là định nghĩa các luật (production rule) Các luật này dựa trên một số các thành tố như câu hội thoại hoặc câu hỏi gần nhất mà người dùng đưa
ra
1.5 Thành phần sinh ngôn ngữ (NLG)
NLG là thành phần sinh câu trả lời của chatbot Nó dựa vào việc ánh xạ các hành động của quản lý hội thoại vào ngôn ngữ tự nhiên để trả lời người dùng
Có 4 phương pháp ánh xạ hay dùng là: Template-Base, Plan-based, Class-base, RNN-base
1.5.1 Template-based NLG
Phương pháp ánh xạ câu trả lời này là dùng những câu mẫu trả lời của bot đã được định nghĩa từ trước để sinh câu trả lời
Trang 20Hình 9 Phương pháp sinh ngôn ngữ dựa trên tập mẫu câu trả lời
Ưu điểm: đơn giản, kiểm soát dễ dàng Phù hợp cho các bài toán miền đóng
Nhược điểm: tốn thời gian định nghĩa các luật, không mang tính tự nhiên trong
câu trả lời Đối với các hệ thống lớn thì khó kiểm soát các luật dẫn đến hệ thốngcũng khó phát triển và duy trì
1.5.2 Plan-based NLG
Hình 10 Phương pháp sinh ngôn ngữ dựa trên Plan based
Ưu điểm: Có thể mô hình hóa cấu trúc ngôn ngữ phức tạp
Nhược điểm: Thiết kế nặng nề, đòi hỏi phải rõ miền kiến thức
Trang 211.5.3 Class-based NLG
Hình 11 Phương pháp sinh ngôn ngữ Class based
Phương pháp này dựa trên việc cho bot học những câu trả lời đầu vào đã được gán nhãn Ứng với các hành động (action) và thông tin (slot) từ quản lý hội thoại thì bot sẽ đưa ra câu trả lời gần nhất dựa trên tập dữ liệu trả lời được đào tạo trước đó
Ưu điểm: dễ dàng thực thi
Nhược điểm: phụ thuộc vào dữ liệu trả lời đã được gán nhãn đào tạo trước đó
Bên cạnh đó việc tính toán điểm số không hiệu quả cũng dẫn đến việc sinh câu trả lời sai
Trang 22Chương 2:
CƠ SỞ LÝ THUYẾT
2.1 Kiến trúc mạng Nơ-ron nhân tạo
Mạng nơ-ron nhân tạo (Artificial Neural Network – ANN) là một mô hình xử lýthông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các nơ-ron được gắn kết để xử lý thông tin ANN hoạt động giống như bộ não của con người, được học bởi kinh nghiệm (thông qua việc huấn luyện), có khả năng lưu giữ các tri thức và sử dụng các tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data)
Một mạng nơ-ron là một nhóm các nút nối với nhau, mô phỏng mạng nơ-ron thần kinh của não người Mạng nơ-ron nhân tạo được thể hiện thông qua ba thành phần cơ bản: mô hình của nơ ron, cấu trúc và sự liên kết giữa các nơ ron Trong nhiều trường hợp, mạng nơ-ron nhân tạo là một hệ thống thích ứng, tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chạy qua mạng trong quá trình học
Hình 12 Cấu trúc mạng nơtron nhân tạo
Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer, Hidden
Layer và Output Layer
Trong đó, lớp ẩn (Hidden Layer) gồm các nơ-ron, nhận dữ liệu input từ các
nơ-ron ở lớp (Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo Trong một mạng ANN có thể có nhiều Hidden Layer
Lợi thế lớn nhất của các mạng ANN là khả năng được sử dụng như một cơ chế
Trang 23không đơn giản như vậy, một số các đặc tính và kinh nghiệm khi thiết kế một mạng nơ-ron ANN
Phương pháp này là tính toán tỷ lệ chính xác dữ liệu đầu ra (output) từ dữ liệu đầu vào (input) bằng cách tính toán các trọng số cho mỗi kết nối (connection) từ các lần lặp lại trong khi “huấn luyện” dữ liệu cho Chatbot Mỗi bước “huấn luyện” dữ liệu choChatbot sẽ sửa đổi các trọng số dẫn đến dữ liệu output được xuất ra với độ chính xác cao
Chọn mô hình: Điều này phụ thuộc vào cách trình bày dữ liệu và các ứng
dụng Mô hình quá phức tạp có xu hướng dẫn đến những thách thức trong quá trình học
Cấu trúc và sự liên kết giữa các nơ-ron
Thuật toán học: Có hai vấn đề cần học đối với mỗi mạng ANN, đó là học tham
số của mô hình (parameter learning) và học cấu trúc (structure learning) Học tham số là thay đổi trọng số của các liên kết giữa các nơ-ron trong một mạng, còn học cấu trúc là việc điều chỉnh cấu trúc mạng bằng việc thay đổi số lớp ẩn,
số nơ-ron mỗi lớp và cách liên kết giữa chúng Hai vấn đề này có thể được thực hiện đồng thời hoặc tách biệt Nếu các mô hình, hàm chi phí và thuật toán học được lựa chọn một cách thích hợp, thì mạng ANN sẽ cho kết quả có thể vô cùng mạnh mẽ và hiệu quả
Hình 13 Quá trình xử lý thông tin của mạng nơ ron nhân tạo
Inputs: Mỗi Input tương ứng với 1 đặc trưng của dữ liệu Ví dụ như trong ứng
dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay không thì mỗi input là một thuộc tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,
Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như với
bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì output là yes hoặc
no
Connection Weights (Trọng số liên kết): Đây là thành phần rất quan trọng
của một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu vào đối với quá trình xử lý thông tin chuyển đổi dữ liệu từ layer này sang layer khác Quá trình