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

Xây dựng chatbot dựa trên AI techniques

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 (1.8 MB, 57 trang )

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

LUẬN VĂN THẠC SĨ
Xây dựng Chatbot dựa trên AI Techniques
ĐẶNG NGỌC SƠN


Ngành Công nghệ Thông tin

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

TS. Ban Hà Bằng

Viện:

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

HÀ NỘI - 2020


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

LUẬN VĂN THẠC SĨ
Xây dựng Chatbot dựa trên AI Techniques
ĐẶNG NGỌC SƠN


Ngành Công nghệ Thông tin

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


TS. Ban Hà Bằng

Viện:

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

HÀ NỘI - 2020

Chữ ký của GVHD


LỜI CAM ĐOAN
Tôi là Đặng Ngọc Sơn, học viên lớp 19AMMT, Trường Đại Học Bách
Khoa Hà Nội. Tôi xin cam kết Luận văn tốt nghiệp là cơng trình nghiên cứu
của bản thân tôi dưới sự hướng dẫn của TS.Ban Hà Bằng. Các kết quả trong
Luận văn tốt nghiệp này là trung thực, do chính học viên tìm tịi nghiên cứu
và đúc kết. Khơng sao chép tồn văn của bất kỳ cơng trình nào khác.

HỌC VIÊN

Đặng Ngọc Sơn


LỜI CẢM ƠN
Trước tiên, tác giả muốn gửi lời cảm ơn chân thành và sâu sắc nhất tới
Tiến Sĩ Ban Hà Bằng, người đã tận tình dạy dỗ, chỉ bảo, giúp đỡ tác giả hoàn
thành Luận Văn này cũng như quá trình học tập nghiên cứu.
Đồng thời, tác giả xin bày tỏ lịng biết ơn tới các thầy cơ giáo trong Khoa
đã tận tình giảng dạy, truyền đạt những kiến thức quan trọng, làm nền tảng
cho việc thực hiện Luận Văn cũng như trong q trình cơng tác sau này.

Tác giả cũng xin gửi lời cảm ơn tới các bạn học cùng khóa lớp 19AMMT,
cảm ơn các bạn đã bên cạnh động viên giúp đỡ trong quá trình học tập cũng
như q trình hồn thành Luận Văn.
Cuối cùng, con xin bày tỏ lịng biết ơn Gia đình đã là hậu phương vững
chắc cho con yên tâm công tác, học tập.
Do thời gian, kiến thức, kinh nghiệm chắc chắn còn những hạn chế,
khiếm khuyết nên tác giả mong muốn các quý thầy cơ, các anh chị, các bạn
góp ý cho tác giả để Luận Văn trở nên hồn thiện hơn
TĨM TẮT NỘI DUNG LUẬN VĂN
Trong những năm gần đây, công nghệ Chatbot đang ngày càng trở nên
phổ biến hơn trong rất nhiều các lĩnh vực khác nhau. Chatbot được tích hợp
vào nhiều nền tảng khác nhau, nhiều lĩnh vực khác nhau, và đã trở thành
công cụ đắc lực giúp kết nối khách hàng với doanh nghiệp tổ chức, giúp cho
các công việc chăm sóc khách hàng trở nên dễ dàng, giải phóng con người
khỏi các cơng việc mang tính chất lặp đi lặp lại.
Từ những nhu cầu thiết thực đó, tác giả đã đề xuất và được phép nghiên
cứu đề tài: “Xây dựng Chatbot dựa trên AI Techniques”. Trong khuôn
khổ Luận Văn, tác giả đã đề xuất mơ hình xây dựng Chatbot, thực hiện các
thực nghiệm, so sánh, và ứng dụng mơ hình vào xây dựng ứng dụng Mobile
chatbot hỗ trợ điều trị cho trẻ em vị thành niên mắc chứng rối loạn giao tiếp.

HỌC VIÊN

Đặng Ngọc Sơn


MỤC LỤC
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT ................................................................. iii

DANH MỤC HÌNH VẼ ................................................................................. iv

MỞ ĐẦU ......................................................................................................... 1
CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ HỆ THỐNG CHATBOT .... 2
1.1. Giới thiệu bài toán Chatbot ............................................................... 2
1.2. Phân loại Chatbot............................................................................... 3
1.3. Nguyên tắc xây dựng hệ thống .......................................................... 6
1.4. Một số ứng dụng thương mại hóa Chatbot hiện nay ......................... 8
1.5.Ứng dụng của cơng trình nghiên cứu vào thực tế hiện nay ................ 9
CHƯƠNG 2: XÂY DỰNG MƠ HÌNH HỆ THỐNG CHATBOT ............... 10
2.1. Các công nghệ nền tảng ................................................................... 10
2.1.1. Tìm hiểu một số kỹ thuật thiết kế Chatbot hiện nay .................... 10
2.1.2. Giới thiệu RNN............................................................................. 12
2.1.3. Giới thiệu LSTM (Long Short-Term Memory Networks) ........... 16
2.1.4. Giới thiệu mô hình Seq2Seq ......................................................... 21
2.1.5. Giới thiệu mơ hình kỹ thuật Attention trong mơ hình Seq2Seq ... 23
2.1.6. Giới thiệu Word Embedding ........................................................ 24
2.2. Kiến trúc đề xuất mơ hình Chatbot.................................................. 26
CHƯƠNG 3: CÀI ĐẶT VÀ THỰC NGHIỆM ............................................ 31
3.1 Thiết lập môi trường và dữ liệu huấn luyện ..................................... 31
3.2. Xử lý, huấn luyện dữ liệu ................................................................ 31
3.2.1. Tiền xử lý dữ liệu ......................................................................... 31
3.2.2. Định nghĩa tham số sử dụng ......................................................... 35
3.2.3. Tiền xử lý dữ liệu đầu vào ............................................................ 35
3.2.4. Định nghĩa các tham số LSTM Cell ............................................. 36
3.2.5. Thực hiện decoding training/test set ............................................. 36
3.2.6. Thiết lập các Hyper parameters cần thiết ..................................... 37
3.2.8. Bắt đầu training dữ liệu ................................................................ 38
3.3. Kết quả thực nghiệm........................................................................ 39
3.3.1. Tập dữ liệu huấn luyện ................................................................. 39
3.3.2. Độ đo sử dụng............................................................................... 39
3.3.3. Phương pháp thực nghiệm ............................................................ 40

3.3.4. Nhận xét đánh giá kết quả thực nghiệm ....................................... 41
i


3.3.5. Kết quả thực nghiệm .................................................................... 41
3.4. Ứng dụng nghiên cứu đề tài vào thực tế cuộc sống ........................ 44
CHƯƠNG IV: KẾT LUẬN .......................................................................... 48
4.1. Hướng phát triển tương lai .............................................................. 48
4.2. Kết luận ........................................................................................... 48
TÀI LIỆU THAM KHẢO............................................................................. 49

ii


DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT

Tên viết tắt

Tên đầy đủ

Ý nghĩa

Chatbot

Chatbot

Hệ thống trả lời tự động

ML


Machine Learning

Học máy

ANN

Artificial Neural Network

Mạng Nơ-ron nhân tạo

RNN

Recurrent Neural Network

Mạng Nơ-ron hồi quy

LSTM

Long Short-Term Memory

Mạng Nơ-ron bộ nhớ dài ngắn

GRU

Gated Recurrent Units

Mạng Nơ-ron với các đơn vị
cổng hồi quy

Seq2Seq


Sequence to Sequence

NLP

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

MLP

Multilayer Perceptrons

CNN

Convolution
Network

EncoderDecoder

Encoder-Decoder

BiRNN

Bi-directional
Recurrent Mạng hai chiều RNN
Neural Network

Mạng Nơ-ron đa lớp

Neural Mạng Nơ-ron tích chập
Mã hóa - Giải mã


iii


DANH MỤC HÌNH VẼ
Hình 1. 1 Giao diện cửa sổ Chatbot hỗ trợ người dùng ......................................... 4
Hình 1. 2 Logo một số ứng dụng thương mại Chatbot hiện nay ........................... 8
Hình 1. 3 Ứng dụng của Chatbot trong cuộc sống ................................................ 9
Hình 2. 1 Mơ hình thu gọn của RNN ................................................................... 13
Hình 2. 2 Mơ hình đầy đủ của RNN .................................................................... 13
Hình 2. 3 Phân loại RNN ..................................................................................... 14
Hình 2. 4 Cập nhật trọng số trong mạng RNN .................................................... 15
Hình 2. 5 Trọng số không được cập nhật lại đáng kể khi huấn luyện ................. 15
Hình 2. 6 Bên trong các cell của RNN ................................................................ 16
Hình 2. 7 Bên trong các cell của LSTM .............................................................. 16
Hình 2. 8 Giải thích một số ký hiệu sử dụng ....................................................... 17
Hình 2. 9 Chi tiết hoạt động LSTM ..................................................................... 17
Hình 2. 10 Chi tiết hoạt động LSTM ................................................................... 18
Hình 2. 11 Chi tiết hoạt động LSTM ................................................................... 18
Hình 2. 12 Chi tiết hoạt động LSTM ................................................................... 19
Hình 2. 13 Chi tiết hoạt động LSTM ................................................................... 20
Hình 2. 14 Chi tiết hoạt động LSTM ................................................................... 21
Hình 2. 15 Kiến trúc mơ hình Seq2Seq ............................................................... 22
Hình 2. 16 Mơ hình Seq2seq dùng attention trong bài tốn dịch máy ................ 24
Hình 2. 17. Ví dụ về Word Embedding ............................................................... 26
Hình 2. 18 Kiến trúc đề xuất mơ hình Chatbot .................................................... 27
Hình 2. 19 Beam Search với beam size cố định .................................................. 30
Hình 3. 1 Tiền xử lý dữ liệu ................................................................................. 31
Hình 3. 2 Tiền xử lý dữ liệu ................................................................................. 32
Hình 3. 3 Tiền xử lý dữ liệu ................................................................................. 32

Hình 3. 4 Tiền xử lý dữ liệu ................................................................................. 33
Hình 3. 5 Tiền xử lý dữ liệu ................................................................................. 34
Hình 3. 6 Tiền xử lý dữ liệu ................................................................................. 34
Hình 3. 7 Tiền xử lý dữ liệu ................................................................................. 35
Hình 3. 8 Tiền xử lý targets ................................................................................. 36
Hình 3. 9 Sơ đồ Flow Diagram của hệ thống ...................................................... 44
Hình 3. 10 Sơ đồ Sequence Diagram của hệ thống ............................................. 45
Hình 3. 11 Giao diện ứng dụng “Small Talk Daily” ........................................... 46

iv


MỞ ĐẦU
Chatbot là một ứng dụng phần mềm cho phép thực hiện các đoạn hội thoại
thông qua văn bản, hoặc từ văn bản thành giọng nói, nhằm cung cấp tương
tác trực tiếp giữa người và máy. Được thiết kế sao cho mơ phỏng cách mà
con người nói chuyện trong giao tiếp hàng ngày, hệ thống Chatbot thường
xuyên cần được tối ưu hóa, và kiểm tra.
‘Chatter Bot’ là thuật ngữ lần đầu được đưa ra bởi Michael Mauldin vào năm
1994 để mơ tả các chương trình hội thoại.
Chatbot thường được dùng trong các hệ thống hội thoại trong nhiều lĩnh vực,
ví dụ như dịch vụ khách hàng, dịch vụ chỉ đường, hay thu thập thông tin.
Ngày nay, phần lớn chatbot thường thấy trên các trang web dưới dạng các
popup, hay các ‘trợ lý ảo’ như Google Assistant, Amazon Alexa hay Cortana.
Chatbot thường được phân loại thành nhiều loại, ví dụ như sử dụng trong
lĩnh vực thương mại điện tử, giáo dục, giải trí, tài chính, chăm sóc sức khỏe
...
Luận văn được tổ chức gồm 4 phần:
Giới thiệu. Lý do thực hiện đề tài và mục tiêu cần đạt
Chương 1. Các kiến thức cơ bản về hệ thống Chatbot cung cấp các thơng

tin về Chatbot cũng như các tiêu chí xây dựng, phân loại Chatbot, các ứng
dụng thực tế của Chatbot trong đời sống hiện nay. Đồng thời giới thiệu sơ
lược một số các ứng dụng nổi tiếng đã được thương mại hóa hiện nay.
Chương 2. Xây dựng mơ hình hệ thống Chatbot giới thiệu một số cách
tiếp cận xây dựng Chatbot, giới thiệu một số cơng trình nghiên cứu về
Chatbot và đưa ra kiến trúc đề xuất mơ hình Chatbot sẽ nghiên cứu và cài
đặt trong khuôn khổ Luận Văn này.
Chương 3. Cài đặt và thực nghiệm, chương này đưa ra cách thức chi tiết
việc xây dựng, cài đặt mơ hình kiến trúc đề xuất đã đưa ra ở Chương 2, đồng
thời thực nghiệm và so sánh kết quả với một số mơ hình kiến trúc khác, từ
đó đưa ra các nhận xét.
Chương 4. Kết luận. chương này trình bày việc ứng dụng của Chatbot vào
tình huống thực tế trong cuộc sống, đồng thời đưa ra hướng phát triển trong
tương lai cũng như những thuận lợi, khó khăn gặp phải trong q trình
nghiên cứu mơ hì

1


CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ HỆ THỐNG
CHATBOT
Chương này giới thiệu về Chatbot cũng như các tiêu chí xây dựng, phân loại
Chatbot, các ứng dụng thực tế của Chatbot trong đời sống hiện nay. Đồng
thời giới thiệu sơ lược một số cơng trình nghiên cứu, ứng dụng liên quan đến
Chatbot của một số nhà khoa học, nhà nghiên cứu trong những năm gần đây.
1.1. Giới thiệu bài toán Chatbot
Chúng ta đang sống trong thời đại Công nghiệp 4.0 - kỷ nguyên của thông
tin, của dữ liệu lớn. Ngày ngày từ báo đài, Internet chúng ta được tiếp cận
với rất nhiều loại thông tin mà cách đây 5-10 năm việc tiếp cận nhiều và đa
dạng như vậy là rất hạn chế. Việc thông tin tiếp cận không hạn chế đem lại

cho con người rất nhiều lựa chọn và hỗ trợ cho quyết định nhanh chóng và
thuận tiện hơn.
Khi lượng thông tin nhiều lên, các giao dịch trở nên lớn hơn, việc xử lý thông
tin trong các hệ thống sẽ trở nên nhiều hơn. Đơn cử một hệ thống khiếu nại
mạng xã hội, khi số lượng người dùng ít, quản trị viên có thể thuê nhân viên
hỗ trợ việc tiếp nhận các khiếu nại phát sinh từ phía người dùng báo cáo lên.
Ban đầu có thể thiết lập tổng đài, và mỗi nhân viên trực sẽ tiếp nhận cuộc
gọi để xử lý khiếu nại. Khi số lượng người dùng nhiều hơn sẽ thuê thêm nhân
viên, thêm đường dây liên lạc …. Cho tới khi số lượng khiếu nại, người dùng
trở nên quá nhiều thì việc sử dụng điện thoại sẽ trở nên khó khăn hơn nhiều.
Đó là lúc Chatbot xuất hiện và thể hiện vai trị của nó.
Chatbot là một ứng dụng phần mềm cho phép tương tác với người sử dụng
theo cách giống như giao tiếp với con người. Khi đó Chatbot có thể tự động
thu thập thơng tin khiếu nại khách hàng, lưu trữ và phân loại theo format
nhất định sử dụng các thuật toán Machine Learning, AI … Vì bản thân mỗi
khiếu nại từ khách hàng cũng là một mẫu dữ liệu để học máy, cho nên khi
hệ thống Chatbot này tương tác càng nhiều, độ chính xác của nó sẽ càng tăng
lên. Trong khi đó chi phí đầu tư về phần cứng, thiết bị … khiêm tốn hơn rất
nhiều so với đầu tư điện thoại và tổng đài viên và cơ sở hạ tầng kèm theo.
Tương tự như vậy cho các lĩnh vực khác, ví dụ như trong lĩnh vực thương
mại điện tử. Khách hàng thường có rất nhiều các câu hỏi, thắc mắc về các
sản phẩm, về nhu cầu của bản thân. Chatbot sẽ giúp người dùng trả lời các
câu hỏi cơ bản và nâng cao về thơng tin đặc tính sản phẩm, dịch vụ … từ đó
giúp người dùng sớm đưa ra quyết định mà vẫn bảo đảm được chất lượng tư
vấn.
2


Một ví dụ khác về Chatbot bán tự động, ví dụ như với các câu hỏi cơ bản
Chatbot sẽ hỗ trợ trả lời, trong khi các câu hỏi phức tạp hơn sẽ chuyển tiếp

tới các tổng đài viên, người hồi đáp tin nhắn … để đưa ra câu trả lời phù hợp
cho khách hàng. Từ đó sẽ giúp giải phóng sức lao động khỏi những cơng
việc mang tính chất nhàm chán, lặp đi lặp lại, bảo đảm sự đồng nhất trong
việc giao tiếp với khách hàng, giúp xử lý số lượng hội thoại lớn nếu so với
sử dụng nhân công như các phương pháp truyền thống.

1.2. Phân loại Chatbot
- Theo thống kê, trung bình mỗi năm có hơn 265 tỷ yêu cầu hỗ trợ khách
hàng, và tiêu tốn 1.3 nghìn tỷ Đơ la Mỹ chi phí để đáp ứng các yêu
cầu trên. Theo đó đã tạo gánh nặng lớn lên cho các dịch vụ chăm sóc
khách hàng cùng như các cá nhân, doanh nghiệp, tổ chức. Trong khi
đó, có đến 80% các u cầu có thể thực hiện mã khơng cần tới sự can
thiệp của con người.
- Thông qua các hệ thống tự phục vụ cũng như tự động hóa, người ta
ước tính có thể giảm chi phí phục vụ khách hàng tới 30%, giúp giải
phóng sức lao động của con người để xử lý những cơng việc có tính
phức tạp cao hơn.
- Dưới áp lực kể trên, Chatbot ra đời như 1 trong những giải pháp hữu
hiệu giúp xử lý những vấn đề kể trên. Có thể chia ra thành 5 loại
Chatbot như sau:

3


Hình 1. 1 Giao diện cửa sổ Chatbot hỗ trợ người dùng
- Button-based Bots: Bot này sẽ dẫn dắt người dùng qua cây kịch bản
đã chuẩn bị trước. Bot sẽ cung cấp các lựa chọn và yêu cầu người dùng
chọn lựa. Ví dụ: “Tơi là Chatbot sẽ hỗ trợ bạn các vấn đề sau, xin mời
bấm phím 0 để gặp tổng đài viên, phím 1 để báo hỗ trợ dịch vụ ...”.
Ưu điểm của loại Bot này là dễ dàng cài đặt, khơng u cầu tính năng

AI cao, sử dụng ít bộ nhớ và tài nguyên (vì thường cây kịch bản có
giới hạn nhất định), dễ dàng khởi tạo, dễ dàng tích hợp lên nhiều kênh
khác nhau như Alexa, Google Assistant, Siri … Loại Bot này phù hợp
cho việc khảo sát, hỗ trợ doanh số, hay một số quy trình giao tiếp cơ
4


bản. Nhược điểm là vì đơn giản cho nên khó có thể hỗ trợ phức tạp, vì
thế Hybrid Bot ra đời giúp giải quyết trường hợp này
- Hybrid Bots: Loại này hỗ trợ cho phép người dùng đặt câu hỏi sử
dụng ngơn ngữ tự nhiên. Ví dụ như “Tơi là chatbot sẽ hỗ trợ bạn các
vấn đề sau, xin mời bấm nút X,Y, Z hoặc đặt câu hỏi trực tiếp bằng
cách gõ nội dung cần hỏi”. Ưu điểm là cho phép bao quát được các
kịch bản không hỗ trợ được bởi Button-Based Bots. Nó cũng cho phép
người dùng đặt những câu hỏi ngồi những câu hỏi có sẵn trong kịch
bản của Chatbot hỗ trợ. 1 lợi ích to lớn khác là việc ghi logs lại các
trường hợp hỗ trợ sẽ là tập dữ liệu tốt để có thể training chatbot nếu
có nâng cấp Chatbot sử dụng cơng nghệ AI/ML.
- AI Bots: Trường hợp số lượng truy vấn lớn, AI bot sẽ là một giải pháp
hữu hiệu. AI này có thể tự động hóa quy trình giao tiếp truyền thơng
một cách đồng thời, với nhiều người dùng, có thể giao tiếp với nhiều
chủ đề khác nhau. Ví dụ một Chatbot điện thoại có thể tư vấn nâng
cấp chức năng cho khách hàng, đồng thời tại cùng thời điểm có thể
thực hiện báo cáo gửi tới khách hàng về trạng thái sử dụng dịch vụ …
Ngoài ra việc ứng dụng AI cũng cho phép Chatbot nắm được nhu cầu
khách hàng thông quá quá trình học / huấn luyện liên tục, cho phép
thu thập thông tin và đưa ra những hỗ trợ phù hợp cho từng khách
hàng. Tuy nhiên loại Bot này thường có chi phí đầu tư ban đầu cao do
tính phức tạp và cần hạ tầng phần cứng cấu hình cao, chi phí bảo trì
nâng cấp cũng đáng kể. Ưu điểm của loại Bot này là giúp giải phóng

sức lao động của con người mà hiệu quả đạt được không thay đổi,
thậm chí tốt hơn, cải thiện trải nghiệm chất lượng tư vấn khách hàng.
Cho phép nhân viên hỗ trợ giải phóng khỏi những cơng việc lặp đi lặp
lại gây nhàm chán.
- Hệ sinh thái đa kênh, bao gồm AI Bot: trong hệ thống này, AI Bot
trở thành một kênh truyền thông, một công cụ trong hệ sinh thái đa
kênh này. Ví dụ như việc hỗ trợ trên nền tảng MXH Twitter: đầu tiên
khách hàng sẽ được tư vấn bởi chatbot, sau đó là hỗ trợ qua điển thoại
với nhân viên kỹ thuật, cuối cùng được hỗ trợ qua Email. Ưu điểm của
mơ hình này là việc bảo lưu lại tồn bộ lịch sử trải nghiệm trong trường
hợp người dùng chuyển kênh này sang kênh khác trong quá trình trải
nghiệm hệ sinh thái, tránh trường hợp người dùng phải giải thích lại
những gì đã cung cấp trước đó ở một kênh khác. Một ví dụ khác là
Google, khi người dùng có một tài khoản đăng nhập có thể sử dụng
rất nhiều các dịch vụ khác nhau trong hệ sinh thái đó, với các cài đặt,
5


thói quen người dùng được lưu lại. Khi chuyển sang dịch vụ khác mọi
thơng tin đó vẫn được bảo lưu lại mà không cần khai báo mới
- Voice Chatbot: Trong những năm gần đây, cơng nghệ xử lý giọng nói
và ngơn ngữ đã đạt đến mức có thể tạo ra những chức năng xử lý giọng
nói hoạt động tương đối hiệu quả, ví dụ như trợ lý ảo (Cortana, Google
Assistant), Smart IVRs hay Robocalls. Tuy nhiên, để triển khai cần
yêu cầu nguồn nhân lực có trình độ và chun mơn về nền tảng giải
pháp phát triển giọng nói, vd như DialogFlow của Google, SAP
Conversational AI, JAICP từ Just AI … Đây chính là xu hướng tương
lai của AI Chatbot, khi mà kênh tương tác chủ đạo chính là giọng nói
con người.
1.3. Nguyên tắc xây dựng hệ thống

Với mỗi hệ thống xây dựng thường kèm theo đó các tiêu chuẩn, nguyên
tắc đặt ra như một thước đo để đi theo trong quá trình xây dựng,
Chatbot cũng như vậy. Cụ thể ở đây cần xem xét các đáp ứng sau đối
với việc xây dựng Chatbot:
- Ứng dụng vào đời sống dễ dàng hơn: Chatbot thu nhận lượng thông
tin tối thiểu từ người dùng, sau đó cung cấp lại phản hồi trả lời người
dùng, thậm chí có thể dự đốn nhu cầu người dùng, và đáp ứng ở mức
độ nhất định, tự động hóa những việc mà trước đây người dùng phải tự
làm lấy. Ví dụ nhiều trợ lý ảo hiện nay như Siri có thể thực hiện đặt
báo thức, lịch làm việc … chỉ thông qua một thông điệp ngắn gọn. Siri
sẽ tự đặt lịch, thêm vào báo thức giờ đã hẹn, đánh dấu trên bản đồ địa
điểm đã nhắc đến … Ngồi ra người ta cịn chú trọng tới sự dễ dàng
tích hợp của Chatbot vào các ứng dụng lớn hơn, gia nhập vào hệ sinh
thái chung.
- Có thể giới thiệu được chính nó: Chúng ta khơng thể để người dùng
tự tìm hiểu xem Chatbot hỗ trợ những gì, mà cần có phương pháp giới
thiệu cho người dùng thấy các hỗ trợ có thể của Chatbot, đồng thời đề
xuất những bước đi đầu tiên nhằm hỗ trợ tối ưu nhất.
- Cung cấp hỗ trợ liên tục: Cung cấp thông tin hữu ích và các bước tiếp
theo để người dùng cảm thấy được hỗ trợ liên tục, có thể dễ dàng tiếp
cận các tài liệu thông qua những lệnh đơn giản (VD: --help để hiển thị
thông tin hướng dẫn …; --settings để hiển thị cài đặt; --startover; -stop ...)
- Gợi mở các hướng tương tác liên tục: Khi người dùng tương tác với
Chatbot, bên cạnh yêu cầu được đặt ra, Chatbot nên hỗ trợ thêm các
bước đi mở rộng tiếp theo.
VD như sau: “Hey Bot, đặt tôi 1 bàn lúc 8h30 tối nay cho 2 người tại
nhà hàng Sadhu Lý Thường Kiệt”“Đã đặt bàn xong. Bạn có muốn tơi
đặt Grab ln khơng?”
6



- Bắt đầu đơn giản, sau đó nâng cấp dần: Khi bắt đầu tương tác với
chatbot, các option nên thể hiện một cách dơn giản và dễ tiếp cận. Sau
khi người dùng đã quen rồi thì cho hiển thị các chức năng, hỗ trợ mới
cho người dùng, có thể kèm theo các tooltips hướng dẫn. Khi tiếp cận
từng bước người dùng sẽ nắm dần những tính năng mà Bot hỗ trợ, mà
không bị rối khi các chức năng trở nên nhiều hơn.
- Các phản hồi ngắn gọn là điều bình thường: Thơng điệp trả lời ngắn
gọn, súc tích là một phương án tốt, khi người dùng tương tác với
Chatbot trên các thiết bị cầm tay nhỏ gọn, ví dụ như smartphone, hay
các thiết bị đeo với màn hình có đường kính rất hạn chế. Người dùng
có xu hướng đọc lướt thơng tin, và những thơng tin q dài dịng khiến
người dùng phải tua đi tua lại, gây ra sự bất tiện cho trải nghiệm người
dùng.
- Chatbot Hybrid: Chatbot có thể tương tác theo nhiều cách khác nhau,
và những cách thức này bổ trợ lẫn nhau giúp tăng trải nghiệm cho
người dùng, đồng thời giúp giảm tải xử lý cho Server AI phải làm q
nhiều cơng việc phức tạp. Ví dụ như Chatbot tổng đài sẽ cho phép bấm
chọn “Mời bấm nút 1 để đăng ký gói dịch vụ mới, 2 để gia hạn thuê
bao; nút 3 để nhận được hỗ trợ báo hỏng dịch vụ; 0 để giải đáp về chi
tiết dịch vụ ...”. Ví dụ với việc giới thiệu dịch vụ, là tác vụ lặp đi lặp
lại, Chatbot sẽ xử lý. Còn báo hỏng dịch vụ phức tạp hơn sẽ để nhân
viên kỹ thuật hỗ trợ sẽ giúp nhanh chóng khoanh vùng để giải đáp cho
khách hàng hơn.
- Tương tác đơn giản: Việc tương tác nên đơn giản, và giới hạn chức
năng để hướng người dùng đi theo các kịch bản có trước đó. VD như
đưa ra cây Menu cho người dùng chọn, hay thay vì việc để người dùng
gõ vào Yes/No thì hiển thị nút Bấm Xanh/Đỏ Yes/No cho người dùng
chọn
- Tính cá nhân hóa: Việc cá nhân hóa Chatbot sẽ làm tăng trải nghiệm

người dùng lên. Thơng qua việc tương tác, Chatbot có thể học hỏi và
giao tiếp dần dần theo phong cách của người tương tác. Điều này đặc
biệt hữu ích đối với lĩnh vực thương mại điện tử, khi “khẩu vị” mỗi
khách hàng một khác nhau, nếu Chatbot có thể nắm được cách giao
tiếp và đưa ra những gợi ý phù hợp tùy vào tính cá nhân hóa, trải
nghiệm người dùng sẽ cải thiện đáng kể.
- Chun mơn hóa cho Chatbot: Tập trung vào một số ít lĩnh vực để có
thể training Chatbot một cách hiệu quả hơn thay vì huấn luyện Chatbot
cho nhiều lĩnh vực khác nhau. Việc chun mơn hóa sẽ giúp Chatbot
tương tác tốt hơn với con người, đồng thời làm cho Chatbot trở nên
chuyên sâu hơn trong lĩnh vực, từ đó hỗ trợ con người nhiều công việc
phức tạp hơn trong các lĩnh vực đó.
- Ln ln phản hồi: Kể cả khi Chatbot “khơng hiểu” người dùng nói
gì, Chatbot vẫn cần trả lời lại. VD có thể trả lời “Xin lỗi, tôi chưa hiểu
rõ ý bạn”; hay “Để tôi nghĩ thêm về việc bạn nói nhé” hơn là bỏ qua ý
7


kiến của người dùng - hoặc có những cách trả lời hài hước sẽ làm cho
người dùng muốn giải thích, muốn tương tác tiếp.
1.4. Một số ứng dụng thương mại hóa Chatbot hiện nay

Hình 1. 2 Logo một số ứng dụng thương mại Chatbot hiện nay

Trên thế giới hiện nay đã có nhiều các Tập đồn, cơng ty, tổ chức xây dựng
nên những Chatbot và APi Chatbot, cho phép người dùng sử dụng dịch vụ,
các nhà phát triển tích hợp được vào trong các hệ thống của họ. Một số tên
tuổi lớn về Chatbot có thể kể đến như Siri của Apple, Google Assistant của
Google, Alexa của Amazon hay Cortana của Microsoft.
Những hệ thống này bên cạnh thuật toán tốt, còn sử dụng tập dữ liệu training

khổng lồ từ các dịch vụ khác trong hệ sinh thái của họ, giúp cho việc training
Chatbot trở nên hiệu quả và thông minh hơn. Bên cạnh đó, các API của các
hãng này cịn được đơn giản hóa và trong suốt đối với người dùng, từ đó các
nhà phát triển phần mềm dễ dàng tích hợp được Chatbot các hãng này vào
hệ thống của họ, từ đó giúp cho việc phổ biến Chatbot trở nên dễ dàng thuận
tiện hơn bao giờ hết.

8


1.5.Ứng dụng của cơng trình nghiên cứu vào thực tế hiện nay

Hình 1. 3 Ứng dụng của Chatbot trong cuộc sống

Chatbot đang ngày càng có ứng dụng sâu rộng vào ngõ ngách đời sống, đặc
biệt
trong thời đại Công nghiệp 4.0 như hiện nay. Việc sử dụng Chatbot trong
các lĩnh vực đời sống đã giúp cho con người được giải phóng bớt khỏi những
công việc lặp đi lặp lại dễ gây nhàm chán, đồng thời nâng cao hiệu quar trong
công việc và cuộc sống.
Có thể kể đến một số ứng dụng của Chatbot như sau:
- Tổng đài hỗ trợ khách hàng tự động trả lời câu hỏi 24/7
- Đặt bàn online quán ăn, nhà hàng
- Đặt lịch khám online với bác sỹ
- Đặt phịng online khách sạn
- Cập nhật tình hình thời tiết, tin tức thế giới
- Trợ lý ảo, ví dụ Google Assistant, Siri hay Cortana
- Tự động hóa các tác vụ cần cập nhật trên diện rộng.

9



CHƯƠNG 2: XÂY DỰNG MƠ HÌNH HỆ THỐNG
CHATBOT

2.1. Các cơng nghệ nền tảng
2.1.1. Tìm hiểu một số kỹ thuật thiết kế Chatbot hiện nay
Theo cơng trình nghiên cứu "Review of State-of-the-Art Design Techniques
for Chatbots" [1] nhóm tác giả đã phân loại và điểm qua một số kỹ thuật sau:
- Rule-based Chatbot: Kỹ thuật này thiết lập các quy tắc được định nghĩa
trước để sinh ra câu trả lời. Phương pháp này hoạt động tốt nếu hội thoại sát
với chủ đề, tuy nhiên nếu chủ đề trở nên mở hơn thì kết quả sẽ khơng cịn tốt
nữa. Một số kỹ thuật tiêu biểu thuộc nhóm Rule-based có thể kể tới như
Pattern Matching, Parsing, Mơ hình chuỗi Markov, Ontology, AIML,
ChatScript …
+ Pattern Matching: Sử dụng các luật, các templates được định nghĩa trước
để sinh ra câu trả lời. Bằng cách tìm từ khóa và xây dựng hội thoại dựa trên
các từ khóa đó. Do đó kết quả trả về khơng được tự nhiên cho lắm.
+ Parsing: câu thoại được phân tách thành các loại từ khác nhau (vd chủ
ngữ, vị ngữ, tân ngữ …), từ đó sinh ra cây ngữ pháp (syntax tree) để đưa ra
câu trả lời phù hợp.
+ Mơ hình chuỗi Markov: mơ hình mơ tả xác suất của các sự kiện hiện tại
dựa trên trạng thái của các sự kiện trước đó. Nó tính tốn xác suất của một
ký tự hay một từ xuất hiện trong tập dữ liệu, sử dụng phân phối xác suất đó
để chọn từ ngữ phù hợp nhất cho câu trả lời
+ Ontology: là một cấu trúc cây về các khái niệm của thế giới thực. Các khái
niệm này được gọi là Lớp (Class). Khi các thể hiện của nhiều lốp, kết hợp
với nhau cùng với Ontology, tạo thành Cơ sở tri thức. Ví dụ Class “Bánh
mỳ” thể hiện tất cả các loại bánh mỳ. Có thể chia tiếp thành các lớp con
(subclass) như “bánh mỳ đen”, “bánh mỳ trắng”. Các lớp này có thể kết nối

với nhau để tạo ra đồ thị hình cây, trong đó lớp “bánh mỳ đen” và “bánh mỳ
trắng” là con của lớp “bánh mỳ”. Các thuộc tính của các lớp này được gọi là
“slots”. Ví dụ có thể là màu sắc, hãng sản xuất bánh … “Facets” định nghĩa
loại giá trị, lực lượng, khoảng giá trị của slots. Ưu điểm của cách tiếp cận
này đó là tìm kiếm trong các nút, sau đó thực hiện các phép suy luận để đưa
ra các câu trả lời mới. Ví dụ về cách tiếp cận này có OpenCyc hay Wordnet
hiện đang được sử dụng cho việc xây dựng Chatbot.
+ AIML: Là viết tắt của Artificial Intelligence Markup Language, là một
trong những công nghê tiên tiến để xây dựng Chatbot. Nó được sử dụng trong
10


mơ hình hội thoại giữa chatbot và con người. Có 2 cơng nghệ nền tàng của
AIML, đó là Pattern Recognition và Matching Techniques. AIML tương đối
dễ cài đặt, do nó có liên quan chặt chẽ với XML, và cấu trúc thẻ giúp cho
việc tạo ra cá đoạn hội thoại trở nên đơn giản hơn.
+ ChatScript: là ngôn ngữ kịch bản chatbot. Được phát triển bởi Bruce
Wilcox vào năm 2010. ChatScript về cơ bản là bản nâng cấp của AIML.
Thay vì tìm kiếm so khớp theo loại, chatscript tìm kiếm theo ngữ cảnh liên
quan. Ngữ cảnh này được gọi là “concept” và các luật sẽ được định nghĩa
trong các “concept” này.
- Neural Network Based Chatbot : Kỹ thuật này không cần phải viết các
luật để sinh câu trả lời, Thay vào đó, nó có thể học từ bộ dữ liệu huấn luyện
và sinh ra câu trả lời từ đầu, hoặc lấy dữ liệu trả lời từ bộ dữ liệu đã học. Dựa
vào cách thức sinh ra dữ liệu, Neural Network Based Chatbot có thể chia
thành 2 loại sau:
+ Retrieval-based: Lấy dữ liệu từ Tập dữ liệu dataset trả về cho người dùng
+ Generative: Tự sinh ra câu trả lời từ đầu. Một số kỹ thuật tiêu biểu của
nhóm này gồm có: RNN, LSTM,GRU, Seq2Seq ….
Rule-based Chatbot

- Thời gian huấn luyện nhanh hơn
- Dễ dàng tích hợp
- Nhiều cách tương tác bên cạnh text
thơng thường

AI Chatbots
- Có khả năng học từ dữ liệu thu thập
- Trở nên ‘thông minh’ hơn khi học
từ dữ liệu nhiều hơn
- Ra quyết định tốt hơn
- Có thể hiểu được nhiều ngôn ngữ

Từ bảng so sánh trên, ta có thể thấy ưu điểm của Chatbot khi áp dụng Neural
network. Khả năng tự học và tự ‘nâng cấp’ chính là ưu thế lớn của Neural
Network based Chatbot so với Rule-based Chatbot. Vì vậy tác giả đã lựa
chọn hướng tiếp cận Neural network based để xây dựng Chatbot trong Luận
Văn này.
Đã có nhiều cơng trình nghiên cứu trên thế giới về Chatbot, ví dụ một số
cơng trình nghiên cứu sau:
- Rule-based Chatbot:
+ Jagdish Singh, Minnu Helen Joesph, Khurshid Begum Abdul Jabbar
(2020) Rule-based chabot for student enquiries: Bài báo thực hiện cài đặt
Rule-based Chatbot, áp dụng cho đối tượng học sinh trường đại học Asia
Pacific (APU). Chatbot cung cấp cho học sinh phương án nhanh chóng hơn
11


để xử lý những câu truy vấn thay vì phụ thuộc vào phòng Một Cửa. Dựa vào
hướng tiếp cận nhận dạng mẫu (pattern recognition), từ khóa, cụm từ … để
đưa ra câu trả lời. Chatbot được xây dựng sử dụng nền tảng Chatfuel và tích

hợp trên Facebook Messenger.
- Neural-network based Chatbot:
+ lya Sutskever, Oriol Vinyals, Quoc V. Le (2014) Sequence to Sequence
Learning with Neural Networks: Bài báo này các tác giả đã đưa ra hướng
cài đặt mới cho bài toán dịch máy, sử dụng kỹ thuật Mạng bộ nhớ dài ngắn
(Long Short-Term Memory - LSTM) để ánh xạ chuỗi dữ liệu đầu vào với
một Véc-tơ có số chiều cố định, sau đó sử dụng LSTM để giải mã ra câu trả
lời từ Véc-tơ đó. Kết quả được áp dụng trong việc dich từ tiếng Anh sang
tiếng Pháp sử dụng bộ dữ liệu WMT-14. Kết quả dịch sinh ra đạt được điểm
số BLEU là 34.8 trên toàn bộ tập dữ liệu kiểm thử.
+ Asmund Kamphaug, Ole-Christoffer Granmo,Morten Goodwin1 el al
(2017) Towards Open Domain Chatbots — A GRU Architecture
for Data Driven Conversations: Bài báo này các tác giả đã đề xuất kiến
trúc học sâu (deep learning) cho việc nhận dạng nội dung sử dụng GRU.
Kiến trúc được thiết kế để nắm bắt được cấu trúc câu phức tạp với nhiều tầng
lớp ngữ nghĩa, tìm ra và nhận dạng được nội dung ở các miền khác nhau. Để
đánh giá tính hiệu quả của kiến trúc đề xuất, các tác giả đã sử dụng 200.083
câu hỏi thuộc nhiều chủ đề nội dung khác nhau (289 chủ đề). Kết quả thực
hiện cho thấy rằng kiến trúc đã phân loại hiệu quả và chính xác các chủ đề,
kể cả khi số lượng chủ đề là khá lớn. Ngoài ra bài báo cũng thực hiện so sánh
với các kỹ thuật khác như SVM, Naive Bayes hay K-nearest neighbor và
thấy rằng các phương pháp này xử lý kém trong trường hợp số lượng chủ đề
là lớn.
2.1.2. Giới thiệu RNN
Mạng Nơ-ron hồi quy (Recurrent Neural Network) được phát minh bởi
John Hopfield năm 1982. Nó là một mạng Nơ-ron chứa một vịng lặp bên
trong nó:

12



Hình 2. 1 Mơ hình thu gọn của RNN
Trong ví dụ trên, A chính là mạng Nơ-ron hồi quy. Đầu vào là xt, sau đó thực
hiện xử lý và đưa ra output là ht. Và A sẽ lưu lại giá trị của ht để sử dụng cho
đầu vào tiếp theo. Như vậy có thể thấy, một mạng Nơ-ron hồi quy là một
chuỗi những mạng con giống hệt nhau, mỗi mạng sẽ truyền thơng tin nó vừa
xử lý cho mạng phía sau nó. Để dễ quan sát hơn ta có thể minh họa mạng
RNN như sau:

Hình 2. 2 Mơ hình đầy đủ của RNN
Trong đó, x0, x1, x2 … xn là những sự kiện xảy ra theo thứ tự thời gian. Những
sự kiện này có sự liên hệ thơng tin với nhau và thơng tin đó được giữ lại để
xử lý các sự kiện tiếp theo trong mạng Nơ-ron hồi quy.
Vì tính chất đặc biệt này, nên mạng RNN thường được ứng dụng trong các
bài tốn có đầu vào dưới dạng các chuỗi sự kiện có mối liên hệ với nhau, và
đã tỏ ra vượt trội hơn hẳn so với mô hình Nơ-ron truyền thống. 1 số ứng dụng
thường thấy của RNN như Dịch thuật, phân loại ngữ nghĩa, nhận dạng giọng
nói …
Mạng Nơ-ron hồi quy có chia thành 1 số loại như sau:
13


Hình 2. 3 Phân loại RNN
Trong đó, khối màu đỏ thể hiện Véc-tơ đầu vào, khối màu xanh dương thể
hiện Véc-tơ đầu ra, khối màu xanh lá cây thể hiện Véc-tơ trạng thái thông tin
trao đổi giữa các mạng con.
Tuy nhiên trong quá trình ứng dụng vào thực tế, mạng RNN đã bộc lộ một
số khuyết điểm, trong đó có vấn đề liên quan đến phụ thuộc xa.
Giả sử cho một câu:
- “Những đám mây trên bầu trời”

Với khả năng của RNN, khi ta đọc tới đoạn
- “Những đám mây trên bầu”
thì mạng hồi quy sẽ dự đốn được từ tiếp theo này, đó là từ “trời”.
Trong tình huống này, khoảng cách tới thơng tin cần để dự đốn là nhỏ, nên
RNN có thể học được.
Tuy nhiên, ví dụ trong 1 đoạn tự thuật sau:
- “Tôi sinh ra ở Việt Nam …… Tơi nói tiếng Việt rất trơi chảy”.
Khi nói đến đoạn “Tơi nói tiếng” thì RNN sẽ chỉ đốn được từ tiếp theo là
một ngơn ngữ nào đó, chứ khơng thể nào biết được đó là ngơn ngữ gì. Để
biết được ngơn ngữ trong ngữ cảnh này, cần tìm tới câu “Tơi sinh ra ở Việt
Nam”. Vì câu này ở khá xa rồi nên RNN suy luận ra là điều không thể.

14


Hình 2. 4 Cập nhật trọng số trong mạng RNN
Trong quá trình huấn luyện sẽ thường xảy ra quá trình lan truyền ngược về
các lớp trước, với mục đích giúp cho các lớp trước cập nhật lại trọng số
(weights) cho phù hợp. Giá trị trọng số mới này phụ thuộc vào 1 vài tham số
nhất định. Một trong những tham số quan trọng đó là Gradients. Khi việc lan
truyền càng về lớp trước thì giá trị Gradients sẽ có sự thay đổi, làm ảnh hưởng
tới quá trình cập nhật trọng số của giá trị này. Cụ thể:
- Gradients sẽ nhỏ dần khi đi xuống các layer thấp hơn, tới một lúc nào
đó, gradients sẽ nhỏ tới mức khơng làm thay đổi nhiều trọng số của
các layer đó nữa, từ đó khơng làm cải thiện mấy q trình huấn luyện.
Hiện tượng này gọi là Vanishing Gradients.

Hình 2. 5 Trọng số khơng được cập nhật lại đáng kể khi huấn luyện
- Nếu trường hợp lan truyền ngược về các layer trước đó mà gradients
trở nên lớn hơn, khiến cho một số layer có giá trị cập nhật cho trọng

số quá lớn, khiến chúng bị phân kỳ, từ đó đạt kết quả khơng tốt. Hiện
tượng đó gọi là Exploding Gradients, thường gặp khi sử dụng RNN.
Quan sát hạn chế này của RNN, ta có thể thấy rằng nó chưa có cơ chế giúp
loại bỏ các thông tin không cần thiết cho ngữ cảnh hiện đang xem xét. Vì bộ
nhớ có hạn, nên nếu lưu quá nhiều chi tiết không cần thiết sẽ dẫn tới việc bị
quá tải, và quên những dữ liệu ở khoảng cách xa.
15


Với những hạn chế đó, tác giả đã tìm hiểu các phương pháp khắc phục, và
lựa chọn nghiên cứu LSTM. Chi tiết LSTM được giới thiệu ở phần bên dưới.
2.1.3. Giới thiệu LSTM (Long Short-Term Memory Networks)
Mạng bộ nhớ dài ngắn, còn được gọi là LSTM, là một dạng đặc biệt của
RNN, nó có khả năng học được các phụ thuộc xa [4]. LSTM được đưa ra bởi
Hochreiter & Schmidhuber vào năm 1997, từ đó đã được nâng cấp cải tiến
bởi cộng đồng những người trong ngành. Vì tính hiệu quả cho nên LSTM đã
trở nên ngày càng phổ biến như hiện nay.
LSTM được thiết kế để tránh tính phụ thuộc xa. Việc nhớ thông tin trong
suốt thời gian dài là đặc tính sẵn có của LSTM, mà khơng cần phải trải qua
q trình training nữa.
Vì những tính chất kể trên, LSTM còn được ứng dụng vào nhiều những lĩnh
vực khác trong thế giới thực như là sinh âm nhạc, nhận dạng âm thanh, nhận
dạng chữ viết, cấu trúc thứ cấp protein …
So sánh RNN với LSTM, ta có thể thấy sự khác biệt giữa cấu trúc bên trong
của chúng như thế nào:

Hình 2. 6 Bên trong các cell của RNN
Cấu trúc bên trong các Mô-đun của mạng RNN. ở đây chỉ có 1 tầng tanh

Hình 2. 7 Bên trong các cell của LSTM

16


Cấu trúc bên trong cá Mơ-đun của LSTM, nó có cấu trúc khá khác so với
mạng RNN chuẩn. Thay vì chỉ có 1 tầng mạng Nơ-ron, chúng có tới 4 tầng
tương tác với nhau một cách đặc biệt.

Hình 2. 8 Giải thích một số ký hiệu sử dụng
Giải thích:
- Mỗi đường trong hình trên mang một Véc-tơ từ đầu ra của một nút tới
đầu vào của một nút khác.
- Nút màu hồng thể hiện các phép tốn, ví dụ như phép cộng, phép tanh
- Các ô màu vàng được sử dụng để học trong từng Nơ-ron
- Các đường mũi tên thể hiện việc nội dung tính tốn được chuyển tới
các nơi khác, hoặc được sao chép.

Hình 2. 9 Chi tiết hoạt động LSTM
Từ hình trên có thể thấy, trạng thái tế bào (cell state) chạy xuyên suốt các
Nơ-ron, và tại mỗi Nơ-ron sẽ có tương tác nhất định. Vì vậy mà thơng tin có
thể truyền đi thơng suốt mà khơng sợ bị thay đổi.
Với việc nâng cấp thiết kế trong từng Mơ-đun, LSTM có khả năng thêm /
bớt các thơng tin cần thiết cho trạng thái tế bào, áp dụng các nhóm cổng
(gate)

17


×