Trình bày về những bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot theo mô hình truy xuất thông tin. Ngoài ra mô hình sinh hội thoại sử dụng mạng Neural cũng được đề cập (neural chatbot)
Các bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot
1. Các bài toán x lý ngôn ng t nhiên
trong phát tri n h th ng chatbot
Ph m Quang Nh t Minh
Vi n nghiên c u công ngh FPT (FTRI)
minhpqn2@fe.edu.vn
Ngày 30 tháng 3 năm 2017
2. M t s h th ng giao ti p t đ ng
Hình: Chatbot Symptomate1
cho ch n đoán b nh và tr lý o Cortana
1
https://www.facebook.com/Symptomate
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 2/37
3. Vì sao nhu c u s d ng chatbot ngày càng tăng?
Chatbot h u ích trong các h th ng tr c tuy n v i s lư ng
l n ngư i dùng:
H tr ho c thay th ngư i trong m t s tác v : chăm sóc
khách hàng, h tr đ t hàng, tr l i câu h i, giáo d c,. . .
R t nhi u các n n t ng h tr trò chuy n tr c tuy n:
Facebook messenger, Slack, Skype, Telegram,...
S lư ng ngư i dùng đi n tho i thông minh ngày càng nhi u
Nh ng bư c ti n m i trong ngành AI:
X lý ngôn ng t nhiên
X lý ti ng nói
H c máy
Ngày càng nhi u platform h tr t o chatbot
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 3/37
4. N n t ng h tr phát tri n chatbot
M t s n n t ng h tr phát tri n chatbot:
Watson Conversation Service
Microsoft’s LUIS
Google Natural Language API
Wit.ai
Api.ai
Amazon Lex
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 4/37
5. Ki n trúc cơ b n c a m t h th ng tr l i t đ ng
Hình: Ki n trúc cơ b n c a m t h th ng tr l i t đ ng2
2
nh l y t cu n sách c a Daniel Jurafsky và James Martin
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 5/37
6. Hình: Ví d v c u trúc h i tho i c a chatbot. (Ngu n: stanfy.com:
http://tinyurl.com/mdfsa6h)
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 6/37
7. N i dung trình bày
1 Bài toán xác đ nh ý đ nh ngư i dùng (intent detection)
2 Bài toán trích xu t thông tin (named entity extraction)
3 Qu n lý h i tho i (dialogue management)
4 Mô hình sinh h i tho i cho chatbot
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 7/37
8. N i dung trình bày
1 Bài toán xác đ nh ý đ nh ngư i dùng (intent detection)
2 Bài toán trích xu t thông tin (named entity extraction)
3 Qu n lý h i tho i (dialogue management)
4 Mô hình sinh h i tho i cho chatbot
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 8/37
9. Ý đ nh (intent) là gì?
Intent: Đi u ngư i dùng mong mu n chatbot th c hi n (h
tr ) khi đưa ra câu h i tho i
Ví d , khi ngư i dùng mu n chatbot đưa ra thông tin v th i
ti t hôm nay
Th i ti t hôm nay th nào ad?
Hà N i hôm nay có mưa không v y?
Tr i hôm nay th nào b n?
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 9/37
10. T i sao xác đ nh intent quan tr ng?
Intent đư c xác đ nh s quy t đ nh c u trúc (frame) và k ch
b n (script) c a đo n h i tho i ti p theo.
N u chatbot xác đ nh sai intent:
Ph n h i không thích h p → Ngư i dùng không hài lòng →
R i b h th ng
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 10/37
11. Các v n đ trong bài toán xác đ nh intent (1)
Làm sao đ nh n bi t nh ng cách di n đ t khác nhau cho cùng
m t intent?
Ví d , t “lag“ và “ch m“ trong 2 câu sau mang cùng ng
nghĩa
Ad ơi, sao m ng nhà em d o này ch m th ?
M ng lag l m, dùng r t c ch .
Ngư i dùng có th dùng câu h i, câu c u khi n hay câu than
phi n khi đưa ra yêu c u h tr
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 11/37
12. Các v n đ trong bài toán xác đ nh intent (2)
X lý v n đ sai chính t
Ví d : “Ad ơi, m ng chaamj l m“
Trong ti ng Vi t, chúng ta có th ph i x lý v n đ ti ng Vi t
không d u và mix gi a có d u và không d u.
X lý các t vi t t t, ngôn ng chat
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 12/37
13. Cách ti p c n h c máy cho bài toán xác đ nh intent
Trong nh ng nh ng mi n ng d ng đóng (closed domain)
S lư ng intent là h u h n
Mô hình phân l p văn b n (text classification)
Hu n luy n mô hình phân l p intent t m t t p d li u hu n
luy n
intent text
order.pizza i want a small pizza with tomatos
order.pizza i want a pizza with bbq souce
order.pizza pizza delivery
greeting Hi
greeting Hello
...
B ng: Ví d v d li u hu n luy n cho chatbot ph c v order pizza
(Api.ai)
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 13/37
14. Mô hình phân l p intent
Hình: Ki n trúc h th ng phân l p intent
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 14/37
15. Ti n x lý d li u
Tách t (word segmentation)
X lý t gõ sai chính t (ví d m ng chaamj)
X lý t vi t t t (ví d : gõ ip thay vì iphone)
POS Tagging
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 15/37
16. Trích xu t đ c trưng
Bag-of-words
Hi n t i intent detection t i FPT.AI đang s d ng bag-of-word
features
tf-idf features
...
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 16/37
17. Thu t toán hu n luy n mô hình phân l p
Thu t toán phân l p ph bi n:
Support Vector Machines (SVM)
Random Forest
Quora đang s d ng đ phát hi n câu h i trùng l p
Neural Networks
FPT.AI s d ng mô hình m ng Neural Feed Forward v i m t
t ng n
S d ng thư vi n keras v i Theano backed end.
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 17/37
18. Đánh giá đ chính xác c a h th ng phân l p intent
Mô hình đánh giá 5-fold cross validation
Phân chia t p d li u thành 5 t p con
M i l n s d ng 4 t p con cho hu n luy n mô hình và test
trên t p còn l i
Đ đo: accuracy trên t p test
Tính trung bình cho 5 l n ch y
Engine Đ chính xác
Fpt.ai 0.85424
Wit.ai 0.83419
B ng: Đ chính xác trên t p d li u FTel
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 18/37
19. N i dung trình bày
1 Bài toán xác đ nh ý đ nh ngư i dùng (intent detection)
2 Bài toán trích xu t thông tin (named entity extraction)
3 Qu n lý h i tho i (dialogue management)
4 Mô hình sinh h i tho i cho chatbot
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 19/37
20. Hình: Ví d v c u trúc h i tho i c a chatbot. (Ngu n: stanfy.com:
http://tinyurl.com/mdfsa6h)
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 20/37
21. Các lo i th c th mà NLU thư ng h tr
V trí (Location)
Th i gian (Datetime)
S (Number)
Đ a ch liên l c (Contact)
Kho ng cách (Distance)
Kho ng th i gian (Duration)
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 21/37
22. Ví d đ u vào & đ u ra c a module trích xu t thông tin
Tôi mu n đ t vé máy bay đi Phú Qu c t sân bay N i Bài lúc 8
gi t i ngày mai.
Tôi mu n đ t vé máy bay đi <ENTITY TYPE="LOCATION">
Phú Qu c </ENTITY> t sân bay <ENTITY
TYPE="LOCATION"> N i Bài </ENTITY> lúc <ENTITY
TYPE="TIME"> 8 gi t i ngày mai </ENTITY>.
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 22/37
23. Mô hình gán nhãn chu i - sequence labeling
Sequence labeling là mô hình hay đư c s d ng cho bài toán
trích xu t thông tin.
Chúng ta có m t t p d li u bao g m các câu đư c gán nhãn
cho t ng t trong câu
Tôi/O mu n/O đ t/O vé/O máy/O bay/O đi/O
Phú_Qu c/B-LOCATION t /NA sân/NA bay/NA
N i_Bài/B-LOCATION lúc/NA 8/B-TIME gi /I-TIME
t i/I-TIME ngày/I-TIME mai/I-TIME.
Mô hình gán nhãn B-I-O
B: Beginning, I: Inside, O: Outside
Bài toán: Hu n luy n m t mô hình gán nhãn cho m t câu m i
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 23/37
24. Mô hình Conditional Random Fields (CRF)
Ý tư ng chính: Mô hình hoá xác su t đi u ki n c a m t chu i các
nhãn v i m t dãy các t cho trư c.
Mô hình hoá P(Y |X) t d li u.
V i m t câu X cho trư c, dãy các nhãn đư c ch n sao cho giá tr
P(Y |X) đ t giá tr c c đ i.
Công c : CRFsuite3, CRF++4, Mallet5,etc
3
http://www.chokkan.org/software/crfsuite/
4
https://taku910.github.io/crfpp/
5
http://mallet.cs.umass.edu/
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 24/37
25. N i dung trình bày
1 Bài toán xác đ nh ý đ nh ngư i dùng (intent detection)
2 Bài toán trích xu t thông tin (named entity extraction)
3 Qu n lý h i tho i (dialogue management)
4 Mô hình sinh h i tho i cho chatbot
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 25/37
26. Vai trò c a qu n lý h i tho i (Dialogue Manager)
Nh n đ u vào t thành ph n NLU
Qu n lý các tr ng thái h i tho i (dialogue state)
Qu n lý ng c nh h i tho i (dialogue context)
Truy n đ u ra cho thành ph n sinh ngôn ng
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 26/37
27. Các mô hình qu n lý h i tho i ph bi n
Mô hình d a trên máy tr ng thái h u h n (Finite State
Automata - FSA)
Mô hình d a trên frame (frame-based hay form-based)
K t h p gi a hai mô hình trên
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 27/37
28. Mô hình FSA
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 28/37
29. Mô hình qu n lý dialogue d a trên Frame
Gi i quy t như c đi m c a FSA khi ngư i dùng đưa cùng lúc
nhi u thông tin
T i m i tr ng thái, FSA ch nh n 1 câu tr l i cho 1 câu h i
D a trên các frame đ nh s n đ đ nh hư ng cu c h i tho i
M i Frame s bao g m các thông tin (slot) c n đi n và các
câu h i tương ng
Dialogue Manager s h i cho đ n khi các slot đư c đi n h t
Slot Câu h i
H tên Xin quý khách cho bi t h tên
S đi n tho i S đi n tho i c a quý khách là gì ?
Tên gói Internet Gói Internet mà quý khách đang dùng là
gì ?
T c đ Internet th c t T c đ vào Internet c a quý khách
hi n th i là bao nhiêu ?
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 29/37
30. Mô hình qu n lý dialogue d a trên Frame
Trong m t h i tho i có th có nhi u hơn 1 frame
Ví d : khách hàng có th v a h i v v n đ m ng ch m, v a
mu n đ i gói Internet
Dialogue manager c n bi t khi nào thì c n chuy n sang frame
khác
Đ nh nghĩa các lu t (production rule) đ chuy n gi a các frame
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 30/37
31. N i dung trình bày
1 Bài toán xác đ nh ý đ nh ngư i dùng (intent detection)
2 Bài toán trích xu t thông tin (named entity extraction)
3 Qu n lý h i tho i (dialogue management)
4 Mô hình sinh h i tho i cho chatbot
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 31/37
32. Ý tư ng chính c a mô hình sinh h i tho i (1)
Như c đi m c a mô hình truy xu t thông tin (phát hi n
intent và tr l i d a trên các m u có s n)
T n công xây d ng d li u hu n luy n và các m u tr l i
Không t n d ng đư c các h i tho i đã có
Ví d : gi a các nhân viên chăm sóc khách hàng và ngư i dùng
Ý tư ng: T n d ng các h i tho i đã có đ t đ ng sinh h i
tho i
Chatbot h c theo cách tr l i c a con ngư i trong các đo n
h i tho i trong quá kh
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 32/37
33. Ý tư ng chính c a mô hình sinh h i tho i (2)
Ví d v đo n h i tho i trong d li u IT Helpdesk [Vinyals
and Le 2015]6
Describe your problem: i am having issues accessing vpn
Machine: could you please let me know what are the operating
systems you are using ?
Human: i am using linux
Machine: ok it was in the ssl vpn on which you stated it was
broken
Machine: please check if you are logged in to corp network
Machine: what is the error that you are running please
Human: i am seeing an error related to vpn
Machine: what is the error message that you are getting when
connecting to vpn using network connect ?
Human: connection refused or something like that
Machine: may i know the version of network connect you
connect ?
6
https://arxiv.org/abs/1506.05869
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 33/37
34. Ý tư ng chính c a mô hình sinh h i tho i (3)
Chatbot theo mô hình sinh b t chư c các t ng trong câu
h i tho i c a nhân viên h tr
....
Machine: try this
Machine: goto <URL> page and enter your name and
password
Human: done
Machine: try logging in with <NAME> and check if its
working fine now
Human: yes , now it works !
Machine: great
(The <URL> indeed contains information about vpn access.)
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 34/37
35. Mô hình sinh h i tho i s d ng Deep Learning
Mô hình "sequence to sequence"
Gi i thi u trong bài báo "Sequence to Sequence Learning with
Neural Networks"7
Hình: Minh ho mô hình sequence-to-sequence8
7
http://tinyurl.com/kr57pde
8
https://github.com/farizrahman4u/seq2seq
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 35/37
36. Đ c đi m c a mô hình sinh h i tho i (neural chatbot)
Không c n d li u gán nhãn ho c c n lư ng d li u gán nhãn
ít hơn r t nhi u so v i mô hình chatbot truy n th ng
M t mô hình duy nh t h c tr c ti p t d li u h i tho i
C n d li u h i tho i l n
Mô hình không th c s ph n nh b n ch t c a h i tho i gi a
ngư i v i ngư i
Ch t lư ng h i tho i sinh ra ph thu c l n vào d li u h i
tho i
Chatbot Tay AI c a Microsoft phân bi t ch ng t c do b ngư i
dùng "hu n luy n"
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 36/37
37. Tóm t t n i dung đã trình bày
Các bài toán NLP cơ b n trong cách ti p c n truy n th ng
trong phát tri n chatbot
Xác đ nh intent
Trích xu t thông tin
Qu n lý h i tho i
Cách ti p c n truy n th ng
Là mô hình chatbot ph bi n trong các s n ph m chatbot
th c t
Theo mô hình truy xu t thông tin
C n nhi u d li u hu n luy n và lu t chu n b b ng tay
Thích h p cho mi n ng d ng đóng
Neural chatbot: cách ti p c n m i trong phát tri n chatbot
H c t d li u h i tho i theo mô hình “sequence to sequence“
trong Deep learning.
Ph m Quang Nh t Minh Các v n đ NLP trong chatbot 37/37