ĐẠ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
——————– * ———————
LUẬN VĂN TỐT NGHIỆP
Xây Dựng Hệ Thống Hỏi-Đáp
HỘI ĐỒNG: Khoa học máy tính 2
GVHD: TS. Nguyễn Đức Dũng
GVPB: ThS. Băng Ngọc Bảo Tâm
—o0o—
Sinh viên thực hiện:
Trần Xuân Hội
MSSV: 1711457
Hoàng Đình Khang MSSV: 1711679
TP. HỒ CHÍ MINH, 08/2021
Lời cam đoan
Chúng tôi xin cam đoan đây là công trình nghiên cứu của riêng chúng tôi dưới sự hướng
dẫn của Tiến sĩ Nguyễn Đức Dũng. Nội dung nghiên cứu và các kết quả đều là trung thực
và chưa từng được công bố trước đây. Các số liệu được sử dụng cho quá trình phân tích,
nhận xét được chính chúng tôi thu thập từ nhiều nguồn khác nhau và sẽ được ghi rõ trong
phần tài liệu tham khảo.
Ngoài ra, chúng tôi cũng có sử dụng một số nhận xét, đánh giá và số liệu của các tác giả
khác, cơ quan tổ chức khác. Tất cả đều có trích dẫn và chú thích nguồn gốc.
Nếu phát hiện có bất kì sự gian lận nào, chúng tôi xin hoàn toàn chịu trách nhiệm về
nội dung thực tập tốt nghiệp của mình. Trường đại học Bách Khoa thành phố Hồ Chí Minh
không liên quan đến những vi phạm tác quyền, bản quyền do chúng tôi gây ra trong quá
trình thực hiện.
Lời ngỏ
Trước hết, chúng tôi xin gửi lời cảm ơn chân thành nhất đến TS. Nguyễn Đức Dũng, giảng
viên hướng dẫn đề cương luận văn và là người thầy gắn bó với chúng tôi trong nhóm nghiên
cứu khoa học trong thời gian làm luận văn tốt nghiệp. Nhờ những kiến thức thầy truyền đạt,
cũng như tinh thần, sự động viên, hướng dẫn và góp ý từ thầy đã giúp chúng tôi hoàn tất đề
cương luận văn này một cách tốt nhất.
Chúng tôi cũng xin gửi lời cảm ơn đến các thầy cô trong trường Đại học Bách Khoa, và
đặc biệt là các thầy cô công tác tại Khoa Khoa học và Kỹ thuật Máy tính vì đã truyền đạt
những kiến thức nền tảng quý báu để trong thời gian vừa qua.
Cuối cùng, chúng tôi xin cảm ơn gia đình và bạn bè, những người luôn bên cạnh ủng hộ
lựa chọn và hướng đi của chúng tôi.
Tóm tắt nội dung
Hiện tại các lĩnh vực nghiên cứu các bài toán liên quan đến lĩnh vực học sâu đang ngày được
nhận được nhiều sự chú ý. Bên cạnh xử lý ảnh, xử lý ngôn ngữ tự nhiên cũng đã được ứng dụng
vào nhiều hệ thống hiện đại đặc biệt là các ứng dụng có liên quan đến ngôn ngữ hoặc âm thanh.
Hiện tại, các bài toán trong lĩnh vực này đều được chú trọng phát triển để cải tiến hiệu năng
nhờ vào sự phát triển của dữ liệu, các kĩ thuật trong mạng học sâu và khả năng tính toán nhanh
của máy tính hiện nay. Một trong những bài toán của xử lý ngôn ngữ tự nhiên đó là bài toán
Hỏi-đáp, trong đề tài này nhóm chúng tôi sẽ tập trung tìm hiểu và giải quyết bài toán Hỏi-đáp
cho tiếng Anh và tiếng Việt.
Đầu tiên chúng tôi đã khảo sát những nghiên cứu liên quan đến bài toán, phân loại các bài
toán và các hướng tiếp cận để giải quyết từ trước đến nay. Từ đó chúng tôi đã chọn hướng tiếp
cận chính là kết hợp Xử lý ngôn ngữ tự nhiên và học sâu, đồng thời tìm hiểu một số mô hình tiêu
biểu được đưa ra để giải quyết bài toán và chọn ra một mô hình thích hợp làm nền tảng, chúng
tôi cũng đã áp dụng thành công một vài cải tiến trên mô hình nền tảng. Ngoài ra việc khảo sát
về những tập dữ liệu huấn luyện cũng cực kỳ quan trọng vì dữ liệu là nhân tố tiên quyết đối với
bài toán này. Đối với tiếng Anh chúng tôi đã khảo sát và lựa chọn tập dữ liệu SQuAD, tập dữ
liệu này được dùng rất nhiều các mục đích nghiên cứu và đánh giá mô hình. Đối với tiếng Việt,
nhóm sẽ sử dụng mô tập dữ liệu tiếng Việt đã được xây dừng từ trước để hiện thực.
Mục lục
1
2
3
4
5
Giới thiệu bài toán Hỏi - Đáp
1.1 Tổng quan về bài toán Hỏi-đáp
1.2 Động lực thực hiện . . . . . .
1.3 Mục tiêu và phạm vi đề tài . .
1.4 Cấu trúc luận văn tốt nghiệp .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
4
Khảo sát những nghiên cứu liên quan
2.1 Khái quát chung . . . . . . . . . . . . . . . .
2.1.1 Sự phát triển của bài toán . . . . . . .
2.1.2 Động lực phát triển . . . . . . . . . .
2.1.3 Bài toán đọc-hiểu và bài toán hỏi-đáp
2.1.4 Hàm lượng giá . . . . . . . . . . . .
2.2 Tập dữ liệu . . . . . . . . . . . . . . . . . .
2.2.1 Dữ liệu cho tiếng Anh . . . . . . . .
2.2.2 Dữ liệu cho tiếng Việt . . . . . . . .
2.3 Mô hình học sâu với bài toán Hỏi-đáp . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
6
7
7
7
10
10
Kiến thức nền tảng
3.1 Convolutional Neural Network (CNNs)
3.1.1 Convolution . . . . . . . . . . .
3.1.2 Kiến trúc của CNNs . . . . . .
3.2 Recurrent Neural Network . . . . . . .
3.3 Long Short Term Memory (LSTM) . . .
3.4 Depth Wise Convolution . . . . . . . .
3.5 Attention . . . . . . . . . . . . . . . .
3.6 Self-attention . . . . . . . . . . . . . .
3.7 Các thư viện hỗ trợ lập trình . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
12
13
14
16
17
19
19
Kiến trúc mô hình Hỏi-đáp
4.1 Những điểm đổi mới của mô hình QANet . . . . .
4.2 Phân tích kiến trúc mô hình . . . . . . . . . . . . .
4.3 Đề xuất ý tưởng cải tiến . . . . . . . . . . . . . . .
4.3.1 QANet với kiến trúc Universal Transformer
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
27
27
Hiện thực mô hình
5.1 Tiền xử lý dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Huấn luyện mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Công đoạn huấn luyện mô hình . . . . . . . . . . . . . . . . . . . . . . . . . .
31
31
36
38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
Xây dựng mô hình Hỏi-đáp tiếng Việt
6.1 Tập dữ liệu tiếng Việt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Hiện thực mô hình hỏi đáp Tiếng việt . . . . . . . . . . . . . . . . . . . . . .
6.3 Phân tích tập dữ liệu tiếng Việt . . . . . . . . . . . . . . . . . . . . . . . . . .
39
39
43
44
7
Thí nghiệm và Kết quả
7.1 Phương pháp đánh giá . . . . . . . . . . . . .
7.2 Kết quả trên mô hình tiếng Anh . . . . . . . .
7.2.1 Trên tập dữ liệu SQuAD v1.1 . . . .
7.2.2 Kết quả kiểm thử . . . . . . . . . . .
7.2.3 Trên tập dữ liệu SQuAD v2.0 . . . .
7.3 Kết quả trên tập dữ liệu tiếng Việt . . . . . .
7.4 Xây dựng giao diện ứng dụng: . . . . . . . .
7.4.1 Mục tiêu: . . . . . . . . . . . . . . .
7.4.2 Mô hình ứng dụng: . . . . . . . . . .
7.4.3 Giao diện tính năng trả lời câu hỏi: . .
7.4.4 Giao diện tính năng hỗ trợ tạo dữ liệu:
.
.
.
.
.
.
.
.
.
.
.
46
46
46
46
47
49
50
55
55
56
57
57
Tổng kết
8.1 Kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Hạn chế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
59
60
60
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Danh sách bảng
2.1
2.2
Bảng thống kê các loại câu hỏi trong tập dữ liệu SQuAD . . . . . . . . . . . .
Những từ liên quan cho việc suy luận sẽ được in đậm. Câu trả lời sẽ được gạch
chân . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4.1
Cấu hình tham số của mô hình ALBERT so với mô hình BERT . . . . . . . . .
27
6.1
Thống kê về tỉ lệ loại câu trả lời trên tập dữ liệu tiếng Việt . . . . . . . . . . .
45
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
Các kết quả thử nghiệm trên mô hình QANet trên tập SQuAD v1.1
Thông tin cấu hình chi tiết các mô hình QANet . . . . . . . . . .
Thông tin cấu hình chi tiết các mô hình QANet cải tiến . . . . . .
Mô hình QANet với Universal Transformer trên tập SQuAD v1.1 .
Kết quả huấn luyện mô hình QANet trên tập dữ liệu SQuAD v2.0 .
Số lượng tập dữ liệu tiếng Việt trước và sau khi xử lý. . . . . . . .
Thông tin cấu hình chi tiết các mô hình QANet trên tiếp Việt . . .
Các kết quả các thử nghiệm trên tập tiếng Việt . . . . . . . . . . .
Những ví dụ về những điểm dữ liệu tối nghĩa . . . . . . . . . . .
48
48
49
49
50
50
51
52
53
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
Danh sách hình vẽ
1.1
1.2
Mô hình hệ thống hỏi đáp . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ứng dụng của hệ thống hỏi đáp vào công cụ tìm kiếm Google . . . . . . . . . .
2
3
2.1
2.2
Số lượng bài báo về lĩnh vực đọc hiểu . . . . . . . . . . . . . . . . . . . . . .
Thống kê số lượng tập dữ liệu và F1 socre của các mô hình state-of-the-art của
các mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
Ví dụ về Convolution. . . . . . . . . . . . . . . . . . . . . .
Kiến trúc đơn giản của một CNNs cho bài toán phân lớp ảnh
Mạng Recurrent Neural Network cơ bản . . . . . . . . . . .
LSTM unit . . . . . . . . . . . . . . . . . . . . . . . . . .
LSTM ’s gates . . . . . . . . . . . . . . . . . . . . . . . . .
Chia kernel 3 × 3 thành 2 kernel 3 × 1 . . . . . . . . . . . .
Mô hình sequence-to-sequence . . . . . . . . . . . . . . . .
Attention layer . . . . . . . . . . . . . . . . . . . . . . . . .
Minh họa cho tầng self-attention . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
14
15
15
16
18
18
20
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
Sự minh họa cho quá trình làm giàu dữ liệu . . . . . . . . . . . . . . . .
Mô hình tổng quan của QANet . . . . . . . . . . . . . . . . . . . . . . .
Ma trận tương quan trong Attention Layer . . . . . . . . . . . . . . . . .
Ma trận row-wise softmax A . . . . . . . . . . . . . . . . . . . . . . . .
ALBERT đạt state-of-the-art trên SQuAD và RACE benchmarks . . . . .
Mô hình tổng quan của Universal Transformer . . . . . . . . . . . . . . .
Trạng thái tính toán của khối Encoder Block trong Universal Transformer
Mô hình QANet với kiến trúc Transformer . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
23
25
26
28
28
29
30
7.1
7.2
7.3
Đồ thị hàm mất mát trên tập huấn luyện (train) trong quá trình huấn luyện . . .
Đồ thị hàm mất mát trên tập phát triển (dev) trong quá trình huấn luyện . . . .
Đồ thị hàm mất mát trên tập huấn luyện (train) trong quá trình huấn luyện trên
tập dữ liệu tiếng Việt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Đồ thị hàm mất mát trên tập phát triển (dev) trong quá trình huấn luyện trên tập
dữ liệu tiếng Việt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ma trận tương quan của văn bản và câu hỏi ví dụ 2 . . . . . . . . . . . . . . .
Mô hình ứng dụng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Màn hình trải nghiệm tính năng dự đoán câu trả lời của hệ thống . . . . . . . .
Màn hình tính năng tạo dữ liệu(1) . . . . . . . . . . . . . . . . . . . . . . . .
Màn hình tính năng tạo dữ liệu(2) . . . . . . . . . . . . . . . . . . . . . . . .
47
47
7.4
7.5
7.6
7.7
7.8
7.9
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
51
51
54
56
57
58
58
Chương 1
Giới thiệu bài toán Hỏi - Đáp
Hiện nay công cuộc phát triển trong các lĩnh vực Trí tuệ nhân tạo ngày càng phát triển mạnh
mẽ, trong đó Xử lý ngôn ngữ tự nhiên là một nhánh trong nghiên cứu các bài toán liên quan
đến ngôn ngữ cũng phát triển không ngừng. Những bài toán có thể kể đến trong lĩnh vực xử
lý ngôn ngữ tự nhiên như: Sentiment Analysis, Name Entity Regconition, Machine Translation,
Automatic Summarization, Question Answering ...
Hệ thống hỏi đáp (Question Answering) là một dạng của truy vấn thông tin. Cho trước một
đoạn văn mô tả, hệ thống hỏi đáp nhằm mục tiêu đưa ra câu trả lời là một phần của đoạn văn
mô tả được đưa vào. Hiện nay thì cách tiếp cận được xử dụng nhiều nhất là học máy và học sâu,
không nhất thiết phải là một nhà ngôn ngữ học hoặc một người nắm vững về ngôn ngữ học mới
có thể làm được.
Hiện nay thì có nhiều các công ty lớn như Google, Facebook IBM và các trường đại học lớn
trên thế giới như MIT, Stanford đều đầu tư nhiều vào việc nghiên cứu trong lĩnh này. Ở Việt
Nam, hiện tại lĩnh vực xử lý ngôn ngữ tự nhiên chưa được chú trong phát triển.
Trong phần này, chúng tôi sẽ giải thích thế nào là một hệ thống hỏi đáp (Question Answering), nêu ra tại sao lại chọn đề tài này làm hướng nghiên cứu. Từ đó vạch ra mục tiêu bài toán,
các công việc cần phải làm. Đồng thời, chúng tôi cũng giới hạn phạm vi nghiên cứu và trình bày
cấu trúc luận văn chung.
1.1
Tổng quan về bài toán Hỏi-đáp
Trong suốt chiều dài trong lĩnh vực xử lý ngôn ngữ tự nhiên, dạy cho máy tính cách đọc được
văn bản và hiểu được chúng là một nghiên cứu quan trọng nhưng chưa được giải quyết một cách
đầy đủ. Để hoàn thành công việc này, các nhà nghiên cứu đã tạo ra một hướng nghiên cứu “đọc
hiểu” (machine reading comprehension - MRC) với các tập dữ liệu lớn, những công cụ tính toán
mạnh và các kĩ thuật trong học sâu đã thúc đẩy các hướng phát triển trong lĩnh vực xử lý ngôn
ngữ tự nhiên.
Trong cộng đồng xử lý ngôn ngữ tự nhiên, MRC đã nhận được nhiều sự chú ý trong những
năm gần đây [23], [8].
“Đọc hiểu” được ứng dụng nhiều trong các hệ thống xử lý ngôn ngữ tự nhiên như search
engine và hệ thống hội thoại. Hình 1.2 là một ví dụ, khi nhập một câu hỏi vào công cụ search
của Google thì Google có thể trả lời ngay lập tức câu trả lời chính xác cho câu hỏi này.
Giả sử chúng ta đang đọc một tác phẩm như Sherlock Holmes. Và chúng ta có một câu hỏi
đơn giản “ai là người bạn thân của nhân vật Sherlock Holmes trong tác phẩm này?”. Thay vì sẽ
đọc hết qua tác phẩm, với hệ thống hỏi đáp chúng ta có và một cặp đầu vào đoạn văn - câu hỏi,
hệ thống sẽ “tìm” ra được câu trả lời, đó là John Waston. Một cách chi tiết hơn, hệ thống sẽ dựa
1
GIỚI THIỆU BÀI TOÁN HỎI - ĐÁP
Hình 1.1: Mô hình hệ thống hỏi đáp
vào câu hỏi và đoạn văn bản được dùng làm đầu vào của hệ thống, dựa trên hệ thống học sâu sẽ
trích xuất ra được đâu là câu trả lời cho câu hỏi tương ứng đó. Với điều kiện là hệ thống đã được
“học” từ rất nhiều câu hỏi và câu trả lời tương ứng từ những dữ liệu trước đó. Hình 1.1 mô tả
đầu vào và đầu ra của hệ thống hỏi - đáp (Question Answering).
Question Answering (Hỏi-đáp) là một kỹ thuật trong ngành khoa học máy tính liên quan đến
truy xuất thông tin và xử lý ngôn ngữ tự nhiên (NLP), quan tâm đến việc xây dựng một hệ thống
có thể tự động trả lời các câu hỏi bằng ngôn ngữ con người. Có 2 loại hệ thống: Close-domain
QA và Open-domain QA.
• Closed-Domain QA: là một hệ thống mà câu trả lời thuộc một chủ đề nhất định (ví dụ y tế
hoặc bảo trì mô tô). Hơn thế, close-domain có thể quy vào trường hợp giới hạn các câu hỏi
được chấp nhận, như các câu hỏi dạng mô tả hơn là các câu hỏi suy diễn.
• Open-domain QA: hệ thống hỏi đáp dạng này với những câu hỏi gần như là mọi thứ, có
thể là về triết học hoặc là kiến thức về thế giới. Vì vậy mà những hệ thống dạng này thường
cần rất nhiều dữ liệu để trích xuất ra được câu trả lời.
Trong suốt bài báo cáo này đoạn văn (context) (chứa thông tin mà ở đây có thể có câu trả lời
cho câu hỏi), câu hỏi (question) (câu hỏi có thể có đáp án và không có đáp án) và câu trả lời
(câu trả lời có thể nằm trong đoạn văn và cũng có thể không tồn tại câu trả lời với đoạn văn được
cho) sẽ thường xuyên được nhắc lại nhiều lần.
1.2
Động lực thực hiện
Sự phát triển nhanh chóng trong sự lĩnh hội nhận thức của máy tính và các hệ thống trả lời
câu hỏi tự động. Trong những năm gần đây, những mô hình như end-to-end và các mô hình dựa
trên kiến trúc transformer đã đạt được các kết quả đầy hứa hẹn trên nhiều bài toán, trên nhiều
tập dữ liệu khác nhau. Vì vậy, trong quá trình tiếp cận đề tài này, chúng tôi có cơ hội học được
nhiều kiến thức liên quan trong lĩnh vực xử lý ngôn ngữ tự nhiên như và cũng như về học sâu;
là cơ sở, kiến thức cho giai đoạn thực hiện luận văn.
Những bài toán liên quan đến xử lý ngôn ngữ tự nhiên có những đặc thù chung bởi cách tổ
chức dữ liệu của ngôn ngữ không theo một cấu trúc nào, và các từ ngữ không thể hiện ý nghĩa
bởi mỗi từ nếu như theo cách lưu trữ thông thường dưới dạng chuỗi trên máy tính. Xử lý ngôn
ngữ tự nhiên sẽ giải quyết những vấn đề như vậy như: cách biểu diễn từ, và sự tương quan giữa
các từ, liệu có thể thay thế từ này bằng từ khác, ... Quá trình để hiểu được một vấn đề trong ngôn
ngữ cực kì phức tạp, ngay cả chúng ta cũng được học để hiểu ngôn ngữ trong một thời gian dài.
Do vậy để máy tính hiểu được một ngôn ngữ nào đó tất nhiên cũng sẽ là những cách tiếp cận
2
GIỚI THIỆU BÀI TOÁN HỎI - ĐÁP
Hình 1.2: Ứng dụng của hệ thống hỏi đáp vào công cụ tìm kiếm Google
giống con người trước hết hiểu được những từ và học qua ví dụ. Điểm mạnh của máy tính là có
thể học một tác vụ nhiều lần. Trong quá trình phát triển trong lĩnh vực xử lý ngôn ngữ tự nhiên
nói chung đã phát triển rất nhiều kĩ thuật để giải quyết từng bài toán cụ thể và được cải tiến và
hoàn thiện dần theo thời gian.
Những ứng dụng vào thực tiễn của xử lý ngôn ngữ tự nhiên là rất lớn. Trên tất cả, động lực
chính của nhóm khi thực hiện đề tài này là tính ứng dụng vào thực tiễn và học hỏi những cách
tiếp cận kĩ thuật trong lĩnh vực xử lý ngôn ngữ tự nhiên. Ngày này, chúng ta có hệ thống gợi ý
trên điện thoại ngày càng chính xác hơn, hệ thống dịch ngày càng chính xác hơn, các website
khi bán hàng khi chúng ta truy cập có thể xuất hiện các hộp thoại có thể trả lời tự động được
các thông tin.
Chắc hẳn ai trong chúng ta cũng đã dùng Google làm công cụ tìm kiếm cho những vấn đề
mà mình thắc mắc. Hệ thống tìm kiếm của Google ngày càng chính xác hơn với những thông tin
chúng ta nhập vào; công cụ tìm kiếm này còn có thể trả lời được các câu hỏi đơn giản. Tất nhiên
là với hệ thống tìm kiếm này chúng ta không cần cho dữ liệu đầu vào là đoạn văn (context) mà
vẫn có câu trả lời.
1.3
Mục tiêu và phạm vi đề tài
Trong quá trình làm việc với đề tài này, chúng tôi đưa ra các mục tiêu cụ thể như sau:
• Thứ nhất: tìm hiểu các kĩ thuật trong lĩnh vực xử lý ngôn ngữ tự nhiên trong những năm
gần đây mà đặc thù là các hệ thống hỏi đáp có ngữ cảnh.
• Thứ hai: áp dụng các kiến thức đã tìm hiểu được vào xây dựng mô hình Hỏi-đáp. Nhóm sẽ
lựa chọn thư viện PyTorch là chủ yếu để hiện thực mô hình này.
• Thứ ba: huấn luyện và kiểm thử mô hình. Áp dụng cải tiến trên mô hình gốc cụ thể là áp
dụng Universal Transformer. Từ mô hình đạt được, nhóm sẽ hiện thực một ứng dụng mô
phỏng hệ thống Hỏi-đáp cho cả tiếng Việt và tiếng Anh.
• Thứ tư: áp dụng mô hình Hỏi-đáp với ngôn ngữ tiếng Việt đã được xây dựng từ trước.
Phạm vi đề tài này, chúng tôi sẽ xây dựng bài toán Hỏi-đáp đối với tiếng Anh và tiếng Việt. Với
tiếng Anh nhóm sẽ xây dụng chủ yếu với tập dữ liệu SQuAD v1.1 [16] và SQuAD v2.0 [15].
Với tập tiếng Việt nhóm sử dụng tập dữ liệu đã xây dựng ở nhóm trước. Hệ thống hỏi đáp mà
3
GIỚI THIỆU BÀI TOÁN HỎI - ĐÁP
nhóm hiện thực là hệ thống mà câu trả lời sẽ dựa trên ngữ cảnh nghĩa là sẽ có một văn cặp văn
bản và câu hỏi cho mô hình, không phải là hệ thống trả lời với chỉ câu hỏi được đưa vào. Văn
bản ở đây chỉ đơn giản là văn bản thuần từ ngữ không chứa bất kì biểu đồ, hình ảnh nào; với
những loại dữ liệu đầu vào chứa hình ảnh hoặc biểu đồ nằm ngoài phạm vi nghiên cứu của đề
tài này.
1.4
Cấu trúc luận văn tốt nghiệp
Trong quá trình hiện thực, nhóm chia đề cương ra thành 8 chương. Ứng với mỗi chương là
một giai đoạn trong xuyên suốt từ thời gian đề cương luận văn đến luận văn tốt nghiệp. Khi trình
bày chúng tôi cũng đưa ra nhiều ví dụ cụ thể cũng như hình ảnh và bảng biểu để minh họa cho
ý tưởng và làm rõ các vấn đề mà chúng tôi đề cập. Trình tự các chương được sắp xếp theo tiến
trình làm việc mà nhóm đã đề ra.
Chương 1 sẽ đưa ra cái nhìn tổng quan về bài toán Hỏi-Đáp trong tổng thể lĩnh vực Xử lý
ngôn ngữ tự nhiên. Sau đó, chúng tôi đưa ra mục tiêu thực hiện và giới hạn phạm vi đề tài. Kế
tiếp, Chương 2 đưa ra các khảo sát mà nhóm đã tìm hiểu được về bài toán Hỏi-đáp trên ngôn
ngữ tiếng Anh và tiếng Việt. Đây là cơ sở để chúng tôi chọn hướng để tập trung nghiên cứu.
Trong Chương 3, nhóm trình bày những kiến thức nền tảng trong mạng học sâu liên quan đến
việc giải quyết bài toán Hỏi-Đáp. Đây là những kĩ thuật cũng như kiến thức chung mà chúng tôi
tổng hợp lại sau khi khảo sát nhiều nghiên cứu khác nhau. Chương 4 sẽ phân tích mô hình hệ
thống Hỏi-Đáp mà chúng tôi chọn làm trọng tâm nghiên cứu. Ở chương này, nhóm sẽ phân tích
chi tiết kiến trúc mô hình, làm nền tảng cho việc hiện thực lại mô hình này. Đồng thời nhóm
cũng sẽ trình bày ý tưởng cải tiến trong phần cuối chương.
Chương 5, nhóm sẽ trình bày quá trình những công việc mà nhóm đã làm; những khó khăn
gặp phải và hướng giải quyết mô hình. Nhóm sẽ nêu rõ từng bước xây dựng lần lượt các tầng của
mô hình từ tiền xử lý dữ liệu đến việc huấn luyện mô hình và kiểm thử. Những khó khăn gặp
phải khi huấn luyện. Chương 6, chúng tôi sẽ dành riêng chương này để nói về từ việc áp dụng
mô hình lên tập dữ liệu tiếng Việt được xây dựng trước, những sự thay đổi so với huấn luyện mô
hình tiếng Anh và một vài nhận xét về dữ liệu. Chương 7, trong chương này chúng tôi sẽ trình
bày các thí nghiệm và kết quả trên các tâp dữ liệu tiếng Anh và tiếng Việt. Chúng tôi đưa ra các
số liệu thể hiện độ chính xác và đưa ra một vài nhận xét trên các kết quả này. Chúng tôi cũng
trình bày các kết quả cải tiến ở mục này. Cuối cùng, Chương 8 tổng kết những gì mà nhóm đã
làm cùng kết quả đạt được trong giai đoạn luận văn này. Đồng thời, chương này chúng tôi cũng
bàn luận đến những hướng phát triển tiếp theo với đề tài này.
4
Chương 2
Khảo sát những nghiên cứu liên quan
Trong giai đoạn tìm hiểu đề tài, chúng tôi đã khảo sát nhiều công trình về bài toán Hỏi - đáp
bằng các kĩ thuật học sâu từ những năm gần đây. Trong chương này chúng tôi sẽ trình bày những
công trình đã tham khảo, những kiến thức mà chúng tôi tìm hiểu được để có cái nhìn toàn diện
hơn về hệ thống Hỏi-đáp. Dựa trên những tìm hiểu, chúng tôi sẽ đề xuất những vấn đề sẽ hiện
thực trong luận văn.
2.1
2.1.1
Khái quát chung
Sự phát triển của bài toán
Bài toán đọc hiểu (Machine reading comprehension) không phải là được đưa ra gần đây.
Những năm 1977, Lehnert và các cộng sự đã xây dựng một hệ thống hỏi đáp gọi là QUALM.
Năm 1999, Hirschman và các cộng sự xây dựng mô hình với 60 đoạn văn cho tập phát triển và
60 đoạn văn cho kiểm tra. Độ chính xác của mô hình đạt từ 30% đến 40%. Những mô hình thời
kì này thường được xây dựng trên phương pháp thống kê. Tuy nhiên do việc thiếu tập dữ liệu để
xây dựng, bài toán này đã bị bỏ quên trong một thời gian dài.
Năm 2013, Richardson tạo ra tập dữ liệu MCTest [17] gồm hơn 500 đoạn văn và 2000 câu
hỏi. Sau đó, nhiều nhà nghiên cứu đã dùng các mô hình học máy trên tập dữ liệu này. Tuy nhiên
các mô hình này được xây dựng trên các nguyên tắc và tập dữ liệu MCTest chưa đủ lớn. Để giải
quyết vấn đề này, Hermann và các cộng sự [9] đã tạo ra một cách thức để tạo ra tập dữ liệu lớn
để xây dựng mô hình đọc hiểu. Đồng thời họ còn phát triển các giải thuật dùng cơ chế attention
trên mạng học sâu có thể đọc và trả lời câu hỏi với chỉ cần một chút hiểu biết về ngôn ngữ. Kể từ
năm 2015, sự ra đời của tập dữ liệu lớn và mô hình mạng học sâu, bài toán đọc hiểu được phát
triển triển một cách nhanh chóng. Hình 2.1 chỉ ra số lượng các bài báo về lĩnh vực đọc hiểu từ
năm 2013.
2.1.2
Động lực phát triển
Tập dữ liệu cho bài toán đọc hiểu đóng một vai trò quan trọng trong việc phát triển các mô
hình mạng neuron học sâu. Hình 2.2 (a) cho thấy số lượng tập dữ liệu tăng theo cấp số nhân
từ năm 2014 đến năm 2020. Các mô hình cho bài toán đọc hiểu đã tạo động lực để các tập dữ
1 Đề
cập trong paper: A Survey on Machine Reading Comprehension [22]
5
KHẢO SÁT NHỮNG NGHIÊN CỨU LIÊN QUAN
Hình 2.1: Số lượng bài báo nghiên cứu về MRC ở mỗi năm. (a) Số lượng bài báo nghiên cứu
về MRC trên ACL từ 2013 đến 2019. (b) Số lượng bài báo nghiên cứu về MRC trên ENMLP
từ 2013 đến 2019. (c) Số lượng bài báo nghiên cứu về MRC trên Web of Science từ 2013 đến
2019.(d) Số lượng bài báo nghiên cứu về MRC trên Google scholar từ 2013 đến 2019. 1
liệu cho bài toán đọc hiểu càng phát triển. Hình 2.2 (b) cho thấy những mô hình đọc hiểu gần
đây như BiDAF [18], ELMo [14], BERT [5], RoBERTa [12] và XLNet [20]. Hiện tại thì đã có
những mô hình đọc hiểu vượt qua độ chính xác của con người trên các tập dữ liệu đọc hiểu, tuy
nhiên vẫn còn một khoảng cách rất lớn giữa đọc hiểu và sự lĩnh hội thực tế của con người.
2.1.3
Bài toán đọc-hiểu và bài toán hỏi-đáp
Bài toán đọc hiểu và bài toán hỏi-đáp có nhiều sự tương đồng. Dường như các dạng bài toán
đọc hiểu thường ở dạng câu hỏi và câu trả lời, tuy nhiên không có nghĩa là bài toán đọc hiểu
thuộc về dạng bài toán hỏi đáp. Thực tế thì các dạng bài toán của đọc hiểu đa dạng. Bài toán
đọc hiểu và bài toán hỏi đáp đều là các vĩnh vực nghiên cứu của xử lý ngôn ngữ tự nhiên. Các
bài toán giữa 2 lĩnh vực này có sự giao thoa và trùng khớp lẫn nhau. Đối với bài toán hỏi đáp có
thể chia thành hai loại bài toán: “open-domain QA” và “close-domain QA”. Với “close-domain
QA” thì đầu sẽ có 2 dữ liệu đầu vào: ngữ cảnh và câu hỏi, ngữ cảnh có thể ở dạng thuần văn bản
hoăc có thêm hình ảnh như bài toán (bài toán hỏi đáp có thị giác - visual question answering).
Trong đó bài toán mà nhóm làm với đề tài này thuộc dạng “close-domain QA” trên tập dữ liệu
SQuAD.
6
KHẢO SÁT NHỮNG NGHIÊN CỨU LIÊN QUAN
Hình 2.2: Thống kê số lượng tập dữ liệu và F1 socre của các mô hình state-of-the-art của các
mô hình. Hình (a) số lượng dữ liệu tích lũy từ năm 2014 đến năm 2020. Hình (b) điểm f1-score
của các mô hình trên tập dữ liệu SQuAD v1.1
2.1.4
Hàm lượng giá
Với bài toán hỏi đáp thì sẽ thường dùng 2 hàm lượng giá là Exact Match và F1-score.
• Exact match: nếu câu trả lời đúng cho câu hỏi có thể là một cụm từ hoặc một câu. Có khả
năng rằng một vài từ câu trả lời do hệ thống đưa ra là câu trả lời đúng, một số từ khác thì
không phải là câu lời. Exact match trong trường hợp này là phần trăm số câu trả lời do hệ
thống đưa ra đúng với câu trả lời thực tế, ở đây là mỗi từ đều trùng khớp với nhau. Exact
match thường được viết gọn là EM. Giả sử tập kiểm thử có N câu hỏi, số câu hỏi mà hệ
thống trả lời đúng chính xác là N. Trong số N - M câu trả lời còn lại có thể chứa các từ
chính xác của câu trả lời nhưng không khớp chính xác với đáp án thực tế. EM được tính
toán như sau:
M
(2.1)
EM =
N
• F1 score: công thức F1 score được tính theo precision và recall. Trong đó với O là số từ
giống nhau trong câu trả lời do hệ thống và câu trả lời thực tế, P là số từ trong câu trả lời
(predicted words) và G là số từ trong câu trả lời thực tế (groundtruth words).
O
O
; recall =
P
G
2 × precision × recall
F1 =
precision + recall
precision =
2.2
2.2.1
(2.2)
Tập dữ liệu
Dữ liệu cho tiếng Anh
Nguồn dữ liệu cho tiếng Anh cho các mô hình Hỏi-đáp rất phong phú đa dạng. Trong đó
kiểu tập dữ liệu có thể chia theo 2 loại chính:
• Close-domain QA: tập dữ liệu này phù hợp với các mô hình nhận dữ liệu đầu vào là một
context và một câu query; và mô hình sẽ đưa ra câu trả lời mà đáp án nằm trong context
7
KHẢO SÁT NHỮNG NGHIÊN CỨU LIÊN QUAN
• Open-domain QA: hệ thống này sẽ nhận câu hỏi là dữ liệu đầu vào và sẽ xuất ra câu trả
lời dựa trên một nguồn dữ liệu lớn như Wikipedia. Nó khác với các mô hình tìm kiếm là sẽ
trả về các document liên quan nhất tới câu hỏi.
Mô hình của chúng tôi là mô hình theo dạng close-domain QA và dữ liệu ở bài toán hỏi đáp
này là dạng văn bản thuần không kể đến các loại khác như: VQA - Visual Question Answering,
và tập dữ liệu chúng tôi sử dụng là SQuAD.
• Dataset SQuAD v1.1 [16] bao gồm hơn 100.000 câu hỏi từ hơn 100 bài viết trên Wikipedia
• Dataset SQuAD v2.0 [15] là sự bổ sung thêm những câu hỏi không thể trả lời được từ bộ
dataset SQuAD v1.1 để tránh trường hợp mô hình trả lời cho những câu hỏi mà đáp án lại
không nằm trong đoạn context.
Hai bộ dataset SQuAD đã được dùng rất nhiều trong những bài toán với mục tiêu nghiên
cứu, và cũng là bộ dataset chuẩn để đánh giá các mô hình mặc dù có thể có những bộ dataset tốt
hơn nhưng trong phạm vi nghiên cứu thì bộ SQuAD vẫn có nhiều giá trị.
Cách tiếp cận các mô hình bằng các mô hình học sâu đòi hỏi phải có một tập dữ liệu đủ lớn
để có thể xây dựng mô hình đủ chất lượng. Bộ dữ liệu SQuAD v1.1 được xây dựng từ hơn 500
bài viết trên Wikipedia được chọn một cách ngẫu nhiên. Mỗi bài viết sẽ chỉ lấy paragraphs (các
đoạn văn) và lược bỏ đi cách hình vẽ, bảng và các đoạn văn dưới 500 từ. Kết quả là thu được
23.215 đoạn văn từ 536 bài viết. Với mỗi đoạn văn sẽ được một nhóm các người làm tập dữ liệu
đăt và tự trả lời 5 câu hỏi.
Answer type
Date
Other Numeric
Person
Location
Other Entity
Common Noun Phrase
Adjective Phrase
Verb Phrase
Clause
Other
Percentage
8.9%
10.9%
12.9%
4.4%
15.3%
31.8%
3.9%
5.5%
3.7%
2.7%
Example
19 October 1512
12
Thomas Coke
Germany
ABC Sports
property damage
second-largest
returned to Earth
to avoid trivialization
quietly
Bảng 2.1: Bảng thống kê 2 các loại câu hỏi trong tập dữ liệu SQuAD
Tập dữ liệu chứa các câu hỏi ở đa dạng các loại câu hỏi như: các con số, ngày tháng, địa
điểm, cụm động từ, ... Nhìn trên bảng 2.1 chúng ta thấy sự đa dạng về mặt câu hỏi của tập dữ
liệu.
2 Đề
3 Đề
cập trong paper: SQuAD 100000+ [16]
cập trong paper: SQuAD 100000+ [16]
8
KHẢO SÁT NHỮNG NGHIÊN CỨU LIÊN QUAN
Reasoning
Từ
đồng
nghĩa
Sự đa dạng
về từ vựng
(world
knowledge)
Sự đa dạng
về cú pháp
Nhiều câu
lý luận
Tối nghĩa
Example
Q: What is the Rankine cycle
sometimes called?
Sentence: The Rankine cycle
is sometimes re-ferred to as
a practical Carnot cycle.
Q: Which governing bodie
have veto power?
Sen: The European Parliament and the Council of the
European Union have powers of amendment and veto
during the legislative process.
Q: What Shakespeare scholar
is currently on the faculty?
Sen: Current faculty include the anthropol- ogist
Marshall Sahlins, ..., Shakespeare scholar David Bevington.%
Q: What collection does
the V&A Theatre & Performance galleries hold?
Sen: The V&A Theatre
& Performance gal- leries
opened in March 2009. ...
They hold the UK’s biggest
national collection of material about live performance.
Q: What is the main goal of
criminal punishment?
Sen: Achieving crime control via incapacitation and
deterrence is a major goal of
criminal punish- ment.
Percentage
33.3%
9.1%
64.1%
13.6%
6.1%
Bảng 2.2: Những từ liên quan cho việc suy luận sẽ được in đậm. Câu trả lời sẽ được gạch chân 3
Tập dữ liệu SQuAD 2.0 được xây dựng dựa trên tập dữ liệu SQuAD tuy nhiên có bổ sung
thêm 50.000 câu hỏi trong đó đoạn context không chưa đáp án trả lời, việc thêm những câu hỏi
không có đáp án trả lời đặt ra nhiều thách thức hơn cho mô hình khi context chứa nhiều từ khóa
liên quan đến câu hỏi xong vẫn không thể là câu trả lời; điều này giúp mô hình trở nên "mạnh
mẽ" hơn.
Trong bài báo gốc QANet thì tập dữ liệu được dùng đên là tập SQuAD 1.1. Và nhóm chúng
tôi cũng lựa chọn tập dataset này là chủ yếu cho việc đánh giá mô hình.
9
KHẢO SÁT NHỮNG NGHIÊN CỨU LIÊN QUAN
2.2.2
Dữ liệu cho tiếng Việt
Chúng ta có thể thấy rằng đa số các công trình nghiên cứu về ngôn ngữ thường sẽ phát triển
và đánh giá trên một bộ dữ liệu tiếng Anh. Tuy vậy, dữ liệu cho các bài toán hỏi đáp tiếng Việt
khá là khan hiếm và dường như chưa có công bố chính thức về các công trình này trên tiếng
Việt. Do đó, có thể thấy rằng đây là một rào cản lớn trong phát triển các hệ thống hỏi đáp cho
tiếng Việt.
Tập dữ liệu tiếng Việt để huấn luyện nhóm chúng tôi sử dụng lại tập dữ liệu đã được xây
dựng bởi các nhóm trước gồm 6600 điểm dữ liệu cho cả huấn luyện và kiểm thử. Các câu hỏi
trong tập dữ liệu này đều thuộc dạng câu hỏi có câu trả lời. Cũng nhờ có tập dữ liệu
2.3
Mô hình học sâu với bài toán Hỏi-đáp
Mô hình hỏi đáp
Những mô hình hỏi đáp trước đây sẽ dùng một mô hình phân tích cú pháp, từ vựng; sau đó
thì với sức mạnh của mạng học sâu thì các mô hình đều dựa trên các Language Model (mô hình
ngôn ngữ có 2 khối quan trọng là encoder và decoder) bao gồm 2 phần Encoder và Decoder
ngoài ra còn sử dụng thêm cơ chế Attention để hướng sự chú ý của các từ trong câu hỏi liên
quan nhất đến đoạn văn.
Chúng tôi đã khảo sát qua mô hình BiDAF [18] mô hình này khi ra đời đã đạt được kết quả
vượt trội hơn so với các mô hình trước đó dựa trên language model với sự bổ sung thêm cơ chế
Attention. Mô hình BiDAF gồm các tầng cơ bản như sau:
• Character Embedding Layer: chuyển mỗi từ thành một vector đại diện cho từ đó ở mức
kí tự có thể dùng một mạng CNN cho layer này hoặc pre-train character embedding. Ở
tầng này giúp mô hình có thể hiểu được những từ chưa bao giờ xuất hiện trong mô hình character-aware [10]
• Word Embedding Layer: chuyển mỗi từ thành một vector đại diện cho từ đó có thể dùng
các pre-train word embedding như GLoVe.
• Contextual Embedding Layer: tầng này sẽ giúp mô hình học được ngữ cảnh của các từ
xung quanh từ đó bằng cách cho chạy qua một mạng LSTM. 3 tầng đầu tiên được áp dụng
đối với cả Query và Context.
• Attention Flow Layer: cả 2 ma trận context và query đều được sử dụng để tính toán ở bước
này. Đầu ra ở tầng này là một ma trận context nhưng không chỉ biểu diễn ngữ nghĩa của các
từ mà còn có sự "hiểu biết" về các từ trong query và có sự tương quan chặt chẽ với các từ
đó. Đây cũng là sự sáng tạo giúp mô hinh đạt kết quả tốt nhất cho tới thời điểm công bố.
• Modeling Layer: tầng này gồm 2 mạng LSTM hai chiều tính ra ma trận M1 và M2. M1 và
M2 giống với ma trận context biểu diễn mỗi từ khác ở chỗ M1 và M2 ngoài ra còn có thêm
thông tin của toàn bộ Query và Context.
• Output Layer: thực hiện tính toán từ nào sẽ là từ bắt đầu và từ nào sẽ là từ kết thúc.
Kế thừa từ sự ra đời của kiến trúc Transformer [19] vào cuối những năm 2017 được đề xuất
bởi 2 nhóm nghiên cứu Google Brain và Google Research; vào năm 2018,cũng là nhóm nghiên
cứu từ Google Brain đã đề xuất mô hình QANet [21]. Những mô hình hỏi đáp (QA) trước đây
cơ bản được xây dựng trên mạng hồi quy (RNN) với cơ chế "attention". Sự kết hợp thành công
2 thành phần này lại là BiDAF. Tuy nhiên điểm yếu của mô hình xây dựng trên mạng hồi quy
(RNN) là tốn nhiều thời gian cho quá trình huấn luyện và suy diễn bởi tính chất của mạng hồi
quy, đặc biệt là những trường hợp xử lý với đoặn văn rất dài. Trong mô hình QANet này, nhóm
10
KHẢO SÁT NHỮNG NGHIÊN CỨU LIÊN QUAN
tác giả đã đề xuất các ý tưởng để loại bỏ mạng hồi quy. Hai tính riêng biệt của mô hình này là:
mạng tích chập và cơ chế "self-attention". Điểm quan trọng của cấu trúc mô hình này là: mạng
tích chập giúp thu được cấu trúc cục bộ của văn bản, trong khi đó cơ chế self-attention giúp sự
tương quan giữa các cặp từ ở toàn bộ văn bản. Mô hình QANet gồm các tầng cơ bản như sau:
• Input Embedding Layer: mỗi từ sẽ được biểu diễn bằng cách nối 2 vector: mã hóa ở mức
từ ngữ (word embedding) và mã hóa ở mức kí tự (character embedding). Mã hóa ở mức kí
tự giúp mô hình học được cấu tạo của một từ ngữ như các tiền tố và hậu tố: "mis", "im",
"ize", "ing", "able", ...
• Embedding Encoder Layer: như đã đề cập ở trên, mô hình QANet sẽ dùng một mạng tích
chập và cơ chế self-attention để thay thế một mạng hồi quy (RNN network) để học ngữ
cảnh của các từ trong văn bản hoặc đoạn văn.
• Context-Query Attention Layer: cơ chế context-query này có ý tưởng giống với mô hình
BiDAF, đầu vào là 2 ma trận mã hóa của văn bản và đoạn văn. Đầu ra là một ma trận G, ma
trận này có số cột là chiều dài của văn bản, số hàng là 8 x d (d là hidden dim có thể chọn
là 96 hoặc 128). Ma trận G này ngoài biểu diễn thông tin của mỗi từ trong văn bản còn thể
hiện mức độ quan trọng của từ đó so với câu hỏi(query-to-context) và từ nào trong câu hỏi
liên quan với từ trong văn bản nhất (context-to-query).
• Model Encoder Layer: mô hình QANet sẽ dùng các khối Encoder để tính ra 3 ma trận M0 ,
M1 , M2 giúp xác định từ bắt đầu và từ kết thúc của mô hình. Điểm khác biệt so với BiDAF
là: BiDAF sẽ dùng 2 mạng LSTM để tạo ra 2 ma trận M1, M2, trong khi đó QANet sẽ dùng
các khối Encoder được xây dựng trên các phép tích chập và cơ chế self-attention.
Mô hình này được xây dựng trên mạng tích chập và các phép toán nhân ma trận là chủ yếu
nên mô hình chạy rất nhanh. Trên thí nghiệm với bộ SQuAD [16] thì kết quả thời gian traing
nhanh gấp từ 3 đến 13 lần, còn thời gian inference nhanh từ 4 đến 8 lần. Trong xử lý ảnh ta thấy
cơ chế tăng thêm dữ liệu (data augmentation) giúp mô hình đạt độ chính xác tốt hơn, thì trong
mô hình này nhóm nghiên cứu đã phát huy tác dụng của việc training mô hình cực nhanh bằng
cách tạo thêm dữ liệu khi dùng mô hình dịch để dịch dữ liệu từ tiếng Anh sang tiếng Pháp sau
đó dịch ngược lại tiếng Pháp sang tiếng Anh. Mô hình đạt 76.3 và 84.6 tương ứng với EM và F1
lúc công bố bài báo năm 2018.
Xử lý ảnh đã có những mô hình hình phân loại dữ liệu trên tập dữ liệu lớn, sau đó có thể dùng
làm mô hình hoặc một module cho những task nhỏ hơn hoặc từng bài toán đặc thù. Xử lý ngôn
ngữ tự nhiên thì mãi đến 2018 thì vẫn chưa có một mô hình giải quyết một bài toán tổng quát,
ngay khi ra đời vào tháng 10 năm 2018; mô hình BERT [5] tất nhiên là đánh bại các mô hình
khác về độ chính xác ở nhiều bài toán trong lĩnh vực xử lý ngôn ngữ tự nhiên. BERT lúc này đã
được cộng đồng thảo luận rất nhiều trong cả lĩnh vực học sâu vì tính đột phá của nó. Mô hình
BERT là các khối Transformer Encoder được đặt lên nhau, BERT có 2 phiên bản phiên bản cơ
bản gồm 12 khối và 24 khối đối với phiên bản lớn. Mỗi khối bao gồm một mạng feed-forward
(766 và 1024 hidden units tương ứng) và multihead attention (12 và 16 tương ứng). Đối với bài
toán QA, BERT đạt kết qura 80.8 (EM) và 88.5 (F1) với phiên bản cơ bản; cho thấy độ chính
xác tuyệt vời của mô hình chỉ với phiên bản cơ bản. Xong để đạt được mô hình có kết quả cao
như vậy cần rất nhiều thời gian tính toán.
Cuối cùng, nhóm chúng tôi chọn mô hình QANet để hiện thực vì cơ bản mô hình này cũng
dựa trên kiến trúc Transformer, một kiến trúc tương đối mới; việc hiện thực mô hình giúp
chúng tôi tìm hiểu thêm nhiều kiến thức như: positional encoding, mạng tích chập, cơ chế selffattention. Ngoài ra mô hình QANet cũng có độ chính xác cao nhất lúc công bố năm 2018, chỉ
sau khi mô hình BERT ra đời thì mới bị soán ngôi; tuy nhiên với mục đích nghiên cứu thì QANet
vẫn có nhiều kiến thức để tìm hiểu và nguồn tài nguyên phần cứng để tinh chỉnh mô hình. Đó là
những lý do mà nhóm chúng tôi chọn mô hình này để hiện thực.
11
- Xem thêm -