CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 1.1 Tổng quan về bài toán hỏi đáp Ngày nay, với sự phát triển của xã hội, khối lượng thông tin trên không gian mạng ngày càng tăng lên một cách mạnh mẽ. Điều này dẫn đến nhu cầu lớn về các hệ thống hỏi đáp - những hệ thống trả lời tự động câu hỏi bằng cách chọn lọc thông tin từ các nguồn tri thức. Tuy nhiên, việc phát triển các hệ thống này gặp không ít thách thức về cú pháp, ngữ nghĩa hay các vấn đề biểu diễn thông tin cho bài toán hỏi đáp.
Điều này đã tạo động lực cho rất nhiều các nghiên cứu nổi bật trong những thập kỷ gần đây. Một nghiên cứu được coi là nền tảng xuất hiện sớm nhất trong giải quyết bài toán hỏi đáp có thể kể đến như hệ thống BASEBALL [1]. BASEBALL là một chương trình được phát triển bởi Green và cộng sự nhằm mục đích trả lời các câu hỏi về trò chơi bóng chày được chơi ở Mỹ. Ý tưởng của chương trình là tìm câu trả lời được lưu trữ trong thẻ với sự trợ giúp của từ điển.
Với sự tăng lên nhanh chóng về số lượng thông tin trên không gian mạng, người dùng có nhu cầu đặt các câu hỏi rất cụ thể, và muốn nhận được các câu trả lời ngắn và chính xác. Vì vậy, đã có rất nhiều các nghiên cứu trên thế giới đã được phát triển để đưa ra câu trả lời ngắn gọn và chính xác trong hệ thống hỏi đáp. Tùy vào dạng dữ liệu dùng để cung cấp câu trả lời thì các hệ thống hỏi đáp cũng có các hướng tiếp cận khác nhau. Với dữ liệu có cấu trúc như dữ liệu dạng bảng, dữ liệu dạng RDF, các nghiên cứu phát triển hệ thống hỏi đáp dựa trên các Ontology có độ chính xác cao [2], và dễ dàng triển khai trên một tập dữ liệu được xây dựng sẵn.
Ngược lại, với dạng dữ liệu văn bản tự do, không có cấu trúc thì vẫn là thách thức lớn đối với các nghiên cứu hiện nay. Với sự cải thiện rõ rệt ở khả năng tính toán của máy tính, các hướng giải quyết bài toán hỏi đáp dựa trên bộ mã hóa-giải mã đã được nghiên cứu sâu và chứng kiến sự tiến bộ vượt bậc, đặc biệt là sau khi có sự tham gia của máy học và các kỹ thuật học sâu [3] [4] [5] [6] [7] [8].1 cho thấy thống kê tổng số bài báo về lĩnh vực Hỏi đáp đã được đóng góp và chấp nhận trong Hiệp hội Ngôn ngữ học tính toán (Association for Computational Linguistics - ACL) [9] chỉ ra sự chú trọng phát triển cho lĩnh vực hỏi đáp ngày càng tăng lên rõ rệt. Việc đưa ra câu trả lời ngắn gọn và chính xác dựa trên một đoạn văn bản tự do là một thách thức đòi hỏi hệ thống phải nắm bắt được các đặc trưng cần thiết của cả câu hỏi lẫn đặc trưng của phần văn bản tự do tương ứng với câu hỏi đó. Nhiệm vụ này vừa chính xác là mục tiêu của bài toán “Đọc hiểu văn bản” trong Xử lý ngôn ngữ tự nhiên.
Các nghiên cứu hiện đại đã chú trọng áp dụng thêm nhiệm vụ máy đọc hiểu (Machine Reading Comprehension MRC) cho hệ thống hỏi đáp [10] [11] [12]. Đây cũng là hướng tiếp cận của luận văn để xây dựng một hệ thống hỏi 1 đáp dựa trên đọc hiểu văn bản. Về mặt dữ liệu, để phục vụ cho việc giải quyết hệ thống hỏi đáp theo hướng dựa trên đọc hiểu văn bản, rất nhiều bộ dữ liệu tiếng Anh cũng đã được xây dựng từ các tài nguyên hữu ích thực tế để trả lời câu hỏi bao gồm Wikipedia, Quora, Reddit, Tweeter, Stackoverflow, … [11] [13] [14] [15] [16] [17].1 Thống kê số lượng các bài báo về hỏi đáp tại ACL 1.2 Bài toán hỏi đáp dựa trên đọc hiểu văn bản Một trong những nhiệm vụ chính trong Xử lý ngôn ngữ tự nhiên là giúp máy tính có thể “đọc và hiểu” được ngôn ngữ. Để hoàn thành nhiệm vụ này, dựa trên ý tưởng kiểm tra xem một người có thể hiểu đầy đủ một đoạn văn bản hay không bằng cách yêu cầu họ trả lời các câu hỏi về đoạn văn bản đó, các nhà nghiên cứu đã tiến hành mô phỏng lại quá trình này để xác định khả năng đọc hiểu của máy trên nhiều khía cạnh khác nhau.
Cũng tương tự như bài kiểm tra ngôn ngữ của con người, đọc hiểu là một cách tự nhiên để đánh giá khả năng hiểu ngôn ngữ của máy tính. Đọc hiểu văn bản là một bài toán với đặc điểm đa dạng của đầu vào (một đoạn văn, nhiều đoạn văn, văn bản dạng bảng, …) [12]. Với bài toán gốc, đầu vào ban đầu sẽ gồm một đoạn văn bản và một câu hỏi liên quan tới đoạn văn đó. Tuy nhiên, bài toán này khó áp dụng vào thực tế, khi rất nhiều đoạn văn bản được cung cấp để tìm ra câu trả lời cho câu hỏi.
Vì vậy, trong các nghiên cứu gần đây, để ứng dụng dễ dàng hơn vào thực tiễn, các giải pháp đã được mở rộng nghiên cứu cho bài toán đọc hiểu cho nhiều đoạn văn (Multi-passage MRC). Để giải quyết tốt cả hai bài toán này, các nghiên cứu thường đi theo hướng tiếp cận xây dựng mô hình có kết quả tốt khi đọc hiểu với một đoạn văn bản và sau đó sử dụng lại mô hình đó kèm thêm bước chọn lựa văn bản ở phía trước để giải quyết bài toán với nhiều đoạn văn. Vì vậy, luận văn sẽ đề xuất hệ thống hỏi đáp đi theo hướng giải quyết 2 bài toán đọc hiểu với một đoạn văn, sau đó sẽ áp dụng chính kết quả đó vào trong bài toán đọc hiểu nhiều đoạn văn bản. Bài toán đọc hiểu văn bản cổ điểncó đầu vào gồm câu hỏi và một đoạn văn bản dẫn chứng, đầu ra là câu trả lời có thể có trong đoạn văn đó.
Ví dụ như ở hình 1.3, có các câu hỏi về một văn bản chủ đề là “Đại học Notre Dame” được dùng để làm đầu vào, nhiệm vụ của máy sẽ tìm ra câu trả lời chứa trong đoạn văn bản được cung cấp, ở trường hợp này các câu hỏi là về kiến trúc và lịch sử của ngôi trường đại học, máy sẽ dựa trên đoạn văn bản dẫn chứng để đưa ra câu trả lời tương ứng. Để làm được điều này, máy sẽ phải đọc hiểu hoàn toàn được nội dung của câu hỏi cũng như đoạn văn, từ đó đưa ra câu trả lời chính xác.2 Ví dụ về bài toán hỏi đáp dựa trên đọc hiểu Hiện này, bài toán này có thể được áp dụng rộng rãi trong nhiều hệ thống xử lý ngôn ngữ khác nhau như công cụ tìm kiếm, hệ thống đối thoại hay trợ lý ảo cá nhân.3 cho ta thấy một vài ứng dụng nổi bật hiện nay được áp dụng hỏi đáp dựa trên đọc hiểu. Khi chúng ta nhập một câu hỏi vào công cụ tìm kiếm Google, đôi khi Google có thể trả lại trực tiếp câu trả lời đúng bằng cách đánh dấu nó trong ngữ cảnh (nếu câu hỏi đủ đơn giản), ví dụ như “Trường đại học Bách khoa có bao nhiêu trường?”, kết quả trả về sẽ không chỉ còn là các trang được tìm kiếm ra nữa mà còn trực tiếp là câu trả lời chính xác kèm theo dẫn chứng. Một ví dụ khác về hệ hỏi đáp dựa trên đọc hiểu, nếu ta mở "Trợ lý ảo Cortana" trên chính máy tính có cài đặt Window OS, như được hiển thị ở phần góc dưới bên trái của máy tính, chúng ta cũng có thể hỏi nó những câu hỏi như "Thái Bình Dương rộng bao nhiêu?", Cortana sẽ trực tiếp đưa ra câu trả lời là "63,78 triệu dặm vuông".
Rõ ràng là MRC có thể giúp cải thiện hiệu suất của các công cụ tìm kiếm và hệ thống đối thoại, có thể cho phép người dùng nhanh chóng nhận được câu trả lời đúng cho câu hỏi của họ.3 Một số ứng dụng của bài toán hỏi đáp dựa trên đọc hiểu [12] 1.3 Các nghiên cứu về đọc hiểu văn bản trên thế giới Việc nghiên cứu các giải pháp giải quyết bài toán hỏi đáp dựa trên đọc hiểu đã được bắt đầu khá sớm. Ngay từ năm 1977, Lehnert và cộng sự [8] đã xây dựng một chương trình trả lời câu hỏi được gọi là QUALM được sử dụng bởi hai hệ thống hiểu câu chuyện. Độ chính xác của hệ thống nằm trong khoảng từ 30% đến 40% trên 11 tác vụ phụ khác nhau. Hầu hết các hệ thống MRC trong cùng thời kỳ là các mô hình thống kê hoặc dựa trên các luật.
Các nghiên cứu tiếp sau đó thiếu bộ dữ liệu MRC chất lượng cao nên đều không thể phát triển thêm, lĩnh vực nghiên cứu này đã bị bỏ quên trong một thời gian dài. Gần đây với sự xuất hiện của bộ dữ liệu quy mô lớn cùng với khả năng tính toán cao hơn và các kỹ thuật học sâu, đã thúc đẩy toàn bộ các nghiên cứu trong Xử lý ngôn ngữ tự nhiên nói chung cũng như các nghiên cứu về bài toán Hỏi đáp dựa trên đọc hiểu nói riêng. Một bước ngoặt cho lĩnh vực này đến vào năm 2015 [10]. Để giải quyết những nút thắt này, Hermann và cộng sự [10] đã xác định một phương pháp tạo tập dữ liệu mới cung cấp tập dữ liệu đọc hiểu được giám sát quy mô lớn vào năm 2015.
Họ cũng đã phát triển một lớp mạng học sâu để học cách đọc tài liệu và trả lời các câu hỏi phức tạp với kiến thức tối thiểu. Kể từ năm 2015, với sự xuất hiện của nhiều bộ dữ liệu được giám sát quy mô lớn và các mô hình mạng nơ-ron, lĩnh vực đọc hiểu của máy đã bước vào giai đoạn phát triển nhanh chóng. Số lượng bài báo về MRC đã tăng lên với tốc độ ấn tượng. Hiện nay, dựa trên các cách đưa ra câu trả lời cho bài toán đọc hiểu, có hai cách tổng quát để giải quyết bài toán: (i) Sử dụng phương pháp tổng hợp (Generative 4 MRC) và (ii) Sử dụng phương pháp trích xuất (Extractive MRC).
Ở cách tiếp cận thứ nhất, có thể xem đây là cách tiếp cận khó hơn khi đưa ra câu trả lời không cần thiết bắt buộc phải nằm trong đoạn văn bản được cung cấp, mà được máy tự sinh ra dựa trên các thông tin biểu diễn của chuỗi đầu vào. Điều đó giúp câu trả lời được linh hoạt hơn và phù hợp với thực tế. Tuy nhiên do việc câu trả lời tự sinh, có tính linh hoạt cao nên việc đánh giá độ hiệu quả của mô hình trở nên khó khăn hơn. Ngoài ra chi phí xây dựng bộ dữ liệu của giải pháp này cũng rất tốn kém.