65
ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI : XÂY DỰNG ỨNG DỤNG CHAT TỰ ĐỘNG VỚI DEEP LEARNING Giảng viên hướng dẫn: ThS. LÊ SONG TOÀN Sinh viên thực hiện: 1. Nguyễn Quốc Cường 17IT130 2. Nguyễn Thị Ngà 17CE029

MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

ĐẠI HỌC ĐÀ NẴNGĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

VIỆT - HÀN

BÁO CÁO ĐỒ ÁN CƠ SỞ 5

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHAT TỰ ĐỘNG VỚI DEEP LEARNING

Page 2: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Sinh viên thực hiện:

1. Nguyễn Quốc Cường 17IT130

2. Nguyễn Thị Ngà 17CE029

ĐẠI HỌC ĐÀ NẴNG

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

VIỆT - HÀN

BÁO CÁO ĐỒ ÁN CƠ SỞ 5

Trang 2

ĐÀ NẴNG, THÁNG 08 NĂM 2020

Page 3: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHAT TỰ ĐỘNG VỚI DEEP

LEARNING

Đà Nẵng, tháng 08 năm 2020

Trang 3

Page 4: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

MỞ ĐẦU

Trong những năm gần đây, cùng với sự phát triển của nhân loại thì khoa học

công nghệ cũng có những bước tiến vượt trội, điển hình là ngành công nghiệp 4.0. Với

những sự phát triển vượt bậc của công nghệ việc triển khai công nghệ vào đời sống

mỗi người cũng ngày càng hoàn thiện. Điển hình là việc sự dụng trí thông minh nhân

tạo nhằm thay thế những công cụ truyền thống giúp cải thiện cuộc sống hơn.

Trong nhiều năm trở lại đây, với nhu cầu về hội nhập ngày càng cao giữa các

quốc gia cả về kinh tế lẫn văn hóa, khiến nhu cầu về giao tiếp ngày càng tăng cao.

Nhưng đối với nhiều người không có thời gian để gặp bạn bè, người khó bắt chuyện, ít

nói thì việc nâng cao trong giao tiếp diễn ra khá khó khăn. Chính vì vậy cần có những

phần mềm, công cụ để hỗ trợ việc giao tiếp bất cứ đâu hay bất cứ thời gian nào.

Nhờ sự tiên tiến của khoa học công nghệ và sự vượt trội từ trí thông minh nhân

tạo, để tạo ra phần mềm hay công cụ tương tác giữa người và máy thì một trong những

ứng dụng dựa trên nền tảng trí tuệ nhân tạo phổ biến hiện nay có thể kể đến là ứng

dụng dựa trên Chatbot. Có thể nói Chatbot là một hình thức thô sơ của trí tuệ nhân tạo,

là một chương trình được tạo ra từ máy tính, tiến hành cuộc trò chuyện thông qua các

phương thức như văn bản, hình ảnh, âm thanh,…

Hiện nay có khá nhiều chatbot hoặc sự nâng cấp của chatbot là trợ lý ảo có trên

thị trường hiện nay do các ông lớn trong ngành công nghệ tạo ra. Bên cạnh họ cũng

cung cấp nhiều tư liệu về nó. Điều đó giúp ta có thể tiếp cận việc xây dựng một

chatbot trở nên đơn giản hơn.

Page 5: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

LỜI CẢM ƠN

Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡ và hướng dẫn rất tận tình của các thầy cô thuộc Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt Hàn – Đại Học Đà Nẵng. Em xin cảm ơn các thầy cô thuộc bộ môn chuyên ngành đã cung cấp cho chúng em các thông tin, kiến thức vô cùng quý báu và cần thiết trong suốt thời gian quá để em có thể thực hiện và hoàn thành đồ án của mình. Đặc biệt em xin chân thành cảm ơn thầy Lê Song Toàn, người đã trực tiếp hướng dẫn chúng em trong thời gian thực hiện đồ án này.

Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thông tin đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúp chúng tôi trong quá trình nghiên cứu và thực hiện đề tài.

Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thực tiễn nên đề tài không tránh khỏi những sai sót. Em rất mong nhận được sự thông cảm của quý thầy cô và mong đón nhận những góp ý của thầy cô và các bạn.

Em xin chân thành cảm ơn!

Page 6: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Page 7: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

NHẬN XÉT(Của giảng viên hướng dẫn)

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

Đà Nẵng, ngày ….. tháng ….. năm 20…..

Giảng viên hướng dẫn

ThS.Lê Song Toàn

Page 8: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

MỤC LỤC

Chương 1:.......................................................................................................................1TỔNG QUAN VỀ HỆ THỐNG CHATBOT..............................................................1

1.1Chatbot là gì ?.......................................................................................................1

1.2Cấu trúc các thành phần của Chatbot:..............................................................21.3 Hiêu ngon ngư tự nhiên (NLU):..........................................................................2

1.3.1 Xác định ý định người dùng............................................................................5

1.4 Quản ly họi thoai (DM)........................................................................................61.4.2 Mô hình Frame-based......................................................................................8

1.5 Thành phần sinh ngon ngư (NLG).....................................................................91.5.1 Template-based NLG......................................................................................9

1.5.2 Plan-based NLG............................................................................................10

1.5.3 Class-based NLG...........................................................................................11

Chương 2:.....................................................................................................................12CƠ SỞ LÝ THUYẾT..................................................................................................12

2.1 Kiên trúc mang nơ ron nhan tao......................................................................12

2.2 Mang nơ ron hôi quy RNN................................................................................16

2.3 Long Short-Term Memory:..............................................................................18

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

2.3.2 Cấu trúc mạng................................................................................................19

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

2.4 Giới thiệu về mo hình Sequence:......................................................................23

2.5 Seq2Seq Model:..................................................................................................23

2.6 Beam Search – Thuật toán tìm kiêm hỗ trợ Seq2Seq:...................................25

2.7 Word embeddings..............................................................................................27

2.7.1 Word2vec......................................................................................................28

2.7.2 Glove.............................................................................................................29

Chương 3:.....................................................................................................................31XÂY DỰNG ỨNG DỤNG CHATBOT.....................................................................31

3.1 Kiên trúc ứng dụng............................................................................................31

3.2 Quá trình xay dựng............................................................................................31

3.2.1 Tiền xử lý dữ liệu:.........................................................................................31

Page 9: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

3.2.2 Xây dựng mô hình Seq2Seq..........................................................................32

3.2.3 Đào tạo mô hình Seq2Seq.............................................................................33

3.2.4 Thử nghiệm mô hình Seq2Seq......................................................................33

3.3 Kêt quả đat được................................................................................................34

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.................................................................361 Kêt luận:................................................................................................................36

2 Hướng phát triên:.................................................................................................36

DANH MỤC THAM KHẢO......................................................................................37

Page 10: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

DANH MỤC HÌNH

Hình 1 Chatbot...............................................................................................................1Hình 2 Các thành phần của Chatbot..............................................................................2Hình 3 Các bước xử lý chính của NLU..........................................................................3Hình 4 Các bước xử lý trong NLU.................................................................................4Hình 5 Mô hình các bước xác định ý định.....................................................................5Hình 6 Mô hình quản lý trạng thái và quyết định hành động trong hội thoại...............7Hình 7 Quản lý hội thoại theo mô hình FSA..................................................................8Hình 8 Khung chat bot hỏi thông tin khách hàng..........................................................9Hình 9 Phương pháp sinh ngôn ngữ dựa trên tập mẫu câu trả lời..............................10Hình 10 Phương pháp sinh ngôn ngữ dựa trên Plan based.........................................10Hình 11 Phương pháp sinh ngôn ngữ Class based......................................................11Hình 12 Cấu trúc mạng nơtron nhân tạo.....................................................................12Hình 13 Quá trình xử lý thông tin của mạng nơ ron nhân tạo.....................................13Hình 14 Mạng RNN......................................................................................................16Hình 15 Mạng RNN 2 chiều.........................................................................................17Hình 16 Mạng RNN nhiều tầng....................................................................................18Hình 17 RNN phụ thuộc long-term..............................................................................18Hình 18 Các module lặp của mạng RNN.....................................................................19Hình 19 Các module lặp của mạng LSTM chứa 4 lớp.................................................19Hình 20 Tế bào trạng thái (Cell state) LSTM..............................................................20Hình 21 Cổng trạng thái LSTM....................................................................................20Hình 22 LSTM focus f...................................................................................................21Hình 23 LSTM focus I..................................................................................................21Hình 24 LSTM focus c..................................................................................................22Hình 25 LSTM focus 0..................................................................................................22Hình 26 Thành phần của LSTM...................................................................................24Hình 27 LSTM Encoder................................................................................................24Hình 28 LSTM Decoder...............................................................................................25Hình 29 RNN/LSTM lồng nhau....................................................................................25Hình 30 Cây xác suất...................................................................................................27Hình 31 Mô hình từ nhúng...........................................................................................28Hình 32 Mô hình CBOW và Skip-Ngram.....................................................................29Hình 33 Kiến trúc của ứng dụng chatbot.....................................................................31Hình 34 Quá trình huấn luyện......................................................................................34Hình 35 Tương tác trò chuyện với chatbot..................................................................34Hình 36 Trực quan từ nhúng với TensorBoard............................................................35Hình 37 Giao diện web.................................................................................................35

Page 11: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

DANH MỤC CỤM TỪ VIẾT TẮT

STT Cụm từ Viêt tắt

1 Natural Language Processing NLP2

Artificial IntelligenceAI

3Artificial Nerual Network

ANN

4Continuous Bag of Words CBOW

5Convolution Neural Network

CNN

6Conditional Random Fields

CRF

7Dialogue Management

DM

8Deep Neural Networks

DNN

9Dialogue State Tracking

DST

10Finite State Automata

FSA

11Finite State Machine

FSM

12Long short-term memory LSTM

13Natural Language Generation NLG

14Natural Language Understanding

NLU

15Machine Learning

ML

16Part Of Speech POS

17Recurrent Neural Network

RNN

18Support Vector Machine

SVM

Page 12: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Chương 1:

TỔNG QUAN VỀ HỆ THỐNG CHATBOT

1.1 Chatbot là gì ?

Chatbot là một ứng dụng phần mềm dùng để quản lý một hệ thống thảo luận trực tuyến bằng văn bản hoặc văn bản chuyển thành giọng nói, thay vì cung cấp các thảo luận trực tiếp với người dùng có thật.

Hình 1 Chatbot

Hiện nay chatbot được dùng trong nhiều lĩnh vực như tư vấn, tiếp thị,… giúp tăng tính hiệu quả trong mỗi ngành được sử dụng. Ngoài ra, trong lĩnh vực học máy thì chatbot được hiểu là Q & A System (Question and Answering System).Hiện tai có hai loai chatbot:

- Chatbot dựa theo kịch bản có sẵn: Kiểu chatbot này thường được dùng với các thiết đặt có sẵn. Người sử dụng chỉ cần chọn các lựa chọn đã cài đặt trên chatbot. Đối với những loại câu hỏi khó hơn thì sẽ chuyển sang cho con người để giải quyết. Độ linh động không cao. Các nền tảng hiện tại hỗ trợ chatbot kiểu này là: Facebook Messenger, Slack, Zalo, Telegram,…

- Chatbot sử dụng Machine Learning: Đối với kiểu này chatbot sẽ xử lý ngôn ngữ tự nhiên (Natural Language Processing) kết hợp sử dụng mạng neutron để đào tạo và cho ra kết quả hợp lý nhất có thể. Những công việc cần làm để tạo ra chatbot bao gồm: o Phân loại câu hỏio Trích xuất câu trả lời (Dựa trên các tài liệu hoặc bộ dữ liệu mẫu (dataset)

liên quan)o Trích xuất câu trả lời

Trang 1

Page 13: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

o Trong những công việc trên thì việc phân loại câu hỏi là công việc khó khăn và vất vả nhất. Vì vậy, đi đôi với những yêu cầu trên là khả năng hỏi và trả lời một cách linh động và chính xác.

1.2 Cấu trúc các thành phần của Chatbot:

Hình 2 Các thành phần của Chatbot

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 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.

Trang 2

Page 14: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

1.3 Hiêu ngon 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 suất ky 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.

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 3 Các bước xử lý chính của NLU

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ể...

Trang 3

Page 15: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 4 Các bước xử lý trong NLU

Để phân loại được ý định câu của 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ố ky 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.

Trang 4

Page 16: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

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ừ ghep... 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ừ ghep và cụm từ. Ví dụ từ ghep “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 đại (Maximum Matching), Markov ân (Hidden Markov Models- HMM) hay mô hình CRF (conditinal random field)...

1.3.1 Xác định y định người dung

Hình 5 Mô hình các bước xác định ý định

Hệ thống phân lớp ý định người dùng có một số bước cơ bản:

Tiền xử lý dữ liệu Trích xuất đặc trưng

Huấn luyện mô hình

Phân lớp

Bước tiền xử lý dữ liệu chính là thao tác “làm sạch” dữ liệu như: loại bỏ các thông tin dư thừa, chuân hoá dữ liệu và chuyển các từ viết sai chính tả thành đúng chính tả, chuân hoá các từ viết tắt... Bước tiền xử lý dữ liệu có vai trò quan trọng trong hệ thống chatbot. Nếu dữ liệu đầu vào có xử lý ở bước này thì sẽ làm tăng khả năng năng độ 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

Trang 5

Page 17: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

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ố 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ợ 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 ghet 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 chào hỏi ta có thể dùng những cách diễn đạt sau:

Hello (Xin chào) Hi (Xin chào)

Hey (Chào)

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 ly họi thoai (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

Trang 6

Page 18: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

thoại (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 6 Mô hình quản lý trạng thái và quyết định hành động trong hội thoại

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 nó.

Ví dụ module quản lý dialogue trong một chatbot phục vụ đặt ve xem phim cần biết khi nào người dùng đã cung cấp đủ thông tin cho việc đặt ve để 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.

1.4.1 Mo hình máy trang thái hưu han FSA

Trang 7

Page 19: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 7 Quản lý hội thoại theo mô hình FSA

Mô hình FSA quản lý hội thoại đơn giản nhất. Ví dụ hệ thống đặt ve máy bay, đặt ve và gửi thông tin của khách hàng đã được cung cấp từ trước. Nhiệm vụ của chatbot là hỏi thời gian và địa điểm sẽ đi. Ảnh trên minh hoạ về một mô hình quản lý hội thoại cho chatbot đặt ve máy bay. 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.

Uu đ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ả thời gian và địa điểm trong câu đầu tiên, chatbot sẽ hỏi tiếp câu tiếp theo, điều đó khiến người dùng có thể cảm thấy khó chịu.

1.4.2 Mo 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 phep người dùng điền thông tin vào nhiều slot khác nhau trong frame. Bảng dưới là một ví dụ về một frame cho chatbot ở trên.

Trang 8

Page 20: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 8 Khung chat bot 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.

1.5 Thành phần sinh ngon ngư (NLG)

NLG là thành phần sinh câu trả lời của chatbot. Nó dựa vào việc ánh xạ các hành động của quản lý hội thoại vào ngôn ngữ tự nhiên để trả lời người dùng.

Có 4 phương pháp ánh xạ hay dùng là: Template-Base, Plan-based, Class-base, RNN-base

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

Trang 9

Page 21: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

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

Ư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 10 Phương pháp sinh ngôn ngữ dựa trên Plan based

Ư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 ro miền kiến thức

Trang 10

Page 22: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

1.5.3 Class-based NLG

Hình 11 Phương pháp sinh ngôn ngữ Class based

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 11

Page 23: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Chương 2:

CƠ SỞ LÝ THUYẾT

2.1 Kiên trúc mang Nơ-ron nhan tao

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 Cấu trúc mạng nơtron nhân tạo

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.

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

Trang 12

Page 24: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵ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 ty 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.

Chon mo 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 hoc: 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ạng nơ ron nhân tạo

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 xet 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 xet chấp nhận cho khách hàng vay tiền hay không thì output là yes hoặc no.

Connection Weights (Trong 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

Trang 13

Page 25: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

học 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 một nơ-ron có thể được chuyển đến layer tiếp theo trong mạng nơ-ron 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 nơ-ron 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 nơ-ron 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 phep 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 y^ bằng công thức:

z1 = xW1 + b

Trang 14

Page 26: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

a1 = tanh(z1)

z2 = a1W2 + b2

a2 = y^ = softmax(z2)

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:

Y 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 thiể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.

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

Trang 15

Page 27: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

2.2 Mang nơ ron hôi quy RNN

Y tưởng tiếp cận chính của mạng RNN chính là sử dụng các thông tin từ các dữ liệu trước đó để dự đoán tại bước tiếp theo.

Ví dụ với câu “Con người thường ăn ___ để sống” thì 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 đó, ví dụ như “Con người”, “ăn”, “sống” thì từ còn thiếu ở đây sẽ liên quan đến thực phâm, vậy nó có thể chọn từ “cơm” chăng hạn.

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

Trang 16

Page 28: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Mô hình trên mô tả phep 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 3 chữ “How are you?”, thì mạng nơ-ron được triển khai gồm 3 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ụ x0 ở câu trên sẽ là từ How trong câu.

st : là trạng thái ân tại t. Để có thể ghi nhớ lại những thông tin trước đó, nó sẽ được cấp một bộ nhớ s. Việc tính toán s được dựa trên dữ liệu đầu vào và bộ nhớ st-1 trước đó :

Hàm f thường là một hàm phi tuyến tính như hàm tanH hay ReLu.

ot: là đầu ra tại bước t. Kết quả đầu ra thu được sẽ được tính toán dựa trên trạng thái bộ nhớ s hiện tại :

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 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

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.

Trang 17

Page 29: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 16 Mạng RNN nhiều tầng

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.

2.3 Long Short-Term Memory:

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

Hình 17 RNN phụ thuộc long-term

Y 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. Giả sử ở đây có một câu:

Tôi sinh ra và lớn lên ở Việt Nam…… Tôi nói rất tốt tiếng Việt

Vấn đề bắt đầu xuất hiện, để có thể dự đoán được từ “loại ngôn ngữ” ở đây, RNN cần quay ngược và tìm kiếm thông tin “Việt Nam” để có thể trả lời được. Tuy nhiên lúc này, khoảng cách đã trở nên quá xa và RNN trở nên không thể nhớ được những gì ở vị trí xa nữa.

Trang 18

Page 30: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

LSTM được thiết kế để giải quyết vấn đề nêu trên, nó có khả năng ghi nhớ được thông tin ở xa nhờ có các tầng cổng quên, cổng vào, cổng ra.

2.3.2 Cấu trúc mang

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 18 Các module lặp của mạng RNN

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 19 Các module lặp của mạng LSTM chứa 4 lớp

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 phep toán như cộng, nhân vector

Trang 19

Page 31: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

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

: biểu thị phep nối các toán hạng

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

2.3.3 Phan tich mo hình LSTM

Mấu chốt của LSTM là cell state (tế bào trạng thái), đường kẻ ngang chạy dọc ở trên của sơ đồ hình vẽ. Cell state giống như băng chuyền. Nó chạy xuyên thăng toàn bộ mắt xích, chỉ một vài tương tác nhỏ tuyến tính (minor linear interaction) được thực hiện. Điều này giúp cho thông tin ít bị thay đổi xuyên suốt quá trình lan truyền.

Hình 20 Tế bào trạng thái (Cell state) LSTM

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 (tuy 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.

Hình 21 Cổng trạng thái LSTM

Hàm kích hoạt Sigmoid có giá trị từ [0 – 1], mô tả độ lớn thông tin được phep truyền qua tại mỗi lớp mạng. Nếu ta thu được 0 điều này có nghĩa là “không cho bất ky cái gì đi qua”, ngược lại nếu thu được giá trị là 1 thì có nghĩa là “cho phep mọi thứ đi qua”. Một LSTM có ba cổng như vậy để bảo vệ và điều khiển cell state.

Trang 20

Page 32: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Quá trình hoat đọng của LSTM được thong qua các bước cơ bản sau:

Công quên - Forget Gate

Hình 22 LSTM focus f

Cổng đầu tiên của LSTM giúp nó quyết định thông tin nào sẽ được rút ra từ cell. Bằng việc sử dụng sigmoid layer sẽ đưa ra kết quả trong khoảng từ 0 đến 1. Điều này có nghĩa rằng nếu kết quả càng gần 0 thì có nghĩa là đừng nhớ gì và ngược lại nhớ hoàn toàn kết quả trạng thái phía trước. Đầu vào của cổng là kết quả đầu ra trước đó ht-1 và dữ liệu vào xt

Công vào - Input Gate

Hình 23 LSTM focus I

Cổng tiếp theo của LSTM giúp nó quyết định thông tin nào sẽ được lưu trữ vào trong cell. Việc này được thực hiện nhờ 2 phần chính.

- Input gate layer: Dùng hàm sigmoid để quyết định thông tin nào chúng ta sẽ cập nhật, thêm mới.

- Cell candidate: Dùng hàm tanh để quyết định xem sẽ cập nhật như thế nào, bao nhiêu thông tin.

Sau khi đã tính toán, việc tiếp theo cần làm là cập nhật giá trị của cell – CTrang 21

Page 33: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 24 LSTM focus c Công ra - Output gate

Cuối cùng, LSTM tính toán xem kết quả đầu ra là gì. Kết quả sẽ được tính toán dựa trên trạng thái tế bào đã được lọc.

Hình 25 LSTM focus 0

Đầu tiên, tính toán để xem phần nào của tế bào được tính toán để đưa ra kết quả bằng việc sử dụng hàm Sigmoid giống ở Input gate layer. Sau đó nhân với tín hiệu đã đưa qua hàm tanh của cell để trả về vector đầu ra ht.

LSTM with Keras

Hiện tại để việc triển khai LSTM trở nên thuận tiện, Keras cung cấp cho ta layer LSTM để có thể triển khai mô hình giải quyết các bài toán NLP nhanh chóng.

Mọt sô param cơ bản:

o units: Số chiều của output - Chính là độ lớn của vector ht đầu ra, gần giống với lớp fully-connected keras.layers.Dense gần cuối của CNN.

o activation: Hàm kích hoạt sử dụng ở cell candidate layer và cổng ra sử dụng để tính toán đầu ra từ giá trị của cell. Như ở trong mô hình cơ bản thì mặc định của nó là hàm Tanh.

Trang 22

Page 34: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

o recurrent_activation: Hàm kích hoạt ở các cổng quên, vào, ra - ở đây mặc định là hàm sigmoid

o return_sequences: Boolean - Quyết định xem sẽ trả về đầu ra cuối cùng của mạng hoặc tất cả các đầu ra.

o unroll: Boolean - Nếu True thì mạng sẽ không duỗi, vòng lặp sẽ được sử dụng để tính toán các giá trị, Unroll có thể tăng tốc độ xử lí của RNN tuy nhiên sẽ chiếm dụng bộ nhớ lớn, nên option này chỉ phù hợp với các dữ liệu ngắn.

2.4 Giới thiệu về mo hình Sequence:

Sequence Model - Mô hình tuần tự là một trong những mô hình được dùng để xử lí những bài toán mà dữ liệu mang tính tuần tự, liên tục như:

- Speech Recognition (Nhận dang giong nói): Từ dữ liệu âm thanh đầu vào, đưa ra đoạn nội dung dưới dạng text

- Music generation (Sáng tác am nhac): Từ dữ liệu từ hàng trăm, ngàn bài hát, tự sinh ra giai điệu bài hát mới.

- Sentiment Classification (Phan loai y kiên): Phân loại ý kiến, cảm nghĩ từ nội dung bình luận, câu từ, lời nói

- Machine translation (Dịch máy): Tự động dịch nội dung từ ngôn ngữ này sang ngôn ngữ khác với ngữ cảnh chính xác.

Có thể nói, những dữ liệu mà mô hình này xử lí thường mang tính liên tục, tuần tự. Ví dụ như các dữ liệu về âm thanh, thông tin về tần số cũng như cường độ có phần liên quan tới nhau trong một khoảng thời gian nhất định.

2.5 Seq2Seq Model:

Kể từ khi các kiến trúc mạng RNN, LSTM ra đời, công việc dịch thuật đã bước một bước phát triển lớn. Khi nói tới translate thì không thể không nhắc tới ông lớn Google với sự đóng góp của Google Translate. Có thể nói Google Translate đang làm rất tốt công việc của mình trong mảng dịch máy. Một trong những mô hình rất quan trọng trong dịch máy đó là Sequence-To-Sequence ( Seq2Seq ) hiện nay đang được Google sử dụng cùng với kĩ thuật Attention

Cấu trúc mang

Trang 23

Page 35: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Thành phần chính của seq2seq bao gồm phần Encoder và Decoder. Encoder sẽ đảm nhiệm công việc trích xuất thông tin từ chuỗi đầu vào và cung cấp nó cho Decoder. Decoder sẽ thực hiện quá trình sinh chuỗi mới từ thông tin mà Encoder cung cấp.

Hình 26 Thành phần của LSTM EncoderNhư ta đã biết LSTM đã khắc phục được nhược điểm là lưu trữ thông tin của

những câu có độ dài lớn. Bằng việc xử lí thông tin và lưu trữ dữ liệu vào các cell state, LSTM có thể đem được thông tin của các từ trong câu đi một khoảng cách xa.

Hình 27 LSTM Encoder

Công việc chính của lớp Encoder là mã hoá các từ đầu vào bằng một chuỗi các lớp RNN, LSTM nhằm đưa ra vector state cuối cùng, vector này sẽ là thông tin đầu vào cho lớp Decoder. Tại sao lại sử dụng vector state cuối cùng mà không phải toàn bộ? Lấy ví dụ đơn giản trong mạng RNN: X = “How are you?” x1 = How x2 = are x3 = you. Công việc tính toán các state sẽ được thực hiện như sau: S1 = ƒ( S0 , x1 ) S2 = ƒ( S1 , x2 ) =ƒ (ƒ ( S0 , x1 ) , x2 ) S3 = ƒ( S2 , x3 ) =ƒ( ƒ( ƒ( S0 , x1 ) , x2 ) , x3 ) Có thể thấy S3 đã

Trang 24

Page 36: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

mang được thông tin của x1, x2, x3 theo, dễ thấy S3 có thể đại diện cho toàn bộ thông tin của câu How are you.

Decoder

Hình 28 LSTM Decoder

Khi sử dụng LSTM, đầu ra của Encoder sẽ là 2 vector trạng thái C (cell state) và h (hidden state). 2 vector này sẽ được sử dụng làm init_state cho lớp LSTM đầu tiên của Decoder. Decoder sẽ bắt tay vào tính toán và sinh chuỗi mới từ 2 vector trạng thái này cho tới khi gặp ký tự kết thúc câu. Các từ được sinh ra được dựa trên thông tin của từ được sinh ra trước đó. Cấu trúc Encoder-Decoder cũng có thể được triển khai bằng nhiều lớp RNN/LSTM lồng nhau.

Hình 29 RNN/LSTM lồng nhau

Trang 25

Page 37: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

2.6 Beam Search – Thuật toán tìm kiêm hỗ trợ Seq2Seq:

Trong mô hình cơ bản của Seq2Seq, tại bước Decode, vector đầu ra của LSTM sẽ được đưa qua một hàm Softmax để tìm kiếm từ có xác suất xuất hiện lớn nhất. Và từ này sẽ là vector đầu vào để dự đoán từ tiếp theo, thế nhưng liệu xác suất của từ cao nhất có luôn là tốt nhất?

Chon ra nhưng từ có xác suất lớn nhất

Thuật toán Beam Search có một tham số được gọi là beam width. Tại mỗi bước dự đoán, thay vì chọn ra từ có xác suất lớn nhất, ta sẽ chọn ra beam width kết quả có xác suất cao nhất. Ví dụ chúng ta cần dịch câu sau từ tiếng Pháp sang tiếng Anh:

X = Ricardo visite l’ Afrique en septembre

Chọn beam width = 3. Ta có 3 từ có xác suất lớn nhất tại step 1:

Y<1> = {in, jane, september}

Lúc này, xác suất mỗi từ xuất hiện sẽ là P(y<1> | X). Đưa lần lượt những

từ này vào step tiếp theo và tiếp tục chọn ra 3 từ có xác suất lớn nhất:

in => y<2> = {September,…}

jane => y<2> = {is, visits,…}

Chúng ta hoàn toàn có thể sử dụng 1 mức threshold để lựa chọn những từ có xác suất đạt chuân trong 3 từ kia, nếu không có từ nào thỏa mãn thì chúng ta có thể dừng việc xet nhánh từ đó. Xác suất của chuỗi từ lúc này sẽ là: P(y<2>

| X, y<1>).

Chon ra nhưng cau có xác suất lớn nhất

Cứ tiếp tục tính toán các bộ xác suất như vậy cho tới khi kí tự EOS - hết câu xuất hiện. Lúc này ta sẽ có một cây xác suất

Trang 26

Page 38: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 30 Cây xác suất

Công việc lúc này là nhân tất cả xác suất của cả chuỗi có điều kiện lại:

P = P(y<1> | X) P(y<2>

| X, y<1>)… P(y<Ty

> | X, y<1>…y<T

y-1>)

Câu kết quả sẽ là câu có xác suất lớn nhất. Vì xác suất thường là những số nhỏ hơn 1 nên nếu với câu có độ dài thì kết quả có thể sẽ rất nhỏ nên người ta thường dùng tới Logarit để thuận tiện cho việc tính toán.

Ta có thể thấy việc sử dụng Beam Search có khả năng tăng độ chính xác, tuy nhiên việc lưu lại thông tin xác suất của chuỗi dài có thể làm tăng thời gian training, tốn tài nguyên phần cứng.

Ta có thể thấy bằng việc sử dụng Deep Learning với chatbot ta có thể cải thiện được sự chính xác trong việc phản hồi của chatbot cho đúng với văn phong, ngữ pháp trong quá trình trả lời.

2.7 Word embeddings

Biểu diễn ngôn ngữ hay vector hóa từ là thành phần quan trọng để giúp máy tính có thể hiểu được ngôn ngữ từ dạng văn bản sang dạng số. Tức là đưa văn bản dạng text vào một không gian mới người ta gọi là embedding space( không gian từ nhúng).

Word embeddings (tập nhúng từ) là phương pháp ánh xạ mỗi từ vào một không gian số thực nhiều chiều nhưng có kích thước nhỏ hơn nhiều so với kích thước từ điển. Word embedding có 2 model nổi tiếng là word2vec và Glove.

Trang 27

Page 39: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

2.7.1 Word2vec

Word2vec được tạo ra năm 2013 bởi một ky sư ở google có tên là Tomas Mikolov. Về mặt toán học, thực chất Word2Vec là việc ánh xạ từ từ 1 tập các từ vocabulary sang 1 không gian vector, mỗi vector được biểu diễn bởi n số thực. Mỗi từ ứng với 1 vector cố định. Sau quá trình huấn luyện mô hình bằng thuật toán backprobagation, trọng số các vector của từng từ được cập nhật liên tục. Từ đó, ta có thể thực hiện tính toán được khoảng cách giữa các từ và những từ càng "gần" nhau thường là các từ hay xuất hiện cùng nhau trong văn cảnh, các từ đồng nghĩa.

Hình 31 Mô hình từ nhúng

Word2vec có 2 word vector là skip-gram và Continuous Bag-of-Words (Cbow).

Trang 28

Page 40: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 32 Mô hình CBOW và Skip-Ngram

CBoW: Dự đoán từ hiện tại dựa trên ngữ cảnh của các từ trước đó

Cho các từ ngữ cảnh Đoán xác suất của một từ đích

Skip-gram: Dự đoán các từ xung quanh khi cho bởi từ hiện tại.

Cho từ đích Đoán xác suất của các từ ngữ cảnh

2.7.2 Glove

GloVe là một trong những phương pháp mới để xây dựng vectơ từ (giới thiệu vào năm 2014), nó được xây dựng dựa trên ma trận đồng xảy ra (Co-occurrence Matrix). GloVe dựa trên ý tưởng tính tỉ lệ xác xuất:

Với P(k|i) là xác suất từ k xuất hiện trong ngữ cảnh của từ i, tương tự vậy với P(k|j).

Công thức tính của P(k|i):

Xik : là số lần xuất hiện của từ k trong ngữ cảnh của từ i (và ngược lại).

Xi : là số lần xuất hiện của từ i trong ngữ cảnh của toàn bộ các từ còn lại ngoại trừ i.

Y tưởng chính của GloVe được tính dựa trên độ tương tự ngữ nghĩa giữa hai từ i, j được xác định thông qua độ tương tự ngữ nghĩa giữa từ k với mỗi từ i, j, những từ k

Trang 29

Page 41: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

có tính xác định ngữ nghĩa tốt chính là những từ làm cho giá trị được tính từ công thức (1) nằm trong khoảng [0 ,1]

Ví dụ, nếu từ i là “table”, từ j là “cat” và từ k là “chair” thì công thức (1) sẽ cho giá trị tiệm cận đến 1 do “chair” có nghĩa gần hơn với “table” hơn là “cat”, ở trường hợp khác, nếu ta thay từ k là “ice cream” thì giá trị công thức (1) sẽ xấp xỉ bằng 0 do “ice cream” hầu như chăng lên quan gì tới “table” và “cat”.

Dựa trên tầm quan trọng của công thức (1) , GloVe khởi đầu bằng việc là nó sẽ tìm một hàm F sao cho nó ánh xạ từ các vec-tơ từ trong vùng không gian V sang một giá trị tỉ lệ tính theo công thức (1) . Việc tìm F không đơn giản, tuy nhiên, sau nhiều bước đơn giản hóa cũng như tối ưu, ta có thể đưa nó về bài toán hồi quy với việc tính hàm chi phí tối thiểu (minimum cost function) sau:

Wi, Wj là các vector từ.bi, bj là các bias tương ứng (được thêm vào ở các bước đơn giản hóa và tối ưu).

xij: mục nhập tương ứng với cặp từ i,j trong ma trận đồng xảy ra

Hàm f(x) được gọi là hàm trọng số (weighting function), được thêm vào để giảm bớt sự ảnh hưởng của các cặp từ xuất hiện quá thường xuyên, hàm này thỏa mãn 3 tính chất:

Có giới hạn tại 0. Là hàm không giảm.

Có giá trị nhỏ khi x rất lớn.

Thực tế, có nhiều hàm số thỏa các tính chất trên, nhưng ta sẽ lựa chọn hàm số sau:

Với α=3/4

Việc thực hiện tính hàm chi phí tối thiểu J để tìm ra các vec-tơ từ thể được thực hiện bằng nhiều cách, trong đó cách tiêu chuân nhất là sử dụng tìm cực tiểu hàm số theo thuật toán Gradient Descent.

Trang 30

Page 42: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Chương 3:

XÂY DỰNG ỨNG DỤNG CHATBOT

3.1 Kiên trúc ứng dụng

Để tạo ra ứng dụng chatbot chúng tôi có sử dụng Deep Learning, NLP (Xử lý ngôn ngữ tự nhiên), RNN (Mạng nơ-ron tái phát), LSTM (Bộ nhớ dài hạn) và cuối cùng sử dụng kiến trúc mô hình seq2seq để triển khai chatbot. Dưới đây là kiến trúc của ứng dụng chatbot.

Hình 33 Kiến trúc của ứng dụng chatbot

Và để triển khai những công nghệ trên chúng tôi sử dụng bộ khung chính là: Python3, Anaconda, Tensorflow-gpu. Cùng với bộ tập dữ liệu (dataset) movie_lines và movie_conversations

3.2 Quá trình xay dựng

3.2.1 Tiền xử ly dư liệu:

Giai đoạn này bao gồm nhập các thư viện cần thiết, nhập tập dữ liệu và tiền xử lý dữ liệu cho giai đoạn đào tạo.

Các bước thực hiện quá trình tiền xử lý dữ liệu:

Trang 31

Page 43: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Tạo một từ điển ánh xạ với từng dòng mã định danh của nó Tạo một danh sách tất cả các cuộc hội thoại Lấy câu hỏi và câu trả lời riêng biệt Làm sạch câu hỏi và câu trả lời Lọc ra các câu hỏi, câu trả lời quá ngắn hoặc quá dài Tạo ra một từ điển ánh xạ với từng từ xuất hiện Tạo hai từ điển ánh xạ các từ trong câu hỏi và câu trả lời cho một số nguyên

duy nhất Thêm mã thông báo (token) ở cuối cùng vào hai từ điển trên Tạo thêm nghịch đảo của từ điển câu trả lời Thêm mã thông báo <EOS> vào cuối mỗi câu trả lời Dịch tất cả các câu hỏi và câu trả lời thành số nguyên và thay thế tất cả các từ

đã được lọc ra bởi mã thông báo <OUT> Sắp xếp câu hỏi và câu trả lời theo độ dài câu hỏi

Mục đích thêm các mã thông báo (token) giúp chúng ta chuyển đổi độ dài của các phần tử trong chuỗi thành các chuỗi có độ dài cố định. Các phần tử đệm đặc biệt mà chúng ta sẽ sử dụng:

1. <PAD>: được sử dụng cho chuỗi bổ sung2. <SOS>: bắt đầu chuỗi (Start of string) được sử dụng để làm đầu vào của thời

gian giải mã đầu tiên3. <EOS>: kết thúc câu (End of sentence) được sử dụng để báo hiệu rằng bộ giải

mã sẽ ngừng tạo chuỗi. Nó cũng được sử dụng để phân tách các câu hỏi lịch sử hội thoại (ngữ cảnh) dành cho câu hỏi đầu vào hiện tại.

4. <OUT>: nếu một từ không tồn tại trong từ điển, nó sẽ được thay thế bằng mã thông báo này

3.2.2 Xay dựng mo hình Seq2Seq

Giai đoạn này là xây dựng mô hình seq2seq để triển khai chatbot. Các công nghệ sử dụng ở giai đoạn này bao gồm:

1. Mạng thần kinh tái phát (RNN)2. Bộ nhớ dài hạn (LSTM)3. Mô hình Seq2Seq4. Thuật toán tìm kiếm chùm (Beam Search)

Trang 32

Page 44: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Các bước thực hiện của quá trình

Tạo trình giữ chỗ cho đầu vào và mục tiêu Tiền xử lý các mục tiêu Tạo lớp RNN mã hóa Giải mã tập đào tạo Giải mã bộ kiểm tra và xác nhận Tạo lớp RNN giải mã Xây dựng mô hình Seq2Seq

3.2.3 Đào tao mo hình Seq2Seq

Giai đoạn này sẽ đào tạo mô hình Seq2Seq đã xây dựng trước đó. Các khái niệm sẽ sử dụng trong giai đoạn này:

1. Siêu tham số (Hyperparameter): tính toán đầu ra cho output2. Thuật toán tối ưu hóa ADAM

Quá trình huấn luyện:

Xác định siêu tham số (Hyperparameters) Xác định phiên Tải mô hình đầu vào Đặt độ dài chuỗi Lấy hình dạng của tensor đầu vào Nhận dự đoán đào tạo và kiểm tra Thiết lập lỗi thất thoát (Loss Error), tối ưu hóa (Rhe Optimizer) và Cắt đường

dốc (Gradient Clipping) Đệm vào các chuỗi bằng mã thông báo (token) “<PAD>” Chia dữ liệu thành một loạt các câu hỏi và câu trả lời Chia câu hỏi và câu trả lời thành tập huấn luyện và xác nhận Đào tạo

3.2.4 Thử nghiệm mo hình Seq2Seq

Giai đoạn này sẽ thiết lập cho chatbot hoạt động dựa trên bộ tập dữ liệu (dataset) đã huấn luyện trước đó.

Các bước thực hiện:

Trang 33

Page 45: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Tải bộ dữ liệu đã đào tạo ở trước và chạy phiên Chuyển đổi các câu hỏi sang số nguyên mã hóa Bắt đầu cuộc trò chuyện

3.3 Kêt quả đat được

Dưới đây là hình ảnh kết quả đạt được của dự án:

Hình 34 Quá trình huấn luyện

Qúa trình huấn luyện dựa trên các siêu tham số (Hyperparameters). Có thể thấy thời gian đào tạo cho một lô (batch) giao động trong khoảng 4 giây nếu sử dụng Tensorflow-GPU.

Hình 35 Tương tác trò chuyện với chatbot

Để trực quan hoá dữ liệu về các từ nhúng (Word embedding) dự án có sử dụng TensorBoard để phục vụ cho quá trình trực quan.

Trang 34

Page 46: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

Hình 36 Trực quan từ nhúng với TensorBoard

Tránh sự nhàm chán với việc chat với màn hình console. Ưng dụng đã tích hợp thêm web để có một giao diện trực quan hơn. Ơ giao diện web, ngoài trò chuyện chat thông thường bằng bàn phím nó còn có trể trò chuyện bằng micro (Speech to text) và Chatbot cũng phản hồi lại bằng tiếng (Text to Speech).

Hình 37 Giao diện web

Trang 35

Page 47: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1 Kêt luận:

Với sự tiện lợi và tối ưu của Deep learning cùng với xử lý ngôn ngữ tự nhiên chúng tôi đã tạo ra một ứng dụng chatbot có khả năng trò chuyện tương tác được với nhau trong một số ngữ cảnh nhất định nhưng không dựa trên một kịch bản có sẵn nào.

Tuy nhiên, khả năng tương tác với chatbot ở mức độ kem vẫn có nhưng câu trả lời sai với ngữ cảnh hoặc sai với ý người hỏi (người sử dụng). Ngoài ra khả năng huấn luyện chatbot diễn ra khá lâu. Và sự bất tiện lớn nhất là chatbot hiện tại chỉ có khả năng tương tác bằng tiếng Anh. Bên cạnh đó giao diện web còn khá đơn giản, cần nâng cấp thêm giao diện web.

2 Hướng phát triên:

Cải tiến thuật toán, kết hợp nhiều mô hình khác để đem lại độ chính xác cũng như thời gian đào tạo.

Sử dụng bộ dữ liệu khác lớn hơn để đem lại các kết quả chính xác hơn. Ngoài ra cũng có thể thử nghiệm các siêu tham số (Hyperparameter) để cho ra các kết quả tốt nhất.

Trang 36

Page 48: MẪU ĐỒ ÁN -KHOÁ LUẬN TỐT NGHIỆPdaotao.sict.udn.vn/uploads/2020/08/1597848317-baocaodacs... · Web viewCác luật này dựa trên một số các thành tố như câu

Đại học Công nghệ thông tin và Truyền thông Việt Hàn – Đại học Đà Nẵng

DANH MỤC THAM KHẢO1 Aditya Kumar - Chatbot Development using Deep Learning & NLP implementing

Seq2Seq Model

2 Yun-Nung (Vivian) Chen, Asli Celikyilmaz and Dilek Hakkani-Tur, 2018 :” Deep

Learning for Dialogue Systems”

3 Tom Bocklisch , 2018: “Conversational AI with Rasa NLU & Rasa Core”

4 Conversational AI Chatbot using Deep Learning: How Bi-directional LSTM,

Machine Reading Comprehension, Transfer Learning, Sequence to Sequence

Model with multi-headed attention mechanism, Generative Adversarial Network,

Self Learning based Sentiment Analysis and Deep Reinforcement Learning can

help in Dialog Management for Conversational AI chatbot

5 Daniel Jurafsky & James H. Martin, 23 September 2018: “Dialog Systems and

Chatbots”

6 DENNY BRITZ, 2015, “Recurrent Neural Networks Tutorial”

7 Colah’s blog, August 27, 2015, “Understanding LSTM Networks”

8 Van Deemter, Krahmer, Emiel; Theune, 1999 “Plan-based vs. template-based

NLG”

9 Ondrej Plátek, Petr Belohlávek, Vojtech Hudecek, and Filip Jurcícek, 2016

“Recurrent Neural Networks for Dialogue State Tracking”

10 Pei-Hao Su, Nikola Mrksic, Inigo Casanueva, Ivan Vulic, 2018 “Deep Learning for

Conversational AI”

11 Dhruvil Shah - Generative chatbots using the seq2seq model!

12 Anjana Tiha - Intelligent Chatbot using Deep Learning

13 Savia Lobo - Build a generative chatbot using recurrent neural networks (LSTM

RNNs)

Trang 37