Xây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdf
1. TRƯỜNG ĐẠ Ọ Ộ
I H C BÁCH KHOA HÀ N I
LUẬN VĂN THẠC SĨ
Xây d ng ng d n khách hàng
ự ứ ụng Chatbot tư vấ
s d ng các k thu t h c sâu
ử ụ ỹ ậ ọ
NGUY C HI U
ỄN ĐẮ Ế
Ngành Công ngh thông tin
ệ
Giảng viên hướ ẫ
ng d n: PGS.TS. Cao Tuấn Dũng
Viện: Công ngh thông tin và truy n thông
ệ ề
HÀ N 2021
ỘI,
2. TRƯỜNG ĐẠ Ọ Ộ
I H C BÁCH KHOA HÀ N I
LUẬN VĂN THẠC SĨ
Xây d ng ng d n khách hàng
ự ứ ụng Chatbot tư vấ
s d ng các k thu t h c sâu
ử ụ ỹ ậ ọ
NGUY C HI U
ỄN ĐẮ Ế
Ngành Công ngh thông tin
ệ
Giảng viên hướng dẫn: PGS.TS. Cao Tuấn Dũng
Viện: Công ngh thông tin và truy n thông
ệ ề
HÀ N 2021
ỘI,
ký c a GVHD
Chữ ủ
3. C NG HÒA 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 : Nguy c Hi u
ễn Đắ ế
Đề ận văn
tài lu : Xây d ng ng d n khách hàng s d
ự ứ ụng Chatbot tư vấ ử ụng
các k c sâu
ỹ ậ
thu t họ
Chuyên ngành: Công ngh thông tin
ệ
Mã số HV: CB190157
Tác gi ng d n khoa h c và H ng ch m lu
ả, Người hướ ẫ ọ ộ ồ
i đ ấ ận văn xác nhận
tác gi a ch a, b sung lu n h p H ng ngày
ả đã sử ữ ổ ận văn theo biên bả ọ ội đồ
30/10/2021 v i dung sau:
ới các nộ
1. S thành m t ph
ửa Chương 4: Kế ậ
t lu n ộ ần không đánh số (trang 58).
2. Giản lượ ộ
c n i dung Chương 2: Cơ sở ế
lý thuy t.
3. 17 24
Việ ừ ế ụ –
t hóa các t ti ng Anh (M c 2.3 trang - , M c 2.4 trang
ụ –
25-31).
4. B sung khái ni m h c chuy n giao (M c 2.4.2 trang 2
ổ ệ ọ ể ụ – 7)
5. B sung mô hình t ng quát quy trình ho ng c a Chatbot (M
ổ ổ ạt độ ủ ục
3.3.2 trang 40 ng kê k t qu (Hình 3.18-3.21 trang 53- )
– ), thố ế ả – 56
6. Đánh số ứ ử ỗ ề ữ ả
các công th c, s a các l i v trình bày ngôn ng , chính t
cho h p lý, ví d s
ợ ụ ửa “đào tạo mô hình” thành “huấn luyện mô hình”.
Ngày tháng năm 2021
Giáo viên hướ ẫ
ng d n Tác giả luận văn
T CH H
CHỦ Ị Ộ Ồ
I Đ NG
4. LỜI CAM ĐOAN
Tôi xin cam đoan: Luận văn “Xây dự ứ ụng Chatbot tư vấ
ng ng d n khách
hàng s d ng các k thu t h
ử ụ ỹ ậ ọc sâu” là công trình nghiên c u khoa h c l
ứ ọc, độ ập
c a tôi. Ki n th c trình bày trong lu t ng h p c a cá nhân, thông qua
ủ ế ứ ận văn là sự ổ ợ ủ
các ki n th c t ng d n, các tài li u tham kh o trên m ng internet và các
ế ứ ừ thầy hướ ẫ ệ ả ạ
bài báo khoa h c khác.
ọ
Đây là đề ận văn Thạ ỹ ệ ế ả
tài lu c s ngành Công ngh Thông tin. K t qu nghiên
c c trình bày trong lu c công b i b t k hình
ứu đượ ận văn này chưa từng đượ ố dướ ấ ỳ
thức nào.
Hà N i, ngày th
ộ áng năm 2021
Tác giả luận văn
Nguy c Hi u
ễn Đắ ế
5. L I C
Ờ ẢM ƠN
Trước tiên, tôi xin chân thành cảm ơn các thầy, các cô trong Vi n Công ngh
ệ ệ
thông tin và Truy n thông - i h c Bách Khoa Hà N n tình gi
ề Trường Đạ ọ ội đã tậ ảng
d trong su t th i gian tôi h c t hoàn thành Lu
ạy ố ờ ọ ập ở trường. Để ận văn thạc sĩ, tôi
cũng đã nhận đượ ề
c nhi u sự quan tâm, giúp đỡ ừ
t quý thầy cô, gia đình và bạn bè.
Đặ ệ ỏ ết ơn sâu sắ ớ ầ
c bi t tôi bày t lòng bi c t i th y PGS.TS. Cao Tuấn Dũng
đã tậ ỉ ảo, hướ ẫ ự ếp tôi để tìm ra hướ ứ ể
n tình ch b ng d n tr c ti ng nghiên c u và có th
hoàn thi n lu t nghi p c
ệ ận văn tố ệ ủa mình.
Cuối cùng, tôi xin cảm ơn gia đình và bạn bè và t p th l
ậ ể ớp CNTT 2019B đã
luôn ng h
ủ ộ, giúp đỡ tôi trong th i gian h c t p, nghiên c u và th c hi n lu
ờ ọ ậ ứ ự ệ ận văn
t t nghi
ố ệp.
Trong quá trình làm lu t nghi p ch c ch n không tránh kh i nh ng
ận văn tố ệ ắ ắ ỏ ữ
sai sót, tôi r t hoan nghênh và chân thành c a quý
ấ ảm ơn các ý kiến đóng góp củ
thầ ạn đọ
y cô và b c.
Tác giả luận văn
Nguy c Hi u
ễn Đắ ế
6. i
M C L C
Ụ Ụ
DANH M C CÁC HÌNH V
Ụ Ẽ ...................................................................iii
DANH M C B
Ụ ẢNG....................................................................................v
M U
Ở ĐẦ ......................................................................................................1
CHƯƠNG 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
ầ ủ .................................................................... 4
1.3 Các lo i Chatbot
ạ ......................................................................................... 5
1.3.1 Rule-based Chatbot...............................................................................5
1.3.2 AI-based Chatbot .................................................................................. 7
1.4 Các n n t ng xây d ng Chatbot
ề ả ự ............................................................... 8
1.5 M ng d ng c a Chatbot
ột số ứ ụ ủ .................................................................11
CHƯƠNG 2: CƠ SỞ Ế
LÝ THUY T ........................................................13
2.1 Cơ bả ề
n v Deep learning .........................................................................13
2.2 M -ron h i quy RNN
ạng nơ ồ .....................................................................14
2.3 Mô hình Transformer..............................................................................17
2.3.1 T ng quan mô hình Transformer
ổ ........................................................ 17
2.3.2 Thành ph n mã hóa
ầ .............................................................................18
2.3.3 Thành ph n gi i mã
ầ ả ............................................................................23
2.3.4 Ưu điể ủ
m c a mô hình Transformer so v i mô hình RNN
ớ ...................24
2.4 Mô hình DIET .......................................................................................... 25
2.4.1 Đặc trưng hóa câu đầu vào (Featurization).......................................27
2.4.2 H c chuy n giao (Transfer Learning)
ọ ể ................................................27
2.4.3 Thành ph n Transformer
ầ ....................................................................29
2.4.4 Hu n luy n mô hình
ấ ệ ............................................................................ 29
2.4.5 Đánh giá mô hình DIET...................................................................... 31
CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶ Ứ Ụ
T NG D NG CHATBOT ..33
3.1 Gi i thi u Rasa Framework
ớ ệ .................................................................... 33
3.2 C u trúc c a Chatbot Nh t Nam
ấ ủ ấ ............................................................35
7. ii
3.2.1 Thi t ng quát
ết kế ổ ............................................................................... 35
3.2.2 Sơ đồ ạt độ
quy trình ho ng củ ấ
a Chatbot Nh t Nam............................. 37
3.3 Xây d ng d u Chatbot
ự ữ liệ ....................................................................... 39
3.3.1 Xây d nh (intent)
ựng ý đị ..................................................................... 39
3.3.2 Xây d ng th (entity)
ự ực thể ................................................................... 40
3.3.3 Xây d ng câu tr l i cho Chatbot
ự ả ờ ....................................................... 41
3.3.4 C u hình các thành ph n
ấ ầ .................................................................... 44
3.4 Cài đặt chương trình ............................................................................... 46
3.5 Th nghi
ử ệm và đánh giá chương trình.................................................. 51
K T LU N
Ế Ậ ................................................................................................58
TÀI LI U THAM KH O
Ệ Ả ........................................................................59
8. iii
DANH M C CÁC HÌNH V
Ụ Ẽ
Hình 1.1. Minh h thành ph n c a Chatbot [3]
ọa các ầ ủ ............................................. 5
Hình 1.2. Chatbot h nút b
ỗ trợ ấm để ủa Domino’s Pizza
thao tác c ....................... 6
Hình 1.3. Giao di n n n t ng Chatbot FPT.AI Conversation
ệ ề ả ................................9
Hình 1.4. Giao di n n n t ng Chatbot Harafunnel
ệ ề ả ............................................... 10
Hình 1.5. Chatbot Messenger c a trang CNN
ủ .....................................................12
Hình 2.1. M -ron h i quy [5]
ạng nơ ồ ...................................................................... 14
Hình 2.2. Sơ đồ mô hình Transformer [8] ...........................................................18
Hình 2.3 Minh h a bi nhi t Positional Encoding
ọ ểu đồ ệ ........................................20
Hình 2.4. Minh h liên k t gi [10]
ọa mứ ộ
c đ ế ữa các từ ..........................................21
Hình 2.5. 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 [8]
ủ ......................................................................................................25
Hình 2.6. Sơ đồ mô hình DIET [13] .................................................................... 26
Hình 2.7. Minh h a so sánh s d ng và không s d ng h c chuy n giao
ọ ử ụ ử ụ ọ ể ...........28
Hình 2.8. So sánh mô hình DIET và mô hình HERMIT [13]..............................32
Hình 2.9. Đánh giá các biế ể
n th c a mô hình DIET [13]
ủ ....................................32
Hình 3.1. Sơ đồ ầ
các thành ph n trong Rasa Framework......................................33
Hình 3.2. C u trúc h ng Chatbot Nh t Nam
ấ ệ thố ấ ..................................................36
Hình 3.3. Sơ đồ ạ
quy trình ho t độ ủ ấ
ng c a Chatbot Nh t Nam..............................37
Hình 3.4. Giao di n Rasa X s
ệ ử ụ ạ ị ả
d ng t o k ch b n...............................................39
Hình 3.5. Khai báo intent trong file nlu.yml........................................................40
Hình 3.6. Khai báo entity trong file domain.yml................................................. 41
Hình 3.7. Khai báo intent có chứa entity trong file nlu.yml ................................41
Hình 3.8. Khai báo Rule policy trong file rules.yml............................................ 42
Hình 3.9. Khai báo k ch b n trong file stories.yml
ị ả .............................................. 43
Hình 3.10. Hàm x lý sau khi hoàn thành nh p Form liên h
ử ậ ệ............................. 44
Hình 3.11. Khai báo c u hình trong file config.yml
ấ ............................................46
Hình 3.12 Giao di n h nút b thao tác
ệ ỗ trợ ấm để ..................................................47
9. iv
Hình 3.13. Ngườ ể ấm nút để ả ờ ặ ậ
i dùng có th b tr l i (hình bên trái) ho c nh p tin
nhắ ả
n (hình bên ph i) ............................................................................................ 48
Hình 3.14 Trườ ợ ậ
ng h p nh p form liên hệ............................................................ 49
Hình 3.15. Trườ ợ ị gián đoạn (hình bên trái) Trườ ợ ừ ố
ng h p form b ng h p t ch i
nhậ ả
p form (hình bên ph i) ................................................................................... 50
Hình 3.16. Trườ ợ
ng h p Chatbot không hi i dùng
ểu ý ngườ ................................. 51
Hình 3.17. Bi ng kê m tin c y d
ểu đồ thố ứ ộ
c đ ậ ự đoán ý định (intent)................. 53
Hình 3.18. Bi ng kê m tin c y d
ểu đồ thố ứ ộ
c đ ậ ự đoán thự ể
c th (entity) .............. 53
Hình 3.19. Bi ma tr n nh m l
ểu đồ ậ ầ ẫ ữ
n (Confusion matrix) gi a các nhãn dự đoán
và nhãn đúng trong tác vụ ại ý đị
phân lo nh......................................................... 54
Hình 3.20. Bi ma tr n nh m l
ểu đồ ậ ầ ẫ ữ
n (Confusion matrix) gi a các nhãn dự đoán
v trích xu
à nhãn đúng trong tác vụ ất thực thể...................................................... 55
Hình 3.21. Thang đo so sánh điểm intent c a 3 c u hình
ủ ấ .................................... 56
Hình 3.22. Thang đo so sánh điểm entity c a 3 c u hình
ủ ấ .................................... 56
10. v
DANH M C B
Ụ ẢNG
B ng 3.1. Thông s
ả ố đo intent...............................................................................52
B ng 3.2. Thông s
ả ố đo entity ...............................................................................52
B ng 3.3. K t qu m intent c
ả ế ả so sánh điể ủ ấ
a 3 c u hình ........................................ 56
B ng 3.4. K t qu m entity c u hình
ả ế ả so sánh điể ủa 3 cấ ........................................57
11.
12. 1
M U
Ở ĐẦ
1. Đặt vấn đề
Ngày nay công ngh có m t trên m
ệ ặ ọi lĩnh vực, vi c s
ệ ố hóa giúp cho con người
giả ế ữ ệ ặp đi lặ ạ ệc đượ ạt độ
m thi u nh ng công vi c l p l i, giúp công vi c ho ng chính
xác và năng suất hơn. Chatbot cũng là một m ng quan tr ng trong công ngh thông
ả ọ ệ
tin hi nay, nó có m t trong m ch,
ện ặ ọi lĩnh vực như kinh doanh, ngân hàng, du lị
giáo d c, y t
ụ ế...
Do đặ ệ ủ ạt độ ủ ế ề ế
c thù công vi c c a tôi ho ng ch y u v chuyên ngành k toán,
nên m i ngày i n u ti p nh
ỗ độ ngũ nhân viên tư vấ đề ế ận hàng trăm, hàng nghìn tin
nhắn từ phía khách hàng liên quan đến hướng d n s d
ẫ ử ụng, tư vấn, bán hàng và hỗ
tr tr
ợ ả ấ ả ẩm. Để đả ả ận đượ ự ỗ
b o trì nâng c p s n ph m b o khách hàng luôn nh c s h ợ
t t nh t, doanh nghi p c n tuy n thêm nhân viên h và th t p hu
ố ấ ệ ầ ể ỗ trợ ời gian để ậ ấn
một người thông thường là 1 tháng. V i s h
ớ ự ỗ trợ ủ
c a Chat-bot s giúp tr l
ẽ ả ời được
nh n
ữ ỏi thườ ặ ủ ả năng hoạt độ ả
ng câu h ng g p c a khách hàng, có kh ng 24/7 và ph
h i khách hàng ngay l p t ng th i gi m t i kh ng công vi c c nhân
ồ ậ ức, đồ ờ ả ả ối lượ ệ ủa
viên h và giúp doanh nghi p ti
ỗ trợ ệ ế ệ
t ki m chi phí.
Hiểu đượ ầ ọng đó, tôi đã chọn đề
c t m quan tr tài “ ự ứ ụ
Xây d ng ng d ng
Chatbot tư vấn khách hàng s d ng các k thu t h c sâu
ử ụ ỹ ậ ọ ” b ng nh ng ki
ằ ữ ến thức
tìm hi c và v i tinh th
ểu đượ ớ ần hăng say, nghiêm túc.
2. M c tiêu nghiên c
ụ ứ ủ ận văn
u c a lu
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 i dùng, trích ch n thông
ữ ự nhiên NLU, NLP như phân loại ý định ngườ ọ
tin và qu n lý h i tho
ả ộ ại,… trong ứng d ng c là Chatbot h khách hàng.
ụ ụ thể ỗ trợ
Nghiên c u chuyên sâu mô hình Transformer và DIET, lu p trung
ứ ận văn tậ
đưa ra giả ự ứ ụ ền đóng (closed
i pháp và xây d ng mô hình Chatbot ng d ng trong mi
domain) có kh l i phù h p v i nh ng câu h ng t
ả năng trả ờ ợ ớ ữ ỏi tương ứ ừ phía người
dùng.
V i bài toán ng nghiên c cung c p d ch v n m m k
ớ đối tượ ứu là đơn vị ấ ị ụ phầ ề ế
toán, luận văn sẽ ậ
t p trung xây d ng mô h ng Chatbot h
ự ệ thố ỗ trợ người dùng trong
13. 2
nghi p v n h s d ng ph n m m d a vào n n t Rasa và áp d ng
ệ ụ tư vấ ỗ trợ ử ụ ầ ề ự ề ảng ụ
nhữ ế ứ
ng ki n th c nề ảng để ể
n t có th làm ch và tùy ch nh trên mã ngu n m này.
ủ ỉ ồ ở
3. m vi tài
Phạ đề
- Nghiên cứu các phương pháp xử lý ngôn ng t nhiên phù h p cho Chatbot
ữ ự ợ
hướ ớ
ng t i.
- Nghiên c u mô hình h c sâu Transformer.
ứ ọ
- Nghiên cứu mô hình đa tác vụ DIET.
- Thu th p và t ng h
ậ ổ ợp các câu hỏi đáp ủa khách hàng trước đó để
c 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 Chatbot b ng công c
ự ầ ử ữ ự ủa ằ ụ
Rasa.
- Xây d Chatbot thành service tích h p v i Website doanh nghi p.
ựng ợ ớ ệ
4 u trúc lu
. Cấ ận văn
CHƯƠNG 1: TỔ Ề
NG QUAN V CHATBOT: i thi
Chương này sẽ giớ ệu
nhữ ế ứ ổ ề ộ ệ ố ầ ủ
ng ki n th c t ng quan v m t h th ng Chatbot, các thành ph n c a Chatbot
và phân bi Chatbot.
ệt các loại
CHƯƠNG 2: CƠ SỞ Ế
LÝ THUY T: i thi u khái ni m v
Chương này giớ ệ ệ ề
m ng -ron n kinh nhân t o, khái ni m deeplearning, nghiên c u mô hình h
ạ nơ thầ ạ ệ ứ ọc
sâu Transformer và DIET.
CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶ Ứ Ụ
T NG D NG CHATBOT:
Chương này sẽ ớ ệ ả sơ đồ ấ ủ ệ ố
gi i thi u Rasa framework, mô t c u trúc c a h th ng
Chatbot t Nam, mô t
Nhấ ả các bước xây d ng bài toán trên n n t
ự ề ảng mã ngu n m
ồ ở
Rasa và đán ế ả ự
h giá k t qu th c nghiệm.
CHƯƠNG 4: K T LU N:
Ế Ậ Chương này đưa ra những k t lu n c a quá trình
ế ậ ủ
nghiên c u và hoàn thi
ứ ện s n ph
ả ẩm, đánh giá và định hướng nghiên c u ti p theo.
ứ ế
TÀI LI U THAM KH
Ệ ẢO: Liệ ệ ận văn tham khả
t kê các tài li u mà lu o trên
các ngu n khác nhau.
ồ
14. 3
CHƯƠNG 1: TỔ Ề
NG QUAN V CHATBOT
1.1 Khái ni Chatbot
ệm
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ườ ằng văn bả ặ ọ ả ờ ự độ ắ ủa con ngườ
i b n ho c gi ng nói, giúp tr l i t ng tin nh n c i
thông qua các ng d ng tin nh n trên website ho n tho
ứ ụ ắ ặc trên điệ ại di động.
Chatbot i khách hàng qua tin nh n theo th i gian
có khả năng tương tác vớ ắ ờ
thự o đó, khách hàng sẽ ả
c 24/7, d không ph i chờ đợi lâu để nhận được sự ỗ ợ ừ
h tr t
doanh nghi i nhau qua các n
ệp. Ngày nay, con người có xu hướng tương tác vớ ền
t ng nh n tin. Theo th
ả ắ ống kê của Facebook Messenger đầu năm 2020, hơn 61% số
khách hàng đượ ỏ ằ ắ ậ ệ ế
c h i cho r ng, nh n tin là cách thu n ti n giúp nhanh chóng k t
n i v i các doanh nghi p h c n. T i Vi t Nam, Zalo là ng d ng trò chuy n có
ố ớ ệ ọ ầ ạ ệ ứ ụ ệ
nhiều ngườ ử ụ ấ ới hơn 100 triệ
i s d ng nh t v u tài kho c s h
ản. Do đó, việ ở ữu
m t Chatbot c tích h n thông là thi t y i v i m i doanh
ộ đượ ợp đa kênh truyề ế ếu đố ớ ọ
nghiệp.
Cũng bởi Chatbot hỗ trợ con người th c hi n t
ự ệ ự động các công vi c t n nhi
ệ ố ều
thờ ấ ệ ế ệm đượ ả ớ
i gian nh t, giúp các doanh nghi p ti t ki c kho n chi phí l n cho nhân
sự. Đội ngũ nhân viên được tối ưu nhiệm v , t p trung x
ụ ậ ử các công vi c chuyên
lý ệ
sâu m Ngày nay Chatbot là m t ch nóng và nhi u công ty
ở ức độ khó hơn. ộ ủ đề ề
đang hy vọng phát triển để có nh ng cu c trò chuy n t nhiên không th phân bi
ữ ộ ệ ự ể ệt
v i b các k thu t NLP và u này thành
ới con ngườ ằng ỹ ậ Deep Learning để biến điề
hiệ ự
n th c.
Chatbot chia thành 2 lo i [1] m (open domain) và mi g (close
ạ miền ở ền đón
domain). Mi n m là mô hình tr l i t
ề ở ả ờ ự động cho phép người dùng có th tham gia
ể
trò chuy n v i b t k nào, không nh t thi t ph i có m t m c tiêu rõ ràng
ệ ớ ấ ỳ chủ đề ấ ế ả ộ ụ
hay m nh c nào. Mi ng t p trung vào m t ch c ví
ột ý đị ụ thể ền đóng thườ ậ ộ ủ đề ụ thể
d : th i ti t, du l ch, mua s m, y t t p trung vào xây
ụ ờ ế ị ắ ế… Trong luận văn này tôi sẽ ậ
d ng Chatbot thu c lo i mi
ự ộ ạ ền đóng, cụ thể là bài toán hỗ trợ khách hàng mua hàng,
tư vấn và hướ ẫ ử ụ
ng d n s d ng.
15. 4
1.2 Các thành ph n c Chatbot
ầ ủa
Chatbot ng c u thành t 3 thành ph n chính [2]: thành ph n hi
thông thườ ấ ừ ầ ầ ểu
ngôn ng t nhiên (NLU), thành ph n qu n lý h tho i (DM) và thành ph n sinh
ữ ự ầ ả ội ạ ầ
ngôn ng (NLG) i thành ph n x lý m t tác v riêng bi
ữ . Mỗ ầ ử ộ ụ ệ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 “ ẽ ầ ử
i dùng nh p câu h Giá s n ph m A03 bao nhiêu?
ả ẩ ” Chatbot s c n x
lý, b i vì Chatbot không hi c ngôn ng i cho NLU s chuy n nó
ở ểu đượ ữ con ngườ ẽ ể
thành d u có c u trúc, t phân tích câu h i trên v
ữ liệ ấ ừ đó có thể ỏ ới ý định là “hỏi
giá 3
”, thực thể ả ẩm “
là s n ph A0 ”.
- DM: Qu n lý h i tho i có nhi m v ng (action) ti
ả ộ ạ ệ ụ xác định được hành độ ếp
theo d a vào tr c ng c nh c a h i tho Các ng
ự ạng thái hành động trước đó hoặ ữ ả ủ ộ ại. ữ
c nh c a h i tho i s c h c qua k ch b n d ng s n (story). X lý truy xu t d
ả ủ ộ ạ ẽ đượ ọ ị ả ự ẵ ử ấ ữ
liệ ừ
u t hệ thống khác thông qua API ho c x lý logic trong h i tho
ặ ử ộ ại 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 (pre-defined template) và ph thu
ụ ộc vào hành động được d DM k
ự đoán ở ết
h p v i chính sách (policy) c a h l i dùng. Ví
ợ ớ ủ ệ thống để đưa ra câu trả ời cho ngườ
d câu h c m u câu
ụ ở ỏi “ ”, ta sẽ
Giá s n ph m A03 bao nhiêu?
ả ẩ định nghĩa trướ ẫ
“ ”, và ở ầ
Chào anh ch , giá s n ph m {ma_san_pham} giá {gia_tien}
ị ả ẩ ạ thành ph n
DM h ng s l c thông tin mã s n ph m thông qua NLU và g n API
ệ thố ẽ ấy đượ ả ẩ ọi đế
c a h l y giá ti n, t t qu NLG tr v s
ủ ệ thống khác để ấ ề ừ đó kế ả ả ề ẽ là “Chào anh chị,
giá s n ph
ả ẩm A03 giá 300.000đ”.
16. 5
Hình 1.1. Minh h a các thành ph n c
ọ ầ ủa Chatbot [3]
1.3 Các lo Chatbot
ại
1.3.1 Rule-based Chatbot
Rule-based Chatbot t m d ch là Chatbot d a theo lu ra s n, hay
ạ ị ự ật được đề ẵ
còn đượ ọ ạ ộ ạ ở ổ ế
c g i là Chatbot d ng menu/button, 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 khách hàng t ng. Xây d Chatbot theo Rule-based
ệ ạ ỗ trợ ự độ ựng
là việc định nghĩa các luậ ặc đưa ra các mẫu có trướ
t ho 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 i dùng l a ch n. Gi ng v i vi c g n t
để ngườ ự ọ ố ớ ệ ọi điện đế ổng đài
h khách hàng ta c n ch n ngôn ng , ch n phòng ban ph
ỗ trợ ầ ọ ữ ọ ụ 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.
17. 6
Hình 1.2. Chatbot h nút b
ỗ trợ ấm để ủa Domino’s Pizza
thao tác c
Hình phía trên là ví d c
ụ ủa Chatbot dạng menu/button, đây là ảnh của Chatbot
h c a hàng Domino Pizza trên ng d
ệ thống ử ’s ứ ụng Messenger Facebook, người
dùng có th s d t hàng c liên h h thông qua
ể ử ụng để đặ , theo dõi đơn hàng hoặ ệ ỗ trợ
điều hướ ụ ếu ngườ ấn nút “ ” cuộ
ng menu. Ví d n i dùng Customer support c trò
chuy n s c chuy n h viên tr c ti L i th c a Rule-based
ệ ẽ đượ ển hướng đế ỗ trợ ự ếp. ợ ế ủ
Chatbot so v i các lo Chatbot khác là hi n th c t t c các l a ch n, giúp
ớ ại ể ị đượ ấ ả ự ọ
người dùng đưa ra quyết định chính xác mà không cần suy nghĩ sẽ ỏi như thế
h nào
và câu h Chatbot có hi c không. Rule-based Chatbot c s d ng khi
ỏi đó ểu đượ đượ ử ụ
ngườ ố ự ệ ột hành độ ụ ể ụ đặt vé máy bay, đặ
i dùng mu n th c hi n m ng c th , ví d t vé
xem phim.
Rule-based Chat d dàng c p nh c ph
bot cũng sẽ ễ ậ ật hơn, thay vì việ ải huấn
luy n l Chatbot m i khi có d u m i, ta ch c n thêm nút ho c menu và câu
ệ ại ỗ ữ liệ ớ ỉ ầ ặ
phả ồ ủ đề ới đó, cũng không cầ ả cũng
n h i cho ch m Chatbot n ph i training. Chatbot
18. 7
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 d n nhân viên h
ọn “ ” sẽ
Liên h c ti p
ệ trự ế ẫn khách hàng đế ỗ trợ trong trường
h p không tìm th y l a ch n phù h giao di n chat. M t s n n t ng giúp xây
ợ ấ ự ọ ợp ở ệ ộ ố ề ả
d ng Rule-based Chatbot
ự như Manychat, Chatfuel, Botsify…
Bên c nh m nêu trên, Rule-based Chatbot p i h
ạ những ưu điể cũng gặ phả ạ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ướ ần đi qua nhiều bướ ới đến đượ
c. Khách hàng c c m c
câu tr l i phù h p, do v y trong vài tr ng h p s n tr i nghi
ả ờ ợ ậ ườ ợ ẽ ảnh hưởng đế ả ệm
người dùng.
1.3.2 -based Chatbot
AI
Khác v i Rule-based Chatbot, AI-based Chatbot không s d ng các
ớ ử ụ
menu/ s d ng trí tu nhân t o AI
button để điều hướng người dùng, thay vào đó ử ụ ệ ạ
để ử ắ ả ồ ến ngườ
x lý tin nh n và ph n h i đ i dùng.
Kho l rí tu nhân t o phát tri n m nh m , Chatbot
ảng 5 năm trở ại đây, t ệ ạ ể ạ ẽ
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 t h c t ng cu c trò chuy n th c t v i dùng
ả năng ự ọ ừ nhữ ộ ệ ự ế ới ngườ để
tr lý
ở nên thông minh hơn theo thờ ệ ử
i gian. Công ngh x ngôn ng t nhiên NLP
ữ ự
giúp Chatbot AI hi nh trong câu nói c ng ph
ểu ý đị ủa người dùng và đưa ra nhữ ản
h i dùng không ph i nh p nh ng câu r p k
ồi chính xác. Ngườ ả ậ ữ ậ huôn máy móc để
giao tiếp với Chatbot mà hoàn toà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 i dùng.
ểu và đối đáp linh hoạt với ngườ
Bên c Chatbot AI có kh p nhi n ích b
ạnh đó, ả năng tích hợ ều tính năng tiệ ổ
sung, nh m gi i quy ng các bài toán c a doanh nghi p. Chatbot không
ằ ả ết đa dạ ủ ệ
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 c hi n nhi u tác v p thông tin khách hàng,
ể thự ệ ề ụ như thu thậ
đặt hàng, đặ ị ẹ
t l ch h n.
19. 8
1.4 Các n n t ng xây d Chatbot
ề ả ựng
Chatbot m xa l v i dùng Internet nói chung
đã không còn là khái niệ ạ ới ngườ
và các doanh nghi p nói riêng. n nay nhi u n n t ng xây d ng Chatbot
ệ Hiệ ề ề ả ự được
ra đờ ỗ ợ ờ ệ ự ả năng đưa ra câu trả ờ
i, h tr ngư i dùng giao di n tr c quan và kh l i phù
h p v i câu h i c i dùng m t cách chính xác
ợ ớ ỏ ủa ngườ ộ như Chatfuel, FPT.AI
Conversation, Harafunnel... c doanh nghi p có th t xây d h ng
Hoặ ệ ể ự ựng ệ thố
Chatbot d a vào các framework n i ti Microsoft Bot Framework, Rasa,
ự ổ ếng như
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ặ ệp nào cũng có thể ế ậ
c doanh nghi ti p c n:
Chatfuel
Chatfuel i m c tiêu làm cho vi c xây d
ra đời vào mùa hè năm 2015 vớ ụ ệ ựng
bot tr nên d dàng v i b t k ai. Hi n Chatfuel là n n t
ở ễ ớ ấ ỳ ệ ề ảng hàng đầu để xây dựng
bot trên Facebook Messenge t
r, ự động hóa giao ti p v
ế ới con người thông qua các
ứ ụ ắ Các tính năng cơ bả ủ ồ ạ ự
ng d ng nh n tin. n c a Chatfuel bao g m: t o Chatbot t
độ ả ờ ắ ạ ả ế ị ạ ữ
ng tr l i tin nh n khách hàng t
, o qu ng cáo Facebook ti p th l i cho nh ng
người dùng đã tương tác vớ ủ ạ ỗ ợ ọ
i Fanpage c a b n, h tr l c danh sách khách hàng
tiềm năng ị ử ệ
thông qua l ch s trò chuy n với khách hàng.
Ưu điể ủ ế ề ả ở ả ể đế ả
m c a Chatfuel khi n n n t ng này tr nên thu hút ph i k n là b n
dùng th hoàn toàn mi n phí. Vi c thi t l p Chatbot trên n n t
ử ễ ệ ế ậ ề ảng này cũng rất
đơn giả ầ ả ậ ễ ạ ờ vào các thư việ
n vì không c n ph i l p trình, mà d dàng t o bot nh n
m u. Ngoài tích h p trên Facebook, Chatfuel còn tích h
ẫ ợ ợp được v i các
ớ ứng d ng
ụ
m ng xã h
ạ ội khác như Instagram, Twitter, Youtube…
Các khách hàng c a Chatfuel, bao g m t các doanh nghi p v a và nh
ủ ồ ừ ệ ừ ỏ đến
các thương hiệ ễ ậ ế ấ ế ớ ộ ố ớ ất như
u d nh n bi t nh t trên th gi i. M t s ách hàng l
kh n nh
Adidas, T - Mobile, LEGO.
FPT.AI Conversation
N n t ng t Chat-bot FPT.AI Conversation là s n ph c bi
ề ả ạo ả ẩm được FPT đặ ệt
đầu tư ể ề ả ạ ậ ứ ụ ệ ạ ớ
phát tri n Là n
. n t ng t o l p Chatbot ng d ng trí tu nhân t o v i các
20. 9
công ngh h c máy và x lý ngôn ng t nhiên tiên ti n nh t, FPT.AI Conversation
ệ ọ ử ữ ự ế ấ
cho phép ngườ ạ ự ị ả ệ ớ
i t o bot xây d ng các k ch b n trò chuy n khác nhau v i khách
hàng và theo dõi l ch s trò chuy Chatbot
ị ử ện để có thể hiểu và tương tác với khách
hàng m t cách t nhiên, thân thi Chatbot tích h p trên các giao di n nh n tin
ộ ự ết. ợ ệ ắ
ph bi
ổ ến như Facebook Messenger, Zalo, livechat trên website hoặ ấ ứ
c b t kì ng
d ng, giao di n trò chuy n s n có nào c a doanh nghi
ụ ệ ệ ẵ ủ ệp.
Hình 1.3. Giao di n n n t ng Chatbot FPT.AI Conversation
ệ ề ả
Harafunnel
Là m t s n ph m c a t n t ng công ngh h
ộ ả ẩ ủ ập đoàn Haravan, là nề ả ệ ỗ trợ người
dùng t t Chatbot trên n n t ng Facebook Messenger và website c a doanh
ự ạo ề ả ủ
nghi p. Chat-bot s t ng tr l i theo tình hu ng thi t l Chatbot
ệ ẽ ự độ ả ờ ố ế ập trước. được
xây d ng trên n n t ng Harafunnel s có thêm ch o ra ph u bán hàng t
ự ề ả ẽ ức năng tạ ễ ự
động, để ọc và đánh giá các khách hàng tiềm năng
l .
V i công c Chatbot này, doanh nghi p có th thu th p d u khách hàng
ớ ụ ệ ể ậ ữ liệ
đa kênh, chăm sóc khách hàng tự động 24/7 và có th thi t l p quy trình marketing
ể ế ậ
hoàn toàn t ng mi n phí. a Harafunnel là g i tin nh
ự độ ễ Các tính năng chính củ ử ắn
hàng lo t
ạ cho người dùng đã g i tin nh n cho Fanpage hoàn toàn mi n phí, t
ử ắ ễ ự động
khở ạ ảng cáo Facebok để ế ị ạ ềm năng đã tương tác vớ
i t o qu ti p th l i khách hàng ti i
Fanpage nhưng chưa mua hàng, ẩ ậ ố ạ ấ
n bình lu n thông minh ch ng tình tr ng m t
khách, t ng tr l i tin nh n, bình lu n khách hàng theo k ch b n so n s
ự độ ả ờ ắ ậ ị ả ạ ẵn và tự
độ ạ ả
ng phân lo i khách hàng, qu n lý bán hàng hi u qu trên m ng xã h
ệ ả ạ ội.
21. 10
Hình 1.4. Giao di n n n t ng Chatbot Harafunnel
ệ ề ả
Dialogflow
Dialogflow là Chatbot s d ng AI do Google cung c p nh m giúp các l
ử ụ ấ ằ ập
trình viên dễ dàng hơn khi lập trình các s n ph m có giao ti p gi
ả ẩ ế ữa người dùng với
Chatbot thông qua các đoạn h i tho i b
ộ ạ ằng văn bản ho c gi ng nói. V i Dialogflow
ặ ọ ớ
các nhà phát tri n có th t o ra Chatbot ông minh s d ng k thu t h c máy c
ể ể ạ th ử ụ ỹ ậ ọ ủa
Google nghiên c u và th nghi ng d l c a h , hi
ứ ử ệm trên lượ ữ liệu khổng ồ ủ ọ ểu được
s c thái c a ngôn ng và s có c h i, c c i thi n theo
ắ ủ ữ ẽ khả năng họ ỏ ngày càng đượ ả ệ
thời gian.
Dialogflow có th d dàng kh i ch y trên nhi u kênh trò chuy
ể ễ ở ạ ề ện như Google
Assistant, Facebook Messenger, Telegram, Skype, Line… ể
Đi m m nh c
ạ ủa
Dialogflow là cung c p SDK cho 14 ngôn ng l p trình giúp nhà phát tri n d dàng
ấ ữ ậ ể ễ
l p trình, h trên 20 ngôn ng trên th i, có kh c thái c
ậ ỗ trợ ữ ế giớ ả năng phân tích sắ ủa
cuộ ện và đặ ệ
c trò chuy c bi t dễ hiể ọ ố ới ngườ ớ ế ậ
u và h c đ i v i m i ti p c n.
22. 11
1.5 M ng d ng c Chatbot
ột số ứ ụ ủa
Ngày nay Chatbot có th t hi b y cho s
ể xuấ ện ở ất kì lĩnh vực nào, là bàn đẩ ự
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 hi n di
ệ ện ở các kênh khách hàng thường xuyên tiếp xúc. Dưới đây là các lĩnh
v c n i b Chatbot ng d ng:
ự ổ ật được ứ ụ
- 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 u s d n th ng, hi
ị ụ chăm sóc khách hàng. Nế ử ụng phương pháp truyề ố ệu
suấ ả năng chăm sóc khách hàng sẽ ố ấ
t và kh t n r t nhi u chi phí nhân s
ề ự và khó đạt
đượ ộ
c đ chính xác cao.
- Giả ả ự ế ố ấ ự ể
i trí: Các Chatbot gi i trí tr c tuy n t t nh t d a trên AI có th là
Mitsuku, Rose, Insomno Bot…ngườ ể ệ ớ
i dùng có th nói chuy n v i Chatbot hàng
giờ ẽ ả ờ ỏi theo cách nhân văn nhấ ểu đượ
, và Chatbot s tr l i các câu h t và hi c tâm
trạ ủ ớ ữ mà người dùng đang sử ụ
ng c a v i ngôn ng d ng.
- Thời ti Poncho là Chatbot
ết: được thi t k
ế ế để ở
tr thành m t chuyên gia th
ộ ời
tiế ự ờ ế
t, ngoài d báo th i ti t Chatbot này còn g i các c nh báo khi th i ti t x
ử ả ờ ế ấu đến
v i dùng.
ới ngườ
- Nhà hàng và các ngành bán l :
ẻ Khách hàng được Chatbot chào đón và được
cung c p các tùy ch n v c thông
ấ ọn menu như chọ ị trí chỗ ngồi, thanh toán và đượ
báo khi nào h có th b u l
ọ ể ắ ầ
t đ ấy đồ ăn củ ọ
a h .
- 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 Chatbot
ồ ả ờ ị ụ ả ực.
đượ ập trình để ệ
c l 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ủ ễ dàng hơn.
a mình d
- Y t : Chatbot này s h i v các tri u ch ng, các thông s và l ch s
ế ẽ ỏ ề ệ ứ ố cơ thể ị ử
y t n m t danh sách các nguyên nhân gây ra h u h t các tri
ế, sau đó biên soạ ộ ầ ế ệ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 u tr các b nh có th t i mà không c
ệnh nhân điề ị ệ ể ự chữa khỏ ần đến bác sĩ.
- Hàng không: khách hàng có th n tài li u chuy n bay c a mình qua tin
ể nhậ ệ ế ủ
nhắ ặ
n, ho c email, bao g m xác nh t lên máy bay,
ồ ận đặ vé, thông báo đăng ký, thẻ
và c p nh t tr ng thái chuy n bay.
ậ ậ ạ ế
23. 12
- Giáo d i dùng có th n yêu c u tr c tuy n vào các website,
ục: ngườ ể nhắ tin ầ ự ế
fanpage c tìm hi u v ng, gi c m
ủa nhà trường để ể ề trườ ải đáp các thắ ắc như tuyển
sinh, chương trình đào tạ ấ ợ
o, ch t lư ng giáo dục.
- Trợ lý cá nhân: s d ng Chatbot
ử ụ như một tr lý cá nhân o s
ợ ả ẽ thay đổi cuộc
s ng m t cách tri
ố ộ ệt để. Chúng có thể hoạt động để ỗ
h trợ chúng ta như một c v
ố ấn
tài chính, ki m soát chi phí, ki m tra thông tin tài kho n ngân hàng
ể ể ả … và hỗ trợ
chúng ta qu n lý tài chính hay cu ng m t cách cá nhân hóa và an toàn.
ả ộc số ộ
- Đư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 đượ ậ ậ thường xuyên giúp ngườ ầ ả ể
c c p nh t i dùng không c n ph i tìm hi u
trên trình duy ng th i giúp doanh nghi
ệt, đồ ờ ệp đưa thông tin mớ ủa mình đế
i c n với
khách hàng m t cách nhanh chóng và hi
ộ ệu quả nhất.
Hình 1.5. Chatbot Messenger c a trang CNN
ủ
24. 13
CHƯƠNG 2: CƠ SỞ Ế
LÝ THUY T
2.1 Cơ bả ề
n v Deep learning
Deep learning [4] hay g i là h c sâu 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 cho máy tính t n luy có th c hi tác v
ỗ trợ ự huấ ện chính nó để ể thự ện các ụ tương
t u này chính là giúp máy tính b i cách h
ự như con người. Điề ắt chước con ngườ ọc
hỏi và suy nghĩ.
Các h ng c a Deep learning có kh i thi n hi u su t c a chúng
ệ thố ủ ả năng cả ệ ệ ấ ủ
sau nhi u l n luy n (training) ho c cung c p d l n ng,
ề ần huấ ệ ặ ấ ữ liệu đủ ớ . Thông thườ
nh hu y
ững máy móc đã ợ
đư c ấ ệ đủ ự ậ
n luy n s tin c thì sẽ được mang đi phụ ụ
c v
cho nh ng công vi ái xe, phát hi
ữ ệc như: l ệ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 s can thi p c
ọ ầ ầ ậ ạ ẫ ần đế ự ệ ủa con người.
Deep learning có th x lý d t b não con
ể ử ữ liệu theo cách tương tự như mộ ộ
ngườ , đ ể ệ ở đây là con ngườ ẽ ả ạ ột chương
i i m khác bi t chính i s không ph i d y m
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 loà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 m tra m, chi ti t chung gi a các
ậ ẽ kiể ảnh để xem các đặc điể ế ữ
b nh.
ức ả
- M i b nh s c gi i mã chi ti i nhi u c , t các hình d
ỗ ức ả ẽ đượ ả ết dướ ề ấp độ ừ ạng
l n, cho n các ô nh và nh a. N u m t hình d ng ho
ớ đế ỏ ỏ hơn nữ ế ộ ạ ặc các đường được
l p l i nhi u l n, thu t toá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 toá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 u thô.
ữ liệ
25. 14
Nói m t cách tóm t Deep learning là m t i Machine learning mà trong
ộ ắt ộ loạ
đó 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 c tri n khai b
ạnh tính toán hơn là Machine learning, nhưng nó đã bắt đầu đượ ể ởi
các công ty công ngh l , Google t trong
ệ ớn như Facebook, Amazon . Trong đó, mộ
nh ng
ữ ứ ụ
ng d ng n i ti ng nh t là AlphaGo, m t máy tính có th vây v
ổ ế ấ ộ ể chơi cờ ới
chính bản thân nó cho đến khi nó có th d
ể ự đoán những đường đi nước bước chính
xác nh i nhi ch trên th
ấ ủ
t đ để đánh bạ ều nhà vô đị ế giới.
2.2 M -ron h i quy RNN
ạng nơ ồ
M -ron h i quy (RNN) là m t mô hình h c sâu x lý d u tu n t
ạng nơ ồ ộ ọ ử ữ liệ ầ ự
đượ ử ụ ổ ế ụ ử ữ ự như dị
c s d ng ph bi n trong các tác v x lý ngôn ng t nhiên (NLU) 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 lướ ầ ả năng xử
ng t o ra RNN là thi t k m t m i th n kinh có kh
lý thông tin m t cách tu n t . C
ộ ầ ự ụ thể, đầu ra ở ời điể
th m hi n t i ph thu c vào k
ệ ạ ụ ộ ết
quả ủ ầ
tính toán c a các thành ph n ở ời điểm trướ ộ
th 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 toá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 hoàn toàn độ ậ ớ
c l p v i thông
tin đầu ra.
Hình 2.1 -ron h i quy [5]
. Mạng nơ ồ
26. 15
Các t truy n vào m c x lý gi ng nhau các tham s
ừ ề ạng RNN đượ ử ố và ố được
tính như sau:
-
u (input) t m
là từ đầ vào ại thời điể t,
có th là one-hot vector.
ể
-
là 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ó c tính d a trên các tr ng thái
và đượ ự ạ ẩn trước đó và từ đầ ệ ạ
u vào hi n t i.
(2.1)
Vector o v giá tr trong ma tr n b ng 0.
thông thường được khởi tạ ới tất cả ị ậ ằ
-
là k t qu u ra (output) t i th m t, d p theo d a vào
ế ả đầ ạ ời điể ự đoán từ tiế ự
xác su t trên toàn b trong t
ấ ộ các từ ừ điển.
(2.2)
Mô hình RNN s d ng chung b tham s U, V, W cho t t c Mô
ử ụ ộ ố ấ ả các bước.
hình RNN không nh t thi t x lý output cho t ng input, ví d nhi m v d
ấ ế ử ừ ụ ở ệ ụ ự đoán
c m xúc c
ả ủa câu ta ch c
ỉ ần quan tâm đế ế
n k t qu i cùng cho nên ch c
ả cuố ỉ ần output
c a t
ủ ừ cuối cùng, b i vì tr ng thái
ở ạ ẩ ở
n từ cuối cùng lưu trữ ấ
t t c thông tin c a các
ả ủ
t V m t lý thuy t, RNN có th thông tin c dài b t k
ừ trước đó. ề ặ ế ể nhớ huỗi có độ ấ ỳ,
nhưng trong thự ế ỉ ể ớ ừ ột vài bước trướ
c t mô hình này ch có th nh thông tin t m c
đó, hiệ ợ ọ
n tư ng này g i là Vanishing Gradient.
Việ ử ụ ỹ ậ
c training mô hình RNN s d ng k thu t Backpropagation Through
Time (BPTT). T i th so sánh v i giá tr u ra mong mu n
ạ ời điểm t ớ ị đầ ố và giá trị
đầ ự đoán hiệ ạ
u ra d n t i
c hàm m t mát s d ng cross-entropy.
ta tính đượ ấ ử ụ
(2.3)
Mô hình h ng cách s d ng thu t toán Gradient descent [6]
ọc bằ ử ụ ậ để tìm được
điể ự ể ủ ố ự ị đạ ủ ấ
m c c ti u c a hàm s d a trên giá tr o hàm c a hàm m t mát
,
,
tương ứng v i b tham s U, V, W và c p nh t l i giá tr cho chúng. i v i tham
ớ ộ ố ậ ậ ạ ị Đố ớ
s U và V giá tr o hàm ch thu c vào m hi n t
ố ị đạ ỉ phụ ộ thời điể ệ ại đang xét, nhưng
v i tham s W thì l i khác, ví d
ớ ố ạ ụ xét t = 3 ta được:
Mà t i th m t = 3,
ạ ời điể
thu c vào
phụ ộ và
tương tự
thu c vào
phụ ộ
. Dẫn đến ta đượ ứ
c công th c:
27. 16
Công th ng quát:
ức tổ
Mà
luôn có giá tr trong kho
ị ảng [-1,1] do sử d ng hàm tanh, d
ụ ẫn đến
s n g n 0 theo hàm s u k càng l n cho nên các
ẽ tiế ần đế ố mũ nế ớ ở
vector vị trí đầu giá trị đạo hàm x p x 0
ấ ỉ khiến vi c c p nh t tham s W không
ệ ậ ậ ố
đáng kể ểu đơn giả ẽ
, hi n mô hình s không h c thêm
ọ đượ ở
c gì nhữ ừ ị
ng t v trí
đầ ền ngượ
u tiên trong quá trình truy c.
Hiện tượ ọ ả ấ ệ
ng này g i là Vanishing Gradient, x y ra khi hu n luy n các
m u l p, khi n mô hình RNN kém hi u qu và ch có th
ạng nơ ron nhiề ớ ế ệ ả ỉ ể lưu
trữ thông tin ng n h n (Short-Term Memory) [7]. Khi hu n luy n, giá tr
ắ ạ ấ ệ ị đạo
hàm là thông tin ph n h i c a quá trình lan truy c, giá tr này tr nên
ả ồ ủ ền ngượ ị ở
vô cùng nh t i các l - u tiên khi n cho vi c c p nh t tr ng s
ỏ ạ ớp nơ ron đầ ế ệ ậ ậ ọ ố
m ng không x y ra.
ạ thể ả
Các mô hình như LSTM (Long Short-Term Memory) và GRU (Gated
Recurrent Units) được ra đời để h n ch tình tr ng này x y ra b ng cách thêm
ạ ế ạ ả ằ
các tham s c c g . Nh ng c ng này giúp mô hình h
ố ổng đượ ọi là “gates” ữ ổ ọc
đượ ọ ọ
c thêm các thông tin quan tr ng và xóa các thông tin không quan tr ng
trong l n c a mô hình RNN.
ớp ẩ ủ
Nhưng v n không th
ẫ ể giải quy t tri
ế ệt để hiện tượng Vanishing Gradient,
v i nh
ớ ững câu độ dài lớn mô hình v n g p h
ẫ ặ ạn ch trong quá trình h c và d
ế ọ ự
đoán, không những thế việc thêm các tham số khiến mô hình LSTM và GRU
trở ứ
nên ph c t p, th i gian n luy n
ạ ờ huấ ệ lâu hơn rấ ề
t nhi u. Trong luận văn này
tôi s không áp d xây d
ẽ ụng mô hình RNN để ựng Chatbot, thay vào đó sẽ
nghiên cứu và áp d ng mô hình Transformer, m t mô hình h c sâu m nh m
ụ ộ ọ ạ ẽ
khắ ụ
c ph c các nhược điể ố ữ ủ
m c h u c a mô hình RNN.
28. 17
2.3 Mô hình Transformer
Transformer [8] là môt mô hình h c gi i thi
ọc sâu đượ ớ ệu vào năm 2017, và
đã trở ậ ện đạ ất trong lĩnh vự ử ữ ự
thành thu t toán hi i nh c x lý ngôn ng t nhiên. Là
tiền đề ạ
t o ra BERT (Bidirectional Encoder Representations from Transformers)
m t k thu t h c máy ng d ng mô hình Transformer h c bi u di n c
ộ ỹ ậ ọ ứ ụ dùng để ọ ể ễ ủa
các t t t nh t hi n t c ngo t l n cho c ng
ừ ố ấ ệ ại và là bướ ặ ớ ộng đồ NLP năm 2019, và
chính Google cũng đã áp dụ ụ ế ủ ọ
ng BERT trong công c tìm ki m c a h .
Trước khi được công b , h u h t các tác v x lý ngôn ng t nhiên s d ng
ố ầ ế ụ ử ữ ự ử ụ
kiế ạng nơ ồ ể ế ủa phương pháp này xả ở
n trúc m -ron h i quy RNN, đi m y u c y ra
những câu dài không thể tìm được m i liên h
ố ệ giữa các t trong câu và t
ừ ốc độ hu n
ấ
luy n m do x u vào m t cách tu n t . Transformer c ph c
ệ chậ ử lý đầ ộ ầ ự ra đời đã khắ ụ
đượ ả 2 nhược điể
c c m này.
2.3.1 T ng quan mô hình Transformer
ổ
Giống như nhữ ị
ng mô hình d ch máy khác, Transformer bao g m 2 thành
ồ
phần mã hóa (Encoder) i mã (Decoder).
và giả
Encoder là m p g m 6 l p riêng bi t x p ch ng lên nhau, s l
ột ngăn xế ồ ớ ệ ế ồ ố ớp ở
đây có thể ỉ ụ ộ ục đích từ ỗ ớ ồ
tùy ch nh ph thu c vào m ng bài toán. M i l p bao g m 2
l u tiên là l p x u chú ý (Multi-head Attention) và l p con th
ớp con, đầ ớ ử lý đa đầ ớ ứ
hai đơn giả ộ ạ g nơ ề ẳ ế ố ần dư
n là m t m n -ron truy n th ng (F -forward). K
eed t n i ph
(Residuals Connection) bao quanh hai l p con này ti
ớ ếp theo đó là bướ ẩ
c chu n hóa
l p (Layer Normalization) giúp mô hình hu n luy n nhanh h i t
ớ ấ ệ ộ ụ hơn và tránh mất
mát thông tin trong quá trình huấn luyện.
Decoder cũng đượ ấ ừ ớ ệ ố ớ ớ
c c u thành t 6 l p riêng bi t (cùng s l p v i encoder).
M i l p bao g m 2 l p con gi ng v i encoder và thêm m t l p Multi-head
ỗ ớ ồ ớ ố ớ ộ ớ
attention n m gi a giúp Decoder t
ằ ữ ạo được mối tương quan với câu đầu vào. Gi ng
ố
v i Encoder k thu t Residual Connection và Layer N c áp
ớ ỹ ậ ormalization cũng đượ
d ng trên các l p con. Có m t s
ụ ớ ộ ự thay đổi ở l p con Multi-head A
ớ ttention đầu tiên,
thay vì truy n t t c các t trong câu vào Decoder, ta s
ề ấ ả ừ ẽ che đi các từ ở tương lai
chưa đượ ịch đế
c mô hình d n gọ cơ chế
i là sked Multi-head A ention.
Ma tt
29. 18
Hình 2.2 mô hình Transformer [8]
. Sơ đồ
Chi ti ng c ransformer s
ết cơ chế hoạ ộ
t đ ủa T ẽ đượ ở ầ
c trình bày các ph n sau.
2.3.2 Thành ph n mã hóa
ầ
2.3.2.1 Vector hóa u vào
câu đầ
Cho đế ể
n nay máy tính không hi u đượ ữ ế ỉ đọ ợ ớ ạ
c ch vi t mà ch c đư c dư i d ng
s hóa, vì v y ta c n bi u di n các t i d ng vector. Vi c chuy n hóa các t
ố ậ ầ ể ễ ừ dướ ạ ệ ể ừ
thành d ng vector s d ng thu t toán Word2Vec [9], d
ạ ử ụ ậ ữ liệu đầu vào sẽ là các câu
c a t p d n luy n, thu t toán d a vào v trí và ng c nh các t trong câu
ủ ậ ữ liệu huấ ệ ậ ự ị ữ ả ừ
để ự tương đồ ừ có nghĩa tương đồ ặ ổ ợ ẽ
tính toán s ng, các t ng ho c b tr cho nhau s
có các vector tương đồ ừ ự ế ậ
ng nhau trong không gian t v ng. Có 2 cách ti p c n
Word2Vec là Continuous bag of words (CBOW) và Skip-gram model:
30. 19
- CBOW: thu t toán d
ậ ự đoán từ trung tâm ở giữa câu b ng cách s d ng ng
ằ ử ụ ữ
c nh c a các t xung quanh t d
ả ủ ừ ừ ự đoán.
- Skip-gram model: ngược l i v i CBOW, thu t toán Skip-gram model s d
ạ ớ ậ ẽ ự
đoán các từ ừ ụ ộ ữ ả ủ ừ trung tâm đó
xung quanh t trung tâm ph thu c vào ng c nh c a t
trong câu.
2.3.2.2 Thành ph n mã hóa v trí (Positional Encoding)
ầ ị
Mô hình Transformer không x lý các t trong câu m t cách tu n t , cho nên
ử ừ ộ ầ ự
c n m
ầ ột phương pháp để x lý th t c a các t trong chu
ử ứ ự ủ ừ ỗi đầu vào. Để giải quyết
bài toán này Tranformer c ng m c b ng word embedding vào
ộ ột vector kích thướ ằ
m u vào, v i vi c tính toán vector v s d ng hàm sinusoid:
ỗi embedding đầ ớ ệ ị trí ử ụ
Trong đó ị ủ ừ ị ầ ử ứ
pos là v trí c a t trong câu, PE là giá tr ph n t th trong
i
embeddings có độ dài dmodel.
Hàm sin và cosin có d t n s và t n s này gi m d các chi
ạng đồ thị ầ ố ầ ố ả ần ở ều
l n d n. Hình
ớ ầ dưới bi u di
ể ễn được sự biến thiên c a màu s
ủ ắc ở các v trí khác nhau
ị
c a t trong câu,
ủ ừ ở chi u 0, giá tr
ề ị thay đổi liên tục tương ứng v i màu s
ớ ắc thay đổi
liên t c, và t n s i này gi m d các chi u l
ụ ầ ố thay đổ ả ần ở ề ớn hơn.
31. 20
Hình 2.3 Minh h a bi nhi t Positional Encoding
ọ ểu đồ ệ
2.3.2.3 t chú ý (Seft-Attention)
Cơ chế ự
Cơ chế ự Attention là cơ chế giúp Transformer tìm ra đượ
t chú ý hay Self- c
s liên quan gi a các t trong câu. Ví d trong câu
ự ữ ừ ụ “The animal didn’t cross the
street because it was too tired”. T i di n cho cái gì,
ừ “it” trong câu trên đạ ệ
“animal” hay “street”, đối với con người thì không khó để trả lời, nhưng lại không
đơn giả ớ ậ ừ ừ ở
n v i các thu t toán. Seft-Attention cho phép t quan sát các t
“it” các
vị trí khác trong câu để tìm ra s liên quan gi a chúng v
ự ữ ới nhau. Đối v i các m
ớ ạng
RNN duy trì m t tr ng thái
ộ ạ ẩn cho phép nó k t h
ế ợp v i các t
ớ ừ trướ ừ đang xử
c t lý,
còn đố ớ ẽ
i v i Transformer s duy trì m i liên k các t trong câu.
ố ế ố
t đ i với tất cả ừ
32. 21
Hình 2.4. Minh h a m liên k t gi a các t
ọ ứ ộ
c đ ế ữ ừ [10]
Khi mã hóa t t i encoder th 2, t liên k t r t m nh v i t
ừ “it” ạ ứ ừ “it” ế ấ ạ ớ ừ
“animal” “too tired”
và .
Để tính đượ ớ ỗ ừ ẽ ở ạ ọ ố
c Self-Attention, v i m i t ta s kh i t o 3 tr ng s WQ
, Wk
,
Wv
, sau đó nhân ớ
v i ma trận đầu vào được 3 ma tr n Q (query), K (key), V (value)
ậ
v i s chi u b ng nhau và nh u là 64 trong khi
ớ ố ề ằ ỏ hơn vector embedding, chiề
embedding t c ti ng ma tr n Q và K
ừ đầu vào là 512. Bướ ếp theo nhân tích vô hướ ậ
r i th c hi t Scaled Dot-Product Attention, t c ng 2
ồ ự ện kĩ thuậ ứ là chia tích vô hướ
mà trận Q và K cho với
là chi u c a K, và truy n k t qu qua hàm Softmax.
ề ủ ề ế ả
Softmax chu chúng là các s c cu
ẩn hóa các điểm để ố dương có nhỏ hơn 1. Bướ ối
nhân tích vô hướ ới V, ta đượ
ng v c công th c nhau sau:
ứ
33. 22
2.3.2.4 u chú ý (Multi-Head Attention)
Cơ chế đa đầ
V i Attention mô hình h
ới mỗ ọc đượ ộ ể ệ ữ ừ
c m t ki u liên h gi a các t trong câu,
để m r ng kh
ở ộ ả năng học được nhiều m i liên h
ố ệ hơn, tập trung vào các v trí khác
ị
nhau, Transformer s d Multi- n là thêm nhi
ử ụng cơ chế Head Attention, đơn giả ều
Seft-Attention. Theo th c nghi m ra r ng t o 8 b ma tr n tr ng s W
ự ệ chỉ ằ ạ ộ ậ ọ ố Q
, Wk
,
Wv là phù h p t. M i b c kh i t u nhiên, nhân ma tr n vector
ợ nhấ ỗ ộ đượ ở ạo ngẫ ậ
embedding đầu vào v i 8 b
ớ ộ tương ứng ta được 8 ma tr n Head-
ậ Attention. Sau đó
n i các ma tr n v i nhau và nhân v i ma tr n tr ng s W
ố ậ ớ ớ ậ ọ ố o
c k t qu có
để ra đượ ế ả
kích thướ ằ ớ
c b ng v i ma trận embedding đầ . Ta đượ ứ
u vào c công th c:
(2.10)
V i
ớ
2.3.2.5 M ng truy n th ng xuôi theo v
ạ ề ẳ ị trí
Ma tr n k t qu c a Multi-Head Attention s c truy n vào m ng truy
ậ ế ả ủ ẽ đượ ề ạ ền
thẳng xuôi theo v trí (Position-wise Feed-Forward Networks). T t c các v trí
ị ấ ả ị
khác nhau đều s d ng chung m t m ng truy n th
ử ụ ộ ạ ề ẳng và được tính toán song song.
M ng truy n th
ạ ề ẳng này bao g m 2 l
ồ ớp và đượ ẩ
c chu n hóa v i ReLu. Các t
ớ ừ đi qua
cùng m ng truy n th ng m p.
ột mạ ề ẳ ột cách độc lậ
(2.11)
2.3.2.6 K thu k i ph n hóa l p
ỹ ật ết nố ần dư và chuẩ ớ
Trong ki n trúc c a mô hình Transformer, k thu t k t n i ph
ế ủ ỹ ậ ế ố ần dư
(Residuals Connection) và chuẩn hóa l p ( yer Normalization)
ớ La được s d ng sau
ử ụ
m i quá trình x
ỗ ử lý, 2 k thu t giúp mô hình hu
ỹ ậ ấn luy n nhanh h i t
ệ ộ ụ hơn và tránh
m t mát thông tin trong quá trình hu luy n mô hình. Layer Normalization (11)
ấ ấn ệ
có nhi m v n hóa d u nh m c i thi n kh i t c a mô hình. V
ệ ụ chuẩ ữ liệ ằ ả ệ ả năng hộ ụ ủ ới
Residuals Connection (12) ngoài vi c giúp h i t t
ệ ộ ụ ốt hơn còn có nhiệm v giúp mô
ụ
hình Transformer giữ được thông tin v v trí các t trong câu (Position Encoding
ề ị ừ )
t i vì trong quá trình x lý d
ốt hơn, bở ử ữ ệ ề ị ừ ẽ ị ấ
li u thông tin v v trí các t s b m t mát
dần.
34. 23
2.3.3 Thành ph n gi i mã
ầ ả
K t qu c thành ph n mã hóa (Encoder) s cho ra các b vector K và V,
ế ả ủa ầ ẽ ộ
tiếp đến thành ph n gi i mã (Decoder)
ầ ả thực hi n ch
ệ ức năng giải mã vector c a câu
ủ
đầu vào thành câu đầu ra, do đó D ẽ ậ ừ ộ ủ
ecoder s nh n thông tin t 2 b vector này c a
Encoder. Ki n trúc D oder r t gi ng v i Encoder, ngo i tr có thêm m t l p con
ế ec ấ ố ớ ạ ừ ộ ớ
Multi-Head Attention h c m i liên h a t trong
ở giữa dùng để ọ ố ệ giữ ừ đang các từ
câu đầ ớ ừ trong câu đầ
u ra v i các t u vào.
2.3.3.1 K thu Masked Multi-Head Attention
ỹ ật
K thu Masked Multi-Head Attention ho ng gi ng Multi-Head
ỹ ật ạt độ ố
Attention, nhưng thay vì việc truy n t t c các t
ề ấ ả ừ câu đầu ra, Decoder sẽ che đi các
từ ở tương lai chưa được mô hình d n và trong quá trình n luy n mô hình
ịch đế huấ ệ
s t ng d b c vi c này c Scaled Dot-
ẽ ự độ ự đoán các từ ị che đi, để làm đượ ệ ở bướ
Product ta c ng k t qu v i m t ma n mask ch a các giá tr âm vô cùng (-inf)
ộ ế ả ớ ộ trậ ứ ị
và 0. Lý do c a vi c c ng thêm ma tr
ủ ệ ộ ận mask này để khi đi qua Softmax các giá
tr tr
ị ẽ
âm vô cùng s ở ề
v 0.
2.3.3.2 chú ý c a thành ph n mã hóa và gi i mã
Cơ chế ủ ầ ả
Encoder-Decoder Attention hay t m d chú ý c a thành ph n mã
ạ ịch là cơ chế ủ ầ
hóa và gi i mã, ho ng gi ng v u chú ý, ngo i tr t o ra
ả ạt độ ố ới cơ chế đa đầ ạ ừ việc nó ạ
các ma tr n Q t l i và l y các ma tr n K và V t u ra c a Encoder
ậ ừ ớp phía dướ ấ ậ ừ đầ ủ
để ự ệ ệ ụ ủ ớ ạo đượ ố ế ữ
th c hi n tính toán. Nhi m v c a l p này giúp t c m i liên k t gi a các
từ ở câu đầu ra v i các t
ớ ừ ở câu đầu vào. Đầu ra c a l
ủ ớp Encoder-Decoder Attention
s ng truy n th ng gi ng v
ẽ đi qua mạ ề ẳ ố ới Encoder.
2.3.3.3 Phân lo i tuy n tính và n hóa d u
ạ ế chuẩ ữ liệ
Đầ ủ ớ ố ẽ đi qua lớ ạ ế
u ra c a l p Decoder cu i cùng s p phân lo i tuy n tính (Linear
Classifier) là m t m ng truy n th ng giúp chuy
ộ ạ ề ẳ ển đổi thành ma tr n có chi
ậ ều bằng
s t v d ng. Gi s mô hình s d ng 10,000 t v ng, ta s
ố ừ ựng mô hình đang sử ụ ả ử ử ụ ừ ự ẽ
đượ ều dài tương ứ ớ ố ừ ựng. Đầ ủ ớ ẽ
c 1 vector có chi ng v i s t v u ra c a l p Linear s
35. 24
đượ ề ớp Softmax để ra đượ ế ả ấ ả ừ 0 đế
c truy n vào l c k t qu xác xu t trong kho ng t n
1.
K t qu
ế ả đi qua Softmax sẽ dùng để tính xác su t c a t t hi n ti
ấ ủ ừ xuấ ệ ếp theo là
bao nhiêu, so sánh v i k t qu ta mong mu n s c giá tr hàm m t mát (Loss
ớ ế ả ố ẽ đượ ị ấ
function) và th c hi c truy quá trình
ự ện bướ ền ngược (backpropagation) để huấn
luy n c di n ra.
ệ đượ ễ
2.3 m c a mô hình Transformer v i mô hình RNN
.4 Ưu điể ủ so ớ
Trước khi Transformer được giớ ệ
i thi u thì trong x lý ngôn ng t nhiên mô
ử ữ ự
hình RNN đượ ện đạ ấ Mô hình Transformer ra đời đã giả ế
c coi là hi i nh t. i quy t
đượ ện tượ ấn đề ố ữ ặ ả
c hi ng Vanishing Gradient, v c h u mà RNN g p ph i,
Transformer x lý các t m ng th i ch không ph i t ng t m t nên t
ử ừ ột cách đồ ờ ứ ả ừ ừ ộ ốc
độ ử lý nhanh hơn rấ ề ằng kĩ thuậ
x t nhi u, và b t Self Attention và Positional
Encoding s không gây m dài l c bi t có th
ẽ ất mát thông tin trên câu có độ ớn, đặ ệ ể
x lý câu có dài vô h
ử độ ạn.
Trong bài báo (8), tác gi m trên t p d u tiêu chu n WMT
ả đã thử nghiệ ậ ữ liệ ẩ
2014 English-German bao g m 4.5 tri u c p câu v i 37000 t v ng và t p d
ồ ệ ặ ớ ừ ự ậ ữ ệ
li u
l n WMT 2014 English-French bao g m 36 tri u câu. Ph n c ng th nghi m là
ớ ồ ệ ầ ứ ử ệ
m t máy tính v i 8 card GPU NVIDIA P100. Mô hình th nghi m trên 2 b d
ộ ớ ử ệ ộ ữ
liệ ớ ồ ớ ỗ ộ
u là base và big model, v i base model bao g m 6 l p m i b encoder và
decoder, embedding có chi u 512, l n c a m ng truy n th ng có chi u 2048,
ề ớp ẩ ủ ạ ề ẳ ề
v i 8 Head- p cho m i b encoder và
ớ Attention và trên big model cũng có 6 lớ ỗ ộ
decoder v i embedding 512 chi u, l
ớ ề ớp ẩn c a m ng truy
ủ ạ ền th ng có chi u 4096 và
ẳ ề
8 Head-Attention. c nghi
Thự ệm c k t qu
thu đượ ế ả như sau:
36. 25
Hình 5. So sánh Transformer v i các mô hình khác d a trên k
2. ớ ự ết quả
đánh giá của bài báo [8]
Ở ầ ị ậ ữ ệ
ph n d ch t p d li u WMT 2014 English-German, mô hình Transformer
v c k t qu t t nh t v i cá
ới big model cho đượ ế ả ố ấ ớ c mô hình được báo cáo trước đó
v m BLEU, là mô hình tiên ti n nh t v m BLEU là 28.4, không
ới hơn 2.0 điể ế ấ ới điể
nhữ ế
ng th chi phí n luy
huấ ện (training cost) theo điểm FLOPs ch b ng 1/3 so v
ỉ ằ ới
mô hình ConvS2S (là mô hình có m FLOPs th p nh t trên t p EN-DE).
điể ấ ấ ậ
Trên t p d u l
ậ ữ liệ ớn hơn là WMT 2014 English French, điể
- m BLUE c a big
ủ
model đạt được là 41.0 và là cao nh t so v
ấ ới các mô hình trước đó, v i
ớ điểm FLOPs
chỉ ằ ớ ấ ấ
b ng 1/4 so v i mô hình Deep-Att + PosUnk (là mô hình có FLOPs th p nh t
trên t p EN-FR).
ậ
Từ đó có th k t lu
ể ế ận mô hình Transformer đang cho kết qu t t nh t v i th
ả ố ấ ớ ời
gian n luy n so v i các mô hình hi i nh t hi n nay.
huấ ệ nhanh hơn đáng kể ớ ện đạ ấ ệ
2.4 Mô hình DIET
DIET là vi t t t c a Dual Intent and Entity Transformer [13]
ế ắ ủ , là m t mô hình
ộ
Transformer đa tác vụ ử ả ại ý đị ấ ự ể
, x lý c phân lo nh và trích xu t th c th cùng lúc.
Đượ ạ ở ề ần cho phép chúng ta thay đổ ầ ộ
c t o b i nhi u thành ph i các thành ph n m t
cách d dàng.
ễ
38. 27
2.4.1 u vào (Featurization)
Đặc trưng hóa câu đầ
Câu đầu vào đượ ể ừ ặ ụ
c tách thành các token, token có th là các t ho c các c m
t thu c vào thu t toán, và thêm m t token __CLS__ (special classification
ừ phụ ộ ậ ộ
token) i câu là t c a các vector token trong câu có nhi m v tóm t t ý
ở cuố ổng ủ ệ ụ ắ
đị ủ ả ỗi token đượ ặc trưng hóa với kĩ thuậ
nh c a c . M
câu c đ t sparse features, dense
feature. Dense features có th là b n luy n s n
ể ất kì word embeddings được huấ ệ ẵ
(Pretrained Embedding). Spare features bao g m one-hot encoding và n-grams (n
ồ
<= 5).
Việ ử ụ ẽ ố ấ ệ , nhưng
c s d ng Pretrain Embedding s t t cho quá trình hu n luy n
chưa đủ để ử ề ứ ụ ụ ể ụ ừ “chín” có thể
x lý thông tin trong mi n ng d ng c th , ví d t là
s ng, ho c tính ch t c a th i tùy vào ng c nh c
ố lượ ặ ấ ủ ức ăn, thậm chí tên ngườ ữ ả ụ thể,
do v y s ng truy n th n luy n
ậ ẽ phải đi qua mạ ề ẳng để huấ ệ mô hình chính xác hơn
cũng như chuẩ ữ ệu đầ
n hóa d li u ra truy n vào l p ti p theo.
ề ớ ế
Điểm đặ ệ ạ ề ẳ ố ở ấ ả ị ạ
c bi t là m ng truy n th ng gi ng nhau t t c các v trí. M ng
truy n th ng cá -ron trong l c liên k n t t c
ề ẳng thông thườ c nơ ớp trước đượ ế ế
t đ ấ ả các
nơ-ron c a l p sau, vi c này khi n quá trình huy n luy n mô
ủ ớ ệ ế ế ệ diễn ra lâu hơn. Ở
hình DIET s i b u nhiên 80% liên k t gi a các l p giúp th i gian hu
ẽ loạ ỏ ngẫ ế ữ ớ ờ ấn
luy .
ện nhanh hơn đáng kể
2.4.2 H c chuy n giao (Transfer Learning)
ọ ể
H c ph c nh ng thành t u nh
ọc sâu đang ngày càng đượ ổ biến và đạt đượ ữ ự ất
định, nhưng để ạ ộ ọ ệ ả ầ ộ ợ ữ ệ ổ
t o ra m t mô hình h c sâu hi u qu c n m t lư ng d li u kh ng
l xây d ng t p d u hu n luy n t u không ph i m t vi c d dàng,
ồ. Để ự ậ ữ liệ ấ ệ ừ ban đầ ả ộ ệ ễ
do v y
ậ Transfer Learning đã được ra đời nh m c i thi
ằ ả ệ ạ
n h n ch này c a quá trình
ế ủ
h c sâu.
ọ
H c chuy n giao (Transfer Learning) là quá trình áp d ng tri th
ọ ể ụ ức đã được
h c t d i quy t m t bài toán m
ọ ừ mô hình trước đó, khai thác và tái sử ụng để giả ế ộ ới
mà không c n xây d ng m t mô hình hu n luy n t
ầ ự ộ ấ ệ ừ ban đầu.
39. 28
Ví d trong bài toán phân lo i chó và mèo. N u hu n luy n t
ụ ạ ế ấ ệ ừ u, ta c n r
đầ ầ ất
nhi n
ề ữ ệ ẫu cũng như ấ ề ờ ấ ệ
u d li u m m t nhi u th i gian hu n luy để đạt được độ chính
xác cao. Tuy nhiên n u t n d ng l i các t p d n luy n s n
ế ậ ụ ạ ậ ữ liệu đã được huấ ệ ẵ
(pretrained-model) thì s c n ít
ẽ ầ thời gian huấn luyện hơn để đạt được m chính
ột độ
xác mong đợ ậm chí độ ể ớn hơn so vớ ụ
i. Th chính xác có th l i khi không áp d ng
Transfer learning.
Hình 2.7. Minh h a so sánh s d ng và không s d ng h c chuy n giao
ọ ử ụ ử ụ ọ ể
Trong x lý ngôn ng t nhiên, nh
ử ữ ự ững mô hình được huấn luy n s n n i ti
ệ ẵ ổ ếng
như Word2Vec, ConveRT, BERT hay spaCy ệ ấ ệ ở
, giúp vi c hu n luy n Chatbot tr
nên đơn giản hơn rất nhi u, thay vì vi c ph i thu th
ề ệ ả ập hàng trăm nghìn ữ
d liệu câu
tho i, ta ch c t n d ng l i nh ng mô hình hu n luy n s t h p d
ạ ỉ việ ậ ụ ạ ữ ấ ệ ẵn đó kế ợ ữ liệu
trong mi ng d thu th c s c k t qu t t và gi
ền ứ ụng ập đượ ẽ đạt đượ ế ả ố ảm đáng kể thời
gian hu n luy n so v i vi n luy n l i d u t u. Các mô hình hu
ấ ệ ớ ệc huấ ệ ạ ữ liệ ừ ban đầ ấn
luy n s n n ng h cho Ti ng Vi
ệ ẵ ổi tiế ỗ trợ ế ệt:
- [14]: t p d c hu n luy n trên 7.1GB d u bao
word2vecVN ậ ữ liệu đượ ấ ệ ữ liệ
g m 1,675,819 t và t ng h p t 97,440 tài li u, s d ng k thu t Word2Vec.
ồ ừ ổ ợ ừ ệ ử ụ ỹ ậ
- vi_spacy [15]: mô hình s d
ử ụng thư viện x lý ngôn ng t
ử ữ ự nhiên spaCy để
đào tạo 18GB d u thu th p t các bài báo, h c tác v phân tách t và phân
ữ liệ ậ ừ ỗ trợ ả ụ ừ
tích cú pháp.
- [16]: là mô hình hu n luy n s n hi i nh t dành cho ng
PhoBERT ấ ệ ẵ ện đạ ấ Tiế
Việt, đượ ể ở ứ ủ ấ ệ ự
c phát tri n b i nhóm nghiên c u c a VinAI, hu n luy n d a trên mô
hình RoBERTa [17] v i 20GB d c thu th u ngu n khác nhau.
ớ ữ liệu đượ ập ở nhiề ồ
Cung c p 2 phiên b n phobert-base hu n luy n v i 135 tri u tham s và phobert-
ấ ả ấ ệ ớ ệ ố
large hu n luy n v i 370 tri u tham s
ấ ệ ớ ệ ố.
40. 29
2.4 Thành ph Transformer
.3 ần
Transformer có nhi m v tìm ra s liên k token trong câu, t
ệ ụ ự ết của các từ ừ đó
có th c chính xác nh c a câu DIET s d ng kh i Encoder v
ể xác định đượ ý đị ủ . ử ụ ố ới
mặc định 2 l p, mu n mô hình d
ớ ố ự đoán chính xác hơn có thể tăng số lớp lên nhưng
cũng đồ ời tăng thờ ử ủ ệ ống. Đầ ủ
ng th i gian x lý c a h th u vào c a mô hình
Transformer là vector có s chi u là 256 u ra s là các vector riêng bi ng
ố ề , và đầ ẽ ệt ứ
với mỗi từ các token sau đó sẽ đượ ề ớ ặ
c truy n vào l p CRF ho c Embeding Layer.
2.4 n luy n mô hình
.4 Huấ ệ
DIET là mô hình xử lý đa tác vụ bao g m trích ch n th c th (Extract entity),
ồ ọ ự ể
phân lo nh (Intent classification) và d b n (Masked language
ại ý đị ự đoán từ ị ẩ
modeling). Việc huấn luyện mô hình là nhi m v
ệ ụ giảm thi u t
ể ối đa giá trị c a hàm
ủ
m t mát 3 tác v i là giá tr
ấ ụ trên được gọ ị ấ ổ
m t mát t ng
.
Hàm m t mát quá trình trích ch n th (Entity loss):
ấ ọ ực thể
D u sau khi x lý xong Transformer s p Conditional
ữ liệ ử ở ẽ được đi vào lớ
Random Field (CRF). C [18] là m
RF ột phương pháp sử d ng xác su
ụ ất có điều kiện
thường đượ ụ ậ ạ ẫ ọ ự đoán dữ ệ ấ
c áp d ng trong nh n d ng m u, h c máy và d li u có c u
trúc. Rasa NLU s d
ử ụng thư viện sklearn-crfsuite [19] để thự ệ
c hi n trích ch n th
ọ ực
th ti
ể. Bên trong CRF các t s m t m truy n th (FFNN)
ừ ẽ đi qua ộ ạng ề ẳng ế ẽ
p theo s
phân lo i entity.
ạ Ở giữa các FFNN có m t ma tr
ộ ậ ể
n chuy n ti p (transition matrix),
ế
ý tưở ủ ận này để ổ ấ ế ộ ả năng
ng c a ma tr phân b xác xu t n u token là m t entity thì kh
cao token bên cạnh nó cũng là entity.
Đầ ủ ớp CRF thu đượ ộ ỗ ế ợ ớ ữ ệ
u ra c a l c m t chu i entity và k
t h p v i d li u
traning nhãn entity yentity c giá tr hàm m t mát trong quá trình trích ch
ta đượ ị ấ ọn
thực th c:
ể ứ
(Entity Loss) theo công th
(2.13)
Vi L
CRF (.) l negative log-like hood cho m t CRF. Entity Loss
à li
c ng
à
nh
m h nh d
thì ô ì o n entity c ng ch nh x
á à í ác.
41. 30
Hàm m t mát quá trình phân lo nh (Intent loss):
ấ ại ý đị
Token __CLS__ là token tóm t t c câu ph c v cho m i ý
ắ ả ụ ụ ục đích phân loạ
định. __CLS__ đi qua Transformer thu được
, song song với nó là nhãn ý định
là intent s t Embedding Layer. K thu t Embedding
ẽ đi qua mộ ỹ ậ ở đây sử
d mô hình StarSpace [20]
ụng được công bố vào cuối năm 2017 phát triển b i nhóm
ở
nghiên c u AI Facebook.
ứ
Đầ ủa Embedding Layer ta thu đượ
u ra c c 2 vector
và
với R
20
, 2 vector này sau đó sử d ng dot-product loss
ụ để
t v (positive intent)
ối đa sự tương đồng ới nhãn ý định đúng
và gi m thi u s
ả ể ự
tương đồ ới nhãn ý định khác nhãn ý định đúng
ng v (negative intent)
, ta được
công thức:
(2.14)
(2.15)
Intent Loss được tính theo công thức:
Với
là t ng s m u negative intent, m t intent có m t ho c nhi u ví d
ổ ố ẫ ộ ộ ặ ề ụ
là trung bình c a các ví d trong 1 intent. Intent Loss
ủ ụ
càng nh thì mô hình
ỏ
d intent càng chính xác.
ự đoán
Hàm m t mát quá trình d
ấ ự đoán token bị che đi (Masking loss):
Trong quá trình huấn luy n mô hình DIET s
ệ ẽ che đi ngẫu nhiên m t s token
ộ ố
đầ ẽ ự đoán từ ợc che đi và đượ ọ ỹ ậ
u vào, mô hình s d đư c g i là k thu t Masked
language modeling. __MASK__ c truy n qua Transformer thu
token cũng đượ ề
được n vào Embedding Layer, song song v
tiếp theo đó truyề ới đó masked
to lý
ken (trong là t c x
Error! Reference source not found. ừ pong) cũng đượ ử , k
ế ả
t qu sau khi qua Transformer là
và truy n Embedding Layer.
ền đế
42. 31
Cũng ố ới Intent classification, đầ ủa Embedding Layer ta đượ
gi ng v u ra c c 2
vector
và
với R
20
, và
dot-product ta thu được:
(2.17)
(2.18)
Mask l c tính theo công th
oss đượ ức:
Với
là t ng s m u negative mask. c áp d ng k thu t Masked
ổ ố ẫ Việ ụ ỹ ậ
language modeling c s d giúp mô hình không ch phân lo i mà
đượ ử ụng ỉ dùng để ạ
còn học được các đặc điểm chung trong t v ng giúp d
ừ ự ự đoán chính xác hơn. Mass
loss
càng nh thì mô hình d
ỏ ự đoán mask token càng chính xác
Giá tr hàm m t mát t ng h p:
ị ấ ổ ợ
Giá tr hàm m t mát t ng h p (Total loss) b ng t ng c a Entity loss, Intent
ị ấ ổ ợ ằ ổ ủ
loss và Mask loss. DIET s n luy n mô hình b ng cách
ẽ huấ ệ ằ đưa Total loss
về
giá tr t có th và th c hi n quá trình truy
ị nhỏ nhấ ể ự ệ ền ngược (Backpropagation) để
c p nh t tr ng s các thành ph n. Mô hình có th c i b m t trong
ậ ậ ọ ố ầ ể ấu hình để loạ ỏ ộ
nhữ ụ ầ ế ả ử ầ ọ ự ể
ng tác v không c n thi t, gi s mô hình không c n trích ch n th c th ta có
th lo i b
ể ạ ỏ
ra khỏi
.
(2.20)
2.4.5 Đánh giá mô hình DIET
D a trên c nghi m c a tác gi mô hình DIET [13] v i b d u NLU-
ự thự ệ ủ ả ớ ộ ữ liệ
Benchmark [21] bao g m 25,716 câu tho i v i 64 intent và 54 entity t k t qu
ồ ạ ớ đạ ế ả
t khi so sánh v i mô hình HERMIT [22] c ch ng
ốt hơn đáng kể ớ , mô hình đã đượ ứ
minh đạ ế ả ốt hơn các công cụ như Rasa, Dialogflow, LUIS và Watson.
t k t qu t
43. 32
Hình 2.8. So sánh mô hình DIET và mô hình HERMIT [13]
Mô hình DIET s d ng ki n trúc linh ho t có th d i các
ử ụ ế ạ ể ễ dàng thay đổ
thành phần bên trong, do đó ế
k t quả đánh giá mô hình đượ ể ệ
c th hi n qua các
bi n ng n
ế thể ằ
b s trong thành ph
ự thay đổi ầ Sparse feature, Dense feature,
Mask loss, k t qu
và ế ả được so sánh thông qua điểm F1-score:
Hình 2.9 n th c
. Đánh giá các biế ể ủa mô hình DIET [13]
Qua b ng trên có th
ả ể nhận th y DIET
ấ có s d ng Spare feature và Dense
ử ụ
feature v i D c k t qu t t nh c bi
ớ ense feature là ConveRT cho đượ ế ả ố ất và đặ ệt
th i s
ờ ấ ệ ít hơn 6 lầ ớ
i gian hu n luy n n so v ử ụ
d ng mô hình BERT.
44. 33
CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶ Ứ Ụ
T NG D NG
CHATBOT
3.1 Gi i thi Rasa Framework
ớ ệu
Rasa Framework (23) là m t mã ngu n m giúp xây d ng Chatbot s d
ộ ồ ở ự ử ụng
trí tu nhân t o c vi t b ng ngôn ng l p trình
ệ ạ . Được ra đời vào năm 2016 và đượ ế ằ ữ ậ
Python, v i s h c a c c c p nh liên t c Rasa
ớ ự ỗ trợ ủ ộng đồng người dùng và đượ ậ ật ụ
đang ngày càng phát triển và tr thành m t trong nh ng n
ở ộ ữ ền t ng xây d ng Chatbot
ả ự
l n nh và hoàn toàn mi n phí.
ớ ất ễ
Rasa bao g m
ồ nhiều thành phần trong đó có 2 thành ph n chính là thành ph
ầ ần
x lý ngôn ng t nhiên (NLU) và thành ph n qu n lý h i tho i (DM).
ử ữ ự ầ ả ộ ạ
Hình 3.1 các thành ph n trong Rasa Framework
. Sơ đồ ầ
- NLU: là ph n x lý phân lo nh và trích xu t th c th c th
ầ ử ại ý đị ấ ự ể. Đượ ể hiện
ở ố ắ ủa người dùng đượ ử ộ ồ
kh i NLU Pipeline, tin nh n c c x lý qua m t quy trình g m
nhi u
ề bướ ọ
c g i là pipeline.
45. 34
- Dialogue management: là thành ph n quy nh s n ti p theo trong
ầ ết đị ự kiệ ế
cuộ ộ ạ ự ữ ả ệ ại. DM đượ ể ệ ở ố
c h i tho i d a vào ng c nh hi n t c th hi n b i kh i Dialogue
Policies.
Bên c m các thành ph n khác:
ạnh đó Rasa bao gồ ầ
- Rasa Action Server: th
là thành ph n tùy ch n, n u h
ầ ọ ế ệ ố ầ ử
ng c n x lý các
tác v n x c khi tr l i dùng ho c g n server khác
ụ logic như tiề ử lý trướ ả ời ngườ ặ ọi đế
thông qua API để ấ ữ ệ ử ụ ế ằ
l y d li u. Rasa Action Server s d ng Rasa SDK vi t b ng
Python để ự
xây d ng.
- Tracker stores: thành ph l ch s tin nh n, slot trong database
ần lưu trữ ị ử ắ
hoặc bộ nhớ t m, cung c
ạ ấp thông tin để Rasa action server xử lý như trích xuất liên
k t các tin nh l i dùng m t cách chính xác nh t, ho c phân
ế ắn trước để trả ời ngườ ộ ấ ặ
tích cu i tho
ộc hộ ại.
Hiện nay có r t nhi
ấ ều phương pháp làm Chatbot do bên th ba cung c
ứ ấp như
Chatfuel, tài lu s d
Sparrow, ManyChat…nhưng trong đề ận văn này, tôi sẽ ử ụng
Rasa framework để ựng chương trình và dưới đây là nhữ ử ụ
xây d 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ể ợp các tính năng bên ngoài và hàm xử lý nào đó.
tùy ý tích h
- Tích h p v i các h ng có s n
ợ ớ ệ thố ẵ : Rasa cung c p Rasa Action giúp
ấ
Chatbot có th k t n n các h ng khác thông qua API ho c truy c p vào
ể ế ối đế ệ thố ặ ậ
database, gi s Chatbot bán hàng có th l y giá m i nh t trên h ng qu n lý
ả ử ể ấ ớ ấ ệ thố ả
bán hàng c a doanh nghi
ủ ệp.
- 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 p câu tr l i phù h p v nh c
đánh giá và cung cấ ả ờ ợ ới ý đị ủ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 chat n i ti
ế ớ ề ảng ổ ếng như Facebook Messenger, Slack, Telegram,
Twilio …
46. 35
- Hiệ ấ
u su t cao: v i vi tích h p nhi u ki n trúc hi i nh
ớ ệc ợ ề ế ện đạ ấ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 n luy n m
ờ huấ ệ ộ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 c các c ng chia s n th c, thu t toán t m chí d
ựng đượ ộng đồ ẻ kiế ứ ậ ối ưu và thậ ữ
liệ ẫ ẵ ể
u m u có s n, giúp Rasa ngày phát tri n và ổn định.
3.2 C u trúc c Chatbot
ấ ủa Nhất Nam
3.2.1 Thi t k t ng quát
ế ế ổ
Ứng d ng Chatbot
ụ Nhất Nam hướng đến người dùng chưa dùng sản ph m k
ẩ ế
toán Nh t Nam c n tham kh o thông tin s n ph n doanh
ấ ầ ả ả ẩm, thông tin liên quan đế
nghi d ng c n h cách dùng s n ph
ệp, và hướng đến người dùng đã sử ụ ầ ỏi đáp về ả ẩm
và truy xu t thông tin b o trì, b o hành c a h . Bài toán mà tôi xây d ng s t
ấ ả ả ủ ọ ự ẽ ập
trung vào các ch n, h ng d n s d ng và truy xu
ức năng tư vấ ỗ trợ bán hàng, hướ ẫ ử ụ ất
thông tin liên quan đến doanh nghi p. Các ch
ệ ức năng chính bao gồm:
- Thông tin các lo n ph m k toán
ại sả ẩ ế
- H i giá s n ph m
ỏ ả ẩ
- Tư vấn bán hàng
- Thông tin doanh nghi p
ệ
- T o liên h n t
ạ ệ đế ổng đài viên
- Thông tin b o trì, b o hành
ả ả
- H n th c
ỏi đáp kiế ứ
C u trúc h Chatbot cho ng d ng s c thi
ấ ệ thống ứ ụ ẽ đượ ết kế như sau:
47. 36
Hình 3.2 u trúc h ng Chatbot Nh t Nam
. Cấ ệ thố ấ
website Nh t Nam s
Ở ấ ẽ thi t k giao di n dành cho Chatbot
ế ế ệ , người dùng có
thể ậ ắ ẵ ẽ ợ ửi đế ầ
nh p tin nh n, tin nh n s đư c g n Rasa thông qua Api. Các thành ph n
bên trong Chatbot Rasa sẽ đượ ả ệm như sau:
c đ m nhi
- Agent: là thành ph n trung gian giao ti p, truy n t n các
ầ ế ề ải thông điệp đế
thành ph n khác, các tin nh u vào s Agent s chuy
ầ ắn đầ ẽ đi qua Agent sau đó từ ẽ ển
đế ần NLU, Dialog management, Rasa action server để ử
n các thành ph x lý tin
nh n.
ắ
- NLU: có nhi m v vector hóa d máy có th u ngôn ng con
ệ ụ ữ liệu để ể hiể ữ
ngườ ừ đó có thể ại ý đị ấ ụ câu đầ
i t phân lo nh và trích xu t ra các thông tin. Ví d u
vào ngườ ỏ ệ
i dùng h i “Giá phầ ề ế ệp bao nhiêu?”
n m m k toán doanh nghi thì h
th li
ố ẽ ồi đố ế ớ ậ ự
ng s vector hóa nó r i chi u v i t p d ệu training đã được gán nhãn để
đưa ra ý đị (ý đị ỏ ề ả ẩ ế ếu câu đầ
nh “bao_gia” nh h i v giá s n ph m). Ti p theo n u vào
chứ ệ
a entity h thố ẽ
ng s trích xu t ra, ví d câu trên có entity là s n ph
ấ ụ ả ẩm “kế toán
doanh nghiệp”.
- Dialog management (DM): d a vào các lu
ự ật quy định trong h ng ho
ệ thố ặc
so sánh ng c nh h i tho i các ng c
ữ ả ộ ại vớ ữ ảnh dùng để ấ ệ ớc đó, ẽ
hu n luy n trư DM s
quyết định hành độ ế
ng ti p theo là gì. Ví d v i intent d a vào các cu
ụ ớ “bao_gia” ự ộc
48. 37
h i tho c khai báo trong story h ng s d
ộ ại đượ ệ thố ẽ ự đoán được hành độ ế
ng ti p theo
là “utter_bao_gia” l i giá s n ph m cho khách hàng).
(trả ờ ả ẩ
- Rasa action server: là thành ph n quan tr ng trong x x lý
ầ ọ ử lý logic, để ử
các nghi p v p mà DM không th x
ệ ụ phức tạ ể ử lý như lấy giá s n ph m t h
ả ẩ ừ ệ thống
khác, x lý tính toán ph c t p khi hoàn thành form nh p li u. Trong
ử ứ ạ ậ ệ ứng d ng này,
ụ
Rasa action server s có nhi m v trích xu t d u t h ng qu n lý bán hàng
ẽ ệ ụ ấ ữ liệ ừ ệ thố ả
và điều hướ ệ đế ỗ ợ viên ngay khi có người dùng đăng kí
ng thông tin liên h n h tr
thông tin.
3.2.2 Sơ đồ ạt độ ủ ấ
quy trình ho ng c a Chatbot Nh t Nam
Hình 3.3 quy trình ho
. Sơ đồ ạt độ ủ ấ
ng c a Chatbot Nh t Nam
Mô t chi ti
ả ết các thành phần:
a. Input: là câu đầu vào, đây là câu hỏi c i dùng trên h
ủa ngườ ệ thống. Trong
hình minh h i dùng h i câu
ọa ngườ ỏ “Giá kế ệ ”
toán doanh nghi p bao nhiêu? .
49. 38
b. Tiề ử
n x lý: thành ph n này Rasa s x lý câu u vào c i dùng
Ở ầ ẽ ử đầ ủa ngườ
qua thành ph n
ầ Tokenizer để tách câu đầu vào thành các token như sau “Giá”,
“kế_toán”, “doanh_nghiệp”, “bao_nhiêu”. Bướ ế ể
c ti p theo chuy n các token
thành d ng vector qua thành ph Chatbot có th
ạ ần đặc trưng hóa (Featurizer) để ể
phân lo nh và trích xu c th .
ại ý đị ất thự ể
c. Phân loại ý định: phân tích và dự đoán ý định d a trên t
ự ập ý định đã được
định nghĩa trướ ụ ỏ
c. Ví d câu h i “Giá kế ệ ”
toán doanh nghi p bao nhiêu? Chatbot
d nh v t
ự đoán ý đị “bao_gia” ớ ộ
i đ ự tin (confidence) là 98%.
d. Trích xu t th c th :
ấ ự ể Chatbot sẽ nhận d ng các th c th trong câu h i nh
ạ ự ể ỏ ờ
vào t p các th c th c. Ví d trong câu h i trên, Chatbot
ậ ự ể đã được định nghĩa trướ ụ ỏ
s trích xu
ẽ ất được “kế toán doanh nghiệ “san_pham”
p” c
là một thực thể ủa .
e. Chính sách (Policy): Chatbot s d
ẽ ựa vào ý định và th c th
ự ể để quyết định
hành độ ế
ng ti p theo các chính sách, có 3 chính sách là chính sách d a vào quy t
ự ắc
(Rule-based policy), chính sách ghi nh (Memorization policy) và chính sách TED
ớ
(TED policy), trong đó Rule-based policy sẽ được ưu tiên nhấ ếp đó
t ti là Memory
policy và TED policy
- Rule-based policy: là chính sách quy ng ti p theo d a vào
ết định hành độ ế ự
các quy tắc được khai báo s n, gi s
ẵ ả ử người dùng g i tin nh
ử ắn ý định chào h i, bot
ỏ
s luôn chào l c nh nào.
ẽ ại bất kể ở ngữ ả
- Memorization policy: n u h th ng không phát hi n h i tho i trùng kh
ế ệ ố ệ ộ ạ ớp
v i b t kì quy t
ớ ấ ắc được định nghĩa sẵn nào Chatbot s d a vào các k
ẽ ự ịch b n có s
ả ẵn
đã đượ khai báo để ự đoán hành độ ế
c d ng ti p theo.
- TED policy: n ng ti p theo không tìm th y trong Rule policy
ếu hành độ ế ấ
hoặ ệ ố ẽ ử ụ ỹ ậ
c Memorization policy, h th ng s s d ng k thu t có tên Transformer
Embedding Dialogue (TED) (24) d t d a theo ng
để ự đoán hành động đúng nhấ ự ữ
c ch b
ảnh trước đó và các kị ản được khai báo
f. Hành động (Action): Là quá trình Chatbot t ng h p k t qu c a các thành
ổ ợ ế ả ủ
phầ ự để ả ề ế ả cho người dùng. Đố ớ
n trên d a theo các chính sách tr v k t qu i v i câu
h Chatbot s l i phù h
ỏi “Giá kế ệp bao nhiêu”
toán doanh nghi ẽ đưa ra câu trả ờ ợp
nhất là “utter_bao_gia_phan_mem_ke_toan_doanh_nghiep”, k t h p v i vi
ế ợ ớ ệc
truy xu u t h ng doanh nghi có th l
ất dữ liệ ừ ệ thố ệp để ể ấy đượ ả ẩ
c giá s n ph m chính
50. 39
xác nh t, Chatbot s v i dùng câu tr l ng
ấ ẽ trả ề cho ngườ ả ời tương ứ “Phầ ề ế
n m m k
toán doanh nghiệp giá 6.000.000 đồng”.
3.3 Xây d ng d Chatbot
ự ữ liệu
Do ng d ng Chatbot t Nam ch c v cho m t doanh nghi p c
ứ ụ Nhấ ỉ phụ ụ ộ ệ ụ thể
nên s s d ng mi n d
ẽ ử ụ ề ữ liệu đóng được thu th p t
ậ ừ những cu c h i tho i c a khách
ộ ộ ạ ủ
hàng trước đó và câu trả l i s
ờ ẽ được chuyên viên tư vấn t o ra. Trong quá trình xây
ạ
d ng Chatbot k ch b s c vi t b ng tay ho c thông qua h
ự ị ản ẽ đượ ế ằ ặ ọc tương tác
(Interactive Learning) s d ng công c Rasa X h
ử ụ ụ ỗ trợ giao di n tr c quan giúp các
ệ ự
chuyên viên t c k ch b
ạo đượ ị ản m t cách nhanh nh
ộ ất.
Hình 3.4. Giao di n Rasa X s d ng t
ệ ử ụ ạ ị ả
o k ch b n
Quy trình xây d ng h Chatbot s bao g
ự ệ thống ẽ ồm các bước chính sau đây:
3.3.1 Xây d nh (intent)
ựng ý đị
B các câu h i m u c
ộ ỏ ẫ ủa người dùng sẽ đượ ậ
c t p h p l i t các cu c h i tho
ợ ạ ừ ộ ộ ại
c i v i nhân viên h , giúp b d chính xác nh t v
ủa người dùng trao đổ ớ ỗ trợ ộ ữ liệu ấ ới
th tr
ự ế ờ ỏi. Kèm theo đó hỗ
c t ngư i dùng h ợ ẽ ấ ữ ẫ ỏ
viên s cung c p nh ng m u câu h i
m m b o t
ớ ể
i đ đả ả ập ý định phong phú và đầy đủ ấ
nh t.
51. 40
Chatbot Nhất Nam bao g m t ng c ng
ồ ổ ộ 36 intent v i 1024 câu m
ớ ẫu, được khai
báo trong file nlu.yml, dưới đây là ví dụ mẫu c a 2 intent
ủ bao_tri_phan_mem (hỏi
v b o trì ph n m m) và
ề ả ầ ề hoa_don_dien_tu n t )
(hỏi về hóa đơn điệ ử
Hình 3.5. Khai báo intent trong file nlu.yml
Có th y là trong ti ng Vi t khách hàng s d ng nhi u t t t
ể thấ ế ệ ử ụ ề ừ viế ắt như
“không” “k” “bao nhiêu” “bn”
viế ắ
t t t thành , t t t thành
viế ắ … do vậ ệ ậ
y vi c t n
d ng nh ng cu c h i tho i trong th c t vào quá trình training s giúp Chatbot
ụ ữ ộ ộ ạ ự ế ẽ
hiểu ý định ngườ ố
i dùng t t hơn.
3.3.2 Xây d ng th c th (entity)
ự ự ể
Entity là các th c th
ự ể thông tin đặc trưng quan trọng được trích xu t theo các
ấ
ý đị ủa người dùng, các thông tin đượ ọ ắ ủa ngườ
nh c c trích ch n trong tin nh n c i
dùng đượ ệ ống lưu lạ ừ đó giúp hệ ố ết đị h độ ế
c h th i t th ng quy nh hàn ng ti p theo
phụ ộ
thu c vào entity trích chọ ữ ảnh đang diễ
n và ng c n ra.
Trong Chatbot t Nam s bao g c khai báo trong
Nhấ ẽ ồm các entity đượ
domain.yml như trong hình dưới đây:
52. 41
Hình 3.6. Khai báo entity trong file domain.yml
Entity s c trích ch n tr c ti p trong các ví d m u c nh
ẽ đượ ọ ự ế ụ ẫ ủa intent theo đị
d ng, ví d
ạ ụ trong câu “Phần m m k toán doanh nghi p giá th nào nh
ề ế ệ ế ỉ?” có thực
thể ộ ả ẩm, khi đó câu trên đổ
là m
“kế ệ
toán doanh nghi p” t s n ph i thành “Phần
m giá th nào nh
ềm [kế ệ
toán doanh nghi p](san_pham) ế ỉ”. Dưới đây là ví dụ
entity trong chương trình:
Hình 3.7. Khai báo intent có ch a entity trong file nlu.yml
ứ
3.3.3 Xây d ng câu tr l i cho Chatbot
ự ả ờ
Khi người dùng đưa ra câu hỏ ẽ ử ạ ỏ ả
i, Chatbot s x lý phân lo i câu h i và ph n
h i câu tr l i phù h p v i câu h i và yêu c Rasa có th xây d ng ph n h
ồ ả ờ ợ ớ ỏ ầu đó. ể ự ả ồi
cho Chatbot ng (action). Action này có th cung c p thông
thông qua các hành độ ể ấ
tin mong muốn cho người dùng dựa vào các ý định, slot và d u l
ữ liệ ấ ừ cơ sở
y t dữ
53. 42
liệu thông qua k t n i API. Có 2 lo
ế ố ại hành động để ử
x lý câu tr l i trong Chatbot
ả ờ
Nhấ ại hành độ ặc định (default actions) và hành độ ế
t Nam, lo ng m ng tùy bi n
(custom actions).
3.3.3.1 ng m
Hành độ ặ ị
c đ nh
Là ng d l i d a vào nh và th c th
các hành độ ự đoán và đưa ra câu trả ờ ự ý đị ự ể
đượ ọ ủa người dùng, đượ ử ở ầ đã
c trích ch n c c x lý thành ph n Dialog management
đượ ấ . Hành độ ếp theo đượ ết đị ở các chính sách đó
c Rasa cung c p ng ti c quy nh b i
là chính sách d a vào quy t c (Rule policy), chính sách ghi nh (Memorization
ự ắ ớ
policy) và chính sách TED (TED policy).
- Khai báo chính sách d a vào các quy t c (Rule-based policy)
ự ắ : Rule-
based polici c khai báo trong file rules.yml. Ví d m i dùng nh
es đượ ụ ỗi khi ngườ ập
câu có ý đị Chatbot luôn đưa ra câu trả ờ
nh “chao_hoi” l i “Kính chào quý khách!
R c h
ất vui lòng đượ ỗ trợ quý khách”.
Hình 3.8. Khai báo Rule policy trong file rules.yml
- Khai báo k ch b n cu c h i tho
ị ả ộ ộ ại: B ng cách thu th p các cu c h i tho
ằ ậ ộ ộ ại
thực t c a h
ế ủ ỗ trợ viên và người dùng, ta s d c nh ng k ch b n thông d
ẽ ựng đượ ữ ị ả ụng
nhất. Ví d c khi h i giá s n ph i dùng s chào h i h
ụ trướ ỏ ả ẩm, ngườ ẽ ỏ ỗ ợ
tr viên, h i v
ỏ ề
thông tin các s n ph m doanh nghi p cung c m n câu h i giá. Các
ả ẩ ệ ấp, sau đó ới đế ỏ
k ch b n s c khai báo trong file . K ch b n có th c vi t b ng
ị ả ẽ đượ stories.yml ị ả ể đượ ế ằ
tay ho c thông qua h
ặ ọc tương tác (interactive learning) khi đó ta có thể đánh giá
và d Chatbot cách tr l nh c i dùng thông qua giao n l
ạy ả ời các ý đị ủa ngườ diệ ệnh
CLI hoặc chương trình Rasa X. Hệ thống s so sánh h i tho
ẽ ộ ại đang diễn ra v i k
ớ ịch
54. 43
b n có s n, n u trùng kh p s n h i theo s n ti p theo trong k
ả ẵ ế ớ ẽ đưa ra phả ồ ự kiệ ế ịch
b n.
ả
Hình 3.9. Khai báo k ch b n trong file stories.yml
ị ả
3.3.3.2 ng tùy bi n
Hành độ ế
Khi yêu c i dùng c n th c hi n truy xu n d u bên ngoài ho
ầu ngườ ầ ự ệ ất đế ữ liệ ặc
x lý tính toán ph c t p c n s d ng thu
ử ứ ạ ầ ử ụ ật toán mà các phương pháp Default action
không thể thực hiện được thì có th s d
ể ử ụng Custom action để tùy bi n hà
ế nh động.
M ng tùy bi c g i nó s n m t hàm trong file actions.py.
ỗi khi hành độ ến đượ ọ ẽ trỏ đế ộ
Custom action vi t b ng ngôn ng python do v y có th d dàng x lý logic ph
ế ằ ữ ậ ể ễ ử ức
t t thông tin t h ng ngoài, ví d truy xu t giá s
ạp như tính toán, truy xuấ ừ ệ thố ụ ấ ản
phẩm, i h n b o trì b o hành c n doanh
thờ ạ ả ả ủa khách hàng, thông tin liên quan đế
nghiệp…
Giả ử
s sau khi người dùng nh p tên và s
ậ ố điệ ạ ở
n tho i form liên h , h
ệ ệ thống
s nhân viên h liên l l
ẽ lưu lại thông tin vào Google Drive để ỗ trợ ạc và sau đó trả ại
người dùng ph n h
ả ồi. Để ả
gi i quy t bài toán này không th s d ng Default action
ế ể ử ụ
do đó ta sẽ ạ ộ ới tên hàm ActionSubmitSalesForm như hình
t o m t Custom action v
ở ớ
dư i
55. 44
Hình 3. . Hàm x lý sau khi hoàn thành nh p Form liên h
10 ử ậ ệ
3.3.4 C u hình các thành ph n
ấ ầ
Quá trình x lý ngôn ng t nhiên ng d c x lý
ử ữ ự là hành độ ữ liệu đầu vào đượ ử
qua m t lo t các thành ph n (component) theo th t g i là pipeline, ta có th thêm
ộ ạ ầ ứ ự ọ ể
hoặ ỏ ấ ần nào trong pipeline đó. Ví dụ ệ ố ầ
c b b t kì thành ph h th ng không c n trích
chọ ự ể ể ạ ỏ ầ ặ ệ ố
n th c th ta có th lo i b thành ph n Entity extraction, ho c h th ng không
dùng thành ph n luy n s n (pre-
ần mô hình được huấ ệ ẵ trained model) như BERT,
spaCy ta có th không c n khai báo trong c u hình.
ể ầ ấ
Tokenizer là quá trình chia nh u vào thành các t c c m t . Rasa
ỏ câu đầ ừ hoặ ụ ừ
có hỗ trợ WhitespaceTokenizer t o các t cách nhau b ng d u cách ví d
ạ ừ ằ ấ ụ câu “Tôi
là sinh viên trường đạ ọ
i h c Bách Khoa” đi qua thành phần WhitespaceTokenizer