BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CƠNG NGHỆ KỸ THUẬT MÁY TÍNH
XÂY DỰNG MƠ HÌNH CHATBOT
GVHD: ÐẬU TRỌNG HIỂN
SVTH : NGUYỄN HOÀNG THỌ
MSSV: 15119048
SVTH : PHẠM NGỌC MINH HUY
MSSV: 15119024
SKL 0 0 5 4 9 4
Tp. Hồ Chí Minh, tháng 07/2019
do an
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG MƠ HÌNH CHATBOT
SVTH: NGUYỄN HỒNG THỌ
MSSV: 15119048
SVTH: PHẠM NGỌC MINH HUY
MSSV: 15119024
Khố: 2015
Ngành: CƠNG NGHỆ KỸ THUẬT MÁY TÍNH
GVHD: Ths. ĐẬU TRỌNG HIỂN
Tp. Hồ Chí Minh, tháng 07 năm 2019
do an
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***---Tp. Hồ Chí Minh, ngày … tháng 07 năm 2019
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: NGUYỄN HOÀNG THỌ
MSSV: 15119048
Họ và tên sinh viên: PHẠM NGỌC MINH HUY
MSSV: 15119024
Ngành:Công Nghệ Kỹ Thuật Máy Tính
Lớp: 15119CL2
Giảng viên hướng dẫn: Ths. Đậu Trọng Hiển
ĐT: 0962443310
Ngày nhận đề tài: 04/03/2019
Ngày nộp đề tài: 30/06/2019
1. Tên đề tài: Xây dựng mơ hình Chatbot
2. Các số liệu, tài liệu ban đầu:
Kiến thức cơ bản về các mơn Tốn Cao Cấp, Xác
suất Thống kê ứng dụng, Máy học.
3. Nội dung thực hiện đề tài:
Thiết kế mơ hình nhận dạng định danh.
Thiết kế hệ thống phản hồi.
Tích hợp với nền tảng Messenger.
Triển khai thực tế và đánh giá.
Viết báo cáo.
4. Sản phẩm:
Mơ hình Chatbot hỏi đáp về những vấn đề khi
làm hộ chiếu lần đầu.
TRƯỞNG NGÀNH
GIẢNG VIÊN HƯỚNG DẪN
i
do an
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***---PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Nguyễn Hoàng Thọ
MSSV: 15119048
Họ và tên Sinh viên: Phạm Ngọc Minh Huy
MSSV: 15119024
Ngành: Công nghệ Kỹ thuật máy tính
Tên đề tài: Xây dựng mơ hình Chatbot
Họ và tên Giáo viên hướng dẫn: Đậu Trọng Hiển
ii
do an
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***---PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Nguyễn Hoàng Thọ
MSSV: 15119048
Họ và tên Sinh viên: Phạm Ngọc Minh Huy
MSSV: 15119024
Ngành: Công nghệ Kỹ thuật máy tính
Tên đề tài: Xây dựng mơ hình Chatbot
Họ và tên Giáo viên phản biện: ........................................................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
2. Ưu điểm:
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
3. Khuyết điểm:
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
...........................................................................................................................................
5. Đánh giá loại:
...........................................................................................................................................
6. Điểm: ........................ (Bằng chữ: ................................................................................ )
...........................................................................................................................................
Tp. Hồ Chí Minh, ngày… tháng… năm 2019
Giáo viên phản biện
(Ký & ghi rõ họ tên)
iii
do an
LỜI CẢM ƠN
Để hoàn thành luận văn tốt nghiệp này, khơng chỉ nhờ có sự nỗ lực của bản thân
mà cịn có sự giúp đỡ tận tình của thầy cơ trường Đại học Sư Phạm Kỹ Thuật.
Chúng em xin chân thành cảm ơn q thầy cơ đã tận tình hướng dẫn, giảng dạy
em trong suốt thời gian học tập dưới mái trường Đại học Sư Phạm Kỹ Thuật.
Đặc biệt chúng em xin chân thành cảm ơn thầy Đậu Trọng Hiển, người đã tạo
điều kiện cho em có cơ hội được nghiên cứu và thực hiện đề tài mình mong muốn.
Đề tài này vẫn tương đối mới và được thực hiện trong thời gian ngắn, do đó khơng
tránh khỏi những thiếu sót.
Nên chúng em rất mong được sự đóng góp ý kiến của quý thầy cô.
Chúc quý thầy cô luôn dồi dào sức khỏe và thành công trong công việc.
Chúng em xin chân thành cảm ơn!
iv
do an
TĨM TẮT
Trong đề tài, nhóm thực hiện đã nghiên cứu về lĩnh vực Xử lý ngôn ngữ tự nhiên
(Natural Language Processing) và Máy học (Machine Learning) để xây dựng mô hình
đối thoại Chatbot về một vấn đề cụ thể (Closed Domain). Nhóm thực hiện đã thực hiện
nghiên cứu, thử nghiệm và lựa chọn những phương pháp tiền xử lý dữ liệu thơ (những
câu hỏi của người dùng do nhóm tự thu thập), cũng như là tìm hiểu, thử nghiệm và chọn
lựa mơ hình Máy học phù hợp với bài tốn đề ra của nhóm thực hiện. Với mục đích cuối
cùng là tạo được một mơ hình Máy học nhận dạng được định danh từ câu hỏi của người
dùng, từ đó kết hợp với những kỹ thuật lập trình để tạo ra được một hệ thống phản hồi
hay Chatbot để có thể hỗ trợ người dùng về những thắc mắc khi làm thủ tục hộ chiếu lần
đầu.
Trong quá trình thực hiện, nhóm thực hiện đã tự thu thập dữ liệu từ trang cơ sở
dữ liệu Hành chính quốc gia, và những trang web tư vấn về thủ tục hộ chiếu khác nhau
trên 24 tỉnh thành. Do thời gian thu thập dữ liệu có giới hạn nên tập dữ liệu mà nhóm sử
dụng chưa thực sự nhiều, cũng như là tính khách quan của tập dữ liệu.
Trong q trình huấn luyện, nhóm thực hiện đã huấn luyện được mơ hình có độ
chính xác mong muốn (từ 88% đến 94%). Bên cạnh đó, nhóm thực hiện đã triển khai mơ
hình Chatbot lên nền tảng Facebook Messenger, từ đây, người dùng có thể nhắn tin trực
tuyến với Chatbot và hỏi về những vấn đề thủ tục làm hộ chiếu lần đầu.
v
do an
MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .............................................................................. i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.............................................ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ............................................. iii
LỜI CẢM ƠN ................................................................................................................iv
TÓM TẮT ....................................................................................................................... v
MỤC LỤC ......................................................................................................................vi
DANH MỤC CÁC CHỮ VIẾT TẮT...........................................................................ix
DANH MỤC CÁC BẢNG BIỂU .................................................................................. x
DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ ................................................................xi
CHƯƠNG 1..................................................................................................................... 1
TỔNG QUAN ................................................................................................................. 1
1.1. Giới thiệu tình hình nghiên cứu hiện nay ....................................................... 1
1.1.1.
Giới thiệu chung ..................................................................................... 1
1.1.2.
Tình hình nghiên cứu trong nước ......................................................... 2
1.1.3.
Tình hình nghiên cứu ngồi nước ......................................................... 2
1.2. Tính cấp thiết của đề tài ................................................................................... 3
1.3. Mục tiêu của đề tài............................................................................................ 3
1.4. Phương pháp nghiên cứu ................................................................................. 3
1.5. Đối tượng và phạm vi nghiên cứu ................................................................... 3
1.6. Bố cục của Đồ án ............................................................................................... 4
CHƯƠNG 2..................................................................................................................... 6
CƠ SỞ LÝ THUYẾT ..................................................................................................... 6
2.1. Mơ hình Chatbot ............................................................................................... 6
2.1.1.
Khái niệm về chatbot ............................................................................. 6
2.1.2.
Các loại mơ hình Chatbot ...................................................................... 6
2.2. Tổng quan về việc xây dựng một mơ hình Máy học ...................................... 7
2.3. Tiền xử lý cho dữ liệu dạng chuỗi ................................................................. 10
2.4. Lý thuyết về những thành phần đặc biệt trong mơ hình mạng ................. 12
vi
do an
2.4.1.
Kỹ thuật Word Embedding ................................................................. 12
2.4.2.
Kiến trúc mạng ..................................................................................... 17
2.4.3.
Hàm tối ưu............................................................................................. 22
CHƯƠNG 3: ................................................................................................................. 24
MƠ HÌNH MÁY HỌC TRONG CHATBOT ............................................................ 24
3.1. Giới thiệu về bài toán nhận dạng định danh (Intent Classification) ......... 24
3.2. Yêu cầu của mô hình ...................................................................................... 24
3.3. Thiết kế mơ hình Intent Classification ......................................................... 24
3.3.1.
Xây dựng mơ hình ................................................................................ 24
3.3.2.
Tập dữ liệu ............................................................................................ 25
3.3.3.
Quy trình tiền xử lý dữ liệu ................................................................. 27
3.3.4.
Huấn luyện và tinh chỉnh thơng số trong mơ hình ............................ 30
Chương 4:...................................................................................................................... 31
XÂY DỰNG HỆ THỐNG PHẢN HỒI VÀ ỨNG DỤNG ........................................ 31
4.1. Yêu cầu hệ thống............................................................................................. 31
4.2. Lựa chọn thiết kế ............................................................................................ 31
4.3. Thiết kế hệ thống ............................................................................................ 31
4.3.1.
Sơ đồ khối hệ thống .............................................................................. 31
4.3.2.
Khối nền tảng Facebook Messenger ................................................... 34
4.3.3.
Khối quản lý phản hồi trên server ...................................................... 35
CHƯƠNG 5: ................................................................................................................. 40
THỰC NGHIỆM VÀ ĐÁNH GIÁ .............................................................................. 40
5.1. Kết quả thực nghiệm ...................................................................................... 40
5.1.1.
Kết quả huấn luyện mơ hình Intent Classification............................ 40
5.1.2.
Kết quả thực nghiệm nhắn tin với Chatbot trên máy tính ............... 41
5.1.3.
Kết quả thực nghiệm nhắn tin với Chatbot trên ứng dụng Facebook
Messenger.............................................................................................................. 42
5.2. Đánh giá ........................................................................................................... 46
CHƯƠNG 6: ................................................................................................................. 48
vii
do an
NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN .................................................................. 48
6.1. Nhận xét ........................................................................................................... 48
6.2. Hướng phát triển ............................................................................................ 48
TÀI LIỆU THAM KHẢO ........................................................................................... 49
viii
do an
Từ được viết tắt
AI
Bi-LSTM
Bot
BoW
CV
LSTM
ML
NLP
NN
TF-IDF
XNC
DANH MỤC CÁC CHỮ VIẾT TẮT
Nghĩa gốc
Nghĩa tiếng Việt
(tạm dịch)
Aritificial Intelligence
Trí thơng minh nhân tạo
Bidirectional Long-short term
Bộ nhớ ngắn và dài hạn
memory
hai hướng
Chatbot
Máy trả lời tự động
Bag of words
Túi đựng từ
Computer Vision
Thị giác máy tính
Long-short term memory
Bộ nhớ ngắn và dài hạn
Machine Learning
Máy học
Natural Language Processing
Xử lý ngôn ngữ tự nhiên
Neural Network
Mạng nơ-ron thần kinh
Term Frequency-Inverse
Tần số từ - Tần số văn
Document Frequency
bản đảo
Xuất nhập cảnh
ix
do an
DANH MỤC CÁC BẢNG BIỂU
Bảng 2. 1. Bảng ví dụ về Embedding Matrix................................................................. 13
Bảng 3. 1 Bảng ví dụ tập dữ liệu .................................................................................... 26
Bảng 5. 1 Thông số của mô hình và độ chính xác của mơ hình trên tập kiểm tra. ........ 40
Bảng 5. 2 Bảng so sánh độ chính xác của các mơ hình với số chiều của bộ Embedding
khác nhau........................................................................................................................ 47
x
do an
DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ
Hình 2. 1. Mơ hình tổng quan giải quyết một bài tốn Máy học ..................................... 8
Hình 2. 2. Mơ hình mạng neural cho mơ hình Skip-Gram ............................................ 14
Hình 2. 3. Cách hoạt động của mơ hình Skip-Gram ...................................................... 16
Hình 2. 4. Cấu trúc tổng qt của mạng RNN ............................................................... 17
Hình 2. 5. Ví dụ về cấu trúc đơn giản của mạng RNN .................................................. 17
Hình 2. 6. Cấu trúc mạng LSTM.................................................................................... 18
Hình 2. 7. Cell state trong LSTM ................................................................................... 19
Hình 2. 8. Cấu trúc "cổng" trong LSTM ........................................................................ 19
Hình 2. 9. Cấu trúc "forget gate" trong LSTM .............................................................. 20
Hình 2. 10. Cấu trúc "input gate" trong LSTM.............................................................. 20
Hình 2. 11. Cấu trúc "cell state" trong LSTM ............................................................... 21
Hình 2. 12. Cấu trúc "output gate" trong LSTM............................................................ 21
Hình 2. 13. Cấu trúc tổng quan mạng Bidirectional LSTM ........................................... 22
Hình 3. 1 Q trình xây dựng mơ hình máy học Intent Classification .......................... 25
Hình 3. 2 Các bước trong giai đoạn tiền xử lý ............................................................... 27
Hình 3. 3 Mơ hình mạng của bộ Intent Classification ................................................... 28
Hình 3. 4 Minh họa cho cơng thức Softmax .................................................................. 29
Hình 4. 1 Sơ đồ khối hệ thống phản hồi. ....................................................................... 33
Hình 4. 2 Sơ đồ khối kết nối giữa Facebook Messenger và localhost ........................... 34
Hình 4. 3 Cách hoạt động của phần mềm ngrok ............................................................ 35
Hình 4. 4 Sơ đồ chi tiết hệ thống phản hồi..................................................................... 36
Hình 4. 5 Lưu đồ giải thuật trong việc tìm kiếm trong trả lời cho người dùng ............. 38
Hình 5. 1 Kết quả huấn luyện của mơ hình. ................................................................... 40
Hình 5. 2 Kết quả giao tiếp với Chatbot trên máy tính (1) ............................................ 41
Hình 5. 3 Kết quả giao tiếp với Chatbot trên máy tính (2) ............................................ 42
Hình 5. 4 Kết quả giao tiếp với Chatbot trên máy tính (3) ............................................ 42
Hình 5. 5 Kết quả thực hiện trên Facebook Messenger (1) ........................................... 43
Hình 5. 6 Kết quả thực hiện trên Facebook Messenger (2) ........................................... 43
Hình 5. 7 Kết quả thực hiện trên Facebook Messenger (3) ........................................... 44
Hình 5. 8 Kết quả thực hiện trên Facebook Messenger (4) ........................................... 44
Hình 5. 9 Kết quả thực hiện trên Facebook Messenger (5) ........................................... 45
xi
do an
Hình 5. 10 Kết quả thực hiện trên Facebook Messenger (6) ......................................... 45
Hình 5. 11 Kết quả thực hiện trên Facebook Messenger (7) ......................................... 46
xii
do an
CHƯƠNG 1
TỔNG QUAN
1.1. Giới thiệu tình hình nghiên cứu hiện nay
1.1.1.
Giới thiệu chung
Ngày nay, với sự mở rộng của nền công nghiệp 4.0, nhiều nước trên thế giới đã
và đang nghiên cứu và áp dụng những thành quả đạt được từ những cơng nghệ chính của
nền cơng nghiệp 4.0 này như là: ứng dụng Internet vạn vật (Internet of things) với những
thiết bị thơng minh mang trong mình những cảm biến chính xác giúp con người kiểm
sốt được những khu vực sản xuất của mình như nơng trại, nhà máy… Và cịn có những
ứng dụng ban đầu của cơng nghệ Chuỗi khối (Block chain) vào ngành tài chính.
Thêm vào đó, một công nghệ nữa cũng rất hấp dẫn trong sự phát triển của nền
cơng nghiệp 4.0 đó chính là Trí thông minh nhân tạo (Aritificial Intelligence). Mọi người
thường nghĩ là công nghệ này chỉ dùng làm bộ não cho robot, nhưng thực tế, trí thơng
minh nhân tạo được cấu thành từ rất nhiều kỹ thuật khác nhau để làm cho một bộ máy
có thể thực hiện các kỹ năng như một con người như là: Nhìn (Computer Vision), Nghe
– Nói (Speech), và Suy nghĩ. Và một trong những kỹ thuật chính cho việc Suy nghĩ của
một trí thơng minh nhân tạo chính là Máy học (Machine Learning). Những thuật tốn
trong máy học còn được áp dụng cho rất nhiều bài tốn khác nhau, như là: nhận dạng
khn mặt, phân loại thư rác (Spam filtering), hệ thống đưa ra khuyến nghị (Recommend
System)…
Bên cạnh đó, nhiều ơng lớn trong giới cơng nghệ như Google, Apple… đã và tận
dụng những thuật toán trong máy học để tạo ra những sản phẩm để phục vụ người dùng
của họ. Một trong những sản phẩm đáng chú ý của họ ngày nay chính là các trợ lý ảo
thông minh như Google Assistant, Siri… bước đầu đã đem lại những kết quả khả quan
khi có thể giao tiếp tốt với con người một cách lưu loát, nhờ vào sử dụng các kỹ thuật
Xử lý ngôn ngữ tự nhiên (Natural Language Processing) cùng với những thuật toán mạnh
mẽ trong máy học.
Đằng sau những trợ lý ảo này là những thuật tốn để có thể hiểu được ý định của
người dùng (user’s intent) và từ đó có thể đưa ra câu trả lời và tương tác thích hợp. Ngồi
ra, việc để những trợ lý này có thể duy trì một cuộc đối thoại dài (long conversation) với
người dùng thì những nhà phát triển phải phát triển hệ thống quản lý đối thoại (Dialouge
Management). Tóm lại, việc phát triển một trợ lý ảo thực sự là một ứng dụng mà trong
1
do an
đó có sự kết hợp của rất nhiều vấn đề nghiên cứu liên quan, và cần một sự kết hợp hài
hịa để trợ lý ảo có thể hoạt động một cách ổn định và mang lại hiệu quả cao nhất về mặt
trải nghiệm cũng như phục vụ được các mong muốn của người dùng.
Có một chút khác biệt với Trợ lý ảo có hiểu biết về nhiều lĩnh vực nhưng khơng
chun sâu, thì khái niệm chatbot thường được đề cập như là một trợ lý nhưng được
dùng vào chuyên sâu một hoặc vài lĩnh vực liên quan và có tính tập trung, nhằm mang
lại hiệu quả tốt nhất trong lĩnh vực đó. Tiềm năng từ chatbot là rất lớn, ví dụ như trong
mảng Chăm sóc khách hàng, chatbot có thể hỗ trợ nhanh chóng cho người dùng về những
vấn đề mà hướng giải quyết không quá phức tạp và nhiều thủ tục liên quan. Từ đó, khách
hàng có thể tiết kiệm thời gian, cũng như hiệu quả về việc chăm sóc khách hàng sẽ được
nâng cao, đường dây chăm sóc khách hàng sẽ khơng cịn q kẹt, nhân viên chăm sóc
khách hàng sẽ có thể hỗ trợ cho khách hàng với những vấn đề có tính phức tạp cao hơn.
Ở Việt Nam và thế giới hiện tại, những ứng dụng của Chatbot còn khá khiêm tốn
và thường chỉ được triển khai bởi những cơng ty lớn vì một số khó khăn về mặt phức tạp
của dữ liệu, đội ngũ các nhà phát triển có kinh nghiệm. Đặc biệt là trong lĩnh vực Hành
chính cơng, vốn rất nhiều thủ tục, văn bản, luật lệ còn khá kén người đọc. Nắm bắt được
mong muốn đó, nhóm thực hiện muốn xây dựng một mơ hình Chatbot đối thoại hỗ trợ
người dùng có thể nắm bắt ngắn gọn về những điều cần thiết về thủ tục hành chính. Thế
nên, nhóm thực hiện chúng tơi quyết định chọn đề tài Xây dựng mơ hình Chatbot cho
lĩnh vực Hành chính cơng trong thủ tục cấp Hộ chiếu lần đầu.
1.1.2.
Tình hình nghiên cứu trong nước
Hiện nay, xu hướng chung ở trong và ngoài nước là xây dựng một nền tảng
(platform) để những lập trình viên (developer) có thể phát triển những ứng dụng chatbot
cho từng lĩnh vực cụ thể. Bên cạnh đó, cũng có những nhà phát triển đã cho ra đời những
sản phẩm chatbot của riêng mình.
Ở Việt Nam có những nền tảng nổi trội sau đây:
- Nền tảng xây dựng chatbot của FPT.
- Nền tảng Sumi (Huy, Đức, Thiện).
1.1.3.
Tình hình nghiên cứu ngồi nước
Trên thế giới hiện tại có rất nhiều nền tảng hỗ trợ việc xây dựng mơ hình
chatbot:
2
do an
1.2.
RASA.
Dialogflow (Google).
Amazon Lex (Amazon).
Facebook Chatbot (Facebook).
Tính cấp thiết của đề tài
Hiện nay, Chatbot đang tiếp tục là xu hướng phát triển trong lĩnh vực cơng nghiệp
nói chung và lĩnh vực trợ lý nói riêng. Qua đề tài này, nhóm thực hiện mong muốn có
thể áp dụng những kiến thức đã học để đưa ra giải pháp để phát triển Chatbot hỗ trợ
người dùng ở những lĩnh vực nhỏ hẹp và hạn chế về mặt dữ liệu. Xa hơn nữa là nhóm
thực hiện có thể phát triển hệ thống Chatbot có ở những lĩnh vực rộng hơn, đáp ứng được
nhu cầu đa dạng của người dùng.
1.3.
Mục tiêu của đề tài
Mục tiêu mà nhóm thực hiện chúng tơi hướng đến là xây dựng một mơ hình Chatbot
có thể trả lời và tương tác với người dùng về những câu hỏi, thắc mắc khi đi làm hộ chiếu
lần đầu.
1.4.
Mơ hình máy học để phân loại ý định của người đạt độ chính xác: 87% –95%
trên tập dữ liệu kiểm tra (test).
Duy trì cuộc hội thoại tốt.
Áp dụng mơ hình chatbot trên nền tảng nhắn tin trực tuyến Messenger
(Facebook).
Phương pháp nghiên cứu
Để thực hiện được đề tài, nhóm nghiên cứu đã thực hiện những phương pháp nghiên
cứu như sau:
1.5.
-
Tham gia những khóa học Online hướng dẫn về Máy học [1], [2].
Tham khảo những tài liệu trên những trang web [3], [4] và đọc những bài báo liên
quan [5], [6].
Tiến hành thực nghiệm và hiệu chỉnh mơ hình.
Đối tượng và phạm vi nghiên cứu
Tập dữ liệu do nhóm thực hiện thu thập gồm: 650 mẫu (Samples), trong đó có 13
nhãn (Label), và 50 mẫu cho mỗi nhãn. Trong đó mẫu là tập các câu hỏi của
người dùng mà nhóm thu thập từ 24 tỉnh thành dựa trên các trang web tư vấn về
thủ tục làm hộ chiếu ở các tỉnh đó, bên cạnh đó, nhóm thực hiện tự soạn thêm
mẫu cho tập dữ liệu.
3
do an
-
-
-
1.6.
Dữ liệu phục vụ cho việc trả lời cho người, nhóm thực hiện tham khảo từ cách trả
lời của những quản trị viên trên những trang web tư vấn có uy tín và được người
dùng tin cậy và có lượt trao đổi nhiều và tích cực, cũng như nhóm thực hiện cũng
có đối chiếu lại thơng tin trên trang web cơ sở dữ liệu hành chính cơng.
Trong q trình thu thập dữ liệu, nhóm thực hiện hồn tồn khơng có sự tư vấn
hay trao đổi với những chuyên gia trong lĩnh vực hành chính cơng nên những dữ
liệu của nhóm thực hiện có thể khơng chính xác hồn tồn, và chủ quan.
Bên cạnh đó, ứng dụng chatbot của nhóm thực hiện chỉ giải quyết những vấn đề
về thủ tục cấp Hộ chiếu lần đầu cho người có những giấy tờ liên quan đầy đủ,
ngồi ra, chatbot sẽ khơng giải quyết những vấn đề liên quan như:
o Mất Chứng minh nhân dân (CMND).
o Mất hộ khẩu.
o Hộ khẩu thuộc các dạng KT1, KT2, KT3…
o Đổi hộ chiếu.
o Cấp hộ chiếu cho trẻ em.
o Thủ tục làm hộ chiếu ở tỉnh thành đang tạm trú, hoặc khác với tỉnh thành
ghi trong hộ khẩu.
Bố cục của Đồ án
Để mô tả kết quả nghiên cứu, luận văn được chia làm những phần như sau:
CHƯƠNG 1: TỔNG QUAN: Trong chương này nhóm thực hiện trình bày tổng quan
về đề tài, tình hình nghiên cứu, động lực lựa chọn đề tài cũng như tính cấp thiết xoay
quanh và trình bày cấu trúc của đề tài.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT: Giới thiệu khái niệm về những thuật tốn máy
học và kỹ thuật trong xử lý ngơn ngữ tự nhiên, quy trình và giải thuật để xây dựng mơ
hình máy học cho chatbot, cũng như các thư viện chính được sử dụng.
CHƯƠNG 3: MƠ HÌNH MÁY HỌC TRONG CHATBOT: Trình bày phương pháp để
xây dựng mơ hình máy học, cách tối ưu mơ hình máy học về bài toán nhận dạng định
danh (Intent Classification).
CHƯƠNG 4: XÂY DỰNG HỆ THỐNG PHẢN HỒI VÀ ỨNG DỤNG: Trình bày
phương pháp mà nhóm thực hiện để xây dựng hệ thống phản hồi cho chatbot và cách
ứng dụng hệ thống vào nền tảng Facebook Messenger.
4
do an
CHƯƠNG 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ: Trình bày kết quả huấn luyện mơ hình
nhận dạng định danh và kết quả thực nghiệm của ứng dụng chatbot.
CHƯƠNG 6: NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN: Trình bày những nhận xét về
mơ hình máy học, mơ hình chatbot, ưu nhược điểm, và hướng phát triển của đề tài.
5
do an
CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1. Mơ hình Chatbot
2.1.1.
Khái niệm về chatbot
Theo Wiki [7], chatbot (cịn có nhiều tên gọi như conversational bot) là một chương
trình máy tính hoặc một Trí thông minh nhân tạo (AI) tương tác với người dùng bằng
ngôn ngữ tự nhiên dưới dạng âm thanh (Audiotory) hoặc dạng tin nhắn (Textual).
Một cách tổng quan, nhóm thực hiện phân loại chatbot gồm 2 loại, tương ứng với
việc ứng dụng cho 2 phạm vi khác nhau:
-
Phạm vi mở (Open domain): Những mơ hình chatbot ở đây là một phần trong Hệ
thống hội thoại (Dialogue system) và được gọi như là các trợ lý ảo (Virtual
Assistance) như Siri (Apple), Google Assistant (Google)… Những trợ lý ảo này
có thể trả lời người dùng về những câu hỏi liên quan đến những lĩnh vực khác
nhau từ chính trị, tin tức,… Tuy nhiên, những trợ lý này không thể trả lời chuyên
sâu về một lĩnh vực, ví dụ như yêu cầu về cách lựa chọn quần áo, đặt đồ ăn…
- Phạm vi hẹp (Closed domain): Ngược lại với mơ hình chatbot ở trên, những mơ
hình chatbot này có thể trả lời về những vấn đề chuyên sâu hơn về một lĩnh vực
nào đó. Bot có thể hỗ trợ người dùng trong việc tư vấn về vấn đề lựa chọn quần
áo, đặt đồ ăn… Ví dụ như: chatbot tư vấn quần áo (H&M), chatbot đặt order
(Dominos Pizza)…
2.1.2.
Các loại mơ hình Chatbot
Có rất nhiều cách để xây dựng một mơ hình Chatbot mà có thể tương tác với con
người. Ở đây, nhóm thực hiện xin giới thiệu hai cách chính để thực hiện việc này:
-
Triển khai theo mơ hình “Tn theo ngun tắc” (Rule – based model): Ở mơ
hình này, bot sẽ trả lời theo những “nguyên tắc” đã được định nghĩa trước, những
“nguyên tắc” này có thể là những dịng u cầu từ đơn giản đến phức tạp. Với
những nguyên tắc này, những nhà phát triển phải xác định các kịch bản phản hồi
cho một tin nhắn phù hợp với mẫu quy định. Có thể hiểu nôm na rằng nhà phát
triển sẽ dùng những lệnh if … else để xây dựng nên kịch bản cho một cuộc hội
thoại. Tuy nhiên những mơ hình triển khai theo cách này thường không trả lời
được những câu hỏi mang tính phức tạp.
6
do an
-
Triển khai theo hướng “Sử dụng những thuật toán Máy học”: Những mơ hình
triển khai theo hướng này có hiệu quả hơn so với cách Tuân theo nguyên tắc ở
trên. Mơ hình triển khai theo cách này thường có 2 loại như sau:
o Mơ hình dựa trên sự thu hồi (Retrieval – based model): Bot sẽ được huấn
luyện dựa trên tập câu hỏi và những câu trả lời khả thi. Đối với mỗi câu
hỏi, bot có thể tìm ra những câu trả lời liên quan (relevant) nhất từ tập dữ
các câu trả lời khả thi sau đó sẽ xuất một câu trả lời. Mặc dù mơ hình bot
này khơng có khả năng tạo ra những câu trả lời mới nhưng nếu mơ hình
được huấn luyện với một tập dữ liệu lớn, và những dữ liệu này được xử lý
một cách thơng minh thì bot vẫn có thể xử lý những câu hỏi một cách tốt
nhất có thể. Mơ hình bot này sẽ không gặp vấn đề về việc trả lời những
câu bị sai ngữ pháp bởi vì những câu trả lời đã được xác định trước.
o Mơ hình có khả năng tự tạo ra câu trả lời (Generative Model): Mô hình bot
này sẽ tốt hơn mơ hình trên về khả năng tự tạo ra những câu trả lời mới.
Mơ hình này sẽ lấy từng từ trong câu hỏi sau đó tạo ra những câu trả lời.
Điều này cũng làm cho mơ hình dễ dẫn tới lỗi về mặt cú pháp hoặc phát
âm. Để xử lý những lỗi này, mơ hình cần được huấn luyện một cách chính
xác nhiều hơn nữa. Người ta thường sử dụng mơ hình Dịch ngơn ngữ
(Language translation models) để xây dựng mơ hình Generative bot. Tuy
nhiên, những bước phát triển cho mơ hình chatbot này vẫn cịn hạn chế do
nhiều vấn đề về thuật tốn, và chưa thể đạt hiệu quả như mong muốn.
Với mong muốn thực hiện mơ hình chatbot bằng những thuật tốn máy học, và phạm
vi đề tài cịn hẹp, nhóm thực hiện chọn cách xây dựng một mơ hình máy học mà có kết
hợp các kỹ thuật giữa Rule – based model và Retrieval – based model.
2.2.
Tổng quan về việc xây dựng một mơ hình Máy học
Nhìn chung, khi học về Machine Learning, người học sẽ được thực hiện những thuật
toán máy học trên những tập dữ liệu có sẵn để huấn luyện và tối ưu mơ hình,… Tuy
nhiên, khi giải quyết các bài toán trong thực tế bằng Machine Learning, chúng ta sẽ cần
phải làm rất nhiều việc, từ những khâu như thu thập dữ liệu, đánh giá dữ liệu, và sau đó
chúng ta mới có thể thực hiện những bước như Tiền xử lý dữ liệu (Data
Preprocessing),… và cuối cùng mới có thể áp dụng những thuật tốn máy học để có huấn
luyện ra những mơ hình máy học tốt nhất có thể [8].
Sau đây là một bức tranh tổng quan về mơ hình chung cho các bài tốn Máy học:
7
do an
Hình 2. 1. Mơ hình tổng quan giải quyết một bài tốn Máy học
Có hai giai đoạn (phases) lớn là giai đoạn Huấn luyện (Training phase) và giai đoạn
Kiểm tra (Testing phase).
-
Training phase: Có hai khối có nền màu xanh lục chúng ta cần phải thiết kế:
o Bộ trích chọn đặc trưng (Feature Extractor):
Đầu ra của khối này cũng như mục đích của việc trích chọn đặc
trưng là tạo ra được một bộ trích chọn đặc trưng biến dữ liệu thô
ban đầu thành dữ liệu phù hợp với từng mục đích khác nhau.
Đầu vào của khối này gồm:
Dữ liệu thô (raw input) là tất cả các thông tin chúng ta biết
về dữ liệu. Nếu là dữ liệu bán hàng, ta sẽ có các thơng tin về
sản phẩm được bán, ngày giờ bán, giá, thương hiệu… Dữ
liệu thô này thường khơng ở dạng vector, khơng có số chiều
như nhau. Hoặc có thể có số chiều như nhau, nhưng số chiều
8
do an
quá lớn (ví dụ, ảnh màu 1000x1000 pixel), như vậy, sẽ khơng
có lợi cho lưu trữ và tính tốn.
Ngõ ra của tập dữ liệu (output of training set) (không bắt
buộc): dữ liệu này thường không cần sử dụng. Tuy nhiên,
trong nhiều trường hợp, dữ liệu output của training set cũng
được sử dụng để tạo ra Feature Extractor. Ví dụ: trong bài
tốn classification, ta khơng quan tâm nhiều đến việc mất
thông tin hay không, ta chỉ quan tâm đến việc những thơng
tin cịn lại có đặc trưng cho từng class hay khơng. Ví dụ, dữ
liệu thơ là các hình vng và hình tam giác có màu đỏ và
xanh. Trong bài toán phân loại đa giác, các output là tam giác
và vng, thì ta khơng quan tâm tới màu sắc mà chỉ quan
tâm tới số cạnh của đa giác. Ngược lại, trong bài toán phân
loại màu, các class là xanh và đỏ, ta không quan tâm tới số
cạnh mà chỉ quan tâm đến màu sắc thôi.
Những hiểu biết trước về dữ liệu (Prior knowledge about
data) (Không bắt buộc): Đôi khi những giả thiết khác về dữ
liệu cũng mang lại lợi ích. Ví dụ, trong bài toán phân loại
(classification), nếu ta biết dữ liệu là (gần như) độc lập tuyến
tính (linearly separable) thì ta sẽ đi tìm một ma trận chiếu
sao cho ở trong không gian mới, dữ liệu vẫn đảm bảo tính
linearly separable, việc này thuận tiện hơn cho phần
classification vì các thuật tốn linear, nhìn chung, đơn giản
hơn.
Sau khi xây dựng được feature extractor thì ta cũng sẽ thu được những Đặc trưng
được trích chọn (extracted features) từ raw input data. Những extracted features này
được dùng để đem vào những mơ hình, giải thuật ở khối tiếp theo.
o Những giải thuật chính sử dụng (Main Algorithms): Ở đây tùy vào bài toán
là phân loại hay hồi quy mà chúng ta sẽ có những lựa chọn giải thuật khác
nhau.
o Có một số lưu ý sau về giai đoạn này:
Trong một số thuật toán cao cấp hơn, việc huấn luyện feature
extractor và main algorithm được thực hiện cùng lúc với nhau chứ
không phải từng bước như trên.
9
do an
-
2.3.
-
Đặc biệt là, khi xây dựng bộ feature extractor và main algorithms,
chúng ta không được sử dụng bất kỳ thông tin nào trong tập test
data. Ta phải giả sử rằng những thơng tin trong test data chưa được
nhìn thấy bao giờ.
Testing phase: Bước này đơn giản hơn nhiều. Với raw input mới, ta sử dụng
feature extractor đã tạo được ở trên (tất nhiên không được sử dụng output của nó
vì output là cái ta đang đi tìm) để tạo ra feature vector tương ứng. Feature vector
được đưa vào main algorithms đã được học ở training phase để dự đoán output.
Tiền xử lý cho dữ liệu dạng chuỗi
Túi đựng từ (Bag of Words/BoW):
o Mơ hình bag-of-words là một biểu diễn đơn giản hóa được sử dụng trong
xử lý ngơn ngữ tự nhiên và truy xuất thông tin (Information Retrieval).
Trong mô hình này, một văn bản (chẳng hạn như một câu hoặc một tài
liệu) được thể hiện dưới dạng túi (bag) của các từ của nó, khơng quan tâm
đến ngữ pháp và thậm chí trật tự từ nhưng vẫn giữ tính đa dạng. [7]
Ví dụ: Ta có 2 đoạn văn như sau
(1) John likes to watch movies. Mary likes movies too.
(2) John also likes to watch football games.
Dựa trên hai văn bản này, ta có danh sách các từ được sử dụng, được gọi là từ
điển với 10 từ như sau:
["John", "likes", "to", "watch", "movies", "also", "football", "games", "Mary", "too"]
Với mỗi văn bản, ta sẽ tạo ra một vector đặc trưng có số chiều bằng 10, mỗi phần
tử đại diện cho số từ tương ứng xuất hiện trong văn bản đó. Với hai văn bản trên, ta sẽ
có hai vector đặc trưng là:
(1) [1, 2, 1, 1, 2, 0, 0, 0, 1, 1]
(2) [1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
Văn bản (1) có 1 từ “John”, 2 từ “likes”, 0 từ “also”, 0 từ “football”, … nên ta thu
được vector tương ứng như trên.
o Nhược điểm:
Trong thực tế, từ điển sẽ có số chiều rất lớn. vector đặc trưng thu
được sẽ rất dài.
10
do an
-
Có rất nhiều từ trong từ điển khơng xuất hiện trong một văn bản.
Như vậy các vector đặc trưng thu được thường có rất nhiều phần tử
bằng 0. Các vector có nhiều phần tử bằng 0 được gọi là sparse vector
(sparse hiểu theo nghĩa là thưa thớt, rải rác). Để việc lưu trữ được
hiệu quả hơn, ta không lưu cả vector đó mà chỉ lưu vị trí của các
phần tử khác 0 và giá trị tương ứng. Lưu ý: nếu có hơn 50% số phần
tử khác 0, việc làm này lại phản tác dụng.
Thi thoảng có những từ hiếm gặp không nằm trong từ điển. Cách
thường được dùng là mở rộng vector đặc trưng thêm 1 phần tử, gọi
là phẩn tử <Unknown>. Mọi từ khơng có trong từ điền đều được
coi là <Unknown>.
Bên cạnh đó, những từ hiếm đôi khi lại mang những thông tin quan
trọng nhất mà chỉ loại văn bản đó có.
Nhược điểm lớn nhất của kỹ thuật “Túi đựng từ” là nó khơng mang
thông tin về thứ tự của các từ. Cũng như sự liên kết giữa các câu,
các đoạn văn trong văn bản. Ví dụ, ba câu sau đây: “Em u anh
khơng?”, “Em không yêu anh”, và “Không, (nhưng) anh yêu em”
khi được trích chọn đặc trưng bằng BoW sẽ cho ra ba vector giống
hệt nhau, mặc dù ý nghĩa khác hẳn nhau.
TF – IDF (Term Frequency-Inverse Document Frequency) là một phương pháp
thống kê nhằm phản ánh mức độ quan trọng của một từ đối với văn bản
(document) trong tập các văn bản (corpus).
o Nó thường được sử dụng như một yếu tố trọng số trong các tìm kiếm truy
xuất thơng tin, khai thác văn bản và mơ hình hóa người dùng.
o Giá trị tf - idf tăng theo tỷ lệ đến số lần một từ xuất hiện trong văn bản và
được bù bởi số lượng văn bản trong tập các văn bản mà chứa từ đó, điều
này giúp điều chỉnh cho thực tế là một số từ xuất hiện thường xuyên.
o Công thức như sau:
TF (Term Frequency) là tần số xuất hiện của 1 từ trong 1 văn bản
có cách tính như sau:
𝑓 (𝑡, 𝑑 ) /
𝑓(𝑡 , 𝑑)
∈
Trong đó:
11
do an