five

philipphager/baidu-ultr_uva-mlm-ctr

收藏
Hugging Face2024-07-15 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/philipphager/baidu-ultr_uva-mlm-ctr
下载链接
链接失效反馈
官方服务:
资源简介:
Baidu ULTR Dataset - UvA BERT-12l-12h数据集是Baidu Unbiased Learning to Rank数据集的一个子集,包含了查询-文档向量和点击数据。该数据集使用了一个12层的BERT交叉编码器,该编码器在掩码语言建模(MLM)和点击率(CTR)预测任务上进行了训练,用于计算查询-文档向量(768维)。数据集可用于训练和测试点击数据,以及加载专家注释数据。点击数据集和专家注释数据集包含了丰富的特征,如查询ID、查询文本的MD5哈希、查询令牌列表、文档URL的MD5哈希、文档标题和摘要的MD5哈希、BERT CLS令牌、点击信息、位置信息、文档类型、显示时间、屏幕高度、滑动次数、BM25分数、TF-IDF分数等。

Baidu ULTR Dataset - UvA BERT-12l-12h数据集是Baidu Unbiased Learning to Rank数据集的一个子集,包含了查询-文档向量和点击数据。该数据集使用了一个12层的BERT交叉编码器,该编码器在掩码语言建模(MLM)和点击率(CTR)预测任务上进行了训练,用于计算查询-文档向量(768维)。数据集可用于训练和测试点击数据,以及加载专家注释数据。点击数据集和专家注释数据集包含了丰富的特征,如查询ID、查询文本的MD5哈希、查询令牌列表、文档URL的MD5哈希、文档标题和摘要的MD5哈希、BERT CLS令牌、点击信息、位置信息、文档类型、显示时间、屏幕高度、滑动次数、BM25分数、TF-IDF分数等。
提供机构:
philipphager
原始信息汇总

Baidu ULTR Dataset - UvA BERT-12l-12h

数据集概述

该数据集包含查询-文档向量和点击数据,是Baidu Unbiased Learning to Rank dataset的一个子集。数据集使用了一个具有12层的BERT交叉编码器,该编码器在掩码语言模型(MLM)和点击率(CTR)预测任务上进行了训练,用于计算查询-文档向量(768维)。模型文件位于model/目录下。

数据加载

加载训练/测试点击数据集

Python from datasets import load_dataset

dataset = load_dataset( "philipphager/baidu-ultr_baidu-mlm-ctr", name="clicks", split="train", # ["train", "test"] cache_dir="~/.cache/huggingface", )

dataset.set_format("torch") # [None, "numpy", "torch", "tensorflow", "pandas", "arrow"]

加载专家标注数据集

Python from datasets import load_dataset

dataset = load_dataset( "philipphager/baidu-ultr_baidu-mlm-ctr", name="annotations", split="test", cache_dir="~/.cache/huggingface", )

dataset.set_format("torch") # [None, "numpy", "torch", "tensorflow", "pandas", "arrow"]

可用特征

每个点击/标注数据集的行包含以下属性。可以使用自定义的collate_fn选择特定特征(见下文):

点击数据集

名称 数据类型 描述
query_id string Baidu查询ID
query_md5 string 查询文本的MD5哈希
query List[int32] 查询令牌列表
query_length int32 查询令牌数量
n int32 当前查询的文档数量,用于填充
url_md5 List[string] 文档URL的MD5哈希,最可靠的文档标识符
text_md5 List[string] 文档标题和摘要的MD5哈希
title List[List[int32]] 文档标题的令牌列表
abstract List[List[int32]] 文档摘要的令牌列表
query_document_embedding Tensor[Tensor[float16]] BERT CLS令牌
click Tensor[int32] 文档点击/未点击
position Tensor[int32] 排名中的位置(不一定与原始项目位置匹配)
media_type Tensor[int32] 文档类型(推荐使用标签编码,因为ID不占据连续的整数范围)
displayed_time Tensor[float32] 文档在屏幕上显示的秒数
serp_height Tensor[int32] 文档在屏幕上的像素高度
slipoff_count_after_click Tensor[int32] 点击后文档被滚动出屏幕的次数
bm25 Tensor[float32] 文档的BM25分数
bm25_title Tensor[float32] 文档标题的BM25分数
bm25_abstract Tensor[float32] 文档摘要的BM25分数
tf_idf Tensor[float32] 文档的TF-IDF分数
tf Tensor[float32] 文档的词频
idf Tensor[float32] 文档的逆文档频率
ql_jelinek_mercer_short Tensor[float32] 使用Jelinek-Mercer平滑(alpha = 0.1)的文档查询似然分数
ql_jelinek_mercer_long Tensor[float32] 使用Jelinek-Mercer平滑(alpha = 0.7)的文档查询似然分数
ql_dirichlet Tensor[float32] 使用Dirichlet平滑(lambda = 128)的文档查询似然分数
document_length Tensor[int32] 文档长度
title_length Tensor[int32] 文档标题长度
abstract_length Tensor[int32] 文档摘要长度

专家标注数据集

名称 数据类型 描述
query_id string Baidu查询ID
query_md5 string 查询文本的MD5哈希
query List[int32] 查询令牌列表
query_length int32 查询令牌数量
frequency_bucket int32 查询的月频率(桶),从0(高频率)到9(低频率)
n int32 当前查询的文档数量,用于填充
url_md5 List[string] 文档URL的MD5哈希,最可靠的文档标识符
text_md5 List[string] 文档标题和摘要的MD5哈希
title List[List[int32]] 文档标题的令牌列表
abstract List[List[int32]] 文档摘要的令牌列表
query_document_embedding Tensor[Tensor[float16]] BERT CLS令牌
label Tensor[int32] 相关性判断,范围从0(差)到4(优秀)
bm25 Tensor[float32] 文档的BM25分数
bm25_title Tensor[float32] 文档标题的BM25分数
bm25_abstract Tensor[float32] 文档摘要的BM25分数
tf_idf Tensor[float32] 文档的TF-IDF分数
tf Tensor[float32] 文档的词频
idf Tensor[float32] 文档的逆文档频率
ql_jelinek_mercer_short Tensor[float32] 使用Jelinek-Mercer平滑(alpha = 0.1)的文档查询似然分数
ql_jelinek_mercer_long Tensor[float32] 使用Jelinek-Mercer平滑(alpha = 0.7)的文档查询似然分数
ql_dirichlet Tensor[float32] 使用Dirichlet平滑(lambda = 128)的文档查询似然分数
document_length Tensor[int32] 文档长度
title_length Tensor[int32] 文档标题长度
abstract_length Tensor[int32] 文档摘要长度

示例PyTorch collate函数

每个数据集样本是一个包含多个文档的单个查询。以下示例展示了如何通过应用填充来创建包含多个查询和不同数量文档的批次:

Python import torch from typing import List from collections import defaultdict from torch.nn.utils.rnn import pad_sequence from torch.utils.data import DataLoader

def collate_clicks(samples: List): batch = defaultdict(lambda: [])

for sample in samples:
    batch["query_document_embedding"].append(sample["query_document_embedding"])
    batch["position"].append(sample["position"])
    batch["click"].append(sample["click"])
    batch["n"].append(sample["n"])

return {
    "query_document_embedding": pad_sequence(
        batch["query_document_embedding"], batch_first=True
    ),
    "position": pad_sequence(batch["position"], batch_first=True),
    "click": pad_sequence(batch["click"], batch_first=True),
    "n": torch.tensor(batch["n"]),
}

loader = DataLoader(dataset, collate_fn=collate_clicks, batch_size=16)

搜集汇总
数据集介绍
main_image_url
构建方式
该数据集源自百度无偏学习排序(Unbiased Learning to Rank)基准数据集,经阿姆斯特丹大学(UvA)团队采用基于掩码语言建模(MLM)与点击率(CTR)预测联合训练的BERT交叉编码器(12层Transformer)进行深度处理。通过该模型为每个查询-文档对生成768维的稠密向量表征,并将原始点击日志与专家标注信息整合为结构化数据。数据集以HuggingFace Datasets格式存储,包含点击数据与标注数据两个子集,前者记录用户交互行为特征,后者提供细粒度相关性标注。
使用方法
用户可通过HuggingFace Datasets库的load_dataset接口加载数据,并指定'clicks'或'annotations'子集名称。训练/测试划分通过split参数控制。数据集以查询为基本单元,每个样本包含一个查询及其关联的多篇文档,建议使用自定义collate函数对变长文档序列进行填充批处理。特征选择可通过DataLoader的collate_fn灵活过滤,仅保留建模所需的字段,从而优化内存占用与计算效率。
背景与挑战
背景概述
在信息检索与推荐系统的前沿领域,无偏学习排序(Unbiased Learning to Rank, ULTR)旨在克服用户点击行为中固有的位置偏差与展示偏差,从而提升排序模型对文档真实相关性的捕捉能力。由百度研究团队于2022年发布的开创性工作(arXiv:2207.03051)为此领域贡献了大规模真实搜索日志数据集,而philipphager/baidu-ultr_uva-mlm-ctr数据集则在此基础上,由阿姆斯特丹大学(UvA)的研究人员进一步提炼与增强。该数据集利用一个预训练于掩码语言模型(MLM)与点击率(CTR)预测任务的12层BERT交叉编码器,为查询-文档对生成了768维的稠密嵌入向量,并整合了丰富的传统检索特征(如BM25、TF-IDF)以及用户行为信号(如展示时间、滑动距离)。这一资源为探索深度语义表示如何与传统排序特征协同作用、进而缓解点击噪声对排序模型的干扰提供了关键基准,对推动工业级搜索系统的鲁棒性与公平性研究具有深远影响。
当前挑战
该数据集面临的核心挑战在于解决点击数据中根深蒂固的偏差问题,具体表现为:1)位置偏差与展示偏差,即用户倾向于点击排名靠前或视觉突出的文档,导致点击信号无法真实反映文档的相关性,传统排序模型易被误导;2)语义对齐的复杂性,预训练BERT嵌入虽富含上下文信息,但如何将其与稀疏的传统特征(如BM25)以及高维行为特征(如滑动次数、文档类型)有效融合,以避免特征冗余或维度灾难,仍是模型设计中的难点;3)构建过程中的标注稀疏性,专家标注的细粒度相关性判断(0-4级)仅覆盖有限查询,且频率桶(frequency bucket)的引入虽能缓解长尾查询偏差,却增加了训练样本分布的不平衡性;4)异构特征时间戳与缺失值处理,例如展示时间与滑动事件在真实日志中常存在噪声,需设计鲁棒的归一化与填充策略,以确保模型在离线评估与在线部署中的一致性表现。
常用场景
经典使用场景
在信息检索与无偏学习排序(ULTR)领域,该数据集为研究者提供了基于百度真实搜索引擎日志的查询-文档向量及点击行为数据。其经典使用场景在于利用预训练的BERT交叉编码器(12层)生成的768维稠密向量,结合点击率(CTR)预测任务,构建能够模拟用户点击行为的排序模型。通过将MLM与CTR联合训练,该数据集支持对位置偏差、展现时间等混杂因素的建模,从而在无偏排序学习中实现更精准的相关性估计。研究者可借助其提供的专家标注数据(0-4级相关性评分)作为金标准,系统性地评估去偏算法在真实稀疏点击场景下的表现。
解决学术问题
该数据集核心解决了搜索引擎排序学习中长期存在的点击偏差问题——用户点击行为受位置、展示样式等非相关性因素干扰,导致直接监督信号失真。通过提供细粒度的上下文特征(如展示时间、滑动次数、文档类型)与多种传统检索信号(BM25、TF-IDF、查询似然分数),它使学术界能够系统研究如何从有偏点击日志中恢复无偏相关性估计。其意义在于推动了反事实学习、因果推断与倾向性加权等理论在信息检索领域的实证验证,特别是为对比不同去偏策略(如IPW、DLA、回归估计)提供了标准化基准,显著降低了ULTR研究的实验复现门槛。
实际应用
在实际工业场景中,该数据集可直接用于优化搜索引擎的排序算法。具体而言,电商平台可借助其点击特征(如展现高度、滑动行为)训练位置感知的CTR预估模型,提升商品推荐的相关性;新闻聚合系统则能利用文档嵌入与曝光时间特征,缓解热门内容对长尾信息的压制效应。此外,该数据集提供的BERT预训练向量与BM25等传统特征的组合,为混合检索系统的落地提供了现成的特征工程模板——企业可在不依赖全量用户日志的情况下,快速验证不同排序模型(如LambdaRank、ListNet)在真实搜索流量下的效果增益,降低A/B测试的试错成本。
数据集最近研究
最新研究方向
该数据集聚焦于无偏学习排序(Unbiased Learning to Rank, ULTR)领域的前沿探索,通过引入基于BERT交叉编码器的掩码语言模型与点击率预测联合训练范式,为查询-文档相关性建模提供了高维语义表征。结合百度真实搜索日志中丰富的点击行为、位置偏差与文档展示特征,研究者可深入剖析用户交互中的固有噪声,推动去偏排序算法的迭代。当前热点方向包括利用预训练语言模型捕获深层语义匹配信号,以及融合多模态特征(如页面可见时长、滑动行为)以建模上下文感知的点击偏好。这一资源对提升搜索引擎的鲁棒性与公平性具有重要价值,尤其为工业级场景下的无偏排序研究提供了标准化基准。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务