Hỏi đáp cộng đồng (Community Question Answering - CQA) cũng là hệ thống hỏi đáp và tìm kiếm thông tin nhưng tiếp cận theo hướng khác. Đó là câu trả lời nhận được từ cộng đồng. Những ứng dụng này cung cấp giao diện cho phép người dùng đăng câu hỏi về bất cứ chủ đề gì và mong muốn nhận được câu trả lời từ người dùng khác. Những câu trả lời được cung cấp từ người dùng thường rõ ràng và có độ chính xác cao. Những ứng dụng như vậy thường được gọi là hỏi đáp dựa vào cộng đồng. Yahoo!Answer3 (hình 1.2) là một ví dụ. Đây là trang hỏi đáp cho phép người dùng đặt ra các câu hỏi về tất cả các lĩnh vực để mong nhận được câu trả lời từ cộng đồng và cũng có thể trả lời câu hỏi của người dùng khác. Stackoverflow4 là một hệ thống hỏi đáp về chủ đề trong lĩnh vực lập trình. Quora5 là hệ thống hỏi đáp về các nội dung liên quan tới công việc và cuộc sống hàng ngày.
3https://answers.yahoo.com/ 4https://stackoverflow.com/ 5https://www.quora.com/
Hình 1.2: Ví dụ hỏi đáp trên Yahoo!answer.
Những forum hỏi đáp cộng đồng là kênh chứa nhiều tri thức của người dùng và được các hệ thống khác và người dùng khai thác. Vì vậy hệ thống này cũng có nhiều bài toán cần được giải quyết để hệ thống ngày càng đáp ứng yêu cầu của người dùng tốt hơn.
1.2.1. Kiến trúc của hệ thống hỏi đáp cộng đồng
Hình 1.3 mô tả kiến trúc và quá trình tương tác giữa các thành phần trong hệ thống CQA. Hệ thống bao gồm quá trình xử lý câu hỏi, quá trình xử lý câu trả lời và quản lý các thành viên tham gia.
• Xử lý câu hỏi: Quá trình xử lý câu hỏi bắt đầu với việc người dùng đăng câu hỏi bao gồm phần tiêu đề và mô tả chi tiết về câu hỏi. Sau đó câu hỏi được hiển thị để người dùng khác có thể đọc và trả lời câu hỏi. Người dùng có thể bình chọn cho những câu hỏi mà mình thấy thú vị và cũng có thể gợi ý cho người dùng khác trả lời câu hỏi. Thông thường có một tỉ lệ rất nhỏ người dùng bình chọn cho câu hỏi đặt ra.
• Xử lý câu trả lời: Khi câu hỏi được người hỏi đăng lên, người dùng khác có thể đăng câu trả lời cho câu hỏi hoặc bình luận để làm rõ cho câu hỏi. Người dùng trong hệ thống có thể bình chọn cho câu trả lời của người dùng khác. Khi người hỏi thấy thỏa mãn về câu trả lời họ có thể bình chọn câu trả lời tốt nhất trong số các câu trả lời được đưa ra. Câu trả lời đó gọi là câu trả lời tốt nhất. Trong trường hợp người hỏi chưa chọn được câu trả lời tốt nhất thì hệ thống dựa vào số lượng bình chọn để chọn ra câu trả lời tốt nhất. Trong trường hợp không câu trả lời được bình chọn hoặc số bình
Hình 1.3: Kiến trúc của hệ thống CQA[1]
chọn quá ít thì câu hỏi vẫn được mở và hệ thống sẽ tự động gợi ý câu trả lời tốt nhất một cách tự động (tùy hệ thống).
• Thành viên trong hệ thống CQA: Thành viên trong hệ thống bao gồm người hỏi, người trả lời và người bình chọn. Thông tin chi tiết về người dùng được lưu vào hồ sơ người dùng. Các hoạt động của người dùng đều được module quản lý thành viên xử lý và lưu trữ.
1.2.2. So sánh hệ thống hỏi đáp tự động và hỏi đáp cộng đồng
Hệ thống hỏi đáp tự động và hệ thống hỏi đáp cộng đồng có những điểm khác nhau như sau:
• Sự khác nhau đầu tiên đó là loại câu hỏi. Hầu hết câu hỏi trong hệ thống hỏi đáp QA tự động là câu đơn (câu hỏi chỉ gồm 1 câu). Trong khi đó câu hỏi trong hệ thống CQA là câu phức tạp, câu hỏi gồm nhiều câu, nhiều ý hỏi. Ví dụ câu hỏi trong hệ thống hỏi đáp Yahoo!answer như sau:
"Em năm nay 16t ạ . Cao 1m6 nhưng lại có 36kg rất gầy luôn ạ nên đi đâu cũng bị hỏi và chê gầy @@ điều đó làm em khó chịu và đau đầu . Mặc dù em đã sử dụng sữa bột tăng cân , sữa bí đỏ tăng cân , ăn đêm , ăn nhiều . Nhưng số cân nặng đó vẫn duy trì từ lớp 6 tới lớp 10 luôn ạ :(( em tính chuyển qua dùng thuốc tăng cân thì có nên ko ? Dùng thuốc nào ? Hay có
• Điểm khác nhau thứ hai là sự khác nhau về nguồn câu trả lời. Hệ thống QA câu trả lời được lấy ra từ nguồn văn bản đối với những hệ thống QA nguồn đóng hoặc từ dữ liệu trên web với QA nguồn mở. Còn đối với hệ thống CQA câu trả lời được lấy từ kho dữ liệu CQA được đóng góp từ người dùng. Do người dùng khác nhau dẫn tới độ dài nội dung, cấu trúc và phong cách viết của mỗi người khác nhau cho nên chất lượng câu trả lời khác nhau. Đây cũng là thách thức trong hệ thống CQA khi đánh giá chất lượng câu trả lời.
• Điểm thứ ba là về chất lượng câu trả lời, liên quan tới chất lượng của hệ thống hỏi đáp. Hệ thống QA trích rút câu trả lời từ những nguồn có uy tín nên câu trả lời đáng tin cậy. Tuy nhiên trong hệ thống CQA do câu trả lời được đóng góp từ nhiều người dùng khác nhau với mức độ uy tín khác nhau. Việc xác định chất lượng câu trả lời trở thành bài toán quan trọng trong hệ thống CQA khi một câu hỏi có nhiều câu trả lời.
• Điểm khác nhau thứ tư là liên quan tới việc khai thác một số đặc trưng có sẵn trong hệ thống CQA như các bình chọn tích cực hoặc tiêu cực cho câu trả lời. Những thuộc tính này tạo ra tương tác giữa người dùng, từ đó làm giàu thêm thông tin cho hệ thống CQA đồng thời góp phần cho việc xác định chất lượng câu hỏi. Trong khi đó hệ thống QA thông thường không chứa những thuộc tính này.
• Điểm khác biệt cuối cùng đó là độ trễ khi nhận được câu trả lời của hệ thống. Đối với hệ thống QA, câu trả lời được thực hiện trích rút tự động từ văn bản nên hệ thống gần như không có độ trễ. Còn trong hệ thống CQA thì thời gian nhận câu trả lời phụ thuộc vào người dùng trả lời câu hỏi. Tất cả những đặc điểm trên dẫn tới các bài toán nghiên cứu chính của hệ thống CQA liên quan tới việc phân tích câu hỏi mà sử dụng ngôn ngữ tự nhiên trong hệ thống và liên quan tới xác định chất lượng câu trả lời. Cụ thể các bài toán và các thách thức được trình bày trong phần tiếp theo dưới đây.