关于腾讯广告算法大赛2025项目分析1 - dataset.py

把原始 jsonl 用户行为序列,转成模型能直接吃的张量和特征字典

一、整体定位

  1. MyDataset 读取训练数据,产出:
    • 用户序列 seq
    • 正样本 pos
    • 负样本 neg
    • token 类型
    • 各类特征
    • 时间特征相关原始时间戳
  2. MyTestDataset 读取测试/推理数据,产出
    • 用户序列 seq
    • token 类型
    • 特征
    • user_id
    • 时间信息
    • 暴露未点击集合
  3. collate_fn 在 DataLoader 拼 batch 时,把"每条样本里的字典特征"整理成规则 tensor,并额外构造时间特征。
  4. model.py 里的 BaselineModel 再把这些 tensor 转成 embedding,送入序列模型(HSTU block)做训练/预测。

二、架构设计

MyDataset

  • init:加载索引、特征表、多模态向量和 schema
  • load_offsets:加载每个用户序列的文件偏移
  • load_user_data:按 uid 从 seq.jsonl 随机读取一条用户序列
  • random_neq:随机负采样
  • getitem:把单个用户序列转成训练样本
  • len:返回训练用户数
  • init_feat_info:定义特征类型、默认值、统计信息
  • get_time_diff_bin:把时间差映射到离散桶
  • fill_missing_feat:给特征字典补默认值和多模态 emb
  • collate_fn:把 batch 样本拼成 tensor,并构造时间特征

MyTestDataset

  • init:加载推理集索引和特征配置
  • load_data_and_offsets:加载推理集偏移
  • process_cold_start_feat:把冷启动 string 特征归零
  • getitem:把单个用户序列转成推理输入
  • len:返回推理用户数
  • collate_fn:拼 batch,并额外构造曝光未点击集合

工具函数

  • save_emb:把 embedding 存成二进制文件
  • load_mm_emb:加载多模态 embedding
相关推荐
AI医影跨模态组学11 小时前
如何通过MRI识别的系膜筋膜侵犯类型关联局部晚期直肠癌的免疫微环境及肿瘤增殖活性,并进一步解释其与预后不良的机制联系
人工智能·论文·医学·医学影像
人机与认知实验室11 小时前
如何用四维矩阵建模计算性的态势感知与算计性的势态知感?
人工智能·线性代数·矩阵
编程大师哥11 小时前
C++类和对象
开发语言·c++·算法
石榴树下的七彩鱼11 小时前
OCR 识别不准确怎么办?模糊 / 倾斜 / 反光图片优化实战(附完整解决方案 + 代码示例)
图像处理·人工智能·后端·ocr·api·文字识别·图片识别
菱玖12 小时前
Transformer 架构详解
人工智能·深度学习·transformer
liangdabiao12 小时前
开源AI拼豆大升级 - 一键部署cloudflare page - 全免费 web和小程序
前端·人工智能·小程序
SimpleLearingAI12 小时前
RMSNorm:大模型的隐秘功臣?
人工智能·深度学习
burning_maple12 小时前
AI 工程实战指南:从零开始构建 AI 应用
开发语言·人工智能
桃小桃说科技12 小时前
基于深度学习的障碍物检测系统(YOLOv12完整代码+论文示例+多算法对比)
人工智能·python·目标检测·机器视觉·障碍物检测
郝学胜-神的一滴12 小时前
神经网络参数初始化:从梯度失控到模型收敛的核心密码
人工智能·pytorch·深度学习·神经网络·机器学习·软件构建·软件设计