1.3.1. Xác định chất lượng của câu trả lời
Hệ thống hỏi đáp cộng đồng là hệ thống cho phép người dùng trả lời câu hỏi mà họ quan tâm và muốn chia sẻ kiến thức. Do đó, một câu hỏi khi được đăng
lên có thể có nhiều câu trả lời ứng viên. Đây là hệ thống mở, dễ dàng chia sẻ và trao đổi thông tin dẫn tới sự tăng trưởng mạnh mẽ của các loại hệ thống này. Tuy nhiên hệ thống cũng có những điểm hạn chế. Hạn chế thứ nhất đó là nội dung đa dạng về chủ đề nhưng lại thiếu cấu trúc phù hợp với từng loại. Điểm thứ hai liên quan tới những câu trả lời kém chất lượng được tạo ra bởi một số lý do như nhận thức của người dùng về một số lĩnh vực còn hạn chế, thiếu tập trung và không chuẩn bị kĩ càng khi trả lời. Do là người dùng khác nhau nên các câu trả lời có sự khác biệt lớn về chất lượng, cấu trúc và phạm vi câu trả lời. Do đó, hệ thống CQA cần có phương pháp toàn diện khai thác câu trả lời để đưa ra câu trả lời tốt nhất của câu hỏi hoặc gợi ý câu trả lời tốt nhất cho câu hỏi mới.
Hệ thống CQA hiện tại có hai bài toán giúp người dùng tổng hợp câu trả lời tốt nhất một cách tự động đó là bài toán xếp hạng các câu trả lời ứng viên theo mức độ liên quan tới câu hỏi[16] và bài toán tóm tắt câu trả lời giúp người dùng có câu trả lời đầy đủ nhất[17]. Hai bài toán này góp phần đáp ứng tiêu chí giảm thời gian cho người dùng khi phải tìm và tổng hợp câu trả lời.
Bài toán tìm câu trả lời tốt nhất trong hệ thống hỏi đáp
Forum hỏi đáp cộng đồng ngày càng phổ biến tuy nhiên những website này hầu như không được kiểm soát. Do đó, hệ thống này có điểm hạn chế vì lý do bất kì ai cũng có thể đăng câu hỏi và trả lời câu hỏi. Ưu điểm của việc làm này đó là mọi người có thể tự do hỏi bất kì câu hỏi gì mà mình muốn và mong đợi rằng nhận được câu trả lời tốt và trung thực. Như vậy khi một câu hỏi được đăng lên sẽ có nhiều người dùng vào trả lời cho câu hỏi đó. Người hỏi sẽ phải rất nỗ lực và mất thời gian để đọc tất cả các câu trả lời đó (có những câu hỏi có đến hàng trăm câu trả lời do người dùng khác tham gia trả lời) và hiểu được chúng. Vì vậy việc đề xuất bài toán tự động tìm những câu trả lời tốt nhất trong số các câu trả lời của người dùng đã trả lời cho câu hỏi đó sẽ hỗ trợ cho người dùng có thể đánh giá và tìm được câu trả lời mong muốn một cách nhanh nhất.
Bài toán tóm tắt câu trả lời
Bài toán thứ hai nằm trong nội dung đánh giá chất lượng câu trả lời đó là bài toán tóm tắt câu trả lời. Các forum hỏi đáp là nguồn dữ liệu giàu tri thức. Nó thường chứa những thông tin về các chủ đề mà khó tìm qua máy tìm kiếm. Các câu trả lời có thể không được chuẩn bị kĩ lưỡng, chứa spam hoặc thậm chí
là những câu đùa cợt hoặc quảng cáo. Đặc biệt, một số câu hỏi dạng giải thích, quan điểm hoặc liệt kê (câu hỏi non-factoid) thì câu trả lời nhận được thường không đầy đủ kể cả những câu trả lời tốt nhất. Đây cũng là khó khăn cho người đọc khi phải đọc qua tất cả các câu trả lời này để tổng hợp câu trả lời tốt nhất. Vì lý do này mà bài toán tóm tắt câu trả lời được đặt ra hỗ trợ người dùng tổng hợp câu trả lời một cách tự động.
1.3.2. Bài toán tìm câu hỏi tương đồng
Cùng với sự phát triển của các web-forum, ngày càng có nhiều người sử dụng hệ thống này để tìm kiếm câu trả lời cho câu hỏi mà họ cần. Để hệ thống hoạt động tốt hơn và đáp ứng yêu cầu của người dùng, các hệ thống này cũng hướng tới giải quyết thách thức về độ trễ khi chờ câu trả lời từ người dùng. Thực tế cho thấy rằng có những câu hỏi khi đăng lên vài ngày sau mới nhận được câu trả lời, thậm chí là không có ai trả lời. Vấn đề này được giải quyết dựa vào ý tưởng sử dụng các câu trả lời đã có của các câu hỏi trước đó của hệ thống thông qua các câu hỏi tương đồng với câu hỏi mới. Cụ thể là thông qua việc tìm câu hỏi tương đồng của câu hỏi mới và tận dụng câu trả lời có sẵn của những câu hỏi tương đồng này để tìm ra câu trả lời cho câu hỏi mới. Điều này giúp cho hệ thống giảm thời gian chờ như đã đề cập ở phần trên.Do đó bài toán tìm câu hỏi tương đồng được đặt ra để giải quyết[18].
1.4. Thách thức của hệ thống hỏi đáp cộng đồng
Với các phân tích ở phần trên, thách thức lớn nhất của hệ thống hỏi đáp cộng đồng là vấn đề khoảng cách từ vựng (lexical gap) bao gồm:
• Khoảng cách từ vựng giữa các câu hỏi: đây là thách thức quan trọng trong hệ thống hỏi đáp nói chung. Nó liên quan tới sự sai khác trong cách dùng ngôn ngữ tự nhiên khi diễn tả giữa các câu hỏi khác nhau. Trong hệ thống cộng đồng có nhiều người dùng cho nên cách diễn đạt câu hỏi khác nhau (dùng từ vựng khác nhau) nhưng cùng diễn đạt một ý như nhau. Hơn nữa, đây lại là dữ liệu cộng đồng. Các câu hỏi được đặt ra trong hệ thống hỏi đáp cộng đồng sử dụng ngôn ngữ tự nhiên, chứa nhiều ý hỏi và phức tạp, trong câu chứa nhiều nội dung không liên quan trực tiếp tới câu hỏi và câu trả lời (ví dụ như lời chào hỏi, câu đùa cợt,...). Do vậy, việc xác định tính tương đồng của hai câu hỏi càng khó khăn.
• Khoảng cách từ vựng giữa câu hỏi và câu trả lời: giống như thách thức trên về ngôn ngữ giữa các câu hỏi, trong cặp câu hỏi-câu trả lời còn có thêm sự sai khác rất lớn do thông tin của câu hỏi và câu trả lời không đối xứng. Ngoài tiêu chí về độ chính xác của các hệ thống dự đoán còn có tiêu chí quan trọng không kém đó là tiêu chí về thời gian phản hồi thông tin của người dùng. Khi tập dữ liệu CQA ngày càng lớn thì việc xác định độ tương đồng ngữ nghĩa của câu hỏi mới với các câu hỏi trong kho dữ liệu CQA gặp thách thức về mặt thời gian. Vì vậy việc nghiên cứu bài toán tìm câu hỏi tương đồng càng có ý nghĩa.
Tóm lại, luận án giải quyết hai thách thức lớn nhất là thách thức về khoảng cách từ vựng giữa câu hỏi với câu hỏi và câu hỏi với câu trả lời. Đồng thời luận án cũng đề cập tới giải quyết thách thức về thời gian tìm kiếm trong bài toán tìm câu hỏi tương đồng. Qua đó với việc giải quyết bài toán tìm câu hỏi tương đồng cũng khắc phục độ trễ của hệ thống hỏi đáp cộng đồng như đã đề cập ở trên. Để giải quyết các thách thức trên các mô hình học sâu kết hợp với cơ chế chú ý được đề xuất để nâng cao hiệu quả của các mô hình dự đoán. Các mô hình học sâu là mô hình end-to-end mà từ dữ liệu thô đầu vào đi qua các các lớp ẩn trong mạng nơ ron và đưa ra kết quả đầu ra. Trong mô hình này, việc học đặc trưng ngữ nghĩa của văn bản và lớp dữ đoán được tích hợp và học một cách đồng thời thay vì thực hiện một cách tuần tự. Các mô hình này đã được chứng minh phù hợp với dữ liệu cộng đồng trong các bài toán hỏi của hệ thống hỏi đáp CQA.
1.5. Tập dữ liệu hỏi đáp
Để đánh giá các mô hình đề xuất, các nhà nghiên cứu đã sử dụng các tập dữ liệu phổ biến sau:
• Yahoo!webscope: Dữ liệu được thu thập từ trang hỏi đáp Yahoo!answer với đa dạng các thể loại. Đây là tập dữ liệu rất giàu thông tin chưa được gán nhãn bao gồm 87.390 câu hỏi và 314.446 câu trả lời. Tập dữ liệu này chứa rất nhiều thông tin hữu ích cho việc nghiên cứu trên các bài toán của CQA ví dụ như các thông tin về chủ đề câu hỏi, nội dung câu hỏi, mô tả chi tiết (giải thích) của câu hỏi, câu trả lời tốt nhất do người hỏi chọn và các câu trả lời khác cho câu hỏi đó. Các thông tin khác liên quan tới người hỏi, thời gian hỏi và trả lời, ngày bình chọn cho câu trả lời.
• Trec-QA: Tập TREC-QA bao gồm 1409 cặp câu hỏi-câu trả lời được chia thành 1229, 80 và 100 cặp câu tương ứng với ba tập: tập huấn luyện, tập phát triển và tập kiểm thử [19]. Tập này chứa các cặp câu hỏi dạng factoid và một câu trả lời của nó. Câu hỏi factoid là câu hỏi ngắn gọn và thường chứa từ để hỏi như what, where, when, who. Trong tập này mỗi câu hỏi chỉ có một câu trả lời và được gán nhãn POS, NER và phân tích câu phụ thuộc.
• Quora: Đây là tập dữ liệu được công bố trong cuộc thi Kaggle6. Tập dữ liệu này được thu thập từ trang hỏi đáp Quora.com bao gồm các lĩnh vực trong cuộc sống hay công việc hàng ngày. Tập dữ liệu này chứa các câu hỏi được gán nhãn duplicate (1) và non-duplicate (0) phục vụ cho bài toán tìm câu hỏi tương đồng. Trong 404.351 cặp câu hỏi có 149.306 cặp câu có nhãn 1 và
255.045 cặp câu có nhãn 0.
• SemEval: Tập này được thu thập từ forum hỏi đáp chia sẻ mọi thứ liên quan tới công việc và cuộc sống ở Qatar7. Chủ đề ở đây cũng rất phong phú và đa dạng với nhiều lĩnh vực. Đây là tập dữ liệu được công bố trong Workshop đánh giá về ngữ nghĩa8 [16, 20, 21]. Từ khía cạnh ngôn ngữ, tập dữ liệu này rất có giá trị và thách thức. Tập dữ liệu này chứa lượng lớn đặc trưng của văn bản web như URLs, biểu tượng cảm xúc, địa chỉ email, lỗi sai chính tả, kí hiệu viết tắt. Forum sử dụng ngôn ngữ tiếng Anh và là nơi trao đổi, cung cấp mọi thông tin về Qatar cho mọi người mới sống và có ý định tới sống ở đây. Do không phải là người bản ngữ dùng tiếng Anh nên câu có nhiều lỗi về mặt ngữ pháp, nhiều từ không phổ biến hoặc những từ không tồn tại.
Workshop được tổ chức hàng năm với sự tham gia của nhiều đội tuyển. Tập dữ liệu cụ thể công bố đến năm 2017. Tập dữ liệu này cũng được chia là ba tập huấn luyện, tập phát triển và tập kiểm thử chứa các câu hỏi và các câu trả lời của nó. Với mỗi câu hỏi gốc có 10 câu hỏi liên quan (được đưa qua máy tìm kiếm) và được gán ba nhãn: Perfect match, Relevant và Irrelevant. Với mỗi câu hỏi liên quan có 10 câu trả lời được gán ba nhãn Good, Bad và Potentially useful. Mỗi câu hỏi liên quan lại có 10 câu trả lời cũng được gán ba nhãn như trên.
6https://www.kaggle.com/c/quora-question-pairs/data 7https://www.qatarliving.com/forum
Bảng 1.1: Thống kê một số tập dữ liệu CQA được các nhà khoa học dùng để đánh giá các mô hình đề xuất.
Train Dev Test Tổng
Yahoo!answer 87.390 câu hỏi và 414.446 câu trả lời Trec-QA 1229 80 100 1409 cặp câu hỏi-câu trả lời
Quora 404.289 cặp câu hỏi
SemEval 2017 267 50 88 405 câu hỏi gốc và 4050 câu trả lời
Các tập dữ liệu trên được thống kê tại bảng 1.1. Khác biệt lớn nhất giữa tập Trec-QA và các tập dữ liệu còn lại đó là về đặc trưng ngôn ngữ: tập dữ liệu TREC-QA là tập dữ liệu với ngôn ngữ tiếng Anh chuẩn. Các câu hỏi chủ yếu là câu hỏi factoid và các câu hỏi thường ngắn gọn không mô tả được hết những thách thức của hệ thống hỏi đáp cộng đồng. Trong khi đó tập dữ liệu khác như Yahoo!answer, Quora, SemEval ngôn ngữ dùng là ngôn ngữ nói. Đặc biệt hơn, tập SemEval đôi khi người dùng còn dùng ngôn ngữ khác không phải tiếng Anh. Ngoài ra các tập dữ liệu như Yahoo!answer và Quora lại không chia thành các tập huấn luyện, tập phát triển và kiểm thử chuẩn. Mỗi công bố trên tập dữ liệu này lại chia tập dữ liệu thử nghiệm khác nhau nên các phương pháp được đề xuất khó so sánh với nhau. Khác biệt thứ hai là các câu hỏi trong tập CQA chứa nhiều câu hỏi mở với nhiều lĩnh vực khác nhau, còn tập TREC-QA chứa nhiều các câu hỏi factoid có nội dung ngắn gọn và rõ ràng. Khác biệt thứ 3 giữa tập dữ liệu CQA và QA là các tập CQA thường có lượng dữ liệu lớn hơn nhiều so với TREC-QA. Khác biệt cuối cùng đó là trong các tập dữ liệu CQA, tập dữ liệu SemEval có sẵn công cụ đánh giá chuẩn và được công khai. Tập dữ liệu này chứa nhiều miền dữ liệu. Vì vậy, tập dữ liệu này dễ dàng cho việc điều chỉnh và chuyển đổi miền sử dụng. Đây cũng là lý do luận án sử dụng tập dữ liệu này để thử nghiệm bài toán tìm câu hỏi tương đồng và bài toán tìm câu trả lời trong hệ thống hỏi đáp CQA.
Một khó khăn trong nghiên cứu các bài toán trên hệ thống CQA là không có tập dữ liệu chuẩn để so sánh các phương pháp với nhau. Các bảng 1.2, 1.3, 1.4, 1.5 thống kê kết quả của một số mô hình đã được đề xuất và thực hiện trên các tập dữ liệu trong nghiên cứu của Barun và cộng sự [22]. Nhiều nhà nghiên cứu sử dụng tập dữ liệu được lấy từ Yahoo!answer nhưng các tập dữ liệu huấn luyện, tập phát triển và tập kiểm thử lại khác nhau, không cố định và không công bố công khai. Trong khi nhiều tác giả lại công bố nghiên cứu của mình trên tập TREC-QA nhưng tập dữ liệu này chỉ chứa các câu hỏi factoid trong khi câu hỏi trên CQA là những câu hỏi phức tạp và dài, nhiễu. Vì vậy, khó khăn của
Bảng 1.2: Bảng kết quả MAP và MRR của một số mô hình được đề xuất và công bố trên tập TRECQA cho bài toán xếp hạng các câu trả lời ứng viên [6, 7] QA cho bài toán xếp hạng các câu trả lời ứng viên [6, 7]
Mô hình MAP MRR Bigram+Word count+CNN 71,13 78,46 Embedding+CNN+Max pooling 71,06 79,98 QA-LSTM 68,19 76,52 QA-LSTM/CNN 70,61 81,04 QA-LSTM attention 68,96 78,49 QA-LSTM/CNN attention 72,79 82,40
Bảng 1.3: Bảng kết quả của một số mô hình được đề xuất và công bố trên tập Quora trên bài toántìm câu hỏi tương đồng tìm câu hỏi tương đồng
Mô hình Precision Recall F score
Embedding LSTM 80,0 86,0 87,0
Neural token attention 81,0 95,0 87,0
Bảng 1.4: Bảng kết quả của một số mô hình được đề xuất và công bố trên tập Yahoo!answer cho bàitoán lựa chọn câu trả lời toán lựa chọn câu trả lời
Mô hình P@1
OKapi BM25 35,6
TransLM 48,5
BOW embeddings 66,8
CNN+MLP 68,5
Bảng 1.5: Bảng kết quả của một số mô hình được đề xuất và công bố trên tập Yahoo!answer cho bàitoán so sánh ngữ nghĩa câu hỏi (Question semantic matching) toán so sánh ngữ nghĩa câu hỏi (Question semantic matching)
Mô hình MAP P@10
OKapi BM25 32,5 22,9
TransLM 38,6 25,2
BOW embeddings 39,2 26,8
CNN+MLP 41,8 27,4
luận án là lựa chọn ra tập dữ liệu phù hợp để triển khai thử nghiệm trên các bài toán. Đó là lý do với mỗi bài toán trong luận án sử dụng tập dữ liệu khác nhau.
1.6. Kiến thức nền tảng về học sâu
Trong khuôn khổ luận án, một số mô hình ngôn ngữ được khai thác và sử dụng do tính hiệu quả của các mô hình này trong thời gian gần đây, đặc biệt là các mô hình ngôn ngữ mạng nơ ron. Các mô hình này phù hợp với dữ liệu lớn. Với xu hướng hiện nay, học sâu là mô hình tự động trích rút đặc trưng ngữ nghĩa của dữ liệu và kết hợp với dự đoán được tích hợp trong một mô hình duy nhất.
Mô hình ngôn ngữ là mô hình học dự đoán xác suất trên các tập văn bản. Có