1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và xây dựng chatbot hỗ trợ người dùng trong lĩnh vực ngân hàng

69 205 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 3 MB

Nội dung

Các hệ thống chatbot được triển khai trong thực tế phần lớn tuân theo mô hình truy xuất thông tin và được áp dụng trong những miền ứng dụng nhất định.. CHƯƠNG II: Một số kỹ thuật sử dụng

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN TẤT TIẾN

NGHIÊN CỨU VÀ XÂY DỰNG CHATBOT HỖ TRỢ

NGƯỜI DÙNG TRONG NGÂN HÀNG

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

HÀ NỘI – 2019

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN TẤT TIẾN

NGHIÊN CỨU VÀ XÂY DỰNG CHATBOT HỖ TRỢ

NGƯỜI DÙNG TRONG NGÂN HÀNG

Trang 3

LỜI CAM ĐOAN

Tôi là Nguyễn Tất Tiến, học viên khóa K22, ngành Kỹ thuật phần mềm, chuyên ngành Kỹ Thuật Phần Mềm Tôi xin cam đoan luận văn “Nghiên cứu và xây dựng chatbot hỗ trợ người dùng trong ngân hàng” là do tôi nghiên cứu, tìm hiểu và phát triển dưới sự dẫn dắt của TS Nguyễn Văn Vinh Luận văn không phải sự sao chép từ các tài liệu, công trình nghiên cứu của người khác mà không ghi rõ trong tài liệu tham khảo Tôi xin chịu trách nhiệm về lời cam đoan này

Hà nội, ngày tháng năm 2019

Trang 4

LỜI CẢM ƠN

Đầu tiên tôi xin gửi lời cảm ơn tới các thầy cô trường đại học Công Nghệ, Đại học Quốc Gia Hà Nội đã tận tình giảng dạy và truyền đạt kiến thức trong suốt khóa cao học vừa qua Tôi cũng xin được gửi lời cảm ơn đến các thầy cô trong bộ môn Kỹ Thuật Phần Mềm cũng như khoa Công Nghệ Thông Tin đã mang lại cho tôi những kiến thức vô cùng quý giá và bổ ích trong quá trình học tập tại trường

Đặc biệt xin chân thành cảm ơn thầy giáo, TS Nguyễn Văn Vinh, người đã định hướng, giúp đỡ, trực tiếp hướng dẫn và tận tình chỉ bảo tôi trong suốt quá trình nghiên cứu, xây dựng và hoàn thiện luận văn này

Tôi cũng xin được cảm ơn tới gia đình, những người thân, các đồng nghiệp và bạn

bè thường xuyên quan tâm, động viên, chia sẻ kinh nghiệm, cung cấp các tài liệu hữu ích trong thời gian học tập, nghiên cứu cũng như trong suốt quá trình thực hiện luận văn tốt nghiệp

Hà Nội, ngày tháng năm 2019

Trang 5

MỤC LỤC

LỜI CẢM ƠN 4

MỤC LỤC 5

DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT 7

DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ 8

MỞ ĐẦU 1

1 Động lực nghiên cứu 2

2 Mục tiêu luận văn 3

3 Cấu trúc luận văn 4

CHƯƠNG 1 : TỔNG QUAN HỆ THỐNG CHATBOT 5

1.1 Giới thiệu 5

1.2 Cấu trúc các thành phần hệ thống chatbot 6

1.3 Hiểu ngôn ngữ tự nhiên (NLU) 7

1.4 Quản lý hội thoại (DM) 11

1.4.1 Mô hình máy trạng thái hữu hạn FSA 13

1.4.2 Mô hình Frame-based 14

1.5 Thành phần sinh ngôn ngữ (NLG) 14

1.5.1 Template-based NLG 15

1.5.2 Plan-based NLG 15

1.5.3 Class-based NLG 16

CHƯƠNG 2 : MỘT SỐ KỸ THUẬT SỬ DỤNG TRONG CHATBOT 17

2.1 Kiến trúc mạng nơ ron nhân tạo 17

2.2 Mạng nơ ron hồi quy RNN 20

2.3 Mạng Long short Term Memory (LSTM) 23

2.3.1 Vấn đề phụ thuộc quá dài 23

2.3.2 Kiến trúc mạng LSTM 24

2.3.3 Phân tích mô hình LSTM 25

2.4 Word embeddings 28

2.4.1 Word2vec 28

2.4.2 Glove 29

2.5 Ứng dụng RNN vào quản lý hội thoại 31

2.5.1 Mô hình word-based DST 31

Trang 6

2.5.2 Mô hình Global-Locally Self-Attentive DST (GLAD) 32

CHƯƠNG 3 : XÂY DỰNG CHATBOT HỖ TRỢ NGƯỜI DÙNG LĨNH VỰC NGÂN HÀNG 34

3.1 Bài toán 34

3.2 Xây dựng chatbot hỗ trợ người dùng lĩnh vực ngân hàng 34

3.3 Ứng dụng RASA xây dựng chatbot 36

3.4 Xây dựng dữ liệu chatbot 37

3.4.1 Xây dựng ý định 38

3.4.2 Xây dựng entity 39

3.4.3 Xây dựng câu trả lời cho bot 39

3.4.4 Xây dựng khung kịch bản (history) 41

3.5 Thực nghiệm 43

3.6 Đánh giá 51

KẾT LUẬN 52

TÀI LIỆU THAM KHẢO 53

PHỤ LỤC 55

Trang 7

DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT

Từ

viết tắt

AI Artificial Intelligence Trí tuệ nhân tạo

ANN Artificial Nerual Network Mạng nơ ron nhân tạo

CBOW Continuous Bag of Words

CNN Convolution Neural Network Mạng nơ ron tích chập

CRF Conditional Random Fields Mô hình xác xuất trường điều kiện ngẫu

nhiên

DM Dialogue Management Quản lý hội thoại

DNN Deep Neural Networks Mô hình học máy

DTS Dialogue State Tracking Theo dõi trạng thái hội thoại

FSA Finite State Automata Mô hình dựa trên máy trạng thái hữu hạn FSM Finite State Machine Máy trạng thái hữu hạn

GLAD Global-Locally SelfAttentive

Dialogue State Tracker

HMM Hiden Markov Models Mô hình Markov ẩn

LSTM Long short-term memory Mạng cải tiến để giải quyết vấn đề phụ

thuộc quá dài NLG Natural Language Generation Thành phần sinh ngôn ngữ

NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên

NLU Natural Language Understanding Hiểu ngôn ngữ tự nhiên

ML Machine Learning Học máy, máy có khả năng học tập POS Part Of Speech Gán nhãn từ loại

RNN Recurrent Neural Network Mạng nơ ron hồi quy

SVM Vector Support Machine Máy vector hỗ trợ

Trang 8

DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ

Hình 1.1: Cấu trúc các thành phần cơ bản hệ thống chatbot [12] 6

Hình 1.2: Mô hình các thành phần xử lý trong chatbot [1] 7

Hình 1.3: Các bước xử lý chính trong pipeline của NLU [1] 8

Hình 1.4: Các bước xử lý trong NLU [2] 8

Hình 1.5: Mô hình các bước xác định ý định 10

Hình 1.6: Gán nhãn từ theo mô hình B-I-O trong trích xuất thông tin Error! Bookmark not defined Hình 1.7: Mô hình quản lý trạng thái và quyết định action trong hội thoại [2] 12

Hình 1.8: Quản lý hội thoại theo mô hình máy trạng thái hữu hạn FSA 13

Hình 1.9: Frame cho chatbot hỏi thông tin khách hàng 14

Hình 1.10: Phương pháp sinh ngôn ngữ dựa trên tập mẫu câu trả lời [1] 15

Hình 1.11: Phương pháp sinh ngôn ngữ Plan-based [1] 15

Hình 1.12: Phương pháp sinh ngôn ngữ class-based [1] 16

Hình 2.1: Kiến trúc mạng nơ ron nhân tạo [15] 17

Hình 2.2: Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo [15] 18

Hình 2.3: Mạng RNN [15] 21

Hình 2.4: Mạng RNN 2 chiều [15] 22

Hình 2.5: Mạng RNN nhiều tầng [15] 22

Hình 2.6: RNN phụ thuộc short-term [17] 23

Hình 2.7: RNN phụ thuộc long-term [17] 23

Hình 2.8: Các mô-đun lặp của mạng RNN chứa một layer [17] 24

Hình 2.9 : Các mô-đun lặp của mạng LSTM chứa bốn layer [17] 24

Hình 2.10 : Tế bào trạng thái LSTM giống như một băng truyền [17] 25

Hình 2.11 : Cổng trạng thái LSTM [17] 26

Hình 2.12 : LSTM focus f [17] 26

Hình 2.13 : LSTM focus I [17] 27

Hình 2.14 : LSTM focus c [17] 27

Hình 2.15 : LSTM focus o [17] 27

Hình 2.16 : Mô hình từ nhúng [16] 28

Hình 2.17 : Mô hình CBOW và Skip-Ngram [16] 29

Hình 2.18 : Xác xuất từ k trên ngữ cảnh của từ i và j [16] 29

Trang 9

Hình 2.20 : Công thức tính hàm chi phí tối thiểu [16] 30

Hình 2.21 : Hàm trọng số (weighting function) [16] 30

Hình 2.22: Mô hình word-based DST với mạng RNN [20] 31

Hình 2.23: Mô hình Global-Locally Self-Attentive DST (GLAD) [21] 32

Hình 2.24 : Global-locally self-attentive encoder modul [21] 33

Hình 3.1: Cấu trúc chatbot cho hệ thống ebanking 35

Hình 3.2 : Cấu hình pipeline xử lý ngôn ngữ tự nhiên 37

Hình 3.3 : Các bước xây dựng chatbot 38

Hình 3.4 : Xây dựng ý định người dùng 39

Hình 3.6 : Mẫu câu trả lời của bot cho ý định hỏi số dư tài khoản 39

Hình 3.7: Mẫu câu trả lời mặc định của bot khi không nhận ra ý định người dùng 40

Hình 3.8: Mẫu câu trả lời cho ý định người dùng hỏi lãi suất 41

Hình 3.9: Custom action xử lý slot money 41

Hình 3.10: Khung kịch bản chuyển tiền bằng thẻ 42

Hình 3.11: Học tương tác với bot 42

Hình 3.12 : Bảng mô tả số lần thử nghiệm với người dùng 43

Hình 3.13: Hình ma trận ước lượng nhầm lẫn xây dựng dữ liệu intent 43

Hình 3.14: Hình ước lượng độ chính xác tập dữ liệu trainning intent 44

Hình 3.15 : Hình ước lượng độ chính xác trích chọn thông tin 44

Hình 3.16: Hình ước lượng độ nhầm lẫn việc xây dựng câu trả lời của bot (action) 45

Hình 3.17 : Bảng mô tả đoạn hội thoại test với bot 50

Trang 10

MỞ ĐẦU

“Chatbot will fundamentally revolutionize how computing is experienced by

everybody”

CEO Microsoft - Satya Nadella

Chatbot nói riêng hay trợ lý ảo nói chung đang ngày càng thông minh hơn, hoàn thiện hơn Nó giúp chúng ta có những tương tác và trải nghiệm tốt hơn đối với các phần mềm

Chúng ta sẽ điểm qua một số thành tựu mà chatbot đã đạt được (thống kê trên infographic : the future of chatbots statistics & trends) [23]

 100000 : là số lượng chatbot trên Facebook Messenger tại thời điểm tháng

11/2018

 80% các doanh nghiệp muốn sử dụng chatbot vào năm 2020

 63% người dùng sẽ xem xét một tin nhắn online từ chatbot để kết nối với doanh

nghiệp hoặc nhãn hiệu

 59% số người đã từng sử dụng chatbot trên một app

 37.11% là số chatbot tăng trưởng trong suốt giai đoạn 2017-2021

 56% các công ty đa truyền thông và công nghệ sẽ chuyển qua sử dụng các công nghệ chăm sóc khách hàng tự động trong tương lai gần, 33% sẽ có kế hoạch chuyển sang dùng các robot sử dụng AI trước năm 2019

 75% là tỉ lệ thành công của việc bot tương tác với người dùng trong lĩnh vực y tế

và ngân hàng 90% là chỉ số mong đợi sau này

 30% là số chi phí giảm đi khi áp dụng chatbot vào lĩnh vực chăm sóc khách hàng

 8 tỷ USD là chi phí sẽ giảm khi áp dụng chatbot vào chăm sóc khách hàng đến

năm 2022 so với 20 triệu USD ở năm 2017

Vậy đâu là cơ sở để chatbot phát triển nhanh như vậy Chúng ta sẽ điểm qua một số các tác nhân chính:

Đầu tiên là do thời đại bùng nổ của tin nhắn và nó là cơ sở cho chatbot phát triển mạnh mẽ:

 28,2 tỷ tin nhắn di động đã được gửi trong năm 2017, gấp đôi so với năm 2012 [25]

 98% tin nhắn sẽ được đọc, với email tỷ lệ là 22%

 Tỷ lệ gỡ bỏ các ứng dụng nhắn tin chỉ bằng một nửa so với các ứng dụng khác

Trang 11

 6 trong top các ứng dụng được cài đặt là ứng dụng nhắn tin: WhatsApp, Facebook

messenger, Wechat, Viber, Line, KakaoTalk, Telegram [24]

Bên cạnh đó cách mạng công nghệ 4.0 đã kéo theo nhiều thay đổi đáng kể đối với nhiều lĩnh vực trong cuộc sống, đặc biệt nó thúc đẩy sự tiến bộ lớn trong lĩnh vực hiểu

và xử lý ngôn ngữ tư nhiên (NLU và NLP) Hàng loạt các thuật toán ra đời bắt đầu từ năm 2013 đã giúp chatbot ngày càng thông minh và chính xác hơn

Và cuối cùng là sự đầu tư nghiên cứu mạnh mẽ vào chatbot của các ông lớn trong lĩnh vực công nghệ đã tạo ra hệ sinh thái, platform trên nền tảng các chatbot giúp người dùng có thể tiếp cận một cách dễ dàng Đây chính là tiền đề thúc đẩy cho sự phát triển mạnh mẽ của chatbot trong những năm gần đây

Kỷ nguyên của Chatbot mới chỉ đang bắt đầu nhưng chúng ta đã được hưởng không ít lợi ích từ việc ứng dụng chúng Với công nghệ ngày một phát triển, đặc biệt

là với những tiến bộ của trí tuệ nhân tạo trong vài năm trở lại đây, chúng ta hoàn toàn

có thể kỳ vọng ở một tương lai nơi chatbot không chỉ giúp con người giải đáp mọi khía cạnh trong cuộc sống mà còn có thể thay con người đưa ra quyết định

1 Động lực nghiên cứu

Ở nước ta, việc giải đáp thắc mắc của bộ phận chăm sóc khách hàng qua tin nhắn trực tuyến đang được ưa chuộng Tuy nhiên, việc này còn thực hiện một cách thủ công

và gặp nhiều khó khăn như: tốn rất nhiều thời gian và chi phí chi trả cho nhân viên chỉ

để trả lời những câu hỏi đơn giản và giống nhau Chính vì vậy, nhu cầu cấp thiết là cần một hệ thống điều khiển thông minh, tự động để mang lại hiệu quả cao hơn và Chatbot

là một sự lựa chọn hoàn hảo

Hiện nay, các ứng dụng trò chuyện trực tuyến được mọi người sử dụng đang bắt đầu trở thành một phương tiện ưa thích để giao tiếp với các doanh nghiệp và giải quyết thắc mắc của khách hàng Ứng dụng nhắn tin nhanh đã trở thành điểm đến hàng đầu cho mọi thương hiệu nhằm tiếp cận người tiêu dùng, bởi vậy không có gì đáng ngạc nhiên khi Chatbot ngày càng trở nên phổ biến

Với một khối lượng lớn câu hỏi mà chúng ta phải giải quyết mỗi ngày như: khách hàng hỏi về sản phẩm, dịch vụ, nhân viên hỏi về các quy chế công ty, con cái hỏi về những sự việc chúng đang tò mò…ngoài ra chatbot còn được áp dụng trong rất nhiều lĩnh vực:

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 tương tác với chúng hàng giờ, nó

Trang 12

trả lời câu hỏi của bạn theo cách nhân văn nhất và hiểu được tâm trạng của bạn với ngôn ngữ bạn đang sử dụng

Thời tiết: Poncho là ChatBot đượ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 chúng còn gửi cảnh báo khi thời tiết xấu với sự chấp thuận của người dùng

Từ thiện: Để nâng cao nhận thức của con người về cuộc khủng hoảng nước ở

Ethiopia (dưới 50% dân số được sử dụng nước sạch), tổ chức từ thiện: Nước hợp tác với Lokai để tạo ra Yeshi Yeshi là một ChatBot đại diện các cô gái trẻ ở Ethiopia, người phải đi bộ 2,5 giờ mỗi ngày để tìm nước sạch Khi ai đó bắt đầu trò chuyện với bot, Yeshi sẽ gửi hình ảnh, video, clip âm thanh và bản đồ để tạo ra trải nghiệm cảm xúc sâu sắc giúp người dùng khám phá ra thực tế khắc nghiệt của người Ethiopia như Yeshi

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 menu như: chọn vị trí chổ ngồi, thanh toán và được thông báo khi nào họ có thể bắt đầu lấy thức ă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ực Chúng có thể giúp khách hàng với các câu hỏi cơ bản và yêu cầu Chúng có thể được lập trình để trò chuyện với khách bằng các ngôn ngữ khác nhau, làm cho các khách hàng nói chuyện bằng ngôn ngữ địa phương của mình dễ dàng hơn

Y tế: ChatBot này sẽ hỏi về các triệu chứng, các thông số cơ thể và lịch sử y tế, sau

đó biên soạn một danh sách các nguyên nhân gây ra hầu hết các triệ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ệnh nhân điều trị các bệnh có thể được chữa khỏi mà không cần đến bác sĩ

Hàng không: bạn có thể nhận tài liệu chuyến bay của mình qua Messenger, bao

gồm xác nhận đặt vé, thông báo đăng ký, thẻ lên máy bay, và cập nhật trạng thái chuyến bay

2 Mục tiêu luận văn

Nghiên cứu các thành phần cấu tạo chatbot Tìm hiểu các kỹ thuật xử lý ngôn ngữ trong NLU, NLP như biểu diễn ngôn ngữ, phân loại ý định (intent classification hay intent detection), trích xuất thông tin (information extraction), quản lý hội thoại… trong việc xây dựng chatbot

Trang 13

Luận văn tập trung tìm cách giải quyết các bài toán mà chatbot ứng dụng trong

miền đóng (closed domain) và trả lời theo mô hình truy xuất thông tin

(retrieval-based) Mô hình truy xuất thông tin là mô hình trong đó, chatbot đưa ra những phản

hồi được chuẩn bị trước hoặc tuân theo những mô thức nhất định Các hệ thống

chatbot được triển khai trong thực tế phần lớn tuân theo mô hình truy xuất thông tin và

được áp dụng trong những miền ứng dụng nhất định

Với đề tài này thì luận văn sẽ tập trung xây dựng hệ thống chatbot hỗ trợ người

dùng trong lĩnh vực ngân hàng dựa vào framework Rasa và áp dụng những kiến thức

tìm hiểu về chatbot để có thể tùy chỉnh trên mã nguồn mở này Đối tượng hỗ trợ người

dùng chatbot cụ thể ở đây là khách hàng cá nhân sử dụng trong hệ thống ebanking

3 Cấu trúc luận văn

MỞ ĐẦU: Giới thiệu và đưa ra hướng nghiên cứu bài toán chatbot

CHƯƠNG I: Tổng quan hệ thống chatbot: Giới thiệu tổng quan hệ thống chatbot

Cấu tạo và nhiệm vụ các thành phần hệ thống chatbot

CHƯƠNG II: Một số kỹ thuật sử dụng trong chatbot: Hiểu và nắm được một số kỹ

thuật hay thuật toán cơ bản sử dụng trong chatbot để từ đó có thể điều chỉnh phù hợp

với ngôn ngữ tiếng việt, giúp chatbot xử lý thông minh hơn

CHƯƠNG III: Xây dựng chatbot lĩnh vực ngân hàng : Xây dựng ứng dụng chatbot

cho ngân hàng trên nền tảng mã nguồn mở Rasa Đưa ra những kết luận và đánh giá,

cải tiến hệ thống

KẾT LUẬN : Đưa ra những kết luận, đánh giá và định hướng nghiên cứu tiếp theo

PHỤ LỤC: Danh sách các đoạn hội thoại với bot được đính kèm ở phần thử nghiệm

Trang 14

CHƯƠNG 1 : TỔNG QUAN HỆ THỐNG CHATBOT

Chương này sẽ giới thiệu tổng quan về hệ thống chatbot, cấu trúc các thành phần và những vấn đề khi xây dựng hệ thống chatbot

Chatbot có thể được chia thành 2 loại:

- Hệ thống hướng mục tiêu trên một miền ứng dụng (Task-Oriented)

- Hệ thống không có định hướng mục tiêu (chit-chat)

Miền mở (Open Domain): Mô hình trả lời tự động trên miền mở cho phép người

dùng có thể tham gia trò chuyện với một chủ đề bất kỳ, không nhất thiết phải có một mục tiêu rõ ràng hay một ý định cụ thể nào Các cuộc trò chuyện trên mạng xã hội như Facebook, Twitter thường là miền mở, chúng có thể đi vào tất cả các chủ đề Số lượng các chủ đề thảo luận được đề cập đến là không giới hạn, do đó, tri thức yêu cầu được tạo ra để trả lời các câu đối thoại thuộc miền mở trở nên khó hơn Tuy nhiên, việc thu thập trích rút dữ liệu từ miền này khá phong phú và đơn giản

Miền đóng (Close Domain): Mô hình trả lời tự động thuộc miền đóng thường tập

trung vào trả lời các câu hỏi đối thoại liên quan đến một miền cụ thể, ví dụ như: Y tế, Giáo dục, Du lịch, Mua sắm,

Trong một miền đóng cụ thể, không gian các mẫu hỏi input và output là có giới hạn, bởi vì các hệ thống này đang cố gắng để đạt được một mục tiêu rất cụ thể Hệ thống hỗ trợ kỹ thuật (Technical Customer Support) hay tư vấn và hỗ trợ mua hàng (Shopping Assistants) là các ứng dụng thuộc miền đóng Các hệ thống này không thể đối thoại về “Chính trị” hay “Pháp luật”, chúng chỉ cần thực hiện các nhiệm vụ cụ thể một cách hiệu quả nhất có thể Chắc chắn, người dùng vẫn có thể hỏi đáp bất cứ gì, nhưng hệ thống không yêu cầu phải xử lý những trường hợp ngoại lệ này

Trang 15

Mỗi cách tiếp cận bài toán đều có hướng giải quyết khác nhau dẫn tới các kỹ thuật

sử dụng khác nhau Trong luận văn này, tôi sẽ tập trung vào giải quyết trường hợp

thứ nhất là bài toán hướng mục tiêu trên một miền ứng dụng đóng

1.2 Cấu trúc các thành phần hệ thống chatbot

Hình 1.1: Cấu trúc các thành phần cơ bản hệ thống chatbot [12]

Chatbot có 3 thành phần chính là hiểu ngôn ngữ tự nhiên (NLU), quản lý hội thoại

(DM), thành phần sinh ngôn ngữ (NLG) Các thành phần nhận dạng giọng nói

Speech Recognition (text to speech hay speech to text) là các thành phần tăng cường

Mỗi thành phần trong chatbot đều có vai trò riêng:

 NLU: bao gồm việc xử lý ngôn ngữ tự nhiên (NLP) có nhiệm vụ xác định

được ý định câu hỏi(intent classification) và trích chọn thông tin (slots filter)

 DM: Quản lý hội thoại có nhiệm vụ xác định được hành động (action) tiếp

theo dựa vào trạng thái hành động trước đó hay ngữ cảnh hội thoại Các ngữ

cảnh này phải được đối chiếu trong các kịch bản dựng sẵn (history) đã đào tạo

cho bot Thành phần này cũng đảm nhiệm việc lấy dữ liệu từ hệ thống khác

qua các API gọi trong action

 NLG: là thành phần sinh ngôn ngữ dựa vào chính sách (policy) và hành động

được xác định trong DM thông qua các tập hội thoại NGL có thể được sinh ra

Trang 16

câu trả lời dựa vào tập mẫu câu trả lời (pre-defined template) đã đào tạo cho

bot

Để rõ chi tiết luồng xử lý tin nhắn từ các thành phần chatbot ta xem mô hình 1.2:

Hình 1.2: Mô hình các thành phần xử lý trong chatbot [1]

1.3 Hiểu ngôn ngữ tự nhiên (NLU)

Đây có thể nói là thành phần quan trọng nhất của chatbot Chatbot có thông minh

hay không thì đây là thành phần quyết định Mục tiêu của thành phần này là trích xuất

ra 3 thành phần thông tin từ câu nói của người dùng:

 Đầu tiên là phân loại lĩnh vực (domain classification), nó có thể là lĩnh vực

ngân hàng, y tế hay bảo hiểm Nếu trong trường hợp chỉ có một lĩnh vực thì

không cần thiết cho bước phân loại này

 Tiếp đến là phân loại ý định (intent classification), ví dụ như xác định được ý

định tra cứu thông tin tài khoản hoặc ý định kiểm tra số dư

 Cuối cùng là bước trích xuất thông tin (slot fillter hay entity extraction) trong

câu hỏi người dùng Ví dụ ta phải trích chọn được thông tin số tháng trong câu

hỏi người dùng: “lãi xuất kỳ hạn 3 tháng là bao nhiêu” Từ việc trích xuất được

thông tin 3 tháng thì chatbot mới có cơ sở trả lời cho người dùng

Trang 17

NLU xử lý tin nhắn người dùng bằng một đường ống (pipeline) nơi mà cấu hình các

bước xử lý liên tiếp theo tuần tự :

Hình 1.3: Các bước xử lý chính trong pipeline của NLU [1]

Trong đường ống này thì bạn có thể tùy chỉnh các thành phần từ bước tiền xử lý dữ

liệu, mô hình hóa ngôn ngữ, các thuật toán dùng để tách từ và trích xuất thông tin thực

thể…

Để chi tiết các bước xử lý ta xem trong mô hình 1.4: Trong đó bước entity extraction

chính là bước slot filling ở hình 1.3

Hình 1.4: Các bước xử lý trong NLU [2]

Phân loại tên

miền (Domain

Classification)

Phân loại ý định (intent Classification)

Trích chọn thông tin (Entity Extraction)

“Lãi suất vay 12 tháng?” {“loan”:”vay”,“term”:”12 tháng”}

“Lãi suất vay 12 tháng?” {intent:”interest”}

Lãi suất vay

Trích xuất thông tin thực thể (entity extraction)

Nhận dạng tên thực thể (Name entity recognition)

Phân tích cú pháp (chunker)

Gán nhãn từ loại (Part of Speech Tagger)

Thuật toán tách từ (Tokenizer)

Phân loại ý định trong pipelined

Trích xuất thông tin trong pipelined

Trang 18

Để phân loại được ý định câu người dùng thì ta cần mô hình hóa ngôn ngữ tức là việc biểu diễn ngôn ngữ dưới dạng vector số học cho máy có thể hiểu được (vectorization) Phương pháp phổ biến nhất hiện tại là word embedding (nhúng từ) Tập nhúng từ là tên chung cho một tập hợp các mô hình ngôn ngữ và các phương pháp học đặc trưng trong xử lý ngôn ngữ tự nhiên (NLP), nơi các từ hoặc cụm từ từ vựng được ánh xạ tới vectơ số thực Về mặt khái niệm, nó liên quan đến việc nhúng toán học từ một không gian với một chiều cho mỗi từ vào một không gian vectơ liên tục với kích thước thấp hơn nhiều Một số phương pháp biểu diễn phổ biến như Word2Vec, GloVe hay mới hơn là FastText sẽ được giới thiệu trong phần sau

Sau khi mô hình hóa ngôn ngữ bao gồm dữ liệu đầu vào training cho bot thì việc xác định ý định người dùng từ câu hỏi người dùng dựa trên tập đã training là bước phân loại ý định (intent classification) hay phân loại văn bản Ở bước này ta có thể dùng một số kỹ thuật như: Naive Bayes, Decision Tree (Random Forest), Vector Support Machine (SVM), Convolution Neural Network (CNN), Recurrent Neural Network (RNN), Long Short-Term Memory (LSTM, Bi-LSTM) Hầu hết các chatbot hiện tại đều ứng dụng mô hình deep learning như RNN và LSTM để phân loại ý định người dùng Bài toán thách thức lớn nhất cho các chatbot ở bước này là xác định nhiều

ý định(multiple intents) trong một câu nói người dùng Ví dụ nếu bạn nói “xin chào, kiểm tra cho tôi số dư tài khoản” thì bot phải xác định được 2 ý định “chào hỏi” và

“kiểm tra số dư” trong câu nói người dùng Nếu bot có thể hiểu và trả lời được câu hỏi loại này sẽ giúp việc tương tác với bot trở nên tư nhiên hơn

Tiếp đến là việc trích xuất thông tin trong câu hội thoại người dùng Các thông tin cần trích xuất thường dưới dạng số, chuỗi hoặc thời gian và chúng phải được khai báo

và huấn luyện trước

Phân tách các từ (Tokenization hay word segmention): Tách từ là một quá trình xử

lý nhằm mục đích xác định ranh giới của các từ trong câu văn, cũng có thể hiểu đơn giản rằng tách từ là quá trình xác định các từ đơn, từ ghép… có trong câu Đối với xử

lý ngôn ngữ, để có thể xác định cấu trúc ngữ pháp của câu, xác định từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là phải xác định được đâu là từ trong câu Vấn đề này tưởng chừng đơn giản với con người nhưng đối với máy tính, đây là bài toán rất khó giải quyết Thông thường thì các ngôn ngữ phân tách các từ bởi khoảng trắng nhưng đối với ngôn ngữ tiếng việt thì có rất nhiều từ ghép và cụm từ Ví dụ từ ghép

“tài khoản” được tạo bởi 2 từ đơn “tài” và “khoản” Có một số thuật toán hỗ trợ giải quyết bài toán này như mô hình so khớp từ dài nhất (longest matching), so khớp cực

Trang 19

đại (Maximum Matching), Markov ẩn (Hidden Markov Models- HMM) hay mô hình CRF (conditinal random field)…

độ chính xác cũng như sự thông minh cho bot

Tiếp đến là bước trích xuất đặc trưng (feature extraction hay feature engineering)

từ những dữ liệu đã được làm sạch Trong mô hình học máy truyền thống (trước khi

mô hình học sâu được áp dụng rộng rãi), bước trích xuất đặc trưng ảnh hưởng lớn đến

độ chính xác của mô hình phân lớp Để trích xuất được những đặc trưng tốt, chúng ta cần phân tích dữ liệu khá tỉ mỉ và cần cả những tri thức chuyên gia trong từng miền ứng dụng cụ thể

Bước huấn luyện mô hình nhận đầu vào là các đặc trưng đã được trích xuất và áp dụng các thuật toán học máy để học ra một mô hình phân lớp Các mô hình phân lớp

có thể là các luật phân lớp (nếu sử dụng decision tree) hoặc là các vector trọng số

Trang 20

tương ứng với các đặc trưng được trích xuất (như trong các mô hình logistic regression, SVM, hay mạng Neural)

Sau khi có một mô hình phân lớp intent, chúng ta có thể sử dụng nó để phân lớp một câu hội thoại mới Câu hội thoại này cũng đi qua các bước tiền xử lý và trích xuất đặc trưng, sau đó mô hình phân lớp sẽ xác định “điểm số” cho từng intent trong tập các intent và đưa ra intent có điểm cao nhất

Để đưa ra hỗ trợ được chính xác, chatbot cần xác định được ý định (intent) đó của người dùng Việc xác định ý định của người dùng sẽ quyết định hội thoại tiếp theo giữa người và chatbot sẽ diễn ra như thế nào Vì thế, nếu xác định sai ý định người dùng, chatbot sẽ đưa ra những phản hồi không đúng, không hợp ngữ cảnh Khi đó, người dùng có thể thấy chán ghét và không quay lại sử dụng hệ thống Bài toán xác định ý định người dùng vì thế đóng vai trò rất quan trọng trong hệ thống chatbot Đối với miền ứng dụng đóng, chúng ta có thể giới hạn số lượng ý định của người dùng nằm trong một tập hữu hạn những ý định đã được định nghĩa sẵn, có liên quan đến những nghiệp vụ mà chatbot có thể hỗ trợ Với giới hạn này, bài toán xác định ý định người dùng có thể quy về bài toán phân lớp văn bản Với đầu vào là một câu giao tiếp của người dùng, hệ thống phân lớp sẽ xác định ý định tương ứng với câu đó trong tập các intent đã được định nghĩa trước

Để xây dựng một mô hình phân lớp intent, chúng ta cần một tập dữ liệu huấn luyện bao gồm các cách diễn đạt khác nhau cho mỗi intent Ví dụ, cùng một mục đích hỏi về

số dư tài khoản người dùng có thể dùng những cách diễn đạt sau:

 Thông tin tài khoản?

 Tra cứu tài khoản?

 Số dư tài khoản?

 Số tiền trong tài khoản?

Có thể nói, bước tạo dữ liệu huấn luyện cho bài toán phân lớp intent là một trong những công việc quan trọng nhất khi phát triển hệ thống chatbot và ảnh hưởng lớn tới chất lượng sản phẩm của hệ thống chatbot về sau Công việc này cũng đòi hỏi thời gian, công sức khá lớn của nhà phát triển chatbot

1.4 Quản lý hội thoại (DM)

Trong các phiên trao đổi dài (long conversation) giữa người và chatbot, chatbot sẽ cần ghi nhớ những thông tin về ngữ cảnh (context) hay quản lý các trạng thái hội thoại

Trang 21

(dialog state) Vấn đề quản lý hội thoại (dialoge management) khi đó là quan trọng để đảm bảo việc trao đổi giữa người và máy là thông suốt

Chức năng của thành phần quản lý hội thoại là 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), ngữ cảnh hội thoại (dialogue context),

và truyền đầu ra cho thành phần sinh ngôn ngữ (Natural Language Generation, viết tắt

là NLG)

Hình 1.6: Mô hình quản lý trạng thái và quyết định action trong hội thoại [2] Trạng thái hội thoại (dialog state) được lưu lại và dựa vào tập luật hội thoại (dialog policy) để quyết định hành động tiếp theo cho câu trả lời của bot trong một kịch bản hội thoại, hay hành động (action) chỉ phụ thuộc vào trạng thái (dialog state) trước của

Ví dụ module quản lý dialogue trong một chatbot phục vụ đặt vé máy bay cần biết khi nào người dùng đã cung cấp đủ thông tin cho việc đặt vé để tạo một ticket tới hệ thống hoặc khi nào cần phải xác nhận lại thông tin do người dùng đưa vào Hiện nay, các sản phẩm chatbot thường dùng mô hình máy trạng thái hữu hạn (Finite State Automata – FSA), mô hình Frame-based (Slot Filling), hoặc kết hợp hai mô hình này Một số hướng nghiên cứu mới có áp dụng mô hình ANN vào việc quản lý hội thoại giúp bot thông minh hơn, chi tiết xem mục 2.5

Trang 22

1.4.1 Mô hình máy trạng thái hữu hạn FSA

Hình 1.7: Quản lý hội thoại theo mô hình máy trạng thái hữu hạn FSA

Mô hình FSA quản lý hội thoại đơn giản nhất Ví dụ hệ thống chăm sóc khách hàng của một công ty viễn thông, phục vụ cho những khách hàng than phiền về vấn đề mạng chậm Nhiệm vụ của chatbot là hỏi tên khách hàng, số điện thoại, tên gói Internet khách hàng đang dùng, tốc độ Internet thực tế của khách hàng Hình vẽ minh hoạ một mô hình quản lý hội thoại cho chatbot chăm sóc khách hàng Các trạng thái của FSA tương ứng với các câu hỏi mà dialogue manager hỏi người dùng Các cung nối giữa các trạng thái tương ứng với các hành động của chatbot sẽ thực hiện Các hành động này phụ thuộc phản hồi của người dùng cho các câu hỏi Trong mô hình FSA, chatbot là phía định hướng người sử dụng trong cuộc hội thoại

Ưu điểm của mô hình FSA là đơn giản và chatbot sẽ định trước dạng câu trả lời mong muốn từ phía người dùng Tuy nhiên, mô hình FSA không thực sự phù hợp cho các hệ thống chatbot phức tạp hoặc khi người dùng đưa ra nhiều thông tin khác nhau trong cùng một câu hội thoại Trong ví dụ chatbot ở trên, khi người dùng đồng thời cung cấp cả tên và số điện thoại, nếu chatbot tiếp tục hỏi số điện thoại, người dùng có thể cảm thấy khó chịu

Trang 23

1.4.2 Mô hình Frame-based

Mô hình Frame-based (hoặc tên khác là Form-based) có thể giải quyết vấn đề mà

mô hình FSA gặp phải Mô hình Frame-based 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 mà dialogue manager hỏi người dùng Mô hình này cho phép người dùng điền thông tin vào nhiều slot khác nhau trong frame Hình vẽ là một ví dụ về một frame cho chatbot ở trên

Hình 1.8: Frame cho chatbot hỏi thông tin khách hàng Thành phần quản lý dialogue theo mô hình Frame-based sẽ đưa ra câu hỏi cho khách hàng, điền thông tin vào các slot dựa trên thông tin khách hàng cung cấp cho đến khi có đủ thông tin cần thiết Khi người dùng trả lời nhiều câu hỏi cùng lúc, hệ thống sẽ phải điền vào các slot tương ứng và ghi nhớ để không hỏi lại những câu hỏi

đã có câu trả lời

Trong các miền ứng dụng phức tạp, một cuộc hội thoại có thể có nhiều frame khác nhau Vấn đề đặt ra cho người phát triển chatbot khi đó là làm sao để biết khi nào cần chuyển đổi giữa các frame Cách tiếp cận thường dùng để quản lý việc chuyển điều khiển giữa các frame là định nghĩa các luật (production rule) Các luật này dựa trên một số các thành tố như câu hội thoại hoặc câu hỏi gần nhất mà người dùng đưa ra

Trang 24

1.5.1 Template-based NLG

Phương pháp ánh xạ câu trả lời này là dùng những câu mẫu trả lời của bot đã được định nghĩa từ trước để sinh câu trả lời

Hình 1.9: Phương pháp sinh ngôn ngữ dựa trên tập mẫu câu trả lời [1]

- Ƣu điểm: đơn giản, kiểm soát dễ dàng Phù hợp cho các bài toán miền đóng

- Nhƣợc điểm: tốn thời gian định nghĩa các luật, không mang tính tự nhiên trong

câu trả lời Đối với các hệ thống lớn thì khó kiểm soát các luật dẫn đến hệ thống cũng khó phát triển và duy trì

1.5.2 Plan-based NLG

Hình 1.10: Phương pháp sinh ngôn ngữ Plan-based [1]

- Ƣu điểm: Có thể mô hình hóa cấu trúc ngôn ngữ phức tạp

- Nhƣợc điểm: Thiết kế nặng nề, đòi hỏi phải rõ miền kiến thức

Trang 25

1.5.3 Class-based NLG

Hình 1.11: Phương pháp sinh ngôn ngữ class-based [1]

Phương pháp này dựa trên việc cho bot học những câu trả lời đầu vào đã được gán nhãn Ứng với các hành động (action) và thông tin(slot) từ quản lý hội thoại thì bot sẽ đưa ra câu trả lời gần nhất dựa trên tập dữ liệu trả lời được đào tạo trước đó

- Ƣu điểm: dễ dàng thực thi

- Nhƣợc điểm: phụ thuộc vào dữ liệu trả lời đã được gán nhãn đào tạo trước đó

Bên cạnh đó việc tính toán điểm số không hiệu quả cũng dân đến việc sinh câu

trả lời sai

Trang 26

CHƯƠNG 2 : MỘT SỐ KỸ THUẬT SỬ DỤNG TRONG CHATBOT

Chương này giới thiệu một số kiến thức nền tảng về mạng nơ ron nhân tạo, cách thức hoạt động của mạng nơ ron và một số các kỹ thuật được ứng dụng trong việc xử

lý ngôn ngữ tự nhiên nói riêng hay xây dựng chatbot nói chung

2.1 Kiến trúc mạng nơ ron nhân tạo

Mạng nơ ron nhân tạo (Artificial Neural Network – ANN) là một mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các Nơ-ron được gắn kết để xử lý thông tin ANN hoạt động giống như bộ não của con người, được học bởi kinh nghiệm (thông qua việc huấn luyện), có khả năng lưu giữ các tri thức và sử dụng các tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data)

Một mạng nơ-ron là một nhóm các nút nối với nhau, mô phỏng mạng nơ-ron thần kinh của não người Mạng nơ ron nhân tạo được thể hiện thông qua ba thành phần cơ bản: mô hình của nơ ron, cấu trúc và sự liên kết giữa các nơ ron Trong nhiều trường hợp, mạng nơ ron nhân tạo là một hệ thống thích ứng, tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chạy qua mạng trong quá trình học

Hình 12: Kiến trúc mạng nơ ron nhân tạo [15]

Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer, Hidden Layer và Output Layer

Trong đó, lớp ẩn (Hidden Layer) gồm các nơ-ron, nhận dữ liệu input từ các

Nơ-ron ở lớp (Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo Trong một mạng ANN có thể có nhiều Hidden Layer

Trang 27

Lợi thế lớn nhất của các mạng ANN là khả năng được sử dụng như một cơ chế xấp

xỉ hàm tùy ý mà “học” được từ các dữ liệu quan sát Tuy nhiên, sử dụng chúng không đơn giản như vậy, một số các đặc tính và kinh nghiệm khi thiết kế một mạng nơ-ron ANN

Phương pháp này là tính toán tỷ lệ chính xác dữ liệu đầu ra (output) từ dữ liệu đầu vào (input) bằng cách tính toán các trọng số cho mỗi kết nối (connection) từ các lần lặp lại trong khi “huấn luyện” dữ liệu cho Chatbot Mỗi bước “huấn luyện” dữ liệu cho Chatbot sẽ sửa đổi các trọng số dẫn đến dữ liệu output được xuất ra với độ chính xác cao

Chọn mô hình: Điều này phụ thuộc vào cách trình bày dữ liệu và các ứng dụng

Mô hình quá phức tạp có xu hướng dẫn đền những thách thức trong quá trình học

Cấu trúc và sự liên kết giữa các nơ-ron

Thuật toán học: Có hai vấn đề cần học đối với mỗi mạng ANN, đó là học tham

số của mô hình (parameter learning) và học cấu trúc (structure learning) Học tham số

là thay đổi trọng số của các liên kết giữa các nơ-ron trong một mạng, còn học cấu trúc

là việc điều chỉnh cấu trúc mạng bằng việc thay đổi số lớp ẩn, số nơ-ron mỗi lớp và cách liên kết giữa chúng Hai vấn đề này có thể được thực hiện đồng thời hoặc tách biệt Nếu các mô hình, hàm chi phí và thuật toán học được lựa chọn một cách thích hợp, thì mạng ANN sẽ cho kết quả có thể vô cùng mạnh mẽ và hiệu quả

Hình 13: Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo [15]

Inputs: Mỗi Input tương ứng với 1 đặc trưng của dữ liệu Ví dụ như trong ứng

dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay không thì mỗi input là một thuộc tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,…

Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như với bài

toán xem xét chấp nhận cho khách hàng vay tiền hay không thì output là yes hoặc no

Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng của

một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu vào đối với quá trình xử lý thông tin chuyển đổi dữ liệu từ Layer này sang layer khác Quá trình học

Trang 28

của ANN thực ra là quá trình điều chỉnh các trọng số Weight của các dữ liệu đầu vào

để có được kết quả mong muốn

Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input được

đưa vào mỗi Nơ-ron Hàm tổng của một Nơ-ron đối với n input được tính theo công thức sau:

Transfer Function (Hàm chuyển đổi): Hàm tổng của một nơ-ron cho biết khả

năng kích hoạt của nơ-ron đó còn gọi là kích hoạt bên trong Các nơ-ron này có thể sinh ra một output hoặc không trong mạng ANN, nói cách khác rằng có thể output của

1 Nơ-ron có thể được chuyển đến layer tiếp trong mạng Nơ-ron theo hoặc không Mối quan hệ giữa hàm tổng và kết quả output được thể hiện bằng hàm chuyển đổi

Việc lựa chọn hàm chuyển đổi có tác động lớn đến kết quả đầu ra của mạng ANN

Hàm chuyển đổi phi tuyến được sử dụng phổ biến trong mạng ANN là sigmoid hoặc

tanh

Trong đó, hàm tanh là phiên bản thay đổi tỉ lệ của sigmoid , tức là khoảng giá trị

đầu ra của hàm chuyển đổi thuộc khoảng [-1, 1] thay vì [0,1] của Sigmoid nên chúng còn gọi là hàm chuẩn hóa (Normalized Function)

Kết quả xử lý tại các nơ-ron (Output) đôi khi rất lớn, vì vậy hàm chuyển đổi được

sử dụng để xử lý output này trước khi chuyển đến layer tiếp theo Đôi khi thay vì sử dụng Transfer Function người ta sử dụng giá trị ngưỡng (Threshold value) để kiểm soát các output của các neuron tại một layer nào đó trước khi chuyển các output này đến các Layer tiếp theo Nếu output của một neuron nào đó nhỏ hơn Threshold thì nó

sẻ không được chuyển đến Layer tiếp theo

Mạng nơ-ron của chúng ta dự đoán dựa trên lan truyền thẳng (forward propagation)

là các phép nhân ma trận cùng với activation function để thu được kết quả đầu ra Nếu input x là vector 2 chiều thì ta có thể tính kết quả dự đoán 𝑦 bằng công thức :

Trang 29

Trong đó, 𝑧𝑖 là input của layer thứ 𝑖, 𝑎𝑖 là output của layer thứ 𝑖 sau khi áp dụng activation function 𝑊1, 𝑏1, 𝑊2, 𝑏2 là các tham số (parameters) cần tìm của mô hình mạng nơ-ron Huấn luyện để tìm các tham số cho mô hình tương đương với việc tìm các tham số 𝑊1, 𝑏1, 𝑊2, 𝑏2 sao cho hàm lỗi của mô hình đạt được là thấp nhất Ta gọi

hàm lỗi của mô hình là loss function Đối với softmax function, ta dùng crossentropy

loss (còn gọi là negative log likelihood) Nếu ta có N ví dụ dữ liệu huấn luyện, và C

nhóm phân lớp, khi đó hàm lỗi giữa giá trị dự đoán 𝑦 và 𝑦 được tính:

Ý nghĩa công thức trên nghĩa là: lấy tổng trên toàn bộ tập huấn luyện và cộng dồn vào hàm loss nếu kết quả phân lớp sai Độ dị biệt giữa hai giá trị 𝑦 và 𝑦 càng lớn thì

độ lỗi càng cao Mục tiêu của chúng ta là tối thiểu hóa hàm lỗi này Ta có thể sử dụng phương pháp gradient descent để tối tiểu hóa hàm lỗi Có hai loại gradient descent, một loại với fixed learning rate được gọi là batch gradient descent, loại còn lại có learning rate thay đổi theo quá trình huấn luyện được gọi là SGD (stochastic gradient descent) hay minibatch gradient descent

Gradient descent cần các gradient là các vector có được bằng cách lấy đạo hàm của loss function theo từng tham số

để tính các gradient

này, ta sử dụng thuật toán lan truyền ngược (backpropagation) Đây là cách hiệu

quả để tính gradient khởi điểm từ output layer

Áp dụng giải thuật lan truyền ngược ta có các đại lượng:

( )

2.2 Mạng nơ ron hồi quy RNN

Ý tưởng của RNN đó là thiết kế một Neural Network sao cho có khả năng xử lý

được thông tin dạng chuỗi (sequential information), ví dụ một câu là một chuỗi gồm

nhiều từ Recurrent có nghĩa là thực hiện lặp lại cùng một tác vụ cho mỗi thành phần

Trang 30

trong chuỗi Trong đó, kết quả đầu ra tại thời điể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 ở những thời điểm trước đó Nói cách khác, RNN là một mô

hình có trí nhớ (memory), có khả năng nhớ được thông tin đã tính toán trước đó

Không như các mô hình Neural Network truyền thống đó là thông tin đầu vào (input) hoàn toàn độc lập với thông tin đầu ra (output) Về lý thuyết, RNN có thể nhớ được thông tin của chuỗi có chiều dài bất kì, nhưng trong thực tế mô hình này chỉ nhớ được thông tin ở vài bước trước đó Về cơ bản một mạng RNN có dạng:

Hình 14: Mạng RNN [15]

Mô hình trên mô tả phép triển khai nội dung của một RNN Triển khai ở đây có thể hiểu đơn giản là ta vẽ ra một mạng nơ-ron chuỗi tuần tự Ví dụ ta có một câu gồm 5 chữ “Thông tin tài khoản”, thì mạng nơ-ron được triển khai sẽ gồm 4 tầng nơ-ron tương ứng với mỗi chữ một tầng Lúc đó việc tính toán bên trong RNN được thực hiện như sau:

xt : là đầu vào tại bước t Ví dụ, x1 là một vec-tơ one-hot tương ứng với từ thứ 2 của câu

st : là trạng thái ẩn tại t Nó chính là bộ nhớ của mạng st được tính toán dựa trên cả các trạng thái ẩn phía trước và đầu vào tại bước đó: st = f(Uxt+Wst−1). Hàm f thường là một hàm phi tuyến tính như tang hyperbolic (tanh) hay ReLu Để làm phép toán cho phần

tử ẩn đầu tiên ta cần khởi tạo thêm s−1, thường giá trị khởi tạo được gắn bằng 0

ot : là đầu ra tại bước t Ví dụ, ta muốn dự đoán từ tiếp theo có thể xuất hiện trong câu

thì ot chính là một vectơ xác xuất các từ trong danh sách từ vựng của ta: o t = softmax(Vs t) Trong vài năm qua, các nhà nghiên cứu đã phát triển nhiều loại mạng RNNs ngày càng tinh vi để giải quyết các mặt hạn chế của RNN Dưới đây, là một số phiên bản

mở rộng của RNN

Bidirectinal RNN (2 chiều) : dựa trên ý tưởng output tại thời điểm t không chỉ

phụ thuộc vào các thành phần trước đó mà còn phụ thuộc vào các thành phần trong

Trang 31

tương lai Ví dụ, để dự đoán một từ bị thiếu (missing word) trong chuỗi, ta cần quan sát các từ bên trái và bên phải xung quanh từ đó Mô hình này chỉ gồm hai RNNs nạp chồng lên nhau Trong đó, các hidden state được tính toán dựa trên cả hai thành phần bên trái và bên phải của mạng

Hình 15: Mạng RNN 2 chiều [15]

Deep RNN : tương tự như Bidirectional RNN, điểm khác biệt đó là mô hình này

gồm nhiều tầng Bidirectional RNN tại mỗi thời điểm Mô hình này sẽ cho ta khả năng thực hiện các tính toán nâng cao nhưng đòi hỏi tập huấn luyện phải đủ lớn

Hình 16: Mạng RNN nhiều tầng [15]

Long short-term memory network (LSTM) : mô hình này có cấu trúc tương tự

như RNNs nhưng có cách tính toán khác đối với các trạng thái ẩn Memory trong LSTMs được gọi là cells (hạt nhân) Ta có thể xem đây là một hộp đen nhận thông tin đầu vào gồm hidden state và giá trị Bên trong các hạt nhân này, chúng sẽ quyết định thông tin nào cần lưu lại và thông tin nào cần xóa đi, nhờ vậy mà mô hình này có thể lưu trữ được thông tin dài hạn

Trang 32

2.3 Mạng Long short Term Memory (LSTM)

2.3.1 Vấn đề phụ thuộc quá dài

Ý tưởng ban đầu của RNN là kết nối những thông tin trước đó nhằm hỗ trợ cho các

xử lý hiện tại Nhưng đôi khi, chỉ cần dựa vào một số thông tin gần nhất để thực hiện tác vụ hiện tại Ví dụ, trong mô hình hóa ngôn ngữ, chúng ta cố gắng dự đoán từ tiếp theo dựa vào các từ trước đó Nếu chúng ta dự đoán từ cuối cùng trong câu “đám mây bay trên bầu trời”, thì chúng ta không cần truy tìm quá nhiều từ trước đó, ta có thể đoán ngay từ tiếp theo sẽ là “bầu trời” Trong trường hợp này, khoảng cách tới thông tin liên quan được rút ngắn lại, nạng RNN có thể học và sử dụng các thông tin quá khứ

Hình 18: RNN phụ thuộc long-term [17]

Trang 33

Về lý thuyết, RNN hoàn toàn có khả năng xử lý “long-term dependencies”, nghĩa

là thông tin hiện tại có được là nhờ vào chuỗi thông tin trước đó Đáng buồn là, trong thực tế, RNN dường như không có khả năng này Vấn đề này đã được Hochreiter (1991) [German] and Bengio, và công sự đưa ra như một thách thức cho mô hình RNN

2.3.2 Kiến trúc mạng LSTM

Long Short Term Memory network (LSTM) là trường hợp đặc biệt của RNN, có khả năng học long-term dependencies Mô hình này được giới thiệu bởi Hochreiter & Schmidhuber (1997), và được cải tiến lại Sau đó, mô hình này dần trở nên phổ biến nhờ vào các công trình nghiên cứu gần đây Mô hình này có khả năng tương thích với nhiều bài toán nên được sử dụng rộng rãi ở các ngành liên quan

LSTM được thiết kế nhằm loại bỏ vấn đề phụ thuộc quá dài Ta quan sát lại mô

hình RNN bên dưới, các layer đều mắc nối với nhau thành các module neural network Trong RNN chuẩn, module repeating này có cấu trúc rất đơn giản chỉ gồm một lớp đơn giản tanh layer

Hình 19: Các mô-đun lặp của mạng RNN chứa một layer [17]

LSTM cũng có cấu trúc mắt xích tương tự, nhưng các module lặp có cấu trúc khác

hẳn Thay vì chỉ có một layer neural network, thì LSTM có tới bốn layer, tương tác với nhau theo một cấu trúc cụ thể

Hình 20 : Các mô-đun lặp của mạng LSTM chứa bốn layer [17]

Trang 34

Trong đó, các ký hiệu sử dụng trong mạng LSTM được giải nghĩa như sau:

 : là các lớp ẩn của mạng nơ-ron

 : toán tử Pointwise, biểu diễn các phép toán như cộng, nhân vector

 : vector chỉ đầu vào và đầu ra của một nút

 biểu thị phép nối các toán hạng

 : biểu thị cho sự sao chép từ vị trí này sang vị trí khác

Hình 21 : Tế bào trạng thái LSTM giống như một băng truyền [17]

LSTM có khả năng thêm hoặc bớt thông tin vào cell state, được quy định một cách cẩn thận bởi các cấu trúc gọi là cổng (gate) Các cổng này là một cách (tuỳ chọn) để định nghĩa thông tin băng qua Chúng được tạo bởi hàm sigmoid và một toán tử nhân pointwise

Ngày đăng: 15/06/2020, 23:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
2. Tom Bocklisch , 2018: “Conversational AI with Rasa NLU & Rasa Core” Sách, tạp chí
Tiêu đề: Conversational AI with Rasa NLU & Rasa Core
3. Hongshen Chen, Xiaorui Liu, Dawei Yin and Jiliang Tang, 11 Jan 2018: “A Survey on Dialogue Systems: Recent Advances and New Frontiers” Sách, tạp chí
Tiêu đề: A Survey on Dialogue Systems: Recent Advances and New Frontiers
4. Daniel Jurafsky & James H. Martin, 23 September 2018: “Dialog Systems and Chatbots” Sách, tạp chí
Tiêu đề: Dialog Systems and Chatbots
5. Daniel Jurafsky & James H. Martin, 23 September 2018: “Advanced Dialog Systems” Sách, tạp chí
Tiêu đề: Advanced Dialog Systems
6. Jason D. Williams, Kavosh Asadi and Geoffrey Zweig, 24 Apr 2017 : “Hybrid Code Networks: practical and efficient end-to-end dialog control with supervised and reinforcement learning” Sách, tạp chí
Tiêu đề: Hybrid Code Networks: practical and efficient end-to-end dialog control with supervised and reinforcement learning
7. Andrew Maas, Spring 2017 : “Dialogue System Introduction and Frame-Based Dialogue” Sách, tạp chí
Tiêu đề: Dialogue System Introduction and Frame-Based Dialogue
8. Peng Jin, Yue Zhang, Xingyuan Chen and Yunqing Xia: “Bag-of-Embeddings for Text Classification” Sách, tạp chí
Tiêu đề: Bag-of-Embeddings for Text Classification
9. Ledell Wu, Adam Fisch, Sumit Chopra, Keith Adams, Antoine Bordes and Jason Weston, 21 Nov 2017: “StarSpace: Embed All The Things!” Sách, tạp chí
Tiêu đề: StarSpace: Embed All The Things
10. Bing Liu and Ian Lane, 2 JUN 2018: “End-to-End Learning of Task-Oriented Dialogs” Sách, tạp chí
Tiêu đề: End-to-End Learning of Task-Oriented Dialogs
11. John A. Bullinaria, 2005 : “IAI : Semantic Networks and Frames” Sách, tạp chí
Tiêu đề: IAI : Semantic Networks and Frames
13. Hao Fang, 17 Apr 2018: “Dialog Management and System Evaluation” Sách, tạp chí
Tiêu đề: Dialog Management and System Evaluation
14. Jason Weston, “Tasks and Architectures for Language Understanding and Dialogue with memory” Sách, tạp chí
Tiêu đề: Tasks and Architectures for Language Understanding and Dialogue with memory
15. DENNY BRITZ, 2015, “Recurrent Neural Networks Tutorial” Sách, tạp chí
Tiêu đề: Recurrent Neural Networks Tutorial
16. SONVX, 2018, “Học biểu diễn ngôn ngữ cho máy tính” Sách, tạp chí
Tiêu đề: Học biểu diễn ngôn ngữ cho máy tính
17. Colah’s blog, August 27, 2015, “Understanding LSTM Networks” Sách, tạp chí
Tiêu đề: Understanding LSTM Networks
18. Van Deemter, Krahmer, Emiel; Theune, 1999 “Plan-based vs. template-based NLG” Sách, tạp chí
Tiêu đề: Plan-based vs. template-based NLG
19. Ondrej Plátek, Petr Belohlávek, Vojtech Hudecek, and Filip Jurcícek, 2016 “Recurrent Neural Networks for Dialogue State Tracking” Sách, tạp chí
Tiêu đề: Recurrent Neural Networks for Dialogue State Tracking
20. Matthew Henderson, Blaise Thomson and Steve Young, 2014 “Word-Based Dialog State Tracking with Recurrent Neural Networks” Sách, tạp chí
Tiêu đề: Word-Based Dialog State Tracking with Recurrent Neural Networks
21. Victor Zhong, Caiming Xiong, Richard Socher, 2018 “Global-Locally Self- Attentive Dialogue State Tracker” Sách, tạp chí
Tiêu đề: Global-Locally Self-Attentive Dialogue State Tracker
22. Pei-Hao Su, Nikola Mrksic, Inigo Casanueva, Ivan Vulic, 2018 “Deep Learning for Conversational AI” Sách, tạp chí
Tiêu đề: Deep Learning for Conversational AI

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w