Các bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot
-
Upload
pham-minh -
Category
Data & Analytics
-
view
2.276 -
download
21
Transcript of Các bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot
Các bài toán xử lý ngôn ngữ tự nhiêntrong 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)[email protected]
Ngày 30 tháng 3 năm 2017
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
1https://www.facebook.com/SymptomatePhạm Quang Nhật Minh Các vấn đề NLP trong chatbot 2/37
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ượnglớn người dùng:
Hỗ trợ hoặc thay thế người trong một số tác vụ: chăm sóckhá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ềuNhững bước tiến mới trong ngành AI:
Xử lý ngôn ngữ tự nhiênXử lý tiếng nóiHọ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
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 ServiceMicrosoft’s LUISGoogle Natural Language APIWit.aiApi.aiAmazon Lex
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 4/37
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 MartinPhạm Quang Nhật Minh Các vấn đề NLP trong chatbot 5/37
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
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
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
Ý đị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ạiVí dụ, khi người dùng muốn chatbot đưa ra thông tin về thờitiế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
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ịchbả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
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ùngmộ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 thanphiề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
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ệtkhô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
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ấnluyện
intent textorder.pizza i want a small pizza with tomatosorder.pizza i want a pizza with bbq souceorder.pizza pizza deliverygreeting Higreeting 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
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
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
Trích xuất đặc trưng
Bag-of-wordsHiện tại intent detection tại FPT.AI đang sử dụng bag-of-wordfeatures
tf-idf features...
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 16/37
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ặpNeural Networks
FPT.AI sử dụng mô hình mạng Neural Feed Forward với mộttầ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
Đánh giá độ chính xác của hệ thống phân lớp intent
Mô hình đánh giá 5-fold cross validationPhân chia tập dữ liệu thành 5 tập conMỗi lần sử dụng 4 tập con cho huấn luyện mô hình và testtrên tập còn lại
Độ đo: accuracy trên tập testTính trung bình cho 5 lần chạy
Engine Độ chính xácFpt.ai 0.85424Wit.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
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
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
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
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 8giờ 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 <ENTITYTYPE="LOCATION"> Nội Bài </ENTITY> lúc <ENTITYTYPE="TIME"> 8 giờ tối ngày mai </ENTITY>.
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 22/37
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ántrí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ãncho từng từ trong câu
Tôi/O muốn/O đặt/O vé/O máy/O bay/O đi/OPhú_Quốc/B-LOCATION từ/NA sân/NA bay/NANội_Bài/B-LOCATION lúc/NA 8/B-TIME giờ/I-TIMEtố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
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ácnhã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
3http://www.chokkan.org/software/crfsuite/4https://taku910.github.io/crfpp/5http://mallet.cs.umass.edu/
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 24/37
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
Vai trò của quản lý hội thoại (Dialogue Manager)
Nhận đầu vào từ thành phần NLUQuả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
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 StateAutomata - 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
Mô hình FSA
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 28/37
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úcnhiề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ỏiDựa trên các frame định sẵn để định hướng cuộc hội thoạiMỗi Frame sẽ bao gồm các thông tin (slot) cần điền và cáccâu hỏi tương ứngDialogue Manager sẽ hỏi cho đến khi các slot được điền hết
Slot Câu hỏiHọ tên Xin quý khách cho biết họ tênSố đ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
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 frameVí dụ: khách hàng có thể vừa hỏi về vấn đề mạng chậm, vừamuốn đổi gói Internet
Dialogue manager cần biết khi nào thì cần chuyển sang framekhá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
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
Ý 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ệnintent 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ờiKhô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ộithoại
Chatbot học theo cách trả lời của con người trong các đoạnhội thoại trong quá khứ
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 32/37
Ý 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 [Vinyalsand Le 2015]6
Describe your problem: i am having issues accessing vpnMachine: could you please let me know what are the operatingsystems you are using ?Human: i am using linuxMachine: ok it was in the ssl vpn on which you stated it wasbrokenMachine: please check if you are logged in to corp networkMachine: what is the error that you are running pleaseHuman: i am seeing an error related to vpnMachine: what is the error message that you are getting whenconnecting to vpn using network connect ?Human: connection refused or something like thatMachine: may i know the version of network connect youconnect ?
6https://arxiv.org/abs/1506.05869Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 33/37
Ý 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âuhội thoại của nhân viên hỗ trợ
....Machine: try thisMachine: goto <URL> page and enter your name andpasswordHuman: doneMachine: try logging in with <NAME> and check if itsworking fine nowHuman: 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
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 withNeural Networks"7
Hình: Minh hoạ mô hình sequence-to-sequence8
7http://tinyurl.com/kr57pde8https://github.com/farizrahman4u/seq2seq
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 35/37
Đặ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ốngMột mô hình duy nhất học trực tiếp từ dữ liệu hội thoạiCần dữ liệu hội thoại lớnMô hình không thực sự phản ảnh bản chất của hội thoại giữangười với ngườiChất lượng hội thoại sinh ra phụ thuộc lớn vào dữ liệu hộithoại
Chatbot Tay AI của Microsoft phân biệt chủng tộc do bị ngườidùng "huấn luyện"
Phạm Quang Nhật Minh Các vấn đề NLP trong chatbot 36/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ốngtrong phát triển chatbot
Xác định intentTrích xuất thông tinQuản lý hội thoại
Cách tiếp cận truyền thốngLà mô hình chatbot phổ biến trong các sản phẩm chatbotthực tếTheo mô hình truy xuất thông tinCần nhiều dữ liệu huấn luyện và luật chuẩn bị bằng tayThí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 chatbotHọ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