SubjQA phù hợp với use case review-based QA vì câu hỏi/câu trả lời thường chủ quan, không luôn match từ khóa trực tiếp và giống dữ liệu user-generated ngoài thực tế.
SQuAD giúp chuẩn hóa format QA (question, context, answer span), nhưng model giỏi SQuAD vẫn có thể yếu trên SubjQA vì domain và phong cách ngôn ngữ khác.
Extractive QA chỉ trả lời tốt nếu context chứa đáp án. Khi context là nhiều review, chất lượng hệ thống phụ thuộc mạnh vào retriever.
Span Classification xem mỗi token trong context như ứng viên cho start và end; answer là đoạn giữa hai vị trí được chọn.
Extracting Answers from Text cần offset mapping: model trả về vị trí token, còn hệ thống phải cắt lại chuỗi answer trong context ban đầu.
Tokenizing Text for QA phải encode question + context cùng lúc, giữ ranh giới giữa hai phần và metadata như attention_mask, token_type_ids, offset.
Nếu review quá dài hoặc nhiều review liên quan, cần passage để model không vượt giới hạn input length và không cắt mất answer ở cuối context.
Viết lại bằng lời của tôi
QA trên một context ngắn giống như đọc một đoạn rồi gạch chân câu trả lời. Review-based QA khó hơn vì trước tiên phải tìm đúng review trong một đống review, rồi mới gạch chân câu trả lời.
Retriever và reader là hai vai trò khác nhau: retriever quyết định “đọc chỗ nào”, reader quyết định “trả lời đoạn nào”.
Với QA, tokenizer giống bước đánh dấu bản đồ: nó cho model thấy câu hỏi và context, rồi giữ tọa độ để khi model chọn token start/end thì mình cắt lại đúng câu trả lời trong text gốc.
Không nên truncate context dài một cách mù quáng, vì QA khác classification: thông tin quyết định có thể nằm ở cuối đoạn, đúng chỗ bị cắt mất.
Gợi ý trả lời câu hỏi dẫn đường
Extractive QA khác generation như thế nào? Extractive QA chọn một span đã có trong context; generation tự tạo chuỗi trả lời mới. Vì vậy extractive QA grounded hơn vào text đầu vào, nhưng yếu khi câu hỏi cần tổng hợp hoặc diễn đạt lại.
Model tìm vị trí bắt đầu/kết thúc câu trả lời ra sao? Model encode cặp question + context, sinh start_logits và end_logits cho từng token, rồi chọn cặp start/end hợp lệ trong context có score tốt nhất.
Context ảnh hưởng chất lượng trả lời như thế nào? Nếu context không chứa đáp án, reader gần như phải đoán. Nếu context quá dài bị truncate, answer có thể bị cắt mất. Nếu context được chọn sai từ retriever, answer dù có score cao vẫn không đúng câu hỏi.
Gợi ý trả lời điều chưa rõ
Nếu câu hỏi cần tổng hợp nhiều review thay vì trích một span, extractive QA có đủ không? Thường là không đủ. Extractive QA hợp với câu trả lời nằm nguyên văn trong một passage; nếu cần tổng hợp nhiều ý kiến, cần pipeline khác như summarization/generative QA hoặc bước tổng hợp sau retrieval.
Nên đánh giá retriever và reader riêng bằng metric nào trước khi đánh giá pipeline tổng thể? Retriever nên xem recall@k hoặc ranking metric để biết passage chứa đáp án có vào top-k không. Reader nên xem exact match và token-level F1 khi đã có context đúng. Pipeline tổng thể cần xem answer cuối cùng có đúng và có grounding vào review phù hợp không.
Điều chưa rõ
Nếu câu hỏi cần tổng hợp nhiều review thay vì trích một span, extractive QA có đủ không? Xem phần trả lời bên trên.
Nên đánh giá retriever và reader riêng bằng metric nào trước khi đánh giá pipeline tổng thể? Xem phần trả lời bên trên.