Chương 1 TỔNG QUAN VỀ HỆ THỐNG HỎI ĐÁP VÀ CÁC KIẾN THỨC NỀN TẢNG Chương này trình bày một cách khái quát về các hệ thống tìm kiếm thông tin bao gồm: hệ thống hỏi đáp tự động và hệ thống hỏi đáp cộng đồng cùng với các thách thức cơ bản trong từng hệ thống. Tiếp theo, một số bài toán của hệ thống hỏi đáp cộng đồng được trình bày. Các bài toán này là các bài toán chính được giải quyết trong luận án. Cuối cùng là các mô hình học sâu cơ bản được sử dụng và đề xuất giải quyết các bài toán trong hệ thống hỏi đáp cộng đồng.
Hệ thống hỏi đáp Từ những năm 1980 đến nay tìm kiếm thông tin tập trung vào tìm kiếm văn bản trong đó máy tìm kiếm là một ví dụ. Sự gia tăng mạnh mẽ của lượng dữ liệu trên web cùng với nhu cầu truy cập tới các loại thông tin khác nhau dẫn tới hướng nghiên cứu mới trong tìm kiếm thông tin đó là hệ thống hỏi đáp (Question Answering system: QA). Hệ thống này có chức năng tự động tóm tắt câu trả lời thay vì liệt kê các tài liệu liên quan như máy tìm kiếm1. Định nghĩa hệ thống hỏi đáp Hệ thống hỏi đáp là một nhánh trong xử lý ngôn ngữ tự nhiên và tìm kiếm thông tin.
QA liên quan tới việc phát triển một hệ thống mà hệ thống này cung cấp câu trả lời cho câu hỏi được diễn tả bằng ngôn ngữ tự nhiên một cách tự động. Về khía cạnh tìm kiếm thông tin thì QA được định nghĩa như sau: QA là hệ thống IR nâng cao trong đó thông tin mà người dùng cần được diễn tả bởi ngôn ngữ tự nhiên hoặc câu hỏi của người dùng được biểu diễn qua dạng tương tác tự nhiên giữa người và máy. Còn theo khía cạnh của NLP thì QA sử dụng các kỹ thuật trong NLP như biểu diễn và hiểu câu hỏi để trích rút câu trả lời đối với câu hỏi. Như vậy chức năng chính của hệ thống QA là sinh ra câu trả lời cho câu hỏi bằng cách tìm kiếm nội dung có chứa thông tin liên quan tới câu hỏi của người dùng.
Cơ sở dữ liệu có thể là dữ liệu dạng không cấu trúc như tập văn bản hoặc có thể là dạng có cấu trúc như cơ sở dữ liệu tri thức.com/ 7 luan an Hệ thống hỏi đáp có thể chia làm hai loại: hỏi đáp miền mở và hỏi đáp miền đóng. Hỏi đáp miền mở là các câu hỏi liên quán tới mọi lĩnh vực trong khi đó hỏi đáp miền đóng câu hỏi chỉ liên quan tới miền dữ liệu cụ thể. Do đó hỏi đáp miền mở có nhiều thách thức hơn hỏi đáp miền đóng do phải trích rút thông tin từ nhiều nguồn dữ liệu phức tạp hơn. Hệ thống hỏi đáp là một trong những nỗ lực đưa ra cho người dùng câu trả lời chính xác thay vì liệt kê các văn bản liên quan.
Ví dụ hệ thống hỏi đáp LUNAR là hệ thống QA trả lời các câu hỏi về phân tích địa chất của các tảng đá được Apollo gửi về Apple Siri [9]. Sau đó hệ thống hỏi đáp được phát triển như là một trợ giúp cá nhân thông minh. Kiến trúc của hệ thống QA Câu hỏi Xử lý câu hỏi Tìm kiếm thông tin/ văn bản liên Cơ sở dữ liệu quan Xử lý câu trả lời Câu trả lời Hình 1.1: Kiến trúc chung của hệ thống QA Hình 1.1 mô tả kiến trúc chung của hệ thống hỏi đáp. Hệ thống QA bao gồm 3 thành phần chính: • Xử lý câu hỏi: câu hỏi đặt ra sử dụng ngôn ngữ tự nhiên.
Vì vậy chức năng chính của thành phần này là phân tích để hiểu yêu cầu của câu hỏi. Trước hết là việc phân tích câu hỏi để xác định câu hỏi tập trung vào cái gì. Sau đó thành phần này xác định xem câu hỏi thuộc lớp ngữ nghĩa nào. Thông thường lớp câu hỏi thường chia theo các từ để hỏi như: cái gì, ai, ở đâu, khi nào, tại sao.
Qua việc phân lớp câu hỏi modul xử lý câu hỏi có thể xác 8 luan an định loại câu trả lời tiềm năng và giúp hệ thống tìm kiếm xác định câu trả lời. Ví dụ câu hỏi: "Bác Hồ sinh ra ở đâu?. Quá trình xử lý câu hỏi sẽ phân tích xác định đối tượng cần chú ý là "Bác Hồ" và loại câu hỏi "ở đâu" có nghĩa liên quan tới vị trí, nơi chốn. • Xử lý văn bản và tìm kiếm thông tin: Modul này thực hiện tìm kiếm thông tin liên quan tới dữ liệu phân tích trong phần xử lý câu hỏi.
Quá trình này bao gồm ba công việc: Tìm kiếm, lọc và sắp xếp. Tìm kiếm ở đây là tìm kiếm các văn bản hoặc các đoạn văn bản liên quan tới thông tin được lọc ở phần xử lý câu hỏi. Có nhiều kỹ thuật được sử dụng vào công việc tìm kiếm các đoạn hoặc văn bản liên quan. Ví dụ như kỹ thuật phù hợp các từ khóa (keyword matching), đếm tần suất xuất hiện của từ khóa là những kỹ thuật phổ biến.
Sau đó các đoạn hoặc văn bản tìm được sẽ được lọc để chọn ra những văn bản hoặc các đoạn chứa câu trả lời. Cuối cùng những đoạn hoặc văn bản này sẽ được sắp xếp theo xác suất về khả năng chứa câu trả lời. Kết quả của giai đoạn này sẽ là danh sách văn bản ứng viên chứa câu trả lời. • Xử lý câu trả lời: Từ danh sách văn bản hoặc đoạn văn bản ứng viên được xác định từ giai đoạn tìm kiếm sẽ được trích rút để đưa ra câu trả lời chính xác.
Một tập hợp các luật cùng với các kinh nghiệm được sử dụng để trích rút ra câu trả lời cuối cùng. Câu trả lời được trích rút từ các văn bản liên quan được đưa ra cho người dùng. Một số hệ thống hỏi đáp còn đưa thêm phép toán thẩm định câu trả lời để đánh giá độ tin cậy của câu trả lời trước khi trả lời cho người dùng. Ví dụ, từ điển wordnet hoặc vài nguồn dữ liệu tri thức đặc biệt được dùng để thẩm định câu trả lời.
Một cách khác nữa là tìm kiếm câu trả lời trên nguồn thông tin khác, nếu câu trả lời hai hệ thống mà giống nhau thì sẽ làm tăng độ tin cậy của câu trả lời. Các cách tiếp cận tới các hệ thống QA Có nhiều cách tiếp cận để phát triển hệ thống QA. Trong đó các cách tiếp cận đều liên quan tới việc xử lý câu hỏi và phân tích văn bản liên quan của hệ thống hỏi đáp: • Phân lớp câu hỏi: Phân lớp câu hỏi là thực hiện gán câu hỏi vào một lớp câu hỏi nào đó. Một trong những cách tiếp cận đó là dựa vào luật.
Các luật thường được thiết kế thủ công. Sử dụng cách tiếp cận phù hợp mẫu (pattern 9 luan an matching) để kiểm tra một câu hỏi có liên quan tới một lớp nào đó. Nếu câu hỏi có chứa trực tiếp các từ để hỏi như who, what, where, when, whom, why có thể dễ dàng xác định lớp của câu hỏi qua ánh xạ trực tiếp. Tuy nhiên những câu hỏi nhập nhằng như câu hỏi which, what thì cần sử dụng cơ sở dữ liệu từ vựng Wordnet kết hợp với ngữ cảnh để xác định lớp câu hỏi.
Một cách tiếp cận khác để phân lớp câu hỏi sử dụng các thuật toán học máy như máy véc tơ hỗ trợ (Support Vector Machines, SVM), láng giềng gần nhất (Nearest Neighbor NN), Naive Bayes, cây quyết định. • Tiếp cận trong tìm kiếm thông tin (Information Retrieval-IR): IR liên quan đặc biệt tới hệ thống hỏi đáp. Trong hệ thống hỏi đáp mở, dữ liệu từ website là nguồn dữ liệu quan trọng. Vì vậy, IR được áp dụng một cách trực tiếp sử dụng truy vấn trong máy tìm kiếm và xử lý kết quả trả về.
Trong hệ thống hỏi đáp đơn giản, tập văn bản được xử lý trước khi câu hỏi được đưa lên hệ thống. Các câu hỏi và các thực thể được gán nhãn trong cơ sở dữ liệu văn bản được dùng để xác định loại câu trả lời và tìm ra các đoạn văn bản ứng viên cho câu trả lời. Các phương pháp tìm kiếm khác nhau nếu nguồn dữ liệu là có cấu trúc, không có cấu trúc hay bán cấu trúc. BASEBALL [10] và LUNAR [9] là hai hệ thống hỏi đáp ra đời sớm nhất sử dụng cơ sở dữ liệu có cấu trúc và câu hỏi dùng ngôn ngữ tự nhiên.
Câu hỏi ở dạng ngôn ngữ tự nhiên được chuyển sang dạng truy vấn để phục vụ cho việc trích rút ra câu trả lời từ cơ sở dữ liệu. Hệ thống hỏi đáp START2 , tất cả thông tin được biểu diễn qua cơ sở tri thức bằng một biểu thức ba ngôi lồng nhau. Chúng ta có thể hình dung ra cơ sở tri thức như là một tóm tắt cô đọng qua một cấu trúc cú pháp của câu. Phép toán 3 ngôi (ternary expression) là cách đầy đủ để biểu diễn thông tin và ánh xạ câu hỏi với các ứng viên câu trả lời một cách dễ dàng.
• Trích rút câu trả lời: Trong hệ thống hỏi đáp START, khi câu hỏi ở dạng ngôn ngữ tự nhiên được đăng lên hệ thống, câu hỏi đó sẽ được chuyển sang một dạng biểu diễn (ví dụ như dùng toán tử ba ngôi). Để tìm ra câu trả lời, câu hỏi được so sánh với các chú thích ngôn ngữ tự nhiên và nó lại được biểu diễn bằng biểu thức ba ngôi. Nếu hai biểu thức này phù hợp với nhau thì đoạn thông tin tương ứng sẽ được tìm thấy và được xử lý để đưa ra câu hỏi cuối cùng.php 10 luan an Quá trình xây dựng hệ thống hỏi đáp chia làm 3 giai đoạn chính: Phân tích câu hỏi bao gồm phân tích cú pháp, phân lớp câu hỏi và biểu diễn lại truy vấn (query reformulation); Phân tích văn bản bao gồm trích rút ra các văn bản ứng viên và xác định câu trả lời; Phân tích câu trả lời bao gồm trích rút các câu trả lời ứng viên và sắp xếp theo thứ tự liên quan tới câu hỏi. Các nhiệm vụ này cần kết hợp nhiều lĩnh vực như trí tuệ nhân tạo, xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP), phù hợp mẫu (pattern matching), tìm kiếm thông tin và trích rút thông tin.
Để phát triển hệ thống QA các nhà phát triển hệ thống kết hợp vài hoặc tất cả các hướng tiếp cận trên. Hệ thống QA yêu cầu hiểu ngôn ngữ tự nhiên và các tri thức thông thường. Các nhà khoa học đã dùng trí tuệ nhân tạo tích hợp với NLP và cơ sở tri thức. Các kỹ thuật NLP được áp dụng vào việc phân tích câu hỏi và chuyển sang dạng truy vấn.