Đăng ký Đăng nhập
Trang chủ Xây dựng hệ thống hỏi đáp ...

Tài liệu Xây dựng hệ thống hỏi đáp

.PDF
71
1
77

Mô tả:

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

Tài liệu liên quan