° Xây dựng hoàn chỉnh hệ thống, chatbot trả lời được các câu hỏi tư van tuyển sinh, bên cạnh đó chúng tôi đã giải quyết một số thách thức trong quá trìnhxây dựng chatbot để chatbot có th
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHÓ HÒ CHÍ MINH TRƯƠNG ĐẠI HỌC CÔNG NGHỆ THON G TIN
KHOA KHOA HỌC MAY TINH
HOANG XUAN VŨ - 19522531
NGUYEN VAN TÀI - 19522154
KHOA LUAN TOT NGHIEP
_XAY DUNG HE THONG CHATBOT
HO TRỢ TƯ VAN TUYEN SINH DAI HỌC
Building a chatbot system
To support college admissions advising
CỬ NHÂN NGANH KHOA HỌC MAY TÍNH
GIÁO VIÊN HƯỚNG DÂN
TS NGUYÊN LƯU THÙY NGÂN
ThS ĐẶNG VĂN THÌN
THÀNH PHÓ HÒ CHÍ MÌNH, 2022
Trang 2DANH SÁCH HỘI DONG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định sé 152/QD-DHCNTT ngày
01/03/2023 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1 TS Lương Ngọc Hoàng - Chủ tịch
2 ThS Nguyễn Bich Vân — Thư ký
3 ThS Nguyễn Trọng Chỉnh - Ủy viên
Trang 3LỜI CẢM ƠN
Đầu tiên, chúng tôi xin chân thành cám ơn cô Nguyễn Lưu Thùy Ngân đã
tận tình hướng dẫn, định hướng cùng những phản biện nhằm giúp chúng tôi đạt được kết quả tốt nhất cho khóa luận Đồng thời, chúng tôi cũng xin gửi lời cảm ơn
ThS Đặng Văn Thìn (nghiên cứu viên của The UIT Natural Language Processing
Group) đã luôn bên cạnh hỗ trợ, cho chúng tôi những lời khuyên trong quá trình
chúng tôi thực hiện Cô và thầy đã luôn bên cạnh, chỉ dẫn, bổ sung cho chúng tôi
những kiến thức, kỹ năng quan trọng để thực hiện dé tài nay.
Chúng tôi cũng xin gửi lời cám ơn đến các thay, cô, anh chị, các bạn trong Phòng thí nghiệm Truyền thông Đa phương tiện, Trường Đại học Công Nghệ
Thông Tin đã nhiệt tình hỗ trợ và góp ý cho chúng tôi trong quá trình làm khóa
luận.
Bên cạnh đó, chúng tôi xin gửi lời cảm ơn Trường Đại học Công Nghệ Thông
Tin, Dai học Quốc Gia Thành phố Hồ Chí Minh, nơi không những mang lại cho
chúng tôi những kiến thức quan trọng, mà còn cho chúng tôi được có cơ hội học hỏi những người thầy cô tuyệt vời, cùng những người bạn, người anh đã luôn bên cạnh chúng tôi trong suốt những năm đại học.
Và điều quan trọng nhất, chúng tôi muốn cám ơn gia đình đã luôn ở bên, là điểm tựa vững chắc, là động lực để chúng tôi vượt qua mọi khó khăn về tinh thần lẫn thể chất trong thời gian qua.
Cuối cùng, trong quá trình thực hiện khóa luận, chúng tôi có thể có những thiếu sót và hạn chế Chúng tôi kính mong nhận được sự phản hôi và góp ý quý báu đến từ quý thay, cô Một lần nữa, chúng tôi xin chân thành cảm on!
Hồ Chí Minh, tháng 12, năm 2022
Sinh viên Hoàng Xuân Vũ và sinh viên Nguyễn Văn Tài
Trang 4Mục lục
LỜI CẢM ON
MỤC LUC
IDANH SÁCH HÌNH VE
DANH SÁCH BANG
DANH MỤC TU VIET TAT
ITOM TAT KHOA LUAN
4 MỞ ĐẦU)
ii Tổng Gian] XmS .Ằ&Ý
12
Tháchthức| -1.3_ Mục tiêu của khóa
luận| 1.4 Đối tượng và phạm vi nghiên cứu|
-1.4.1 Đối tượng 1.5 Kết quả của khóa luận|
1.6 Cấu trúc khóa
luận| .-2.1 Tổng quan về chatbot|
2.2 Bài toán phân lớp ý định trong chatbotl
E2 Bài toán thêm dấu trong chatbot|
E-3.3 Phương pháp tiếp cận dựa trên mô hình học chuyển tiép]
iv
iii
vi
vii
viii
ix
xi
2 BOI CẢNH, CAC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LY THUYET| 7
Trang 52.5 Cơsở lý thuyết|.Ô ee
"Ma
an
2.5.3 Mạng NeuralNetwork|
2.5.4 Mạng tích chap Convolutional Neural Network)
2.5.5 Mạng hỏi quy Long Short-Term Memory]
2.5.6 Kiến trúc
Transformer| -2.5.6.1 Kiến trúc của phần encoder}
2.5.6.2 _ Kiến trúc của khối decoderl
257 KiếntrúcBERI]
3 NỘI DUNG VÀ PHƯƠNG PHAP 3.1 Tổng quan hệ thông ' ưSPP., À `
3.2.1 Bộ dư liệu phân lớp ý định 322 Bộ dữ liệu thêm dấu|
3.5 Các phương pháp tiếp cận cho bài toán thêm dâu 3.5.1 Mạng thần kinh hồi
quy| -3.5.1.1 Mạng thân kinhhồiquyLSTM|L
3.5.1.2 Mạng thần kinh hồi quyBiLSTM|
3.5.2 Mô hình Transformerl
3.6 Xây dựng hệ thông hoàn chỉnh|
3.61 Điển khuyết (Slotfiling)|
3.6.2 Theo doi thông tin cuộc trò chuyện (Conversation tracking) 3.6.3 Đề xuất
(Recommendation)| -3.6.4 Hỏi lại (asking again)| 0000.
Trang 63.6.6 Xây dựngứngdụng| ẶẶ.
3.7 Cac phương pháp đánhgiá
3.7.1 Đánh giá mô hình phân lớp ý định và phân lớp miễn trả lời3.7.2 Phương pháp đánh giá mô hình thêm dau)
3.7.3 Đánh giá mô hệ thông chatbotl
4_ TỔNG QUAN DỮ LIỆU
4.1 Bộ dwt liệu bài toán phan lớp ý định
5 KET QUA VÀ PHAN TÍCH
A KET QUA THỰC NGHIỆM
B CONG BO KHOA HOC
VI
49
49 50 51
53
53 55
57
59
59 60
60
61
62
Trang 7DANH SACH HINH VE
2.1 Ví dụ mat phân cach hai dt liệu
2.2_ Ví dụ margin của hai lớp trong thuật toán SVM| 14
2.3 Ví dụ mạng NeuralNetwork| 17
¬ 17 Te 19 2.6 Mô họa mô hình Bidiractional Long short-term Memory] 21
Na à 22
2.8 Mô tả đầu vào của mô hình BERT] - 26
3.1 Tổng quanhệ thống chatbot| - 29
3.2 Các thành phần trong hệ thống.| 30
32 35 37 40 ¬ ee 40 TH 40 Số lượng câu hỏi tương ứng với ý định 49 Phân bố số lượng dữ liệu ở mỗi miễn trả lời 50 Phân bồ số lượng dữ liệu ở mỗi tập dữ liệu 51 Biểu đồ thong kê độ dài theo cap độ từi 52 Biểu đồ thông kê độ dài theo cấp độ ky tự 52 Kết quả F1-score tương ứng với từng ý định 54 5.2 Ma trận nhầm lẫn của mô hình PhoBERT| 55
Trang 8DANH SACH BANG
3.1 Bảng ví du về các câu hỏi tương ứng với các ý định
bài toán phân loại miễn trả lời
Trang 9DANH MỤC TỪ VIET TAT
AI Artificial Intelligence API Application Programming Interface BERT Bidirectional Encoder Representation from Transformer BiLSTM _ BidirectionalLong Short Term Memory
BoW Bag of Word
CER Chracter Error Rate CNN Convolutional Neural Network CSS Cascading Style Sheet
DHCNTT Đại Học Công Nghệ Thông Tin
LSTM Long Short Term Memory
MAP Maximum A Posteriori
MLE Maximum Likelihood Estimation
NB Naive Bayes
NLP Natural Language Processing RNN Recurrent Neural Network
RoBERTa A Robustly Optimized BERT Pretraining Approach
SOL Structured Query Language
SVM Support Vector Machine
TF-IDF Term Frequency — Inverse Document Frequency
TN True Negative
TP True Positive
1X
Trang 10UIT University of Information Technology WER Word Error Rate
XLM-R XLMRoBERTa
Trang 11TÓM TẮT KHOÁ LUẬN
Trong những năm gần đây, sự phát triển nhanh chóng của khoa học côngnghệ, đặc biệt trong lĩnh vực trí tuệ nhân tạo đã góp phần xây dựng ra nhiều ứngdụng hỗ trợ và thúc đẩy phát triển trong nhiều lĩnh vực như kinh tế, tài chính,
giáo dục, giải trí, ngân hàng, v.v Nổi bật trong số đó là ứng dụng chatbot Chatbot
là một ứng dụng có thể trò chuyện với con người để giải quyết một vấn đề hoặc
để trả lời một truy vấn nhất định Việc ứng dụng chatbot vào các hệ thống thực
tế đã và đang được nghiên cứu rất rộng rãi và phổ biến Vì vậy, chúng tôi thựchiện dé tài “Xây dựng hệ thống chatbot hỗ trợ tư vẫn tuyển sinh đại học” để hỗ
trợ học sinh, sinh viên giải đáp các thắc mắc về về tuyển sinh và cung cap một số
thông tin khác của trường Đại học Công Nghệ Thông Tin.
Việc xác định ý định của người dùng sẽ quyết định hội thoại tiếp theo giữangười và chatbot sẽ diễn ra như thế nào Vì thế, nếu xác định sai ý định ngườidù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 không hài lòng 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 Bên cạnh đó, trong quá trình tương tác giữa chatbot và ngườidùng, câu hỏi của người dùng có thể nhập có dấu hoặc không có dấu, trongtrường hợp câu hỏi không có dấu chatbot có thể không hiểu và làm gián đoạn
quá trình tương tác và trải nghiệm của người dùng Do đó trong khóa luận này
chúng tôi sẽ tập trung nghiên cứu hai bài toán chính là phân loại ý định, thêm
dấu trong tiếng Việt, bên cạnh đó chúng tôi cũng xây dựng ứng dụng hoàn chỉnh
để có thể ứng dụng trong thực tế
Tóm lại, luận văn có một số đóng góp chính sau:
° Tổng hợp lại kiến thức và các công trình nghiên cứu liên quan đến bài toán
phân lớp ý định, thêm dấu trong tiếng Việt và các phương pháp xây dựng
hệ thống chatbot
° Xây dựng bộ dir liệu câu hỏi va câu trả lời hỗ trợ tư van tuyển sinh trường
Đại học Công Nghệ Thông Tin.
© Nghiên cứu, dé xuất các mô hình phân lớp ý định trong chatbot và phương
pháp thêm dấu trong tiếng Việt
Trang 12° Xây dựng hoàn chỉnh hệ thống, chatbot trả lời được các câu hỏi tư van tuyển
sinh, bên cạnh đó chúng tôi đã giải quyết một số thách thức trong quá trìnhxây dựng chatbot để chatbot có thể trả lời tự nhiên như con người: Theo dõi
thông tin cuộc trò chuyện (conversation tracking), gợi ý câu hỏi cho người
dùng (recommendation), hỏi lại (asking again), chuyển cho chuyên viên tư
vấn, trả lời được các câu hỏi không dấu, trường hợp ngoài phạm vi hiểu biết
thì có thể trả lời một số câu hỏi nhất định
* Công bố các công trình nghiên cứu khoa học phù hợp với hướng luận văn
nghiên cứu.
¢ Xây dựng chương trình trên nền tang website minh họa và API có thể tích
hợp vào các nền tang website, mang xã hội khác
Trang 13giáo dục.
Đại học là một trong những lựa chọn mà các bạn học sinh cũng như quý phụ
huynh định hướng ra sau khi tốt nghiệp THPT Tuy nhiên khi lựa chọn trườngđại học thì có rất nhiều câu hỏi về môi trường học tập, chất lượng đào tạo, hay
phương thức xét tuyển của trường, v.v.
Việc tư vấn giải đáp các thắc mắc cho các bạn học sinh, quý phụ huynh là vấn
dé cần thiết, cấp bách trong quá trình tuyển sinh, là nòng cốt dé đảm bảo tính
chính xác cũng như cụ thể trong quá trình tìm hiểu và lựa chọn một ngôi trường
học tập trong những năm tháng đại học.
Tuy nhiên với sO lượng nhu cầu giải đáp thắc mắc khổng lồ như hiện tại, các
chuyên viên tư vấn không thể giải đáp các thắc mắc đó nhanh chóng và kịp thời
cho các bạn Đồng thời, thời gian tư vẫn của các chuyên viên bị giới hạn Do đó,
chatbot là một công cụ hữu hiệu phản hồi tư vấn nhanh chóng 24/7 mà không
cần phải đợi chuyên viên tư vấn, từ đó trải nghiệm của các bạn khi tìm hiểu về
trường được cải thiện.
Tiết kiệm chỉ phí và thời gian Chatbot giúp giảm thiểu chỉ phí tư vấn tuyểnsinh và thời gian xử lý thủ tục với khả năng đáp ứng hàng trăm yêu cầu cùng lúc
Hệ thống tương tác liên tục với các câu trả lời nhanh và phù hợp, người dùng
sẽ có xu hướng tập trung vào cuộc trò chuyện nhiều hơn Bên cạnh đó nhà trường
Trang 141.2 Thách thức
Để chatbot hoạt động hiệu quả và trả lời được các câu hỏi thì cần phải có bộ
dữ liệu đào tạo chatbot Việc xây dựng bộ dữ liệu mat nhiều thời gian và công
sức Trong quá trình xây dựng cần tìm hiểu các câu trả lời để chatbot trả lời đúng,
tự nhiên như con người, giúp cho người dùng cảm thấy dé hiểu với câu trả lời hệ thống đưa ra.
Bên cạnh đó, chatbot không phải là hệ thống toàn diện có hiểu biết trong phạm
vi nhất định Trong quá trình triển khai chatbot, đôi khi sẽ có một số vấn đề xảy
ra nằm ngoài giới hạn hiểu biết của chatbot Trường hợp này cần phải có một kịch bản chuẩn bị để chatbot có thể trả lời ngoài phạm vi.
Trong quá trình tương tác với chatbot, người dùng sẽ sử dụng ngôn ngữ khác
hoặc ngôn ngữ tiếng Việt không có dau hoặc có một số trường hợp người dùng có
ngụ ý nói đến một van dé đã đề cập ở trước nên không nhắc lại ở lần hỏi tiếp theo.
Khi xây dựng chatbot cần phải đặt mình vào vị trí của người dùng để nghiên cứu
các trường hợp có thể xảy ra với chatbot để dé ra phương pháp xây dựng và xử lý
phù hợp.
1.3 Mục tiêu của khóa luận
Trong dé tài này chúng tôi thực hiện các mục tiêu sau:
s Mục tiêu 1: Xây dựng bộ dữ liệu câu hỏi và câu trả lời hỗ trợ tư vấn tuyển
sinh trường Đại học Công Nghệ Thông Tin.
Trang 15Chương 1 MO DAU 3
s Mục tiêu 2: Nghiên cứu, thử nghiệm các phương pháp phân loại ý định với
các mô hình học máy khi xây dựng chatbot.
s Mục tiêu 3: Nghiên cứu, thử nghiệm các phương pháp thêm dau để hỗ trợ
cho việc chatbot có thể phân loại các ý định tốt để đưa ra câu trả lời phù
hợp.
® Mục tiêu 4: Giải quyết được các thách thức: Thêm dau, theo dõi được van
dé người dùng đang nói (conversasion tracking), trường hợp ngoài phạm
vi hiểu biết thì có thể trả lời một số vần để, gợi ý câu hỏi cho người dùng (Recommendation), chuyển cho chuyên viên tư vấn.
© Mục tiêu 5: Xây dựng hoàn chỉnh API để có thể tích hợp được vào website hoặc các nền tảng khác.
1.4 Đối tượng và phạm vi nghiên cứu
14.1 Đối tượng nghiên cứu
Đối tượng nghiên cứu là tin nhắn yêu cầu tu van liên quan đến tuyển sinh.
Cơ sở dir liệu tuyển sinh của trường DHCNTT.
1.42 Phạm vi nghiên cứu
Phạm vi nghiên cứu trong để tài này là những câu hỏi và câu trả lời được
chúng tôi tạo để phù hợp với tư van tuyển sinh trường Đại học Công Nghệ Thông
tin.
Trong nghiên cứu của chúng tôi, chúng tôi thực hiện 2 bài toán con chính là
phân loại ý định và thêm dấu cho tiếng Việt.
1.5 Kết quả của khóa luận
Sau khi tìm hiểu và nghiên cứu, chúng tôi đã cài đặt thành công các mô hình
khác nhau trên bộ dữ liệu của mình cho hai bài toán Phân loại ý định và Thêm
dấu trong tiếng Việt Ngoài ra, hệ thống Chatbot tư vấn tuyển sinh cũng trả lời
Trang 16Chương 1 MO DAU 4
được hầu hết các câu hỏi liên quan đến tuyển sinh Bên cạnh đó, chúng tôi cũng đạt được các mục tiêu mà mình đã đề ra ở phần Mục tiêu của khóa luận.
© Xây dựng bộ dit liệu câu hỏi va câu trả lời hỗ trợ tu vin tuyển sinh trường Dai học
Công Nghé Thông Tin.
- Để hoàn thành mục tiêu xây dựng bộ dit liệu, chúng tôi tiến hành phân tích và cau trúc dữ liệu tuyển sinh từ dé án tuyển sinh năm 2021, từ đó
chọn ra 229 câu hỏi và câu trả lời chuẩn Các nhà chú thích sẽ đặt các
hỏi tuyển sinh có nghĩa tương đồng với câu hỏi mẫu, hoặc hỏi các phần
trong câu trả lời để cho dữ liệu được phong phú hơn Nhu vậy chúng
tôi thu được bộ dữ liệu tuyển sinh gồm 4511 mẫu.
© Nghiên cứu, thử nghiệm các phương pháp phân loại ¥ định uới các mô hình may học khi xâu dựng chatbot.
- Để hoàn thành mục tiêu này, chúng tôi tiến hành thử nghiệm các loại
mô hình khác nhau trên tác vụ phân loại văn bản cho bài toán Phân
loại ý định Kết quả của bài toán đạt score cao nhất là 97.71%,
F1-weighted là 97.68% va Accuracy là 97.69% với mô hình PhoBERT.
© Nghiên cứu, thử nghiệm các phương pháp thêm dấu để hỗ trợ cho viéc chatbot có
thể phân loại các y định tốt để dua ra câu trả lời phù hợp.
— Với mục tiêu này, chúng tôi tiến hành thử nghiệm các mô hình học sâu
như LSTM, BiLSTM và mô hình Transformer cơ bản, đồng thời thử các tham số khác nhau để chọn ra mô hình phù hợp nhất cho hệ thống Mặc dù kết quả trên toàn bộ câu của mô hình Transformer cơ bản tốt nhất, đạt 77.24% nhưng thời gian thực hiện thêm dấu cho 1 câu rất lớn (7.89 giây) Xét về tổng thể, mô hình BiLSTM-4-grams có hiệu suất ổn
định nhất khi đạt tỉ lệ lỗi từ (3.95%) và tỉ lệ lỗi ký tự (0.93%) là tỉ lệ lỗi
nhỏ nhất trong các mô hình và thời gian thực hiện khoảng 0.58 giây
Trang 17Chương 1 MỞ ĐẦU 5
— Dé giải quyết những thách thức phải đối mặt trong giai đoạn phát triển
hệ thống Chatbot của mình, chúng tôi đưa ra những phương thức khác
nhau để có thể nắm được những thông tin cần thiết từ người dùng Với
những câu hỏi ngoài phạm vi tuyển sinh của Chatbot, chúng tôi đưa ra
những câu trả lời nếu câu hỏi có độ tương đồng đạt ngưỡng với nhữngcâu hỏi trong phạm vi hiểu biết của Chatbot
- Bằng cách hỏi lại từ người dùng và theo đõi cuộc hội thoại, những
thông tin cần thiết được bổ sung, từ đó hệ thống có thể đưa ra câu
trả lời chính xác hơn Ngoài ra, với những câu hỏi mà hệ thống không
thể đưa ra câu trả lời chính xác, chúng tôi sẽ đưa ra các câu hỏi tương
tự với câu hỏi của người dùng để người dùng có thể diễn đạt lại cho
hệ thống hiểu được ý của người dùng; hoặc với những câu hỏi mà hệthống thật sự không trả lời được, chúng tôi sẽ chuyển đoạn hội thoại
cho nhân viên tư vấn.
© Xây dựng hoàn chỉnh API để có thể tích hợp được vio website hoặc các nền tang
khác.
- Chúng tôi tạo một trang web đơn giản để người dùng có thể tương
tác với Chatbot, qua đó, chúng tôi có thể theo đõi được hiệu suất củaChatbot và những phản hồi góp ý từ người dùng để có thể cải thiện
Chatbot trong tương lai.
Đồng thời, trong thời gian hoàn thành đề tài, chúng tôi đã tham gia hội nghị
Khoa Học Trẻ và Nghiên Cứu Sinh 2022 do Trường đại học Công Nghệ Thông
Tin tổ chức dưới sự hướng dẫn của TS Nguyễn Lưu Thùy Ngân và ThS Đặng
Văn Thin Bài báo đã được chấp nhận với dé tài “Nghiên cứu các phương pháp
tiếp cận cho bài toán phân lớp ý định trong hệ thống Chatbot” và đăng trong ky
yếu hội nghị
1.6 Cau trúc khóa luận
Khóa luận được chia thành 6 chương được trình bày như sau:
° Chương[†} Mở đầu Trinh bày lý do chọn nghiên cứu, đối tượng và phạm
vi nghiên cứu, mục tiêu cũng như kết quả đạt được
Trang 18Chương 1 MỞ ĐẦU 6
e Chương |2} Bối cảnh, các công trình liên quan va cơ sở lý thuyết Tổng
quan, trình bày cơ sở lý thuyết cũng như các công trình liên quan đến đề tài
Sau đó, nêu ra những van dé còn tồn đọng và hướng giải quyết được dé cập
trong nghiên cứu của chúng tôi
° Chương} Phương pháp Trình bày tổng quan hệ thống, cách xây dựng các
thành phần trong hệ thống và các kiến trúc các mô hình được sử dụng thựcnghiệm trong nghiên cứu Cách tích hợp hệ thống lưu trữ và xây dựng API
service.
° Chương|‡ Tổng quan dữ liệu Phân tích, tổng quan về các bộ dữ liệu nhóm
đã tạo và chỉ tiết các bộ dữ liệu sử dụng trong từng bài toán cho hệ thống
° Chương |5] Thí nghiệm và kết quả Trình bày cách cài đặt, và phân tích kết
quả giữa các thí nghiệm và đánh giá hệ thống
° Chương |6} Kết luận và hướng phát triển Tổng kết các kết quả quan trọng
đã đạt được trong nghiên cứu, đánh giá hệ thống những hạn chế chưa đượcgiải quyết và hướng phát triển trong tương lai
Trang 19với mục tiêu hoạt động như một nhà trị liệu tâm lý và trả lại lời nói của người
dùng dưới dạng câu hỏi Nó sử dung đơn giản các kỹ thuật được gọi là đối sánhmẫu và cơ chế phản hỏi dựa trên khuôn mẫu Các phương pháp va kỹ thuật đểthiết kế chatbot đã được cải thiện nhiều sau này bởi các mô hình đạt được độchính xác cao bằng các kỹ thuật học sâu như Artificial Neural Network (ANN)[2L Recurrent Neural Network (RNN) [3], hoặc Transformers [4] Có 2 loại chatbot
chính hiện nay dựa trên cách xây dựng là: Chatbot dựa trên cơ chế khuôn mẫu
(rules based) và chatbot dựa trên trí tuệ nhân tạo (AI based).
B Setiaji and E W Wibowo Năm 2013, Emanuela Haller và Traian Rebedea
đã dé xuất thiết kế chatbot dựa trên kỹ thuật so khớp mẫu Cơ chế nay dựa
trên sự tương đồng của câu đầu vào và câu hỏi mẫu trong cơ sở dữ liệu để đưa
ra câu trả lời Tương tự kỹ thuật này, Chatbot sử dụng thuật toán Levenshtein để
đo khoảng cách giữa câu đầu vào và câu hỏi mẫu được sử dụng trong bài báo (6).
Chatbot dựa trên khoảng cách Levenshtein yêu cầu ít tài nguyên hon và có thể
được triển khai trên các hệ thống nhúng chỉ phí thấp một cách hiệu quả Khoảngcách Levenshtein thể hiện sự giống nhau giữa hai chuỗi Sự giống nhau giữa câu
Trang 20Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
hỏi dau vào và tat cả các câu hỏi được lưu trữ trong cơ sở đữ liệu được tính toán.Câu trả lời là của câu hỏi có độ tương đồng gan nhất
Đối với chatbot được xây dựng dựa trên cơ sở trí tuệ nhân tạo, Xu và các cộng
sự [7] đã xây dựng hệ thống chatbot tự động trả lời cho các truy vấn của kháchhàng trên các phương tiện truyền thông xã hội Hệ thống này được xây dựng
dựa trên mô hình Long Short-Ierm Memory (LSTM) Mô hình được đào tạo với
hơn 1 triệu cuộc trò chuyện giữa khách hàng và các thương hiệu trên mạng xã
hội Twitter Đánh giá cho thấy rằng hơn 40% yêu cầu có cảm xúc và chatbot đãhoạt động tốt như là một con người thể hiện sự đồng cảm để giúp đỡ người dùng
trong các tình huống có cảm xúc Hiện nay, Rasa được biết đến như một kiến
trúc để phát triển các cuộc hội thoại của chatbot dựa trên trí tuệ nhân tạo Trung
Nguyen Thanh cùng các cộng sự [8] đã xây dựng chatbot ứng dụng các kỹ thuật
hoc sâu được tích hợp trong Rasa để tư van các van đẻ liên quan đến nhập học
cho trường Đại học Kinh Tế Quốc Dân với độ chính xác đạt 97%
2.2 Bài toán phân lớp ý định trong chatbot
Ý định được định nghĩa là một hành động có mục đích Chúng ta thường thể
hiện ý định của mình qua những hành vi thường ngày, từ việc sử dụng các công
cụ tìm kiếm để tìm kiếm thông tin, mua sắm và cũng được thể hiện qua các cuộchội thoại với người khác Việc xác định được ý định sẽ giúp chúng ta có nhiềuthông tin hữu ích cần thiết Phân loại ý định đã là một nhiệm vụ quan trọng đối
với các doanh nghiệp, đặc biệt là liên quan đến trải nghiệm của khách hàng Ví
dụ như hệ thống hỏi đáp là một nền tảng phổ biến sử dụng nhận dạng ý định chocác cuộc trò chuyện bán hàng, hỗ trợ khách hàng, v.v Tự động hóa nhu cầu sử
dụng dịch vụ của khách hàng thông qua phân loại mục đích cho phép các doanh
nghiệp mở rộng quy mô và đáp ứng nhu cầu của khách hàng nhanh hơn, từ đónâng cao trải nghiệm của người dùng khiến cho họ cảm thấy hài lòng về dịch vụ
của các doanh nghiệp, tổ chức Đối với trường học, việc hiểu được các ý định,
nguyện vọng, nhu cầu của quý phụ huynh, học sinh nhà trường có thể xây dựng
chương trình học phù hợp, tạo môi trường thân thiện, cởi mở, phát triển được
tiềm năng của học sinh, sinh viên
Trang 21Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
Có nhiều phương pháp để tiếp cận bài toán phân loại ý định, xuất phat từ
tác vụ phân loại văn bản, các mô hình học máy cơ bản như Naive Bayes, Logistic
Regression, mô hình Support Vector Machine (SVM), và cây quyết định đều đãđược thực nghiệm bởi nhiều nhà nghiên cứu đi trước Nhưng đối với những môhình này chúng ta cần một lượng dữ liệu đủ lớn để có thể có một mô hình hoạt
động hiệu quả.
Mô hình học sâu đã có nhiều đóng góp trong lĩnh vực xử lý ngôn ngữ tự nhiên
nói chung và tác vụ phân loại nói riêng bao gồm cả phân loại ý định Ở bài báo (9)
tác giả đã so sánh mạng chuyển tiếp, mạng hồi quy (Recurrent Neural Network),
Long Short-Term Memory (LSTM), va Gated Recurrent Unit (GRU) cho phân loại
văn bản và đã chi ra được rằng LSTM, GRU hoạt động tốt hon phương pháp RNN
truyền thống
Sự ra đời của Transformer đã đánh dấu một bước đột phá về lĩnh vực máy học,kiến trúc này đã thể hiện được sự vượt trội cũng như hiệu quả của nó trên nhiều
tác vụ khác nhau Xu hướng dùng Transformer dựa trên mô hình ngôn ngữ được
đào tạo sẵn như BERT [10], RoBERTa{11] thé hiện sự vượt trội của mình khi nó
có thể tận dụng một lượng lớn dix liệu được học trước Việc tinh chỉnh mô hình
này xuống phục vụ cho tác vụ nhỏ hơn như phân loại văn bản xuất hiện rộng rãi
(121 Không chỉ như vậy, việc tinh chỉnh mô hình còn dựa trên mô hình đa ngôn
ngữ thành mô hình đơn ngôn ngữ [13] Thêm vào đó, ý tưởng kết hợp nhiều mô
hình Transformer với nhau cũng làm cho hiệu suất của bài toán tăng lên 4.
2.3 Bài toán thêm dấu trong chatbot
Dấu là một ký tự đặc biệt được đặt trong một ký tự để thay đổi giá trị ban đầucủa nó Nhiều ngôn ngữ trên thế giới sử dụng dấu trong chữ viết của họ Đối vớiphương diện người dùng, việc không có dấu trong văn bản gây ra các vấn đề về
khả năng đọc và hiểu từ mức độ nhẹ đến mức độ nghiêm trọng Trên phương
diện máy học, việc không có dấu trong văn bản gây ra những van dé khó giaiquyết cho các hệ thống Xử ly Ngôn ngữ Tự nhiên, đặc biệt là trong hệ thống hỏiđáp chatbot mà chúng tôi đang xây dựng, việc văn bản không có dấu đặt ra mộtthách thức mới mà chúng tôi cần phải giải quyết để có thể nâng cao trải nghiệm
Trang 22Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
của người dùng cũng như là độ hiệu quả mà hệ thống mang lai cho người dùngmột cách tối ưu nhất
So sánh với các cách viết của các nước khác, cách viết của tiếng Việt có phần
phức tạp hơn Như trong so sánh của bài báo [15], 95% từ trong tiếng Việt chứa
dau, trong khi trong tiếng Pháp chỉ có 15% từ có dau va 35% từ trong Roman có
dấu Bên cạnh đó, trước khi bắt đầu thực hiện nghiên cứu, chúng tôi có tìm hiểu
về các chữ cái Latin trong tiếng Việt Tiếng Việt có 29 ký tự, trong đó có 11 ký
tự là nguyên âm và 18 ký tự là phụ âm Thêm vào đó, vai trò của dấu đóng một
vai trò rất quan trọng trong tiếng Việt, những dấu này có thể kết hợp với các ký
tự khác một cách có quy luật để tạo ra những từ ngữ có ý nghĩa và góp phần đa
dạng thêm trong ngữ điệu của người Việt Nam Vi dụ như chữ cai “a”, những
dấu có thể xuất hiện như là “ă”, “â”, “a”, “A”, “8”, “a”, “a”, v.v Vì vậy, thách thức
trong bài toán thêm dấu tiếng Việt đó chính là sự phong phú trong cách viết vànhiều biến thể khác nhau của các ký tự
Xuất phát từ nhu cau cải thiện khả năng học của mô hình, các công trình
nghiên cứu khác nhau trên lĩnh vực khôi phục dau này cũng đã đạt được nhiều
thành tựu nhất định Dựa vào đặc điểm của từng phương pháp, các hướng tiếpcận gần đây được phân loại thành thành các mục sau:
2.3.1 Phương pháp tiếp cận dựa trên các bộ luật cơ bản
Hiệu quả của hướng tiếp cận này phụ thuộc vào chất lượng của bộ từ điển,tập các luật được định nghĩa sẵn trước đó và miễn của văn bản Ngoài ra, để tạo
ra được bộ các quy tắc cần có sự can thiệp của con người và kỹ năng hiểu biết về
ngôn ngữ VietpadlTllà một bộ công cụ sử dụng bộ từ điển lưu trữ hầu hết các từ
tiếng Việt thành dạng không dấu Phương pháp này không thực sự hiệu quả bởi
vì vẫn có nhiều từ trong từ điển không xuất hiện ở các văn bản ở đời thực Đốivới mỗi miền văn bản, bộ công cụ này đạt 60% đến 85% độ chính xác Ra đời sau
Vietpad, VietEditor là bộ công cụ khắc phục nhược điểm của VietPad bằng cách
xây dựng từ điển cụm từ và sử dụng nó sau khi ánh xạ các từ để tìm ra kết quả
phù hợp nhất.
Thttps: //vietpad.sourceforge.net
Trang 23Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
2.3.2 Phương pháp tiếp cận dựa trên mô hình học sâu
Các mô hình học sâu đã thể hiện được khả năng đáp ứng trên nhiều tác vụ
khác nhau trong lĩnh vực trí tuệ nhân tạo nói chung và trong lĩnh vực cử lý ngôn
ngữ tự nhiên nói riêng Hiệu suất của các mô hình học sâu cũng đã được trình
bay ở nhiều tác vụ khác nhau như phân loại văn bản [16], [17], m6 hinh dich may
[18], [19], hệ thống hỏi đáp [20], v.v Các mô hình học sâu hiệu quả nhất cho bài toán dịch máy cũng đã được áp dụng vào tác vụ khôi phục dấu như LSTM 1l,[22], GRU [21], [22], RNN Ngoài ra, bài báo cũng đã sử dụng hai phương
pháp mã hóa dựa trên hình vị và mã hóa dựa trên cụm từ và cũng chỉ ra rằng với
mỗi loại mô hình thì mỗi cách mã hóa sẽ cho một kết quả cải thiện khác nhau.Với cách tiếp cận này, mô hình GRU đã cho thấy hiệu quả của nó mang lại với độchính xác ổn định và đạt cao nhất trong các mô hình này
2.3.3 Phương pháp tiếp cận dựa trên mô hình học chuyển tiếp
Một trong những xu hướng mới nhất xuất hiện trong lĩnh vực xử lý ngôn ngữ
tự nhiên là sử dụng mô hình học chuyển tiếp Việc sử dụng mô hình chuyển tiếpđược đào tạo trước giúp chúng ta ít tiêu tốn tài nguyên hơn, ngoài ra, hiệu suất
của mô hình cũng được cải thiện bởi vì mô hình học trước đã được học trên một
tập dữ liệu lớn Dựa vào những đóng góp của mô hình học chuyển tiếp, mô hìnhchuyển tiếp đa ngôn ngữ BERT đã được áp dụng vào tác vụ phục hồi dấu
van bản trên 12 ngôn ngữ trong đó có tiếng Việt Ngoài ra, trong bài báo [24] đã
áp dụng bài toán phân loại ký tự cho bài toán này với bộ mã hóa chuyển tiếp và
lớp phạt (Penalty Layer) Lớp phạt này có tác dụng chỉ cho mô hình biết các ký
tự cần thêm dấu ByT5 là một mô hình được cải tiến dựa trên mô hình T5, và môhình này cũng được tác giả trong bài báo sử dụng trong tác vụ phục hồi dấu
và đạt được hiệu suất rất cao
2.4 Xác định bài toán
Mặc dù chatbot được nghiên cứu rộng rãi nhưng tất ít công trình liên quan
đến miễn tư vấn tuyển sinh Đặc biệt hơn, đối với tiếng Việt thì rất ít công trình
đi trước, xây dựng hệ thống hoàn chỉnh
Trang 24Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
Trong dé tài này, chúng tôi tiền hành xây dựng bộ dữ liệu tuyển sinh, hệ thốngchatbot sẽ phải đưa ra câu trả lời tư vấn tuyển sinh cho các câu hỏi được đưa vàodựa trên các mẫu của bộ dữ liệu Bài toán chatbot có thể phát biểu như sau:
© Dau vào: Câu hỏi về lĩnh vực tư vấn tuyển sinh
© Dau ra: Câu trả lời cho câu hỏi tuyển sinh
Ví dụ:
© Đầu vào: Điểm chuẩn ngành Khoa hoc máy tinh năm 2021 là bao nhiêu?
© Đầu ra: Điểm chuẩn ngành Khoa học máy tinh năm 2021 là 27.3
Ngoài ra, trong đề tài này chúng tôi tiến hành nghiên cứu và thử nghiệm cácphương pháp với hai bài toán chính là Phân loại ý định và Thêm dấu trong tiếngViệt Cụ thể, bài toán Phân loại được phát biểu như sau:
© Đầu vào: Câu hỏi về lĩnh vực tư vấn tuyển sinh
© Dau ra: Ý định của câu hỏi truy van
Ví dụ:
se Đầu vào: Điểm chuẩn ngành Khoa học máy tính năm 2021 là bao nhiêu?
°® Đầu ra: hỏi đáp điểm chuẩn
Và bài toán Thêm dấu trong tiếng Việt được phát biểu là:
¢ Dau vào: Câu hỏi tuyển sinh không có dấu
© Dau ra: Câu hỏi tuyển sinh có dấu
Ví dụ:
© Dau vào: “diem chuan nganh khoa hoc may tinh la bao nhieu”
e Đầu ra: “điểm chuẩn ngành khoa học máy tính là bao nhiêu”
Trang 25Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
2.5 Cơ sở lý thuyết
2.5.1 Thuật toán Support Vector Machine
Thuật toán Support Vector Machine - SVM là một trong nhiều phương pháp
học có giám sát được nghiên cứu và áp dụng trong nhiều bài toán khác nhau
của lĩnh vực máy học nói chung và lĩnh vực Xử lý Ngôn ngữ Tự nhiên nói riêng.
Thuật toán này không chỉ hoạt động tốt cho các bài toán phân loại tuyến tính màcòn đạt hiệu quả với dữ liệu phi tuyến tính
Giả sử chúng ta xét bài toán phân lớp nhị phân tuyến tính với hai nhãn dữ liệu
được mô tả trong một không gian hai chiều như Hình|2.1| Mục tiêu của chúng ta
cần xác định mặt phân cách w!x + b,w € R,b € R để xác định điểm dữ liệu x
thuộc lớp nào.
Nhìn vào Hình|2.1| chúng ta dé dàng thấy rằng có nhiều mặt phân tách thỏamãn điều kiện phân loại được hai lớp Nếu chúng ta xác định được mặt nằm vừa
khít giữa 2 cụm dw liệu sao cho nằm xa các tập dữ liệu nhất thì đây là mặt phẳng
tốt nhất mà chúng ta cần xác định Đây chính là mục tiêu chính của thuật toán
SVM để lay được các mặt phẳng tốt nhất để phân đều khoảng cách giữa hai tập
dw liệu như Hình|2.2| Với mặt phân chia như trên, margin được tính là khoảng
cách gần nhất từ 1 điểm tới mặt đó (bat kể điểm nào trong hai lớp):
Trang 26Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
2.5.2 Thuật toán Naive Bayes
Naive Bayes (NB) là một thuật toán máy học có giám sát thường được dùng
cho bài toán phân lớp NB thuộc họ các thuật toán phân lớp dựa trên xác suất của
dữ liệu Như cái tên gợi ý, NB hoạt động bằng cách sử dụng định ly Bayes với giả
thuyết các đặc trưng của dữ liệu hoàn toàn độc lập Trên thực tế thì điều này rấthiếm khi xảy ra nên giả thuyết này được xem là ngdy ngé (naive assumption)
Mặc dù đơn giản nhưng thực nghiệm cho thấy mô hình Naive Bayes thực thivới tốc độ nhanh và cho độ chính xác cao trên nhiều bài toán như phân loại văn
bản, phân loại bệnh, v.v.
Xét bài toán phân lớp với C lớp 1,2,3,4, C Giả sử có một điểm dữ liệu này rơi
vào lớp c Nói cách khác, hãy tính: p(y = c|x) hoặc viết ngắn gọn thành p(c|x),tức là tính xác suất để đầu ra là lớp c biết đầu vào là vector x Biểu thức này, nếu
tính được, sẽ giúp chúng ta xác định được xác suất để điểm dữ liệu rơi vào mỗi
lớp Từ đó để xác định lớp của điểm dit liệu bang cách chọn lớp có xác suất điểm
Trang 27Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
dữ liệu đó rơi vào cao nhất:
c = argmax p(c|x) (2.1)
c€{1,2, C}
Biểu thức trong dau argmax 6j2.1|nhin chung khó có cách tính trực tiếp Thay vào
đó, quy tắc Bayes thường được sử dụng:
¢ = arg max Bội = arg max p(x|c) p(c) (2.2)
Dau bằng thứ hai xảy ra theo quy tac Bayes, dau bang thứ ba xảy ra vi p(x)
ở mẫu số không phụ thuộc vào c Tiếp tục quan sat, p(c) có thé được hiểu là xácsuất để một điểm bat kỳ rơi vào lớp c Nếu tập huấn luyện lớn, nó có thể đượcxác định bằng maximum likelihood estimation (MLE) - là tỷ lệ giữa điểm thuộclớp c và số điểm trong tập huấn luyện Nếu tập huấn luyện nhỏ, giá trị này có thể
được ước lượng bằng maximum a posteriori (MAP) Cách thứ nhất thường được
Ở bước huấn luyện, các phân phối p (c) và p (x;|c),¡ = 1, ,d sẽ được xác định
Trang 28Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
Khi d lớn và các xác suất nhỏ, biểu thức ở về phải của|2.3|là một số rất nhỏ, khi
tính toán có thé gặp sai số Để giải quyết việc này,|2.3|thường được viết lại đưới
dạng tương đương bằng cách lay log của về phải:
c = arg max (1 (p(c)) + S tog co) (2.5)
ce{1, 4C}
Sự đơn giản của NB mang lại hiệu quả đặc biệt trong các bài toán phân loại văn
bản do đó trong khóa luận này chúng tôi áp dụng thuật toán này cho việc phân
lớp ý định.
2.5.3 Mạng Neural Network
Mang Neural Network là sự kết hop của những tang perceptron hay còn gọi
là perceptron đa tầng Và mỗi một mạng Neural Network thường bao gồm 3 kiểutầng là: Tầng đầu vào nằm bên trái cùng của mạng, thể hiện cho các đầu vào củamạng; Tầng ra bên phải cùng và nó thể hiện cho những đầu ra của mạng; Tầng ẩn
nằm giữa tang vào và tang ra nó thể hiện cho quá trình suy luận logic của mạng
Neural Network có sự tương đồng chuẩn mạnh với những phương pháp
thống kê như đồ thị đường cong và phân tích hồi quy Neural Network có chứa
những lớp bao hàm các nút được liên kết lại với nhau Mỗi nút lại là một tri giác
có cầu tạo tương tự với hàm hồi quy đa tuyến tính Bên trong một lớp tri giác đalớp, chúng sẽ được sắp xếp dựa theo các lớp liên kết với nhau Lớp đầu vào sẽ thu
thập các mẫu đầu vào và lớp đầu ra sẽ thu nhận các phân loại hoặc tín hiệu đầu
ra mà các mẫu đầu vào có thể phản ánh lại Ví du mang Neural Network thể hiện
ở Hình
Trang 29Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
Input layer Hidden layers Output layer
Thuật toán về cơ bản được đào tạo trên dữ liệu để học một ham phi tuyến tính
nhằm mục đích phân loại hay hồi quy, với một tập hợp các tính năng và một biến
mục tiêu (ví dụ: nhãn).
2.5.4 Mạng tích chap Convolutional Neural Network
Mang tich chap CNNI26] là một trong những mô hình học sâu được nghiên
cứu và áp dụng thành công trong các bài toán xử lý ảnh như nhận dạng các đốitượng trong ảnh hoặc video Đối với lĩnh vực Xử lý Ngôn ngữ Tự nhiên, việc áp
dụng mô hình CNN cho các bài toán phân loại văn bản, đặc biệt là các câu, cum
Trang 30Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
từ ngắn đều cho kết quả khả quan Tổng quan mô hình CNN được thé hiện trong
Hình 2.4
Cho một chuỗi n từ vựng đầu vào 01;„ = W1,W2, W3, ,t0„ và mỗi từ vựng thứ
¡ sẽ được biểu diễn bằng 1 vectơ x; có d chiều Với các câu ngắn hơn n từ vựng thì
sẽ được tự động thêm giá trị <pad> để cho đủ số lượng chiều dài đầu vào Do đó
chuỗi văn bản đầu vào có thể biểu diễn như sau:
Xin = #¡ xa PB x3 QD B (2.6)
Trong đó ký hiệu @ thể hiện toán tử nối (concatenation operator) Ta có Xij+jthể hiện giá trị nối giữa các từ vung x¿,¡.1, , x¡¡ Một bộ lọc tích chập 1D với
một bộ lọc w € IR" được áp dụng lên cửa sổ h từ để đưa ra một đặc trưng mới
Ví dụ đặc trưng c; được tạo ra từ các từ z;;.,_ như sau:
Cj = f(W.Xj:i4n-1 + 0) (2.7)
Với b là hằng số thuộc R va f là một hàm tuyến tính Bộ loc này được các chuỗi
cửa sổ sau đây của từ vựng trong câu đầu vào X12), X2; 1, ,*„_n¡+1:„ để đưa ra
chuỗi các đặc trưng (feature map) như sau:
c= [C1, C2, Cn—-h+1| (2.8)
với c thuộc R"~"*1, Sau khi đưa chuỗi đặc trưng feature map c, một toán tử tổng
hợp (max pooling) sẽ hoạt động trên chuỗi này để đưa ra đặc trưng có giá trị
lớn nhất ¢ = max{c} như là đặc trưng tốt nhất của bộ lọc này Mô hình sử dụng
nhiều bộ lọc với các kích thước cửa sổ khác nhau để có được nhiều đặc trưng rút
trích từ văn bản đầu vào một cách đa dạng Các đặc trưng này được nối với nhau
để tạo thành đặc trưng đại diện cho câu đầu vào lớp mạng kết nối day đủ (fully
connected layer) với hàm kích hoạt softmax để tính phân phối xác suất trên nhãn
đối với bài toán đa nhãn, còn với bài toán nhị phân là sử dụng hàm kích hoạt
sigmoid.
Trang 31Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
2.5.5 Mang hoi quy Long Short-Term Memory
Phan nay, chúng tôi trình bày các kiến thức liên quan đến mô hình mạng hồi
quy Long Short-Term Memory Các mạng LSTM có một số ô trạng thái ngữ cảnhđóng vai trò như các ô nhớ dài hạn hoặc ngắn hạn Đầu ra của mạng hồi quy
LSTM được thiết kế theo trạng thái của các ô nhớ này Đây là một thuộc tính rất
quan trọng khi chúng ta cần dự đoán của các mạng nơ-ron phụ thuộc vào thông
tin ngữ cảnh từ quá khứ thay vì chỉ dựa vào thông tin cuối cùng của dữ liệu đầu
vào.
+ 99 $
aL LAI LAH ALI A
é 6 6 6
HINH 2.5: Ví dụ quá trình vòng lặp mạng hồi quy LSTM
Mạng hồi quy LSTM sẽ giữ các thông tin ngữ cảnh của giá trị đầu vào bằng
cách tích hợp một vòng lặp cho phép thông tin truyền từ bước này qua bước
tiếp theo (Hình|2.5| Các dự đoán của mạng LSTM luôn được điều chỉnh bởi kinh
nghiệm trong quá khứ của dữ liệu đầu vào
Nói một cách khác thì thời gian càng trôi qua, đầu ra tiếp theo càng ít có khảnăng phụ thuộc vào giá trị dw liệu đầu vào cũ Khoảng thời gian này phụ thuộc
vào khoảng cách giữa các dữ liệu cũng như các thông tin ngữ cảnh mà mô hình
học tập được Các mạng hồi quy LSTM quản lý điều này bằng cách học khi nào
mô hình nên ghi nhớ và khi nào mô hình nên quên thông qua các giá trị trọng số
ở cổng quên
Ý tưởng cốt lõi của mô hình LSTM là các trạng thái tế bào (cell state) Mô hình
LSTM có khả năng thêm bớt các thông tin cho trạng thái tế bào được điều chỉnhbởi cổng (gates) Một LSTM có ba cổng dùng để bảo vệ và điều khiển trạng tháicủa tế bào Sau đây chúng ta sẽ lần lượt đi qua các cổng này để tìm hiểu xem chứcnăng và vai trò của chúng trong 1 unit LSTM Sau đây là các thông tin chỉ tiết
trình bày từng bước thực hiện của mô hình hồi quy LSTM
Bước đầu tiên trong mạng LSTM là xác định xem thông tin nào chúng ta sẽ
quên di từ trạng thái tế bào Cổng quên với lớp sigmoid sẽ thực hiện công việc
Trang 32Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
này bằng cách nhìn giá trị h;_ va x; và giá trị đầu ra nằm giữa [0,1] của trạng thái
C,_1 Giá trị 1 có ý nghĩa là giữ lại thông tin này va 0 nghĩa là quên thông tin này
đi.
ƒt = ơ(W£.|hi—1,xi] + bự) (2.9)
Bước tiếp theo là chúng ta sẽ xác định xem thông tin nào sẽ được lưu trữ trong
trạng thái tế bào Bước này gồm hai phần chính là: Một lớp sigmoid được gọi từcổng quên để xác định giá trị nào chúng ta sẽ cập nhật, tiếp theo một lớp tanh tạo
ra một vector cho các giá trị ứng viên mới C; có thể được thêm vào trạng thái Ở
bước tiếp theo chúng ta sẽ kết hợp hai giá trị này để cập nhật trạng thái tế bào
Tiếp theo, chúng ta sẽ cập nhật trạng thái tế bào cũ C¡_ vào trạng thái mới C¡
Chúng ta nhân trạng thái cũ với ƒ; để quên đi các thông tin mà chúng ta đã xác
định loại bỏ, sau đó chúng ta cộng với giá trị mới i; * C; tạo ra giá trị trạng thái
mới.
Bước cuối cùng là chúng ta cần xác định thông tin nào sẽ được đưa ra mỗi unit
LSTM Giá trị đầu ra này phụ thuộc vào trạng thái tế bào nhưng sẽ được lọc lại.Đầu tiên, chúng ta sẽ chạy một lớp sigmoid để xác định phần nào của trạng thái
tế bào sẽ được làm giá trị đầu ra Sau đó, các giá trị này sẽ qua một hàm tanh
để đưa các giá trị về khoảng từ [-1,1] và nhân chúng với giá trị đầu ra của cổngsigmoid để đưa ra các giá trị đầu ra
or =) (Wo.[h—1,%:] + bo) (2.11)
hy = 0; x tanh (C;) (2.12)
Mạng LSTM hoạt động rất hiệu quả đối với các loại thông tin dạng chuỗi có liên
quan đến thông tin trong quá khứ như các bài toán thêm dấu trong tiếng Việt,
bài toán sinh văn bản, dự đoán chứng khoán hay các bài toán lai giữa xử lý ảnh
và xử lý ngôn ngữ tự nhiên như chú thích ảnh (image captioning), v.v.
Trang 33Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
HINH 2.6: Mô hoa mô hình Bidiractional Long short-term Memory
Dựa trên mạng hồi quy LSTM, mạng hai chiều Bidirectional Long Short-Term
Memory (BiLSTM) được phát triển để rút trích đặc trưng ngữ cảnh theo hai chiều
của dữ liệu, quá trình đó gọi là quá trình forward và backward (Hình [2.6) Nhìn
vào mô hình|2.6|chúng ta thấy rằng số unit của 2 chiều dữ liệu giống nhau, mỗi
unit có cấu tạo như unit LSTM tại thời điểm giá trị x;, forward sẽ tạo ra một
vector hi va backward sé cho dau ra là vector he, sau đó 2 giá tri vector nay sẽ qua
một hàm ơ để dua ra giá trị biểu diễn cuối cùng cho trang thái tế bào x; Ham ơ
có thể là các toán tích nhân, nối hoặc cộng trừ giữa hai vector hy va hr Cac két qua
nghiên cứu trước day việc sử dung thông tin forward va backward của dữ liệu
giúp mô hình có nhiều thông tin giữa hai chiều dữ liệu, điều này giúp mô hình
đạt hiệu quả tốt hơn so với việc chỉ sử dụng một mô hình hồi quy LSTM
2.5.6 Kiến trúc Transformer
Kiến trúc Transformer được ra đời năm 2017 và được phát triển thành
nhiều biến thể khác nhau sử dụng cho nhiều bài toán với mục đích khác nhau
Kiến trúc của Transformer gồm 2 phần chính là Encoders (1 ngăn xếp chứa 6
khối encoder giống nhau) và Decoders (1 ngăn xếp chứa 6 khối decoder giống
nhau) Tổng quan mô hình được thể hiện ở Hình|2.7Ì Mỗi encoder chứa hai lớp:
Self-attention và mạng truyền thẳng (FNN) Self-Attention là cơ chế giúp encoder
Trang 34Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
Multi-Head Attention
Nx
; Add & Norm
Nx Add & Norm
Multi-Head Multi-Head Attention Attention
HINH 2.7: Minh hoa mô hình Transformer
nhìn vào các từ khác trong lúc mã hóa một từ cu thể Vì vậy, mạng Transformers
có thể hiểu được sự liên quan giữa các từ trong cùng một câu, kể cả khi chúng có
khoảng cách xa Các decoder cũng có kiến trúc giống như encoder nhưng giữa
chúng có một lớp attention để có thể tập trung vào các phần liên quan của đầu
vào hay còn gọi là encoder-decoder attention (phần kết nối encoder và decoder ở
Hình 2.7) Chúng tôi sẽ trình bày chỉ tiết các phan trong mô hình Transformer ở
các mục sau.
Trang 35Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
bedding được tạo thành từ việc kết hợp word embedding va position embedding
Trong đó, vector word embedding là vector biểu diễn các từ được tao ra từ các mô
hình đạo tạo trước như word2vec, glove, v.v Vector Position Embedding là vector
biểu diễn thứ tự của các từ trong chuỗi Vector này được tính theo công thức:
Self Attention có 4 bước:
* Tạo ra bộ 3 vectơ từ các vectơ đầu vào của encoder: Trong lớp Self-attention,
để tao ra 3 vector Q, K, V, mỗi vector embedding được nhân với 3 ma trậntrọng số Wo, Wx, Wy và các ma trận trọng số này sẽ được cập nhật liên tụctrong quá trình đào tạo Mục đích của vector V là để biểu diễn các từ trong
câu, còn vector Q và vector K dùng để tính trọng số khuếch đại thông tin
của các từ trong câu.
© Tính trọng số: Với mỗi từ, ta cần tính trọng số của các từ khác trong câu đối
với từ này để biết từ nào cần được chú ý và chú ý bao nhiêu Trọng số được
tính bằng tích vô hướng giữa vector Q của từ đang xét với lần lượt các vector
K của các từ trong câu.
© Chuẩn hóa trọng SỐ: Trong bài báo gốc, trọng số được chia cho căn bậc hai số
chiều của vector K (căn bậc hai của 64) sau đó được đưa qua hàm softmax
Trang 36Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
© Nhân vecto V với mỗi giá trị trọng số đã tinh phía trên rồi cộng lại với nhau
để chọn lọc các vector của các từ cần chú ý và loại các vector của các từkhông liên quan bằng cách nhân với hệ số rất nhỏ như 0.001, 0.0001, v.v
Như vậy, chúng ta có thể tổng quát hóa các bước này thành công thức toán học
MultiHead(Q,K,V) = Concat(head, head›, headu ) W°
Trong đó head; = Attention(QW2, KWK, VWY).
Nhu vây, vector nay sẽ chắc chắn rằng các thông tin cần được khuếch đại sé
không bị bỏ sót trong quá trình tính toán Multi-head attention cho phép mô hình
hoc chú ý đến những phan dé quan sát được như những từ kế trước, từ kế sau và
các từ có liên quan
Position-wise Feed-Forward Networks(FFN)
Việc lớp này được thêm vào kiến trúc encoder để học được các mối quan hệ tiểm
ẩn giữa các vector độc lập mà chưa được biểu diễn rõ ràng, nơi mà các công thức
toán học không thể biểu diễn được Để hiện thực được điều này, các vector saukhi đi qua bước Add&Normalize sẽ được gửi tới lớp FFN Trong lớp này bao gồm
2 tầng biến đổi và 1 hàm kích hoạt phi tuyến tính ReLU (Rectified Linear Unit) và
được biểu dién bằng công thức sau:
FFN(#) = max(0,xWh + bị)Wa + bo
Dropout với tỉ lệ 0.1 cũng được áp dụng ở lần thứ nhất sau khi các vector đi qua
hàm ReLU Sau khi qua lớp FFN các vector cũng di qua bước Add&Normalize
trước khi đi vào khối encoder kế tiếp
Add&Normalize
Ở bước này, các vector dau ra từ bước Multihead Self-Attention và lớp FFN sẽ qua
Trang 37Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
bước dropout với tỉ lệ 0.1, sau đó cộng thêm vector dau vào chưa bi biến đổi, cuối
cùng được chuẩn hóa chuyển vào lớp ké tiếp Ý nghĩa của bước nay là để bổ sung
thêm thông tin nguyên bản, tránh bị mat mát quá nhiều thông tin sau khi qua các
phép biến đổi ở các bước Multihead Self-Attention và FFN
2.5.6.2 Kiến trúc của khối decoder
Decoder cũng được cau tạo bởi một stack 6 khối decoder giống nhau Ngoài
hai lớp Self-Attention và FFN, decoder có thêm lớp con thứ ba là Masked
Multihead-Attention, lớp này thực hiện sự chú ý nhiều đầu vào đầu ra của ngăn xếp bộ mã
hóa.
So sánh với bộ encoder, decoder có một sô điểm khác biệt sau:
Đầu vào của lớp sef-attention ở lan đầu tiên được là vector được tạo thành
bởi embedding của 1 ký tự [start] và vector Positonal Embedding Vector
đầu vào ở các lần kế tiếp được tạo thành bởi vector output của layer FFN
của khối decoder kể trước và vector Positonal Embedding
Lớp Self-Attention chỉ tổng hợp thông tin những từ nằm trước từ đang xét
Lớp encoder-decoder attention chỉ tính toán vector Q dựa trên đầu ra của
Self-Attention, vector K và V được lay từ output của khối encoder
Decoder chỉ dừng lại việc tính toán khi dự đoán được ký tự kết thúc là [end]
Đầu ra của lớp FFN của khối decoder cuối cùng sẽ được di qua lớp Linear
để biến đổi các vector thành vector có số chiều bằng số từ trong bộ từ vựng
Mỗi phần tử trong vector đại diện cho số điểm của từ đó Sau đó vector nàyđược đi qua 1 hàm softmax Từ có xác suất cao nhất sẽ là từ được chọn
2.5.7 Kiến trúc BERT
Kiến trúc BERT được viết tắt của cụm từ Bidirectional Encoder
Representa-tions from Transformers được công bố bởi nhóm nghiên cứu của Google AI vào
năm 2018 và đem lại sự phát triển mới cho lĩnh vực Xử lý Ngôn ngữ Tự nhiên
BERT là một mô hình được học sẵn (pretrained) để biểu diễn các từ vựng theo
ngữ cảnh hai chiều Mô hình BERT có thể được tinh chỉnh cho các bài toán khác
Trang 38Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
nhau như phân loại, trả lời câu hỏi, v.v BERT được cấu tao từ các Transformer,
một cơ ché chú ý (attention mechanism) tìm hiểu mối quan hệ theo ngữ cảnh giữa
các từ (hoặc từ phụ) trong văn bản Ở trạng thái cơ bản nhất thì Transformer bao
gồm hai cơ chế riêng biệt - bộ mã hóa đọc đầu vào văn bản và bộ giải mã tạo
dự đoán cho bài toán mục tiêu Kiến trúc Transformer được chúng tôi trình bày
ở phân |2.5.6| Kết quả là kiến trúc BERT giúp các mô hình đạt kết quả tốt nhất
(state-of-the-art) trong đa dạng cá bài toán trong Xử lý Ngôn ngữ Tự nhiên.
Trái ngược với các mô hình định hướng khác được dé xuất trước đây là sẽ đọc
đữ liệu văn bản một cách tuần tự theo mọt chiều nhất định như từ trái sang phải
hoặc từ phải sang trái, thì bộ mã hóa (encoder) của Transformer sẽ đọc toàn bộ
chuỗi từ cùng 1 lúc Do đó, mô hình có khả năng đọc thông tin dữ liệu theo 2
chiều khác nhau, điều này giúp cho mô hình có nhiều thông tin và giúp tăng độ
chính xác hơn các mô hình định hướng khác Đặc tính này cho phép mô hình tìm
hiểu ngữ cảnh của 1 từ dựa trên tất cả các môi trường xung quanh (bên phải và
bên trái của từ).
MT, Eạ || Fi || E; |[E: || Ea ES Es || E; Es Ey Exo
HINH 2.8: Mô ta đầu vào của mô hình BERT
Khi huấn luyện các mô hình ngôn ngữ thì luôn có một thách thức trong việc
xác định mục tiêu dự đoán Nhiều mô hình dự đoán từ vựng tiếp theo theo trình
tự, các mô hình cách tiếp cận này hạn chế việc học ra các vectơ theo ngữ cảnh củatừng từ Để vượt qua thử thách này, BERT sử dụng hai kỹ thuật huấn luyện như
sau:
se Masked Language Modeling: Trước khi đưa chuỗi từ vựng vào mô hình
BERT, 15% các từ vựng trong chuỗi đầu vào sẽ được thay thế thành giá trị
<MASK> Sau đó, BERT sẽ cố gắng dự đoán giá trị ban đầu của các từ vựng
bi che <MASK>, dựa trên ngữ cảnh được cung cấp bởi các từ khác trong
chuỗi đầu vào
Trang 39Chương 2 BOI CẢNH, CÁC CÔNG TRÌNH LIEN QUAN VÀ CƠ SỞ LÝ
THUYET
® Next Sentence Prediction: Trong quy trình đào tao BERT, mô hình nhận các
cặp câu vào và học cách dự đoán nếu câu thứ hai trong cặp là câu tiếp theotrong tài liệu gốc Trong quá trình huấn luyện, 50% đầu vào là một cặp câutrong đó câu thứ hai là câu tiếp theo trong tài liệu gốc, trong khi 50% còn
lại, một câu ngẫu nhiên từ kho dữ liệu được chọn làm câu thứ hai Giả định
là câu ngẫu nhiên sẽ bị ngắt kết nối từ câu đầu tiên
Để giúp mô hình phân biệt giữa hai câu trong huấn luyện, đàu vào được xử lýtheo cách sau trước khi vào mô hình Hình [2.8|mô tả hóa trực quan các bước xử
Với hiệu quả vượt trội đó, BERT đã có nhiều biến thể cải tiến và mang hiệu quả
tốt cho các bài toán trong Xử lý Ngôn ngữ Tự nhiên:
* RoBERTa [28] được giới thiệu bởi Facebook là một phiên bản được huấn
luyện lại của BERT với một phương pháp huấn luyện tốt hơn với dữ liệuđược tăng gấp 10 lan Để tăng cường quá trình huấn luyện, RoBERTa không
sử dụng cơ chế dự đoán câu kế tiếp (NSP) từ BERT mà sử dụng kỹ thuật mặt
nạ động (dynamic masking), theo đó các token mặt nạ sẽ bị thay đổi trong
quá trình huấn luyện Sử dụng kích thước batch lớn hơn cho thấy hiệu quảtốt hơn khi huấn luyện
¢ PhoBERT: Đây là một pre-trained được huấn luyện đơn ngôn ngữ, chi
huấn luyện dành riêng cho ngôn ngữ PhoBERT sử dụng RDRSegmentercủa VnCoreNLP }7| dé tách từ cho dữ liệu đầu vào trước khi qua BPE en-coder PhoBERT được train trên khoảng 20GB dit liệu bao gồm khoảng 1GB
“https:/ /github.com/vncorenlp/VnCoreNLP