các bài toán xử lý ngôn ngữ tự nhiên trong phát triển hệ thống chatbot

Post on 11-Apr-2017

2.272 Views

Category:

Data & Analytics

21 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)minhpqn2@fe.edu.vn

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

top related