一、什么是 QQP?
QQP 是英文全称:
Quora Question Pairs
由问答平台 Quora 提供,是自然语言处理任务中用于判断两句话是否语义相近(重复问题)的标准数据集。
在 GLUE Benchmark 中,它是重要的句子对分类任务之一。
二、任务目标
目标:判断两句话是否在问同一个问题(是否为重复问句)
例如:
-
Q1: "How can I learn Python fast?"
-
Q2: "What is the quickest way to pick up Python programming?"
是同义问句,标记为1
三、标签说明
标签 | 含义 |
---|---|
1 | 两个问题是语义重复(同义) |
0 | 两个问题语义不同 |
四、数据来源
-
数据来自 Quora 问答社区中的实际用户问题对
-
Quora 希望用这个数据训练模型,自动识别重复提问,提高搜索效率和问答质量
-
所有句对都经过人工标注
五、数据集规模(GLUE 版本)
数据集 | 数量(对) |
---|---|
训练集 | 363,846 |
验证集 | 40,430 |
测试集 | 390,965 |
原始 QQP 更大,GLUE 提供了标准格式,便于模型评估。
六、示例数据
question1 question2 label
What is the best way to learn Java? How do I start learning Java? 1
What is the capital of France? What is the tallest mountain in Europe? 0
解释:
-
✅ 第一个问题对表达意思非常接近
-
❌ 第二个问题对毫无关联,标为 0
七、任务难点
-
表达方式灵活多变:语序、同义词、多词替换
-
是否共享焦点(主题):例如主语略有不同
-
包含主观性或隐含语义的匹配
-
否定、比较语义对抗样本
不仅仅靠关键词,还要具备深层语义匹配能力
八、评价指标
指标 | 说明 |
---|---|
Accuracy | 分类准确率 |
F1 Score | 尤其关注对少数类(如“不同义”)的召回与精度 |
九、使用方法(HuggingFace 示例)
1. 加载数据集
from datasets import load_dataset
dataset = load_dataset("glue", "qqp")
print(dataset["train"][0])
输出示例:
{
'question1': 'What is the step by step guide to invest in share market in india?',
'question2': 'What is the step by step guide to invest in share market?',
'label': 1
}
2. 加载 Tokenizer 和 模型
from transformers import BertTokenizer, BertForSequenceClassification
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model = BertForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
3. 数据预处理
def tokenize(example):
return tokenizer(example["question1"], example["question2"], padding="max_length", truncation=True)
encoded_dataset = dataset.map(tokenize, batched=True)
4. 模型训练
from transformers import Trainer, TrainingArguments
args = TrainingArguments(
output_dir="./qqp_output",
evaluation_strategy="epoch",
per_device_train_batch_size=16,
num_train_epochs=3,
)
trainer = Trainer(
model=model,
args=args,
train_dataset=encoded_dataset["train"],
eval_dataset=encoded_dataset["validation"]
)
trainer.train()
十、实际应用场景
场景 | 应用示例 |
---|---|
搜索引擎 | 相似查询归并、重复答案聚合 |
智能问答系统 | 识别历史相似问题、快速响应 |
社交媒体评论过滤 | 检测 spam、重复帖子 |
企业客服问答匹配 | 用户问题与知识库问句匹配 |
十一、模型推荐
QQP 是评估句子级相似度建模能力的强任务之一,推荐模型包括:
-
BERT / RoBERTa / DeBERTa
-
Sentence-BERT(句向量比较)
-
SimCSE(对比学习)
-
DistilBERT(轻量化模型)
十二、总结一览
项目 | 内容 |
---|---|
数据集名称 | QQP(Quora Question Pairs) |
任务类型 | 句子对分类(二分类) |
标签含义 | 1 = 语义重复;0 = 不重复 |
来源 | Quora 用户提问数据 |
使用平台 | GLUE Benchmark / Kaggle / HuggingFace |
应用场景 | 相似问句识别、问答系统、搜索推荐 |
推荐模型 | BERT, RoBERTa, SimCSE, SBERT 等 |