Nhiệm vụ yêu cầu về nội dung và số liệu ban đầu: ✔ Nghiên cứu các lý thuyết học máy nền tảng ✔ Nghiên cứu lý thuyết xây dựng chatbot ✔ Phân tích và thiết kế hệ thống chatbot với khả năng
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC - KỸ THUẬT MÁY TÍNH
O O O
TP.HCMBK
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
PHÁT TRIỂN HỆ THỐNG CHATBOT TRÒ
CHUYỆN NHIỀU TẦNG NGÀNH: CÔNG NGHỆ PHẦN MỀM
SVTH : NGUYỄNDƯƠNG MINH TÂM ĐẠT (1710059)
Trang 2ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
- Độc lập - Tự do - Hạnh phúc
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA:KH & KT Máy tính NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP
BỘ MÔN: KHMT Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình
HỌ VÀ TÊN: Nguyễn Dương Minh Tâm Đạt MSSV: 1710059
1 Đầu đề luận án:
Phát triển hệ thống chat bot trò chuyện nhiều tầng
2 Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):
✔ Nghiên cứu các lý thuyết học máy nền tảng
✔ Nghiên cứu lý thuyết xây dựng chatbot
✔ Phân tích và thiết kế hệ thống chatbot với khả năng tương tác với một số chatbot khác để hỗ trợ giao tiếp với người dùng Các chatbot
có thể giao tiếp bằng hình ảnh và văn bản
✔ Xây dựng demo
✔ Đánh giá hệ thống
3 Ngày giao nhiệm vụ luận án: 03/09/2015
4 Ngày hoàn thành nhiệm vụ: 20/12/2015
5 Họ tên giảng viên hướng dẫn: Phần hướng dẫn:
CHỦ NHIỆM BỘ MÔN GIẢNG VIÊN HƯỚNG DẪN CHÍNH
PGS.TS Quản Thành Thơ
PHẦN DÀNH CHO KHOA, BỘ MÔN:
Người duyệt (chấm sơ bộ):
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc
-Ngày tháng năm
PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1 Họ và tên SV: Nguyễn Dương Minh Tâm Đạt
2 Đề tài: Phát triển hệ thống chat bot trò chuyện nhiều tầng
3 Họ tên người hướng dẫn/phản biện: PGS.TS Quản Thành Thơ
4 Tổng quát về bản thuyết minh:
- Số bản vẽ vẽ tay Số bản vẽ trên máy tính:
6 Những ưu điểm chính của LVTN:
- Đề tài có tính thực tế cao Sinh viên đã nghiên cứu nhiều mảng kiến thức học thuật liên quan đến xử lý ngôn ngữ tự nhiên sử dụng học sâu và vận dụng phù hợp vào đề tài Đặc biệt, học viên đã vận dụng nhiều tầng xử lýbao gồm QA và Information Retrieval để hoàn thiện đề tài của mình
- Đề tài đã được bắt đầu áp dụng thực tế, đáp ứng được các nhu cầu về
non-functional requirement của công nghiệp
7 Những thiếu sót chính của LVTN:
- Sinh viên cần phân tích kỹ hơn về khái niệm “chatbot nhiều tầng” của mình
8 Đề nghị: Được bảo vệ □ Bổ sung thêm để bảo vệ □ Không được bảo vệ □
9 3 câu hỏi SV phải trả lời trước Hội đồng:
10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Điểm : 9/10
Ký tên (ghi rõ họ tên)
PGS.TS Quản Thành Thơ
Trang 4TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc
-
Ngày 01 tháng 08 năm 2021
PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1 Họ và tên SV: Nguyễn Dương Minh Tâm Đạt
MSSV: 1710059 Ngành (chuyên ngành): CNPM
2 Đề tài: PHÁT TRIỂN HỆ THỐNG CHATBOT TRÒ CHUYỆN NHIỀU TẦNG
3 Họ tên người hướng dẫn/phản biện: Nguyễn Đức Dũng
4 Tổng quát về bản thuyết minh:
- Số bản vẽ vẽ tay Số bản vẽ trên máy tính:
6 Những ưu điểm chính của LVTN:
Luận văn đã phát triển được một hệ thống chatbot hỗ trợ các cuộc trò chuyện hướng phi mục tiêu Với hệ thống dề xuất, các câu phản hồi có thể được phân vào nhóm các câu đã biết qua hình thức template matching Trường hợp các câu hỏi không match được và có thể phân loại các câu hỏi về người thì nhóm sử dụng module Q&A để xử lý Trong trường hợp còn lại thì sử dụng GPT-2 model
để sinh câu trả lời Về cơ bản nhóm đã hoàn thành các yêu cầu đặt ra của đề tài với cách tiếp cận sử dụng các mô hình phù hợp có sẵn
7 Những thiếu sót chính của LVTN:
Đề tài chatbot dạng này có độ phức tạp thực tế cao hơn nhiều Mặc dù nhóm đã hoàn thành các mục tiêu cơ bản, tuy nhiên nhóm còn chưa cân nhắc các yếu tố cần thiết cho một chatbot dạng này Thứ nhất là vấn đề về hội thoại, tác nhân của hội thoại trong trường hợp này là người dùng, tuy nhiên với hệ thống trò chuyện, đôi khi bot phải là người bắt đầu cuộc trò chuyện, điều này cần ghi rõ trong scope đề tài Thứ hai, về các dạng matching cơ bản là vô cùng đa dạng và khó bao phủ hết, càng bao phủ nhiều càng tốn chi phí tính toán cho module template matching Thêm nữa, các hình thức sinh câu trả lời hiện tại đều là không có nhớ, không sử dụng thông tin ngữ cảnh Do đó kết quả sinh ra của câu trả lời thường bị overfit trên tập dữ liệu huấn luyện Điều này thấy rõ trong phần thí nghiệm của nhóm
8 Đề nghị: Được bảo vệ o Bổ sung thêm để bảo vệ o Không được bảo vệ o
9 3 câu hỏi SV phải trả lời trước Hội đồng:
a Nếu muốn cải thiện câu phản hồi của chatbot mà có yếu tố ngữ cảnh, nhóm cần thay đổi gì trong cách tiếp cận bài toán?
b Việc sử dụng lại GPT-2 hay các mô hình seq2seq có thực sự hợp lý đối với chatbot phi mục tiêu?
10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm: 9 /10
Ký tên (ghi rõ họ tên)
Nguyễn Đức Dũng
Trang 5L ỜI CAM ĐOAN
Tôi xin cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác có liên quan đãghi rõ trong luận văn, các nội dung trình bày trong luận văn này là do chính tôi thực hiện vàchưa có phần nội dung nào được nộp để lấy bằng cấp ở một trường khác
TP HCM, NGÀY25THÁNG7NĂM2021
Trang 6L ỜI CẢM ƠN
Đầu tiên, tôi xin gửi lời cảm ơn chân thành nhất đến PGS TS Quản Thành Thơ, người thầy gắn
bó với tôi trong quá trình thực hiện luận văn này Xin cảm ơn những sự hướng dẫn tận tình, chuđáo của thầy, chính nhờ những kiến thức mà thầy đã truyền đạt lại đã giúp cho tôi hoàn thànhtốt luận văn này
Tôi cũng xin được cảm ơn TS Nguyễn Đức Dũng, giảng viên phản biện của đề tài trong quátrình Đề cương và Luận văn, với những định hướng và góp ý giúp cho tôi có thể hoàn thành đềtài này
Xin gửi lời cảm ơn đến các thầy cô trường Đại học Bách Khoa, đặc biệt là các thầy cô bộ môntrong khoa Khoa học và Kỹ thuật Máy tính đã truyền đạt những kiến thức quý báu trong nhữngnăm học qua
Cuối cùng, tôi xin cảm ơn các bạn sinh viên, những người đã tham gia thử nghiệm cho đề tàicủa tôi, cảm ơn các bạn đã đóng góp một phần quan trọng trong việc đánh giá hệ thống của tôi.Tôi cũng xin cảm ơn gia đình, bạn bè đã hỗ trợ tôi trong suốt quá trình học tập và hoàn thànhluận văn
TÁC GIẢ
Trang 7T ÓM TẮT
Hiện nay, có rất nhiều chatbot ra đời với nhiều mục đích khác nhau Một số chatbot được tạo ravới mục đích nhất định, cũng có một số được tạo ra để có thể trò chuyện giúp người dùng giảitrí Cùng với sự phát triển của công nghệ và những bước tiến trong nghiên cứu, nhiều mô hình
hỗ trợ cho việc tạo ra chatbot có khả năng hiểu được ngôn ngữ của con người tốt hơn Trong đềtài luận văn này, nhóm sẽ xây dựng một hệ thống chatbot có thể trò chuyện với người dùng đểgiải trí Hệ thống được thiết kế gồm nhiều tầng áp dụng nhiều mô hình học máy khác nhau để
có thể trò chuyện và trả lời một số câu hỏi của người dùng
Trang 8M ỤC LỤC
1.1 Đặt vấn đề 2
1.2 Ví dụ minh hoạ 3
1.3 Mục tiêu và các giai đoạn thực hiện đề tài 3
1.3.1 Mục tiêu đề tài 3
1.3.2 Các giai đoạn thực hiện 4
1.4 Giới hạn đề tài 4
1.5 Cấu trúc luận văn 5
Chương 2 KIẾN THỨC NỀN TẢNG 6 2.1 Tổng quan về chatbot 7
2.1.1 Giới thiệu 7
2.1.2 Phân loại chatbot 7
2.1.3 Các kỹ thuật thiết kế chatbot 8
2.2 Word Embedding 9
2.2.1 Giới thiệu 9
2.2.2 Continuous Bag-of-Words Model 9
2.2.3 Continuous Skip-gram Model 10
2.3 Mạng nơ-ron nhân tạo - Artificial Neural Network (ANN) 10
2.3.1 Giới thiệu 10
2.3.2 Các công thức toán học 11
2.3.3 Khả năng của ANN 12
2.3.4 Một số hàm Activation 12
2.3.4.1 Hàm Tanh 12
2.3.4.2 Hàm Sigmoid 13
2.3.4.3 Hàm Relu 13
2.3.5 Huấn luyện ANN 14
2.4 Recurrent Neural Networks 14
2.4.1 Giới thiệu 14
2.4.2 Một số ứng dụng của RNN 15
2.4.2.1 One-to-one 15
2.4.2.2 Many-to-one 16
2.4.2.3 Many-to-many loại 1 16
2.4.2.4 Many-to-many loại 2 16
2.4.3 Long Short-Term Memory networks 17
2.4.4 Sequence to sequence model 18
2.5 Attention và Transformer 19
2.5.1 Giới thiệu cơ chế Attention 19
Trang 9MỤC LỤC v
2.5.2 Mô hình Transformer 21
2.5.2.1 Giới thiệu 21
2.5.2.2 Encoder và Decoder 22
2.5.2.3 Attention 22
2.6 Mô hình Generative Pre-trained Transformer 23
2.7 Mô hình Bidirectional Encoders Representation from Transformer (BERT) 24
Chương 3 CÁC CÔNG TRÌNH LIÊN QUAN 25 3.1 Chatbot tiếng Việt dựa trên mạng nơ-ron (A Neural Network Based Vietnamese Chatbot) 26
3.2 Mô hình BERT 26
3.3 Mô hình GPT-2 28
Chương 4 TẬP DỮ LIỆU 29 4.1 Dữ liệu phụ đề phim tiếng Việt - OpenSubtitles 30
4.2 Tập dữ liệu trả lời câu hỏi 30
Chương 5 ĐẶC TẢ VÀ HIỆN THỰC HỆ THỐNG 31 5.1 Thiết kế hệ thống 32
5.1.1 Tổng quan về kiến trúc hệ thống và chức năng 32
5.1.2 Sơ đồ tình huống sử dụng (Use Case Diagram) 32
5.1.3 Sơ đồ trình tự (Sequence Diagram) 35
5.2 Chi tiết các thành phần 35
5.2.1 Bộ xử lý tin nhắn cơ bản (General Chat Module) 35
5.2.2 Bộ trả lời câu hỏi (QA Module) 37
5.2.3 Bộ sinh ngôn ngữ tự nhiên (GPT Module) 38
5.2.4 Bộ phân loại tin nhắn (Message Classifier) 38
5.2.5 Bộ xử lý tin nhắn (Message Handler) 39
5.3 Vấn đề cần giải quyết 39
5.4 Khó khăn 39
5.5 Giải pháp 39
Chương 6 CÔNG NGHỆ SỬ DỤNG 41 6.1 Ngôn ngữ lập trình 42
6.1.1 Python 42
6.1.2 JavaScript 42
6.2 Nền tảng và thư viện 42
6.2.1 NodeJS 42
6.2.2 Pytorch 43
6.2.3 Pandas 43
6.2.4 TensorFlow 43
6.2.5 Botkit 43
6.2.6 Scikit-learn 43
6.2.7 Pymongo 43
6.2.8 Amazon Web Services 44
6.2.9 HuggingFace 44
6.3 Công cụ 44
6.3.1 Google Colab 44
6.3.2 MongoDB 44
Trang 10MỤC LỤC vi
7.1 Xây dựng bộ trả lời câu hỏi 46
7.1.1 Mô hình trả lời câu hỏi áp dụng BERT 46
7.1.2 Hệ thống truy vấn đoạn văn cho mô hình trả lời câu hỏi 46
7.2 Xây dựng bộ phân loại tin nhắn 48
7.2.1 Phương pháp Pattern Matching 48
7.2.2 Kết quả 48
7.3 Xây dựng bộ trả lời các ý định cơ bản 48
7.4 Xây dựng mô hình ngôn ngữ 48
7.4.1 Môi trường huấn luyện mô hình 48
7.4.2 Mô hình ngôn ngữ dùng LSTM 48
7.4.3 Mô hình GPT-2 49
7.4.4 Kết quả và đánh giá 49
7.5 Xây dựng cơ sở dữ liệu lưu trữ đoạn hội thoại 50
7.6 Triển khai hệ thống chatbot 50
7.6.1 Thông số hệ thống 50
7.6.2 Sơ đồ triển khai phần mềm 51
7.7 Kiểm thử các thành phần của hệ thống chatbot 51
7.7.1 Kiểm thử thành phần xử lý câu nói thông thường và trả lời câu hỏi 51
7.7.2 Kiểm thử giao diện 52
7.8 Đánh giá của người dùng 55
Chương 8 TỔNG KẾT 58 8.1 Các kết quả đạt được 59
8.2 Các hạn chế 59
8.3 Định hướng trong tương lai 59
Trang 11D ANH MỤC HÌNH ẢNH
1.1 Ví dụ một đoạn hội thoại giữa chatbot và người dùng 3
2.1 Các hướng phân loại chatbot 7
2.2 Mô hình CBOW và Skip-gram 10
2.3 Mô hình nơ-ron nhân tạo 11
2.4 MLP với hai hidden layer 11
2.5 Các kí hiệu và công thức tính toán trong MLP 12
2.6 Đồ thị hàm tanh 13
2.7 Đồ thị hàm sigmoid 13
2.8 Đồ thị hàm ReLU 14
2.9 Kiến trúc cơ bản của mạng RNN 14
2.10 One-to-many RNN 15
2.11 Many-to-one RNN 16
2.12 Many-to-many RNN loại 1 16
2.13 Many-to-many RNN loại 2 17
2.14 Kiến trúc của LSTM 17
2.15 Kiến trúc mô hình Sequence-to-sequence 19
2.16 Encoder-decoder với Attention mechanism 19
2.17 Alignment matrix 20
2.18 Kiến trúc mô hình Transformer 21
2.19 Mô tả khối decoder được dùng trong GPT 23
2.20 Các tác vụ cụ thể áp dụng BERT 24
3.1 Ví dụ về cặp câu hỏi và trả lời [22] 26
3.2 Một số kết quả được đề cập trong bài viết [22] 26
3.3 Tổng quát quá trình tiền huấn luyện và áp dụng của mô hình BER [21] 27
3.4 So sánh kết quả trên tập SQuAD 1.1 [21] 27
3.5 So sánh kết quả trên tập SQuAD 2.0 [21] 28
3.6 So sánh kết quả mô hình GPT-2 [20] 28
5.1 Kiến trúc hệ thống 32
5.2 Sơ đồ tình huống sử dụng - Use Case Diagram của chatbot 33
5.3 Sơ đồ trình tự - Sequence Diagram của hệ thống chatbot 35
5.4 Chi tiết bộ trả lời câu hỏi 38
7.1 Hệ thống truy vấn đoạn văn cho câu hỏi 47
7.2 Sơ đồ triển khai các thành phần của hệ thống chatbot 51
7.3 Kết quả kiểm thử thành phần xử lý câu nói thông thường và trả lời câu hỏi 52
7.4 Kết quả kiểm thử thành phần xử lý câu nói thông thường và trả lời câu hỏi 52
7.5 Giao diện trên máy tính 52
7.6 Giao diện trên điện thoại 53
7.7 Giao diện trên máy tính bảng 54
7.8 Kết quả đánh giá độ hài lòng của người dùng về câu trả lời của chatbot 55
7.9 Kết quả đánh giá của người dùng về thời gian phản hồi của chatbot 56
7.10 Kết quả đánh giá của người dùng về giao diện 56
7.11 Kết quả đánh giá của người dùng về tương thích của giao diện 57
Trang 12D ANH MỤC BẢNG BIỂU
4.1 Thống kê chi tiết bộ dữ liệu OpenSubtitles đã xử lý 30
5.1 Bảng mô tả tình huống hỏi về người với chatbot 33
5.2 Bảng mô tả tình huống nhắn tin với chatbot 34
7.1 Đánh giá PPL giữa hai mô hình LSTM và GPT-2 50
7.2 Một số câu do hai mô hình sinh ra 50
7.3 Cấu trúc dữ liệu đoạn hội thoại 50
Trang 13D ANH MỤC CHỮ VIẾT TẮT
Danh sách dưới đây liệt kê các chữ cái viết tắt sẽ được sử dụng về sau trong nội dung cuốn đề cương luận văn này.
ANN Artificial Neural Network
BERT Bidirectional Encoder Representation from Transformer
CBOW Continuous Bag-of-Words Model
DNN Deep Neural Network
GPT Generative Pre-trained Transformer
LSTM Long Short-Term Memory Network
MLP Multilayer Perceptron
NLP Natural Language Processing
RNN Recurrent Neural Network
Seq2Seq Sequence to Sequence
Skip-gram Continuous Skip-gram Model
Word2Vec Word to Vector
Trang 14T ỔNG QUAN
Trong chương này, tôi xin giới thiệu sơ lược về nội dung đề tài và cấu trúc luận văn.
Mục lục
1.1 Đặt vấn đề 2
1.2 Ví dụ minh hoạ 3
1.3 Mục tiêu và các giai đoạn thực hiện đề tài 3
1.4 Giới hạn đề tài 4
1.5 Cấu trúc luận văn 5
Trang 15CHƯƠNG 1 TỔNG QUAN 2
1.1 Đặt vấn đề
Hiện nay, các trợ lý ảo hay chatbot đã rất phổ biến với mọi người, ví dụ như trợ lý ảo của Google,Alexa của Amazon hay Siri của Apple Các trợ lý ảo này đã dần dần thay đổi cách chúng ta giaotiếp với máy móc Giờ đây ta đã có thể điều khiển cả ngôi nhà bằng cách ra lệnh bằng giọng nóihay trò chuyện với trợ lý ảo như một người bạn và hỏi những thông tin, tin tức cần thiết hoặc vềmột địa điểm, một nhân vật nào đó Ngoài ra, trợ lý ảo còn như một người bạn giúp chúng tagiải toả căng thẳng hay giải trí sau một ngày học tập, làm việc
Trợ lý ảo, hay còn được gọi là chatbot, là một phần mềm trí tuệ nhân tạo ứng dụng từ lĩnh vực
xử lý ngôn ngữ tự nhiên Mô hình chatbot được chia thành hai loại: mô hình truy vấn thông tin(Retrieval-based model) và mô hình sinh (Generative-based model) Mô hình chatbot truy vấnthông tin sẽ cung cấp câu trả lời dựa những câu trả lời đã được định nghĩa sẵn Mô hình này
có thể giúp chatbot xử lý những tình huống thường gặp như đặt vé xem phim, vé máy bay haymua hàng trực tuyến Ngoài ra, mô hình này còn có thể trả lời những câu hỏi thường gặp trongmột lĩnh vực nhất định bằng cách định nghĩa trước một bộ các câu hỏi và lời đáp Tuy nhiên,
mô hình này không thể đưa ra câu trả lời cho những câu hỏi chưa được định nghĩa trước đó Môhình sinh được phát triển để giải quyết vấn đề trên Mô hình sinh có thể tạo ra những câu trảlời dựa vào những gì mà người dùng cung cấp Những câu trả lời này còn có thể tạo cho ngườidùng cảm giác đang trò chuyện với con người thật Để sinh ra những câu trả lời không cần địnhnghĩa trước, mô hình cần một lượng lớn dữ liệu để huấn luyện cách sinh ra câu trả lời Hiện nay,
mô hình thường được dùng để sinh câu trả lời có thể kể đến là mô hình Sequence-to-Sequence
và mô hình GPT (Generative Pretrained Transformer) Gần đây, các công trình nghiên cứu mới
về cơ chế Attention trong mô hình Sequence-to-Sequence đã giúp lĩnh vực xử lý ngôn ngữ tựnhiên có thêm nhiều hướng phát triển Các bài toán về dịch máy, phân loại văn bản, tóm tắt vănbản đều có những bước tiến mới Bài toán về chatbot cũng không là ngoại lệ khi có thể áp dụngnhững sự cải tiến đó để giúp tạo ra những câu trả lời tự nhiên hơn
Ngoài ra, chatbot còn có thể tích hợp hệ thống trả lời câu hỏi Điều này giúp cho chatbot có thểtrả lời được những câu hỏi trong một lĩnh vực nhất định như về địa điểm, con người hay thờigian Việc xây dựng một hệ thống trả lời câu hỏi có thể thực hiện bằng hai phương pháp sau:dựa vào kiến thức có sẵn và dựa trên văn bản Trong đó, phương pháp dựa vào kiến thức có sẵnđòi hỏi phải xây dựng một cơ sở dữ liệu tri thức để có thể truy xuất được câu trả lời từ câu hỏinhập vào Việc xây dựng cơ sở dữ liệu như vậy là rất tốn thời gian và chi phí Phương pháp dựatrên văn bản thì ngược lại, câu trả lời sẽ được tìm ra trong một hoặc nhiều đoạn văn bản liênquan dựa trên câu hỏi nhập vào Phương pháp này có thể thực hiện bằng hai cách: trích xuấtthông tin (Information Retrieval) hoặc dùng học sâu (Deep learning) Nhờ vào sự phát triển củanhững mô hình học sâu trong những năm gần đây, phương pháp trả lời câu hỏi từ văn bản đã đạtđược những tiến bộ nhất định
Trong đề tài luận văn này, nhóm sẽ xây dựng một chatbot kết hợp một số phương pháp nêu trênvới kiến trúc nhiều tầng Mục tiêu của thiết kế này sẽ giúp cho chatbot có thể trò chuyện vớingười dùng được liên tục và trả lời được nhiều thông tin thú vị Với thiết kế nhiều tầng, mộtcâu hỏi hay câu nói của người dùng được xử lý qua các tầng với mỗi tầng là một phương pháp
và chatbot sẽ đưa ra câu trả lời có độ phù hợp tốt hơn Ngoài ra, việc mở rộng và thêm nhiềuphương pháp khác để xử lý cũng dễ dàng hơn nhờ các tầng được thiết kế để làm nhiệm vụ độclập với nhau, đảm bảo chatbot có thể trả lời ổn định khi có một tầng gặp sự cố
Trang 16CHƯƠNG 1 TỔNG QUAN 3
1.2 Ví dụ minh hoạ
Hình 1.1: Ví dụ một đoạn hội thoại giữa chatbot và người dùng
Hình 1.1 là mẫu trò chuyện của người dùng với chatbot Khi người dùng nhập một câu nói,chatbot sẽ dùng câu nói đó để sinh ra câu trả lời bám sát với ngữ cảnh của cuộc trò chuyện Từ
đó giúp cho người dùng có thể cảm thấy vui vẻ, thoải mái khi được chia sẻ cùng chatbot
1.3 Mục tiêu và các giai đoạn thực hiện đề tài
1.3.1 Mục tiêu đề tài
Trong đề tài này, nhóm tập trung xây dựng một hệ thống hội thoại tự động có thể trò chuyệncùng người dùng bằng cách kết hợp truy vấn các câu trả lời định nghĩa sẵn, phương pháp sinhcâu trả lời dựa vào mô hình học sâu và trả lời câu hỏi về con người bằng phương pháp tríchxuất thông tin trong văn bản Hệ thống chatbot được thiết kế theo hướng không có tác vụ cụ thể
Trang 17CHƯƠNG 1 TỔNG QUAN 4
Thay vào đó, chatbot có thể đưa ra câu đáp lại với hầu hết câu nhập vào của người dùng Hệthống bao gồm các tính năng sau:
• Trả lời các câu hỏi của người dùng về người
• Trả lời các câu trả lời của người dùng bằng cách kết hợp phương pháp truy xuất thông tin
có sẵn và dùng mô hình sinh
Để đạt được những tính năng nêu trên, nhóm cần đạt được những mục tiêu sau:
• Xây dựng bộ trả lời dựa trên những câu được định nghĩa sẵn
• Xây dựng bộ trả lời câu hỏi về người và truy vấn thông tin văn bản để trả lời
• Thu thập dữ liệu về hội thoại và huấn luyện mô hình sinh văn bản
• Xây dựng bộ lựa chọn câu trả lời để phản hồi về người dùng
• Xây dựng giao diện chatbot thân thiện và dễ sử dụng
1.3.2 Các giai đoạn thực hiện
Với những mục tiêu đã đề ra ở mục 1.3.1, nhóm đã chia đề tài thành các giai đoạn thực hiện nhưsau:
• Giai đoạn 1:Thu thập dữ liệu về hội thoại và huấn luyện mô hình sinh văn bản
• Giai đoạn 2:Định nghĩa các trường hợp trả lời dùng câu trả lời có sẵn và tạo dữ liệu cáccâu trả lời
• Giai đoạn 3:Xây dựng bộ trả lời câu hỏi về người gồm: bộ tìm kiếm thông tin qua GoogleSearch Engine, bộ trích xuất thông tin và bộ trích xuất câu trả lời
• Giai đoạn 4:Xây dựng bộ lựa chọn câu trả lời từ câu nhập vào của người dùng
• Giai đoạn 5:Tổng hợp các thành phần thành một hệ thống hoàn chỉnh và kiểm thử phầnmềm
1.4 Giới hạn đề tài
Do chatbot có thể thiết kế theo nhiều phương pháp khác nhau, và mỗi phương pháp dùng để giảiquyết những yêu cầu khác nhau của người dùng Vì vậy, như mục tiêu của đề tài đặt ra, chatbotđược thiết kế trong đề tài này sẽ bị giới hạn trong phạm vi nghiên cứu như sau:
• Vì những khó khăn về công nghệ cũng như tài nguyên máy tính nên nhóm sẽ cố gắng giảiquyết các câu hỏi về người cho bộ trả lời câu hỏi
Trang 18CHƯƠNG 1 TỔNG QUAN 5
• Việc chatbot trả lời tự nhiên và bám sát với ngữ cảnh là một thách thức về mặt công nghệ
và dữ liệu ở thời điểm hiện tại đối với tiếng Việt Do đó, nhóm sẽ tận dụng những bộ dữliệu dạng hội thoại có sẵn để tiến hành thử nghiệm, đánh giá trên một số mô hình học sâukhác nhau Từ đó chọn lựa mô hình tối ưu nhất để câu trả lời của chatbot có thể tự nhiên
và bám sát với ngữ cảnh ở mức chấp nhận được
1.5 Cấu trúc luận văn
Những nội dung trong quá trình luận văn được nhóm trình bày trong các chương sau:
Chương 1 Tổng quan. Trong chương đầu tiên, nhóm trình bày khái quát về đề tài, mụctiêu, phạm vi và cấu trúc đề tài luận văn
Chương 2 Kiến thức nền tảng. Chương này nhóm trình bày những kiến thức nền tảng đểphát triển hệ thống chatbot và các kiến thức liên quan trong xử lý ngôn ngữ tự nhiên
Chương 3 Các công trình liên quan. Chương này nhóm sẽ trình bày về những công trình
và hệ thống liên quan đến đề tài của nhóm
Chương 4 Tập dữ liệu. Chương này bao gồm các tập dữ liệu đã tham khảo và được dùng
để huấn luyện các mô hình trong luận văn
Chương 5 Đặc tả và hiện thực hệ thống. Chương này nhóm trình bày về phương phápthực hiện đề tài và mô hình kiến trúc hệ thống đề xuất
Chương 6 Công nghệ sử dụng. Chương này nhóm giới thiệu các công nghệ dự định để sửdụng phát triển đề tài này
Chương 7 Thí nghiệm và đánh giá. Chương này nhóm trình bày các thí nghiệm và đánhgiá hệ thống chatbot sau khi đã triển khai
Chương 8 Tổng kết. Chương cuối cùng, nhóm tổng kết lại các vấn đề trong quá trình hoànthiện đề tài luận văn Đồng thời, nhóm nêu ra các hạn chế cũng như mở ra các hướng phát triểncủa đề tài trong tương lai
Trang 19K IẾN THỨC NỀN TẢNG
Trong chương này, tôi sẽ trình bày những kiến thức nền tảng được sử dụng trong quá trình thực hiện luận văn bao gồm: giới thiệu về hệ thống chatbot, các khái niệm thường được sử dụng trong mạng học sâu, xử lí ngôn ngữ tự nhiên và học tăng cường.
Mục lục
2.1 Tổng quan về chatbot 7
2.2 Word Embedding 9
2.3 Mạng nơ-ron nhân tạo - Artificial Neural Network (ANN) 10
2.4 Recurrent Neural Networks 14
2.5 Attention và Transformer 19
2.6 Mô hình Generative Pre-trained Transformer 23
2.7 Mô hình Bidirectional Encoders Representation from Transformer (BERT) 24
Trang 20CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 7
2.1 Tổng quan về chatbot
2.1.1 Giới thiệu
Chatbot là một phần mềm được thiết kế để mô phỏng lại đoạn hội thoại của người dùng, đặc biệt
là những cuộc trò chuyện qua Internet Phần mềm này đóng vai trò như là một phương thức đểcon người có thể giao tiếp được với máy tính Nó cung cấp cho máy tính khả năng hiểu được câuhỏi từ ngôn ngữ tự nhiên của con người và trả lời người dùng Hệ thống chatbot đầu tiên đượcthiết kế tại M.I.T vào năm 1966 là ELIZA [1] Tiếp sau đó đã có nhiều chatbot được phát triển,
ví dụ như tương tác với người dùng bằng những tính cách khác nhau [2], kết hợp với các công cụtìm kiếm [3] Qua từng năm, chatbot ngày càng trở nên phức tạp, có thể xử lý được những đoạnhội thoại một cách tự nhiên và giúp cho người dùng thoải mái khi được trợ giúp nhanh nhất cóthể Mặc dù không thể xử lý được tất cả những yêu cầu từ người dùng, nhưng chatbot có thể xử
lý được hầu hết các yêu cầu thường gặp giúp cho thời gian xử lý được cải thiện đáng kể
2.1.2 Phân loại chatbot
Hiện tại, chatbot được chia thành nhiều loại dựa trên nhiều tiêu chí khác nhau như: dựa trêncách giao tiếp (giọng nói hoặc văn bản), dựa trên kiến thức (đóng hoặc mở), dựa trên phươngpháp học (dựa theo luật, dựa theo trích xuất thông tin, hoặc dựa vào học máy), và dựa trên mụctiêu (có hoặc không có mục tiêu cụ thể) [4]
Hình 2.1: Các hướng phân loại chatbot
Trang 21CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 8
Tuy nhiên trong thực tế, chatbot thường được chia thành hai loại chính dựa vào mục tiêu:
1 Chatbot có mục tiêu
2 Chatbot không có mục tiêu
Chatbot hướng mục tiêu được thiết kế để có thể hoàn thành một nhiệm vụ cụ thể và hoàn thànhcuộc hội thoại nhanh nhất, và thường đi kèm là có kiến thức đóng Chatbot không hướng mụctiêu có thể mô phỏng cuộc trò chuyện của con người, trò chuyện với người dùng với mục đíchgiải trí và có kiến thức mở
2.1.3 Các kỹ thuật thiết kế chatbot
Có nhiều hướng khác nhau được dùng để thiết kế một chatbot hướng mục tiêu hoặc không hướngmục tiêu Từ những ngày đầu phát triển chatbot đến nay, các hướng thiết kế chatbot có thể đượcchia thành ba nhóm chính:
1 Thiết kế chatbot dựa vào luật
2 Thiết kế chatbot dựa vào trích xuất
3 Thiết kế chatbot dựa vào phương pháp sinh
Với mỗi hướng tiếp cận trên sẽ sinh ra nhiều kỹ thuật khác nhau, cụ thể được liệt kê và mô tảchi tiết dưới đây:
1 Parsing: Phân tích câu nhập thành các cấu trúc phức tạp hơn về ngữ pháp của ngôn ngữ.
Sau đó so sánh với các câu được định nghĩa sẵn để trả lời
2 Pattern Matching: Câu nhập được phân loại theo những cặp mẫu câu hỏi và câu trả lời
được định nghĩa sẵn để trả lời người dùng
3 AIML: (Artificial Intelligence Mark-up Language) được kế thừa từ XML (Extensible
Mark-up Language) AIML dùng để thiết kế luồng hội thoại của chatbot và dùng cácphương pháp so trùng để phân loại và trả lời người dùng
4 Markov Chain Model: là một mô hình xác suất để dựa đoán câu trả lời cho chuỗi nhập
vào của người dùng
5 Artificial Neural Networks Models: Sử dụng những bước tiến mới nhất trong học máy
để phát triển hệ thống chatbot Phương pháp này có thể sử dụng cả mô hình trích xuấtthông tin và mô hình sinh để phát triển
Trang 22Một phương pháp tốt hơn để biểu diễn các từ trong văn bản là dùng một vector gồm các số thựcvới số chiều ít hơn nhiều lần so với One-hot vector Cách biểu diễn này dựa trên giả thuyết phân
bố [5] của Zellig S Harris: các từ được sử dụng gần nhau trong văn bản có ý nghĩa gần giốngnhau Dựa trên đó, phương pháp Word2Vec [6] được đề xuất và sử dụng phổ biến Phươngpháp này biểu diễn từ bằng vector trong không gian liên tục (từ 50 đến 300 chiều) từ một từđiển rất lớn (trên 10000 từ) Hai mô hình được đề xuất từ phương pháp Word2Vec là CBOW(Continuous Bag-of-Words) và Skip-gram (Continuous Skip-gram Model), cả hai đều dựa trênkiến trúc mạng học sâu, sẽ được trình bày sau, để biến đổi cách biểu diễn One-hot vector vềdạng vector số thực ít chiều hơn
2.2.2 Continuous Bag-of-Words Model
Mô hình CBOW học phương pháp biểu diễn từ bằng cách dự đoán một từ dựa vào ngữ cảnh đượccung cấp Ngữ cảnh được xác định bằng các từ xung quanh từ cần biểu diễn Một văn bản gồm
N từ: w0, w1, , wN−2, wN−1 với wi là từ thứ i trong văn bản Để dự đoán wi mô hình CBOWdùng các từ wi−k, wi−k+1, , wi−1, wi+1, , wi+k−1, wi+kđể làm ngữ cảnh, với 2k là kích thướccửa sổ của mô hình
Mô hình CBOW gồm hai ma trận W ∈ Rd×|V |, thường gọi là Embedding Matrix, dùng để mãhoá từ và ma trận W0∈ R|V |×d, thường gọi là Inversed Embedding Matrix, dùng để giải mã từ
về dạng One-hot vector, với |V | là số lượng từ vựng trong từ điển, d là số chiều sau khi thugiảm Các từ ban đầu được biểu diễn bằng One-hot vector x ∈ N|V |, đầu vào của mô hình là cácOne-hot vector của các từ ngữ cảnh, đầu ra sẽ là One-hot vector của từ cần biểu diễn Mô hìnhđược thực hiện qua các bước sau:
• Tính từng vector vi= W>xiứng với từng từ trong ngữ cảnh
• Tính v = ∑ vi
• Tính z = W0vvà ˆy= so f tmax(z), ˆylà phân phối xác suất của từ cần biển diễn
• Từ ˆyvà One-hot vector y, ta tính được sai khác và dùng Gradient Descent để huấn luyện
mô hình
Trang 23CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 10
2.2.3 Continuous Skip-gram Model
Mô hình Skip-gram gần giống với CBOW, nhưng dùng từ cần biểu diễn để dự đoán các từ ngữcảnh xung quanh từ này Để dự đoán các từ wi−k, wi−k+1, , wi−1, wi+1, , wi+k−1, wi+k môhình Skip-gram dùng từ wiđể làm ngữ cảnh, với 2k là kích thước cửa sổ của mô hình Sai kháccủa mô hình so với thực tế được tính bằng trung bình của sai khác ứng với mỗi từ đoán được
Hình 2.2: Mô hình CBOW và Skip-gram (Nguồn: [6])
2.3 Mạng nơ-ron nhân tạo - Artificial Neural Network (ANN)
2.3.1 Giới thiệu
Trong tự nhiên, não bộ của người được cấu tạo từ những tế bào được gọi là nơ-ron thần kinh.Các nơ-ron thần kinh được liên kết với nhau để tạo ra mạng nơ-ron thần kinh nhằm chuyển tảithông tin, giúp con người và động vật có khả năng nhận biết và phản ứng với môi trường xungquanh Mạng nơ-ron thần kinh là một sức mạnh to lớn của não bộ để truyền tải và xử lý thôngtin Chính vì thế, mạng nơ-ron nhân tạo [7] được đề xuất để giúp máy tính có được sức mạnhtrên Một ANN cũng bao gồm nhiều đơn vị xử lý thông tin là nơ-ron tương tự như nơ-ron thầnkinh và được gọi là nơ-ron Nơ-ron này cũng bao gồm nhiều đầu vào (input) và một đầu ra(output) đều là các đại lượng vô hướng (Hình 2.3) Mỗi giá trị đầu vào được nhân với một trọng
số và tính tổng tất cả giá trị trên Giá trị tổng được đưa qua hàm phi tuyến dùng để kích hoạt đầu
ra Các giá trị đầu ra của nơ-ron được đưa tiếp tục cho nơ-ron tiếp tieo sẽ tạo thành một mạngnơ-ron nhân tạo
Multilayer perceptron (MLP) [8] là kiến trúc cơ bản của mạng nơ-ron nhận tạo (Artificial NeuralNetwork - ANN) Một MLP ngoài tầng đầu vào (Input Layer) và tầng đầu ra (Output Layer) thìcòn một hoặc nhiều tầng ẩn (Hidden Layer) (Hình 2.4)
Trang 24CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 11
Hình 2.3: Mô hình nơ-ron nhân tạo (Nguồn: [7])
Hình 2.4: MLP với hai hidden layer (Nguồn: [8])
2.3.2 Các công thức toán học
Một nơ-ron ở tầng sau sẽ nhận kết quả của toàn bộ nơ-ron ở tầng trước đó, cách liên kết này gọi
là Fully Connected Số lượng tầng trong một MLP được tính bằng số lượng tầng ẩn cộng với 1,tức là MLP ta không tính tầng đầu vào, và được kí hiệu là L Đầu vào của các tầng ẩn được kíhiệu là z, đầu ra được kí hiệu là a Đầu ra của nơ-ron thứ i trong tầng l được kí hiệu là a(l)i Gọi
d(l) là số lượng nơ-ron của tầng l Mỗi tầng ẩn l sẽ có hai thành phần chính là ma trận trọng số
W(l)∈ Rd(l−1)×d (l)
và bias b(l)∈ Rd(l) Để tính giá trị đầu vào cho một tầng, ta có công thức:
Trang 25Hình 2.5: Các kí hiệu và công thức tính toán trong MLP (Nguồn: [8]).
2.3.3 Khả năng của ANN
ANN thường hưởng được sức mạnh to lớn từ kiến trúc bộ não tự nhiên Chính vì thế, ANN cóthể học được một công việc khi ta huấn luyện cho nó, trong khi các chương trình máy tính thôngthường chỉ thực hiện các công việc mà ta quy định sẵn ANN còn có khả năng xử lý trong trườnghợp dữ liệu bị nhiễu, không đầy đủ, đó là điều mà chương trình bình thường sẽ không làmđược Nhờ những đặc trưng ưu việt trên, ANN thường được sử dụng để phân loại dữ liệu, pháthiện mẫu và các ứng dụng có dữ liệu phức tạp
Trang 27CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 14
Hình 2.8: Đồ thị hàm ReLU
2.3.5 Huấn luyện ANN
Giải thuật lan truyền ngược (backpropagation) và suy giảm độ dốc (Gradient Descent) là giảithuật phổ biến nhất hiện tại trong việc huấn luyện mạng nơ-ron Giải thuật này tính hàm lỗi(loss function) là sai khác giữa giá trị mục tiêu và giá trị đầu ra của mạng Sau đó sẽ lan truyềnngược để cập nhật các trọng số trên mạng Quá trình huấn luyện mạng nơ-ron nhân tạo là đưavào một tập dữ liệu đã biết trước và yêu cầu cho đầu ra cũng đã biết trước Các trọng số đã đượcđiều chỉnh lúc huấn luyện sẽ được sử dụng để dự đoán các dữ liệu mới chưa biết trước
2.4 Recurrent Neural Networks
2.4.1 Giới thiệu
Mạng nơ-ron hồi quy (Recurrent Neural Network)[10] được phát triển từ những năm 1980 Kiếntrúc của mạng này gồm một đầu vào, một hoặc nhiều tầng ẩn và một tầng đầu ra Điểm khácbiệt là cấu trúc RNN là một chuỗi lặp các mô-đun giống nhau, với ý tưởng lưu trữ thông tin
đã xử lý phía trước đó RNN khác mạng Multilayer Perceptron ở việc các kết quả ở bước xử lýtrước đó có ảnh hưởng đến kết quả của bước xử lý hiện tại và các bước tiếp theo Điều này tạonên khá năng ghi nhớ của mạng RNN
Hình 2.9 mô tả kiến trúc tổng quát của mạng RNN [11]:
Hình 2.9: Kiến trúc cơ bản của mạng RNN (Nguồn: [11])
với:
Trang 28• ot là đầu ra tại bước t, được tính bằng:
ot= g (V st)
Hàm g cũng là một hàm activation như f và thường là hàm Tanh hoặc Relu
Trong quá trình huấn luyện cho mạng RNN, thuật toán lan truyền ngược được sử dụng phổ biến
và được gọi là lan truyền ngược theo thời gian (backpropagation through time) Quá trình cậpnhật trọng số cho mạng được bắt đầu từ đầu ra cuối cùng của mạng, cập nhật trọng số cho từngđơn vị theo tổng lỗi của đầu ra Với một chuỗi thông tin dài, việc tích luỹ độ lỗi các đạo hàmdẫn tới tiêu biến đạo hàm hoặc bùng nổ đạo hàm Do đó, việc huấn luyện mạng RNN gặp nhiềuvấn đề khó khăn và không ổn định
Trang 292.4.2.3 Many-to-many loại 1
Hình 2.12: Many-to-many RNN loại 1(Nguồn: [12])
Mô hình này tính toán từng giá trị đầu ra cho mỗi giá trị đầu vào, do đó được sử dụng trong bàitoán nhận biết thực thể có tên (Name Entity Recognition) hoặc gán nhãn từ loại (Part of SpeechTagging)
2.4.2.4 Many-to-many loại 2
Mô hình này tổng hợp các giá trị đầu vào sau đó sinh ra các giá trị đầu ra và thường được sửdụng trong bài toán dịch máy (Machine Translation)
Trang 30CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 17
Hình 2.13: Many-to-many RNN loại 2 (Nguồn: [12])
2.4.3 Long Short-Term Memory networks
Như đã đề cập trước đó, khi chuỗi thông tin quá dài sẽ dẫn đến trường hợp RNN sẽ đánh mấtcác thông tin quan trọng ở phía trước quá xa Về mặt lý thuyết, RNN có thể lưu trữ được thôngtin từ bước đầu tiên đến bước hiện tại, nhưng qua nhiều bước tính toán, đạo hàm càng tiêu biếndẫn đến RNN đánh mất lượng thông tin trước đó nếu quá xa Để khắc phục nhược điểm trên,nhiều biến thể của RNN được đề xuất, trong số đó phổ biến nhất là Gated Recurrent Unit (GRU)
và Long Short-Term Memory (LSTM) Trong nội dung luận văn này, tôi chỉ trình bày LSTM vìtính phổ biến của nó
Hình 2.14: Kiến trúc của LSTM (Nguồn: [13])
Kiến trúc của LSTM (Hình 2.14) [13] phức tạp hơn RNN rất nhiều Để nhớ được nhiều thôngtin, LSTM sử dụng các cổng để giữ lại các thông tin quan trọng và bỏ đi những thông tin dư
thừa Thành phần quan trọng nhất của LSTM là cell state, đây chính là bộ nhớ của LSTM, ngoài
ra còn một thành phần khác là hidden state Cell state và hidden state ở thời điểm t được kí
hiệu là Ct và ht Cell state và hidden state sẽ lần lượt được cập nhật ở mỗi thời điểm thông quacác cổng, chi tiết như sau:
• Cổng forget giúp tính toán các thông tin cần loại bỏ:
ft= σ Wf[ht−1, xt] + bf
• Cổng input giúp tính toán các thông tin cần giữ lại:
it = σ (Wi[ht−1, xt] + bi)
Trang 312.4.4 Sequence to sequence model
Mô hình Sequence to Sequence (hay còn được gọi là mô hình Encoder-Decoder) [14] là ứngdụng của RNN được trình bày ở trên Trong mô hình này, cả input và output đều là những se-quences (dữ liệu dạng chuỗi, ví dụ như đoạn văn bản, đoạn âm thanh), do đó rất phù hợp với cácbài toán như Machine Translation, Auto Speech Recognition, Optical Character Recognition, Các bài toán này đều xử lí trên dữ liệu dạng chuỗi, do đó không thể dùng các kiến trúc DeepNeural Networks (DNN) thông thường như MLP
Mô hình Sequence to Sequece (được viết gọn thành seq-to-seq hoặc seq2seq), bao gồm 2 thànhphần chính là Encoder và Decoder Encoder có nhiệm vụ biến đổi input thành các biểu diễntrung gian (thường gọi là các context vector) Decoder có nhiệm vụ biến đổi các context vectorthành các ouput của bài toán Thông thường cả Encoder và Decoder đều là các lớp RNN (hoặcLSTM) chồng lên nhau
Mục đích của mô hình này là tính xấp xỉ xác suất:
p(y1, , ym| x1, , xn)với (x1, , xn) là chuỗi input và (y1, , ym) là chuỗi output của bài toán Có thể thấy độ dài củainput và output có thể khác nhau, tức là m 6= n Để tính được xác suất này, đầu tiên, mô hình sẽdùng Encoder để tính ra vector v của chuỗi input, v có số chiều cố định và có thể xem như làvector biểu diễn của toàn bộ chuỗi input và cũng chính là hidden state cuối cùng của Encoder.Sau đó mô hình sẽ dùng v để khởi tạo giá trị hidden state ở Decoder và lần lượt tính xác suấtcủa y1, , ym:
Trang 32CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 19
Hình 2.15: Kiến trúc mô hình Sequence-to-sequence (Nguồn: [15])
2.5 Attention và Transformer
2.5.1 Giới thiệu cơ chế Attention
Trong một số trường hợp của bài toán dịch máy, ta có thể không cần biết toàn bộ các từ để dịchmột từ Ví dụ với câu “I am going to school”, ta không cần quan tâm đến các từ phía sau “I” để
có thể dịch được nó Tuy nhiên, với mô hình Encoder-Decoder, toàn bộ câu sẽ được nén thànhmột context vector để tiến hành dịch
Để khắc phục điều này, và tận dụng ý tưởng các từ ở câu đích chỉ "chú ý" đến một số từ ở câunguồn, Bahdanau đã đề xuất mô hình Seq2seq kết hợp với cơ chế Attention [16](Hình 2.16).Trong mô hình này, xác suất của một từ tại bước decode thứ i được tính bằng:
Hình 2.16: Mô hình Encoder-decoder với Additive attention mechanism trong bài báo của
Bah-danau (Nguồn: [16])
p(yi| y1, , yi−1, x1, , xi−1) = g (yi−1, si, ci)
Trang 33CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 20
với silà hidden state của Decoder-RNN tại bước i:
si= f (si−1, yi−1, ci)
và ciđược gọi là context vector tại bước thứ i
Context vector ciphụ thuộc vào toàn bộ các hidden state của Encoder (h1, , hT), và được tínhbằng tổng có trọng số của các hidden state này:
eiJ= score si−1, hj
được gọi là alignment model, thể hiện từ thứ j ở output liên quan như thế nào đến từ thứ i ởinput
Hình 2.17: Alignment matrix với câu nguồn "L’accord sur l’Espace économique européen a été
signé en aoˆut 1992" trong tiếng Pháp và câu đích "The agreement on the European EconomicArea was signed in August 1992" trong tiếng Anh (Nguồn: [16])
Có nhiều cách để hiện thực hàm score, đó có thể là một mô hình feed-forward network với mộtlayer được train cùng với model hoặc đó cũng có thể là một hàm, do đó có rất nhiều biến thểcủa Attention
Trang 34Hình 2.18: Kiến trúc mô hình Transformer (Nguồn: [17]).
Trang 35CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 22
2.5.2.2 Encoder và Decoder
Encoder: Encoder là một khối gồm 6 layer giống nhau được xếp chồng lên nhau Mỗi layer bao
gồm hai sub-layer Sub-layer thứ nhất là cơ chế Multi-Head Attention và sub-layer thứ hai là mộtlớp Fully Connected Feed-Forward theo từng vị trí Xung quanh mỗi sub-layer có sử dụng mộtđường Residual Connection [18] và một Layer Normalization [19] tại ouput của mỗi sub-layer
Decoder: Decoder có cấu trúc tương tự như Encoder, tuy nhiên ở phần Decoder có thêm một
sub-layer thứ ba ở giữa hai sub-layer đó là layer Multi-Head Attention, layer này sẽ thực hiệntính toán Attention của Decoder dựa vào output của Encoder Layer Multi-Head Attention đầutiên được sửa đổi lại với với cơ chế Masking (mặt nạ) để khi tính toán output tại bước thứ i, môhình chỉ có thể được biết thông tin tại các bước nhỏ hơn i, do đó được gọi là Masked Multi-HeadAttention Cả Encoder và Decoder sẽ có số chiều cho input và output chung là dmodel
với Q, K,V là các vector hoặc ma trận input, dk là số chiều của input Thông thường Q, K,V làcác ma trận và sẽ chính là output của Encoder hoặc Decoder Với Q = K = V = Out putEncoder
ta có Self-Attention trong Encoder, với Q = K = V = Out putDecoder ta có Self-Attention trongDecoder, với Q = Out putDecodervà K = V = Out putEncoder ta có Intra-Attention trong Decoder
Multi-Head Attention Tác giả Vaswani nhận thấy rằng, thay vì thực hiện một lần hàm tion trên Queries, Keys, Values của toàn bộ output của Encoder và Decoder với số chiều dmodel,
Atten-ta có thể chiếu tuyến tính Queries, Keys, Values h lần xuống chiều không gian dq, dk, dv tươngứng, với mỗi phiên bản của Queries, Keys, Values, ta thực hiện hàm Attention một cách songsong, thu được h output có số chiều là dv Các output này sẽ được concat (nối) với nhau, sau đóđược chiếu tuyến tính về chiều không gian gốc là dmodel
Multi-Head Attention cho phép model cùng lúc học được cách chú ý vào nhiều thông tin khácnhau, tại các vị trí khác nhau Nếu chỉ dùng Single-Head thì model chỉ có thể học được duy nhấtmột thông tin mà thôi
MultiHead (Q, K,V ) = Concat (head1, , headh)WO
với headi= AttentionQWiQ, KWIK,VWiV
WiQ,WiK,WiV,WOlà các ma trận chiếu và cũng là các ma trận tham số sẽ được học cùng model:
WiQ∈ Rdmodel×dk,WiK ∈ Rdmodel×dk,WiV ∈ Rdmodel×d v,WO∈ Rhd v ×dmodel
Position-wise Feed-Forward Networks Theo sau mỗi lớp Attention là một lớp Fully nected Feed-Forward network, lớp này sẽ được áp dùng cho mỗi vị trí của output của lớp Atten-tion một cách phân biệt và giống nhau Lớp này gồm hai phép biến đổi tuyến tính và sử dụnghàm ReLU ở cuối
Trang 36PE(pos,2i)= sinpos/10002i/d‘model
PE(pos,2i+1)= cospos/10002i/d‘model
với pos là vị trí cần encode và i là chiều thứ i trong vector encode
2.6 Mô hình Generative Pre-trained Transformer
GPT-2 là mô hình được nhóm nghiên cứu OpenAI công bố vào năm 2019 [20] Đây là một
mô hình ngôn ngữ có khả năng sinh các đoạn văn bản Mô hình được huấn luyện trên tậpBookCorpus với hơn 7000 quyển sách thuộc nhiều thể loại khác nhau Kiến trúc mô hình GPT-
2 được thiết kế giống như GPT nhưng có nhiều tham số hơn và cả hai đều được thiết kế dựa trênphần decoder của mô hình Transformer Vì thiết kế dựa trên decoder của Transformer cho phépGPT có thể sinh liên tục từ tiếp theo Tuy nhiên điều này làm mất đi khả năng hiểu được ngữcảnh từ hai phía của câu
Hình 2.19: Mô tả khối decoder được dùng trong GPT
Mô hình GPT dùng khối decoder của mô hình Transformer, tuy nhiên, khối này không còn tầngSelf-Attention nữa (như hình 2.19) Lớp cuối cùng của mô hình là một lớp Fully-Connected đểcho ra kết quả ứng với từ điển của mô hình
Trang 37Hình 2.20: Các tác vụ cụ thể áp dụng BERT