Tải bản đầy đủ (.pdf) (65 trang)

Nghiên cứu xây dựng chatbot trả lời tự động áp dụng kỹ thuật học máy cho ứng dụng tin nhắn văn bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.47 MB, 65 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Nghiên cứu xây dựng chatbot trả lời
tự động áp dụng kỹ thuật học máy
cho ứng dụng tin nhắn văn bản

PHẠM THỊ PHƯƠNG ANH
Ngành: Khoa học máy tính

Giảng viên hướng dẫn:

TS. Phạm Huy Hồng

Trường:

Cơng nghệ Thơng tin và Truyền thơng

Hà Nội, 09/2022


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Nghiên cứu xây dựng chatbot trả lời
tự động áp dụng kỹ thuật học máy
cho ứng dụng tin nhắn văn bản

PHẠM THỊ PHƯƠNG ANH
Ngành: Khoa học máy tính


Giảng viên hướng dẫn: TS. Phạm Huy Hồng ——————
Trường:

Cơng nghệ Thơng tin và Truyền thơng

Hà Nội, 09/2022


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
————————————

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn: Phạm Thị Phương Anh
Đề tài luận văn: Nghiên cứu xây dựng chatbot trả lời tự động áp dụng kỹ
thuật học máy cho ứng dụng tin nhắn văn bản
Chuyên ngành: Khoa học máy tính
Mã số SV: CB190209
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác
nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng
ngày 30/07/2022 với các nội dung sau:
• Sửa một số ý trong luận văn chưa phù hợp, theo ý kiến của Hội
đồng.
• Cấu trúc lại bố cục của luận văn:
- Chương 1: Bổ sung thêm các so sánh về nền tảng của Chatbot. Chuyển
mục 1.6(Tổng quan về Deeplearning) sang chương 2.
- Chương 2: Bỏ mục 2.2 (Tổng quan Tensorflow framework), bổ sung thêm
một số nội dung về mạng nơ – ron hồi quy RNN, mơ hình Transformer, so sánh
ưu điểm của mơ hình Transformer và mơ hình RNN, mơ hình DIET
- Chương 3: Cấu trúc lại chương 3 theo mơ hình học máy. Bỏ mục 3.2 (Mơ

hình huấn luyện Chatbot). Bổ sung sơ đồ quy trình hoạt động của Chatbot, giới
thiệu xây dựng về bộ dữ liệu sẽ sử dụng.
• Bổ sung một số tài liệu tham khảo đã sử dụng cho đầy đủ.
• Sửa các lỗi chính tả, lỗi định dạng, bố cục văn bản.
Hà Nội, ngày 06 tháng 09 năm 2022

Giảng viên hướng dẫn

Tác giả luận văn

CHỦ TỊCH HỘI ĐỒNG


LỜI CẢM ƠN
Đầu tiên, cho tôi xin gửi lời cảm ơn chân thành đến các Thầy, Cô giáo
trong viện Công nghệ thơng tin và Truyền thơng. Trong suốt q trình học tập
cũng như thực hiện Luận văn tốt nghiệp, các Thầy, Cô đã chỉ dạy không chỉ kiến
thức, kỹ năng mà cịn truyền cho tơi những cảm hứng và nhiệt huyết để có thể
vững tâm trong suốt thời gian qua và còn cho chặng đường dài trong tương lai
sắp tới. Tơi xin bày tỏ lịng biết ơn sâu sắc tới TS. Phạm Huy Hoàng. Thầy là
người đã định hướng, chỉ bảo tận tình, là người động viên khích lệ tơi rất nhiều
để tơi có thể hồn thành được Luận văn tốt nghiệp này. Đồng thời xin gửi lời
cảm ơn đến gia đình, các anh chị, bạn bè, đồng nghiệp trong cơ quan đã ủng hộ
tôi về tinh thần trong suốt quá trình thực hiện Luận văn.
Học viên

Phạm Thị Phương Anh


Tóm tắt nội dung luận văn

Trong những năm gần đây, khoa học công nghệ đang dần tiến đến một
tầm cao mới. Mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghệ nhưng
Chatbot đang được nghiên cứu và phát triển với tốc độ chóng mặt bởi các trung
tâm nghiên cứu và rất nhiều lĩnh vực được ứng dụng cơng nghệ mới này. Chatbot
là hình thức thơ sơ của phần mềm 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ác phương pháp nhập văn
bản, âm thanh, cảm ứng có thể trả lời các câu hỏi và xử lý các tình huống là một
cơng cụ có thể giao tiếp, tương tác với con người thơng qua một trí tuệ nhân tạo
đã được lập trình sẵn.
Đại dịch Covid-19 kéo dài trong hơn một năm qua đã gây nhiều ảnh
hưởng nghiêm trọng đến việc lập kế hoạch học tập của học sinh gặp nhiều khó
khăn. Nhiều học sinh chia sẻ cảm thấy bị rối vì khơng biết lựa chọn phương thức
xét tuyển nào phù hợp. Các bạn thường mắc lỗi sai khi chọn các phương thức xét
tuyển tiện nhất mà thường không quan tâm đến thế mạnh, năng lực của bản thân
dẫn đến chọn sai phương thức xét tuyển. Cũng có trường hợp học sinh lại “đặt
cược” vào một phương thức xét tuyển. Việc lựa chọn như vậy cũng làm hạ thấp
khả năng trúng tuyển. Ảnh hưởng của đại dịch làm cho công tác tư vấn tuyển
sinh chưa đạt được hiệu quả cao ảnh hưởng đến chất lượng đầu vào. Việc trực
tiếp về các trường THPT, tư vấn trực tiếp là việc khó khăn với tình hình dịch
bệnh như hiện nay nên không đáp ứng được nhu cầu cung cấp thông tin cho các
em học sinh mọi lúc mọi thời điểm.
Nhắc đến Chatbot thì khơng thể khơng kể đến những RNN, LSTM, neural
network… Tuy nhiên việc xây dựng một Chatbot hiện nay đã khơng cịn q
phức tạp như vậy. Qua q trình nghiên cứu các thuật tốn, và các framework, tôi
đề xuất sử dụng RASA nhằm thực hiện tối thiểu hóa các bước để dựng được một
trợ lý ảo Chatbot. Và để trực quan hóa q trình xây dựng Chatbot áp dụng
RASA framework tôi đã dựng sản phẩm chatbot hỗ trợ tư vấn tuyển sinh đại học
cụ thể là trong phòng tuyển sinh của Trường Đại học Nội vụ Hà Nội. Với những
chức năng chính như giải đáp trực tiếp về các thông tin ngành học, phương thức
xét tuyển, cách thức nộp hồ sơ, ….



MỤC LỤC
MỞ ĐẦU ............................................................................................................... 1
TỔNG QUAN VỀ CHATBOT .................................................... 3
1.1 Khái niệm Chatbot ........................................................................................... 3
1.2 Các thành phần của Chatbot ............................................................................ 3
1.3 Một số phân loại khác về Chatbot ................................................................... 5
1.3.1 Chatbot dựa trên luật (Rules Based Chatbot) ..................................... 5
1.3.2. Chatbot dựa trên trí tuệ nhân tạo và học máy (AI and Machine
learning) ............................................................................................................ 6
1.3.3. Chatbot phạm vi đóng (Close – domain)............................................ 7
1.3.4. Chatbot phạm vi mở (Open – domain) ............................................... 7
1.4. Một số nền tảng công nghệ xây dựng Chatbot ................................................ 7
1.5. Một số ứng dụng của Chatbot........................................................................ 11
CƠ SỞ LÝ THUYẾT .................................................................. 13
2.1 Cơ bản về Deep learning ............................................................................... 13
2.2 Mạng nơ-ron hồi quy RNN (Recurrent Neural Network) ............................. 14
2.3 Mơ hình Transformer..................................................................................... 16
2.3.1. Mã hóa vị trí ....................................................................................... 17
2.3.4. Tầng chú ý đa đầu............................................................................. 21
2.3.5. Kết nối phần dư và Lớp chuẩn hóa................................................... 21
2.3.6. Bộ giải mã......................................................................................... 22
2.4 Ưu điểm của mơ hình Transformer so với mơ hình RNN ............................. 24
2.5 Mơ hình DIET ............................................................................................... 25
2.6 RASA Framework ......................................................................................... 27
2.6.3. Intent ................................................................................................. 31
2.6.4. Stories ............................................................................................... 31
2.6.5. Actions .............................................................................................. 31
2.6.6. Policies ............................................................................................. 32

2.6.7. Slots .................................................................................................. 32
2.6.8. Pipeline và các compoments ............................................................ 32

i


XÂY DỰNG CÔNG CỤ HỎI ĐÁP THÔNG TIN TƯ VẤN
TUYỂN SINH ĐẠI HỌC ................................................................................... 34
3.1 Giới thiệu bài toán .......................................................................................... 34
3.2 Sơ đồ quy trình hoạt động của Chatbot Tư vấn tuyển sinh Đại học Nội vụ HN36
3.3 Xây dựng dữ liệu Chatbot ..............................................................................38
3.3.1. Xây dựng ý định (intent) ...................................................................38
3.3.2. Xây dựng câu trả lời cho Chatbot ..................................................... 42
3.3.3. Đào tạo cho chatbot ...........................................................................44
3.4 Cài đặt chương trình ....................................................................................... 44
3.4.1. Kịch bản hỏi về phương thức tuyển sinh ..........................................45
3.4.2. Kịch bản không hiểu câu hỏi của người dùng ...................................46
3.4.3. Kịch bản người dùng hỏi theo stories được xây dựng sẵn ................47
3.5 Thử nghiệm và đánh giá chương trình ........................................................... 48
3.6 Đánh giá .........................................................................................................51
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ......................................................... 52
TÀI LIỆU THAM KHẢO ..................................................................................53

ii


DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT

Từ viết


Diễn giải

Từ ch̉n

tắt
AI
API

Artificial Intelligence

Trí tuệ nhân tạo

Application Programming

Giao diện lập trình ứng dụng

Interface
CRF

Conditional Random Fields

Mơ hình CRF

DL

Deep learning

Học sâu

DM


Dialog Management

Quản lý hội thoại

FAQ

Frequently Asked Questions

Các câu hỏi thường gặp

NLG

Natural language generation

Sinh ngôn ngữ tự nhiên

NLP

Natural Languague Processing

Xử lý ngôn ngữ tự nhiên

NLU

Natural language understanding

Hiểu ngôn ngữ tự nhiên

iii



DANH MỤC HÌNH VẼ BẢNG
Hình 1-1: Kiến trúc chung của chatbot ...................................................................4
Hình 1-2: Chatbot hỗ trợ nút bấm để thao tác của Pizza Hut .................................5
Hình 1-3:Chatbot Messenger của trang Pizzahut .................................................12
Hình 2-1: Mạng nơ-ron hồi quy [4] ......................................................................14
Hình 2-2: Kiến trúc mơ hình Transformer ............................................................ 16
Hình 2-3:Kiến trúc lớp của bộ mã hóa và bộ giải mã trong Transformer ............18
Hình 2-4: Kiến trúc chi tiết một lớp của bộ mã hóa trong Transformer ...............19
Hình 2-5: Mơ tả kiến trúc Multi-Head Attention ..................................................21
Hình 2-6: Kiến trúc của một lớp trong khối giải mã ............................................22
Hình 2-7: Tổng quan quá trình biến đổi vectơ đầu ra của các lớp giải mã thành từ
vựng tương ứng .....................................................................................................23
Hình 2-8: So sánh Transformer với các mơ hình khác dựa trên kết quả đánh giá
của bài báo ............................................................................................................24
Hình 2-9: Các thành phần của Rasa [8] ................................................................ 28
Hình 2-10: Chế độ học tương tác của Rasa [8] ..................................................... 29
Hình 2-11: Cách thức Rasa phản hồi một tin nhắn ...............................................29
Hình 2-12:Cấu trúc của một chương trình Rasa ................................................... 30
Hình 3-1: Cấu trúc hệ thống Chatbot Tư vấn tuyển sinh Đại học Nội vụ Hà Nội35
Hình 3-2: Sơ đồ quy trình hoạt động của Chatbot ................................................36
Hình 3-3: Đào tạo một model ...............................................................................44
Hình 3-4: Giao diện hỗ trợ nút bấm để thao tác ................................................... 45
Hình 3-5: Trường hợp Chatbot khơng hiểu ý người dùng ....................................46
Hình 3-6: Kịch bản người dùng hỏi theo stories................................................... 47
Hình 3-7: Biểu đồ thống kê mức độ tin cậy dự đốn ý định (intent) ................... 49
Hình 3-8: Biểu đồ ma trận nhầm lẫn (Confusion matrix) giữa các nhãn dự đoán
và nhãn đúng trong tác vụ phân loại ý định .......................................................... 50


iv


DANH MỤC BẢNG
Bảng 1. 1: So sánh cơ bản 03 nền tảng: Chatbot Chatfuel, Dialogflow và Rasa ... 9
Bảng 3. 1: Bảng các ý định (intent) của chabot ................................................... 40
Bảng 3. 2: Thông số đo intent .............................................................................. 48

v



MỞ ĐẦU
1. Đặt vấn đề
Ngày nay, cùng với sự phát triển của khoa học kỹ thuật, Chatbot đang
được ứng dụng phổ biến và mạnh mẽ trong nhiều lĩnh vực, tạo nên một cơn sốt
cơng nghệ khi có nhiều hãng cơng nghệ nổi tiếng thế giới tham gia như Google,
Facebook, Microsoft, IBM...Theo Grand View Research, thị trường Chatbot dự
kiến sẽ đạt khoảng 1,25 tỷ đơ la trên tồn cầu vào năm 2025. Hơn nữa, các
chuyên gia dự đoán rằng thị trường này sẽ tăng trưởng với tốc độ tăng trưởng gộp
hàng năm hơn 24%. Đặc biệt là xu hướng phát triển AI chatbot có khả năng hội
thoại, xử lý những tương tác phức tạp hơn với khách hàng. Ở Việt Nam, Chatbot
đã bắt đầu được áp dụng ở trong một số lĩnh vực như chăm sóc khách hàng, mua
sắm trực tuyến, trả lời thông tin ngân hàng, y tế, giáo dục… Đối với lĩnh vực giáo
dục hiện nay, tư vấn giáo dục Chatbot chưa được sử dụng nhiều dù rằng đây là
lĩnh vực rất phù hợp cho các ứng dụng Chatbot. Chatbot có thể thay thế con
người trong việc trả lời các câu hỏi có tính lặp đi lặp lại, hỗ trợ người dùng 24/7,
quảng bá và phủ hình hình ảnh…
Cùng với mong muốn hiểu sâu hơn về Chatbot và các kỹ thuật giúp
Chatbot trả lời câu hỏi xử lý theo ngôn ngữ tự nhiên (NLP), tôi quyết định chọn đề

tài “Nghiên cứu xây dựng Chatbot trả lời tự động áp dụng kỹ thuật học máy cho
ứng dụng tin nhắn văn bản” làm đề tài luận văn thạc sĩ. Qua đề tài tôi muốn nâng
cao sự hiểu biết về AI Chatbot, NLP và nghiên cứu khả năng áp dụng thực tiễn tại
doanh nghiệp ở Việt Nam.
2. Mục tiêu của luận văn
Mục tiêu của luận văn là tìm hiểu, nghiên cứu các kỹ thuật học sâu vào xử
lý ngôn ngữ tự nhiên NLU, NLP như phân loại ý định người dùng, trích chọn
thông tin và quản lý hội thoại, …trong ứng dụng cụ thể là Chatbot hỗ trợ tư vấn
tuyển sinh.
Nghiên cứu chun sâu mơ hình Transformer và DIET, luận văn tập trung
đưa ra giải pháp và xây dựng mơ hình Chatbot ứng dụng trong miền đóng có khả
năng trả lời có khả năng trả lời phù hợp với những câu hỏi tương ứng từ phía
người dùng.
1


Với bài toán đối tượng nghiên cứu là đơn vị tư vấn tuyển sinh đại học, luận
văn sẽ tập trung xây hệ thống Chatbot hỗ trợ người dùng trong quá trình tư vấn
tuyển sinh trên nền tảng Rasa và áp dụng những kiến thức nền tảng để có thể làm
chủ và tùy chỉnh trên mã nguồn mở này.
3. Phạm vi nghiên cứu đề tài
- Nghiên cứu các phương pháp xử lý ngôn ngữ tự nhiên phù hợp với
Chatbot hướng tới.
- Nghiên cứu mơ hình học sâu Transformer và DIET.
- Thu thập và tổng hợp các câu hỏi đáp của phòng tuyển sinh
trước đó đồng thời tham khảo đề án tuyển sinh của nhà trường để tạo
bộ dữ liệu huấn luyện.
- Xây dụng thành phần xử lý ngôn ngữ tự nhiên của Chatbot bằng
công cụ Rasa.
- Xây dựng Chatbot thành service tích hợp với Messenger của Fanpage Tư

vấn Tuyển sinh Đại học Nội vụ Hà Nội.
4. Nội dung luận văn được chia làm 3 phần như sau:
Chương 1: Giới thiệu tổng quan về hệ thống Chatbot : Chương này sẽ giới
thiệu những kiến thức tổng quan về hệ thống Chatbot, các thành phần của
Chatbot và phân biệt các loại Chatbot.
Chương 2: Cơ sở lý thuyết: Tìm hiểu về Deep learning, mạng nơ ron hồi
quy RNN, mơ hình học sâu Transformer, DIET và Rasa Framework.
Chương 3: Trình bày về quá trình xây dựng Chatbot trả lời thông tin về tuyển
sinh đại học, thực nghiệm và đánh giá các kết quả.

2


TỔNG QUAN VỀ CHATBOT
1.1 Khái niệm Chatbot
Chatbot là một phần mềm trí tuệ nhân tạo(AI) giả lập cuộc hội thoại của
con người bằng văn bản hoặc giọng nói, giúp trả lời tự động tin nhắn của con
người thông qua các ứng dụng tin nhắn trên website hoặc trên điện thoại di động.
Chatbot thường trao đổi với người dùng qua hình thức văn bản hoặc âm
thanh. Do được thiết kế để mơ phỏng cách trị chuyện với con người, các hệ thống
Chatbot thường phải điều chỉnh và thử nghiệm liên tục.
Chatbot thường được sử dụng trong các hệ thống hội thoại cho các mục
đích khác nhau bao gồm dịch vụ khách hàng, định tuyến yêu cầu hoặc để thu thập
thông tin. Mặc dù một số ứng dụng Chatbot sử dụng các phương pháp phân loại
từ (word- classification), xử lý ngôn ngữ tự nhiên (NLP) và trí tuệ nhân tạo (AI),
một số ứng dụng khác chỉ cần quét các từ khóa chung và tạo phản hồi bằng các
cụm từ phổ biến thu được từ thư viện hoặc cơ sở dữ liệu liên quan.
Ngày nay, hầu hết các Chatbot được truy cập trực tuyến thông qua cửa sổ
popup của các trang web hoặc thông qua các trợ lý ảo như Google Assistant,
Amazon Alexa hoặc các ứng dụng nhắn tin như Facebook Messenger, Telegram,

WeChat, Zalo…
Chatbot chia thành 2 loại [1] miền mở (open domain) và miền đóng (close
domain). Ứng dụng chatbot mền mở là mơ hình trả lời tự động trên khơng giới hạn
lĩnh vực, cho phép người dùng có thể tham gia trị chuyện với một chủ đề bất kỳ,
không nhất thiết phải có một mục tiêu rõ ràng hay một ý định cụ thể nào. Ứng
dụng chatbot miền đóng thường tập trung vào trả lời các câu hỏi đối thoại liên
quan đến một lĩnh vực cụ thể, ví dụ như: y tế, giáo dục, du lịch, mua sắm…
Trong luận văn này tôi sẽ tập trung vào xây dựng Chatbot thuộc loại miền
đóng, cụ thể là bài toán hỗ trợ người dùng hiểu rõ về chương trình tuyển sinh của
Trường Đại học Nội vụ Hà Nội.
1.2 Các thành phần của Chatbot
Bước đầu tiên trong việc thiết kế bất kỳ hệ thống nào là chia nó thành các
bộ phận cấu thành theo một tiêu chuẩn để có thể tuân theo cách tiếp cận phát
triển mơ đun. Trong hình dưới giới thiệu một kiến trúc chung của Chatbot.
3


Hình 1-1: Kiến trúc chung của chatbot
Ứng dụng chatbot được xây dựng từ 3 thành phần chính [2]: thành phần
hiểu ngôn ngữ tự nhiên (NLU), thành phần quản lý hội thoại (DM) và thành
phần sinh ngôn ngữ (NLG). Mỗi thành phần có một tác vụ riêng biệt:
- NLU: Là quá trình xử lý để hiểu ngơn ngữ tự nhiên, thành phần giúp
Chatbot hiểu được ý định người dùng (intent) và trích xuất các thực thể (entity)
trong câu. Khi người dùng nhập câu hỏi “Học phí ngành luật là bao nhiêu?”
Chatbot sẽ cần xử lý, bởi vì Chatbot khơng hiểu được ngơn ngữ của con người do
đó NLU sẽ chuyển nó thành dữ liệu có cấu trúc, từ đó có thể phân tích câu hỏi trên
với ý định là “hỏi học phí”, thực thể sản phẩm “ngành luật”
- 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 đó hoặc ngữ cảnh của hội thoại. Các
ngữ cảnh của hội thoại sẽ được học qua kịch bản xây dựng sẵn (story). Xử lý truy

xuất dữ liệu từ hệ thống khác thông qua các API/Data sources cũng sẽ được thực
hiện trong thành phần này.
- NLG: Là thành phần bao gồm nhiều mẫu câu trả lời đã được định nghĩa
trước và phụ thuộc vào hành động được dự đoán ở DM kết hợp với chính sách
(policy) của hệ thống để đưa ra câu trả lời cho người dùng. Ví dụ ở câu hỏi “Học
phí ngành luật là bao nhiêu?” ta sẽ định nghĩa trước mẫu câu “Chào bạn, học phí
hiện tại ngành{ma_nganh} là {gia_hoc_phi} nhé”, và ở thành phần DM hệ thống
sẽ lấy được thông tin mã ngành thông qua NLU và gọi đến API của hệ thống khác
để lấy thông tin học phí, từ đó kết quả NLG trả về sẽ là “Chào bạn, học phí hiện tại
ngành luật là 387.000 đồng/1 tín chỉ.”
4


1.3 Một số phân loại khác về Chatbot
1.3.1 Chatbot dựa trên luật (Rules Based Chatbot)
Rule-based Chatbot [2] (Chatbot dạng menu/button) là Chatbot dựa theo
luật được đề ra sẵn, người dùng không được phép tùy ý phản hồi mà phải lựa
chọn các phản hồi do lập trình viên đã tạo ra, là một dạng Chatbot trở nên nổi
tiếng sau khi Facebook cho ra mắt nền tảng Messenger cho phép cá nhân hoặc
doanh nghiệp tạo ra bot hỗ trợ khách hàng tự động. Xây dựng Chatbot theo Rulebased là việc định nghĩa các luật hoặc đưa ra các mẫu có trước mà Chatbot muốn
hướng đến, để thao tác với Chatbot ứng dụng sẽ sử dụng cả nút bấm, thanh menu
hoặc hệ thống điều hướng để người dùng lựa chọn. Giống với việc gọi điện đến
tổng đài hỗ trợ khách hàng ta cần chọn ngơn ngữ, chọn phịng ban phụ trách sau
đó mới được chuyển hướng đến hỗ trợ viên thích hợp, Rule-based Chatbot cũng
hoạt động như vậy chỉ khác là sẽ hiển thị các nút bấm hoặc menu trên cửa sổ
chat.

Hình 1-2: Chatbot hỗ trợ nút bấm để thao tác của Pizza Hut
Hình phía trên là ví dụ của Chatbot dạng menu/button, đây là ảnh của
Chatbot hệ thống cửa hàng Pizza Hut trên ứng dụng Messenger Facebook, người

dùng có thể sử dụng để đặt hàng, theo dõi đơn hàng hoặc liên hệ hỗ trợ thơng qua
điều hướng menu. Ví dụ nếu người dùng ấn nút “Customer support” cuộc trò
5


chuyện sẽ được chuyển hướng đến hỗ trợ viên trực tiếp. Lợi thế của Rule-based
Chatbot so với các loại Chatbot khác là hiển thị được tất cả các lựa chọn, giúp
người dùng đưa ra quyết định chính xác mà khơng cần suy nghĩ sẽ hỏi như thế
nào và câu hỏi đó Chatbot có hiểu được khơng. Rule-based Chatbot được sử
dụng khi người dùng muốn thực hiện một hành động cụ thể, ví dụ đặt vé máy
bay, đặt vé xem phim.
Rule-based Chatbot cũng sẽ dễ dàng cập nhật hơn, thay vì việc phải huấn
luyện lại Chatbot mỗi khi có dữ liệu mới, ta chỉ cần thêm nút hoặc menu và câu
phản hồi cho chủ đề mới đó, Chatbot cũng khơng cần phải training. Chatbot cũng
sẽ không gặp trường hợp không hiểu ý định của khách hàng, với việc thiết kế
thêm nút chọn “Liên hệ trực tiếp” sẽ dẫn khách hàng đến nhân viên hỗ trợ trong
trường hợp khơng tìm thấy lựa chọn phù hợp ở giao diện chat. Một số nền tảng
giúp xây dựng Rule-based Chatbot như Manychat, Chatfuel, Botsify…
Bên cạnh những ưu điểm nêu trên, Rule-based Chatbot cũng gặp phải hạn
chế, một trong những hạn chế là không thể trả lời câu hỏi khách hàng mà Chatbot
không được định nghĩa trước. Khách hàng cần đi qua nhiều bước mới đến được
câu trả lời phù hợp, do vậy trong vài trường hợp sẽ ảnh hưởng đến trải nghiệm
người dùng.
1.3.2. Chatbot dựa trên trí tuệ nhân tạo và học máy (AI and Machine
learning)
Khác với Rule-based Chatbot, AI-based Chatbot không sử dụng các
menu/button để điều hướng người dùng, thay vào đó sử dụng trí tuệ nhân tạo AI
để xử lý tin nhắn và phản hồi đến người dùng. Khoảng 5 năm trở lại đây, trí tuệ
nhân tạo phát triển mạnh mẽ, Chatbot cũng được trang bị thêm cơng nghệ trí tuệ
nhân tạo và cơng nghệ học máy giúp Chatbot có khả năng tự học từ những cuộc

trò chuyện thực tế với người dùng để trở nên thông minh hơn theo thời gian.
Công nghệ xử lý ngôn ngữ tự nhiên NLP giúp Chatbot AI hiểu ý định trong câu
nói của người dùng và đưa ra những phản hồi chính xác. Người dùng khơng phải
nhập những câu rập khn máy móc để giao tiếp với Chatbot mà hồn tồn có
thể diễn tả ý định theo cách của riêng mình. Nhờ xác định các từ khóa, các biến
trong câu nói của người dùng mà Chatbot thơng minh hiểu và đối đáp linh hoạt
6


với người dùng. Bên cạnh đó, Chatbot AI có khả năng tích hợp nhiều tính năng
tiện ích bổ sung, nhằm giải quyết đa dạng các bài toán của doanh nghiệp. Chatbot
khơng những có thể tư vấn, cung cấp thơng tin về các sản phẩm dịch vụ của
doanh nghiệp, mà Chatbot cịn có thể thực hiện nhiều tác vụ như thu thập thông
tin khách hàng, đặt hàng, đặt lịch hẹn.
1.3.3. Chatbot phạm vi đóng (Close – domain)
Phạm vi của Chatbot chỉ giải quyết một số vấn đề trong phạm vi nhất
định. Ví dụ: Khách hàng mua ơ tơ, tư vấn khách hàng mua bảo hiểm nhân thọ, dự
báo thời tiết… Chatbot này phổ biến, dữ liệu huấn luyện trong phạm vi nhỏ nên
dễ huấn luyện, độ chính xác cao.
1.3.4. Chatbot phạm vi mở (Open – domain)
Chatbot phạm vi mở là mục tiêu của trí tuệ nhân tạo. Một Chatbot biết mọi
thứ và có thể trả lời mọi vấn đề. Rất nhiều Chatbot thông minh được tạo ra. Tuy
nhiên trả lời mọi vấn đề và vượt qua được Turing test thì vẫn chưa thể đạt tới.
1.4.

Một số nền tảng công nghệ xây dựng Chatbot
Chatbot đã khơng cịn khái niệm xa lạ với người dùng Internet nói chung

và các doanh nghiệp nói riêng. Hiện nay nhiều nền tảng xây dựng Chatbot được
ra đời, hỗ trợ người dùng giao diện trực quan và khả năng đưa ra câu trả lời phù

hợp với câu hỏi của người dùng một cách chính xác như Chatfuel, FPT.AI
Conversation, Harafunnel…Hoặc doanh nghiệp có thể tự xây dựng hệ thống
Chatbot dựa trên các framework nổi tiếng như Rasa, Dialogflow…Sau đây là
một số nền tảng Chatbot nổi tiếng trên thế giới mà bất kỳ cá nhân hoặc doanh
nghiệp nào cũng có thể tiếp cận:

a. Một số nền tảng trả phí
- FPT.AI Conversation [11]: là nền tảng trí tuệ nhân tạo được Bộ Thông
tin và Truyền thông trao Giải thưởng Sản phẩm công nghệ số Made in Vietnam
năm 2020. FPT.AI Conversation cung cấp nền tảng tạo và quản lý Chatbot với
giao diện người dùng. Được trang bị Machine Learning và NLP, Chatbot của
FPT.AI có thể hiểu được ý định và yêu cầu của khách hàng. Người quản lý các
ứng dụng phần mềm tự động hóa trên mạng (Bot) có thể theo dõi tất cả các cuộc
trò chuyện trong lịch sử và nhanh chóng đào tạo Bot với thơng tin mới để cung
7


cấp cho khách hàng lời khuyên chính xác nhất. Phân hệ quản lý hội thoại cho
phép Chatbot theo dõi nhiều chủ đề trò chuyện cùng lúc, theo dõi từng bước đi
của khách hàng, từ đó có thể hiểu và tương tác với khách hàng một cách thân
thiện, tự nhiên.
- AimeFluent [12]: là nền tảng tự động chăm sóc khách hàng, Chatbot, tự
động sinh hội thoại trong hệ sinh thái phần mềm trí tuệ nhân tạo đa thể thức
Aimenicorn. AimeFluent được ứng dụng trong nhiều lĩnh vực: Tư vấn, tài chính ngân hàng, giáo dục, du lịch, thương mại điện tử, pháp luật... AimeFluent sử
dụng kết hợp nhiều công nghệ khác nhau để sinh ra câu trả lời hợp lý: Công nghệ
dựa trên luật (rule-based), cơng nghệ tìm kiếm câu tương tự, phân tích ý định
người nói.

b. Một số nền tảng miễn phí
- Chatfuel [13]: là một trong những nền tảng được thành lập từ năm 2015

tại Mỹ dành cho ứng dụng Messenger của Facebook. Là một trong những nền
tảng có giao diện “sạch sẽ” và trình tạo luồng trực quan để xây dựng và tùy chỉnh
theo mong muốn và có một số chức năng cơ bản như: Trả lời inbox tự động theo
kịch bản, chat trực tuyến với khách hàng, gửi inbox hàng loạt, tự động trả lời
comment, quản lý và chăm sóc khách hàng. Giao diện của Chatfuel gồm trình tạo
khối và trình tạo luồng trực quan. Tính đến tháng 6/2018 đã có hơn 200.000
Chatbot được tạo ra bằng cách sử dụng Chatfuel và phục vụ hơn 145 triệu người
dùng trên toàn cầu.
- DialogFlow [14]: là một dịch vụ của Google hoạt động trên nền tảng
đám mây của Google. DialogFlow là một công cụ trực quan và thân thiện với
người dùng, bao gồm một số sản phẩm của Google như Google Cloud Speech-toText và kiến thức chuyên môn về học máy của Google. Nó chủ yếu được sử dụng
để xây dựng các hành động cho hầu hết các thiết bị có trợ lý Google. DialogFlow
được định nghĩa là một nền tảng NLP (xử lý ngôn ngữ tự nhiên), được sử dụng
để phát triển một ứng dụng liên quan đến các cuộc trò chuyện và trải nghiệm cho
khách hàng của công ty bằng các ngôn ngữ khác nhau trên nhiều nền tảng.
- Rasa [15]: là một framework học máy mở để tự động trả lời bằng văn
bản hoặc giọng nói dựa trên cuộc hội thoại. Rasa là một mã nguồn mở nên được
hỗ trợ rất nhiều từ các thành viên trên thế giới thông qua diễn đàn của họ và luôn
8


ln cập nhật các phiên bản mới nhanh chóng. Rasa cung cấp trí tuệ nhân tạo
đàm thoại linh hoạt để tạo văn bản và trợ lý dựa trên giọng nói; được sử dụng bởi
các nhà phát triển, nhóm trị chuyện và doanh nghiệp.
Để lựa chọn một nền tảng Chatbot phù hợp với chắc hẳn mỗi doanh
nghiệp, cơ quan, tổ chức sẽ có những tiêu chí riêng như xem xét mức độ dễ dùng,
chi phí sử dụng, mức độ bảo mật hoặc thậm chí là cả khả năng tùy chỉnh và bảo
trì. Dưới đây là bảng so sánh 03 bền tảng của Chatbot:
Bảng 1. 1: So sánh cơ bản 03 nền tảng: Chatbot Chatfuel, Dialogflow và Rasa


Tiêu chí

Chatfuel

DialogFlow

Cài đặt

Khơng cần cài đặt, chỉ cần đăng ký và sử Cài đặt khá phức tạp,
dụng trực tiếp trên nền tảng trên web

Rasa

đòi hỏi phải có kiến
thức về cơng nghệ
thơng tin

Lưu trữ

Trên máy chủ của

Trên máy chủ của

Có thể lưu tại máy chủ

dữ liệu

Chatfuel

Google


của doanh nghiệp

Triển

Website, Facebook, Website, Facebook,

Khả năng tích hợp khó

khai đa

Instagram

với các nền tảng khác

kênh

nhau

Mức độ

Chỉ có thể nhận ra Mơ hình NLU nhưng

thơng

các từ khóa và dựa cũng chủ yếu dựa trên

minh

trên những từ khóa các từ khóa

đó đưa ra một phản
hồi nhất định

Mức độ

Giao diện trực quan, Giao diện phức tạp, Cần kiến thức lập trình

thân

dễ sử dụng cho đối nhưng cũng khơng cần

thiện với

tượng người dùng lập trình

người

phổ thơng

dùng
Chi phí

Gói miễn phí được Được định giá hàng Vì là mã nguồn mở

sử dụng

sử dụng với dưới 50 tháng dựa trên phiên nên chúng ta có thể tùy
9



người đăng ký. Gói bản và các yêu cầu biến theo ý thích, sử
pro có giá 15USD sẽ được thực hiện trong dụng vào mục đích
tăng lên theo số tháng.

thương mại.

lượng người đăng ký
Hiện nay có rất nhiều phương pháp làm Chatbot do bên thứ ba cung cấp
như đã trình bày ở trên nhưng trong đề tài luận văn này, tơi sẽ sử dụng Rasa
framework để xây dựng chương trình và dưới đây là những lý do sử dụng Rasa
để xây dựng Chatbot:
• Dễ dàng tích hợp, chỉnh sửa: ta có thể tự cấu hình bất kì pipeline nào
trong phần NLU pipeline để phù hợp với ngôn ngữ từng quốc gia hoặc mục đích
cụ thể, Rasa cung cấp các tính năng có sẵn thêm vào đó người dùng có thể tự tạo
tính năng riêng, chính vì Rasa là mã nguồn mở cho nên sẽ dễ dàng chỉnh sửa
framework, có thể tùy ý tích hợp các tính năng bên ngồi và hàm xử lý nào đó.
• Tích hợp với các hệ thống có sẵn: Rasa cung cấp Rasa Action giúp
Chatbot có thể kết nối đến các hệ thống khác thông qua API hoặc truy cập vào
database.
• Khả năng học qua tương tác: thay vì việc liệt kê tất cả ý định và câu trả
lời tương ứng, trong quá trình huấn luyện người dùng có thể giao tiếp trực tiếp
với Chatbot đánh giá và cung cấp câu trả lời phù hợp với ý định của người dùng.
• Kết nối dễ dàng với các ứng dụng chat khác: Rasa cho phép ứng dụng
liên kết với các nền tảng chat nổi tiếng như Facebook Messenger, Slack,
Telegram, Twilio…
• Hiệu suất cao: với việc tích hợp nhiều kiến trúc hiện đại nhất như
DIET, TED sử dụng mơ hình Transformer giúp cho Chatbot của Rasa trở nên
thơng minh hơn và tối ưu hóa được thời gian huấn luyện một cách đáng kể khi so
sánh với các nền tảng khác.
• Miễn phí và cộng đồng lớn: Rasa là mã nguồn mở cho nên sẽ khơng

mất phí để xây dựng ứng dụng, cũng chính vì lý do đó nhiều người dễ dàng tiếp
cận và xây dựng được các cộng đồng chia sẻ kiến thức, thuật toán tối ưu và thậm
chí dữ liệu mẫu có sẵn, giúp Rasa ngày phát triển và ổn định.
10


1.5. Một số ứng dụng của Chatbot
Ngày nay Chatbot có thể xuất hiện ở bất kỳ lĩnh vực nào, là bàn đẩy cho sự
phát triển của các doanh nghiệp. Nó giúp nâng cao trải nghiệm khách hàng bằng
cách thể hiện diện ở các kênh bán hàng thường xuyên tiếp xúc. Dưới đây là các
lĩnh vực Chatbot được ứng dụng:
- Chăm sóc khách hàng: Mỗi một doanh nghiệp hay cửa hàng online đều
cần có dịch vụ chăm sóc khách hàng. Chatbot chăm sóc khách hàng thường được
doanh nghiệp sử dụng để phản hồi những vấn đề mà khách hàng thường xuyên
gặp phải. Đối với những lĩnh vực mà khách hàng cần tư vấn trùng lặp như bất
động sản, khóa học trực tuyến, gói làm đẹp... đây sẽ là cơng cụ đắc lực để phản
hồi nhanh chóng, chính xác, tiết kiệm nhân lực. Thơng qua phần mềm Chatbot
AI này doanh nghiệp cịn có thể tương tác khách hàng cũ bằng những kịch bản
như khuyến mãi, giảm giá, chúc mừng sinh nhật... Giúp doanh nghiệp tạo dựng
mối liên hệ chặt chẽ với khách hàng, re-marketing đúng đối tượng.
- Lĩnh vực chuỗi bán lẻ: Đi cùng với chuỗi các cửa hàng thì việc sở hữu các
kênh bán lẻ online là một trong những kênh kinh doanh chính của nhiều cửa hàng
bán lẻ hiện nay. Mua hàng online ngày càng trở thành xu hướng của giới trẻ vì
thế mà việc mua bán sản phẩm, đặt chỗ thông qua Chatbot ngày càng trở nên phổ
biến hơn.
- Lĩnh vực chăm sóc sức khỏe: Chatbot này sẽ hỏi về các triệu chứng, các
thông số cơ thể và lịch sử y tế, sau đó biên soạn một danh sách các nguyên nhân
gây ra hầu hết các triệu chứng và xếp hạng chúng theo thứ tự nghiêm trọng.
Chatbot có thể hướng dẫn bệnh nhân điều trị các bệnh có thể tự chữa khỏi mà
không cần đến bác sĩ.

- Lĩnh vực khách sạn và du lịch: Chatbot có thể giúp khách sạn trong một
số lĩnh vực, bao gồm quản lý thời gian, dịch vụ khách hàng và giảm chi phí nhân
lực. Chatbot được lập trình để trị chuyện với khách bằng các ngơn ngữ khác
nhau, khách hàng có thể nói chuyện bằng ngơn ngữ địa phương của mình dễ
dàng hơn.

11


- Hàng khơng: khách hàng có thể nhận tài liệu chuyến bay của mình qua tin
nhắn, hoặc email, bao gồm xác nhận đặt vé, thông báo đăng ký, thẻ lên máy bay,
và cập nhật trạng thái chuyến bay.
- Thời trang: Với việc sử dụng Chatbot tự động trả lời tin nhắn trên lịch bản
có sẵn, chúng sẽ giúp các shop thời trang: Tiếp thị sản phẩm nhanh chóng và
hiệu quả; Nhận thức về thương hiệu tăng nhanh; Hỗ trợ khách hàng nhanh chóng
và hiệu quả; Bán hàng và tìm kiếm được các khách hàng tiềm năng…
- Mỹ phẩm: Ở mức cơ bản nhất, phần mềm Chatbot AI có thể gửi đến
khách hàng các thông tin về sản phẩm, dịch vụ, giờ làm, bảng giá hoặc địa chỉ
cửa hàng, những thông tin review và hình ảnh minh họa sản phẩm. Bên cạnh đó,
Chatbot cịn tự xử lý được các u cầu dịch vụ cơ bản từ phía khách hàng, hỗ trợ
24/7, đặt lịch hẹn, bán sản phẩm hoặc đưa ra lời khun hữu ích đã được lập trình
sẵn.
- Giáo dục: người dùng có thể nhắn tin yêu cầu trực tuyến vào các website,
fanpage của nhà trường để tìm hiểu về trường, giải đáp các thắc mắc như tuyển
sinh, chương trình đào tạo, chất lượng giáo dục.
- Đưa ra kết quả tìm kiếm, cập nhật tin tức: Các doanh nghiệp, trang báo…
có thể thiết kế những Chatbot để cung cấp thông tin thường xuyên cho người
dùng, thông tin được cập nhật thường xun giúp người dùng khơng cần phải tìm
hiểu trên trình duyệt, đồng thời giúp doanh nghiệp đưa thông tin mới của mình
đến với khách hàng một cách nhanh chóng và hiệu quả nhất.


Hình 1-3:Chatbot Messenger của trang Pizzahut

12


CƠ SỞ LÝ THUYẾT
2.1 Cơ bản về Deep learning
Deeplearning [3] là tập hợp con của Machine Learning được lấy cảm hứng
từ cấu trúc và chức năng của bộ não con người. Nó có tác dụng hỗ trợ cho máy
tính tự huấn luyện chính nó để có thể thực hiện các tác vụ tương tự như con
người. Điều này chính là giúp máy tính bắt chước con người cách học hỏi và suy
nghĩ.
Các hệ thống của Deep learning có khả năng cải thiện hiệu suất của chúng
sau nhiều lần huấn luyện (training) hoặc cung cấp dữ liệu đủ lớn. Thông thường,
những máy móc đã được huấn luyện đủ sự tin cậy thì sẽ được mang đi phục vụ
cho những cơng việc như: lái xe, phát hiện cỏ dại,…
Ứng dụng của Deep learning hỗ trợ cho việc dịch ngôn ngữ, phân loại các
hình ảnh, nhận dạng giọng nói. Chính vì thế, nó có thể được ứng dụng để giải
quyết mọi nhu cầu cần nhận dạng mẫu mà không cần đến sự can thiệp của con
người.
Deep learning có thể xử lý dữ liệu theo cách tương tự như một bộ não con
người, điểm khác biệt chính ở đây là con người sẽ khơng phải dạy một chương
trình Deep learning biết một con mèo trơng như thế nào, mà chỉ cần cung cấp cho
nó đủ hình ảnh cần thiết về lồi mèo, và nó sẽ tự mình hình dung, tự học. Các
bước cần làm như sau:
- Cung cấp cho máy nhiều bộ dữ liệu ảnh về mèo và các con vật khác.
- Thuật toán sẽ kiểm tra ảnh để xem các đặc điểm, chi tiết chung giữa các
bức ảnh.
- Mỗi bức ảnh sẽ được giải mã chi tiết dưới nhiều cấp độ, từ các hình dạng

lớn, cho đến các ơ nhỏ và nhỏ hơn nữa. Nếu một hình dạng hoặc các đường được
lặp lại nhiều lần, thuật tốn sẽ gắn nhãn nó như là một đặc tính quan trọng.
- Sau khi phân tích đủ hình ảnh cần thiết, thuật tốn giờ đây sẽ biết được
các mẫu nào cung cấp bằng chứng rõ ràng nhất về mèo và tất cả những gì con
người phải làm chỉ là cung cấp các dữ liệu thô.
Deep learning là một loại Machine learning mà trong đó máy tự đào tạo
chính nó. Deep learning địi hỏi rất nhiều dữ liệu đầu vào và sức mạnh tính tốn
hơn là Machine learning, nhưng nó đã bắt đầu được triển khai bởi các cơng ty
cơng nghệ lớn như Facebook, Amazon, Google. Trong đó, một trong những ứng
dụng nổi tiếng nhất là AlphaGo, một máy tính có thể chơi cờ vây với chính bản
13


thân nó cho đến khi nó có thể dự đốn những đường đi nước bước chính xác nhất
đủ để đánh bại nhiều nhà vô địch trên thế giới.
2.2 Mạng nơ-ron hồi quy RNN (Recurrent Neural Network)
Mạng nơ-ron hồi quy (RNN)[6] là một mơ hình học sâu xử lý dữ liệu tuần
tự được sử dụng phổ biến trong các tác vụ xử lý ngơn ngữ tự nhiên (NLU) như
dịch máy, tóm tắt văn bản, nhận diện giọng nói. Giống với con người khi tiếp
nhận ngôn ngữ, chúng ta sẽ xử lý chúng một cách tuần tự, từ phía sau sẽ phụ
thuộc vào các từ trước đó, ý tưởng tạo ra RNN là thiết kế một mạng lưới thần
kinh có khả năng xử lý thông tin một cách tuần tự. Cụ thể, đầu ra ở thời điểm
hiện tại phụ thuộc vào kết quả tính tốn của các thành phần ở thời điểm trước.
Nói cách khác, RNN là một mơ hình có bộ nhớ, có thể nhớ thơng tin được tính
tốn trước đó, không giống như các mạng thần kinh truyền thống là thơng tin đầu
vào hồn tồn độc lập với thơng tin đầu ra.

Hình 2-1: Mạng nơ-ron hồi quy [4]
Các từ truyền vào mạng RNN được xử lý giống nhau và các tham số được
tính như sau:

• Từ đầu vào (input) tại thời điểm t, có thể là one-hot vector.
• Trạng thái ẩn tại thời điểm t, dùng để ghi nhớ thông tin các từ phía
trước nó và được tính dựa trên các trạng thái ẩn trước đó và từ đầu vào hiện tại.
Vector thông thường được khởi tạo với tất cả giá trị trong ma trận bằng 0.
• Kết quả đầu ra (output) tại thời điểm t, dự đoán từ tiếp theo dựa vào xác
suất trên toàn bộ các từ trong từ điển.

14


×