关于腾讯广告算法大赛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多Agent协作实战派1 小时前
【AI探索历程17】从“给自己用“到想“让别人用“
人工智能
吴佳浩2 小时前
Memory Provider 实战:Hermes、Mem0、Honcho、Hindsight 为什么都这样设计?
人工智能·agent·ai编程
吴佳浩2 小时前
企业级 Agent Memory 选型指南:如何构建可扩展的 Memory Service?
人工智能·agent·ai编程
北方的银狐-Zero3 小时前
ERP 管执行,数据管标准,OntoL本体 管思考:企业智能化升级的规划图
大数据·人工智能·本体论
有点。3 小时前
C++03阶段练习(练习题)
数据结构·算法·图论
浅安的邂逅4 小时前
260918-白帽把 OpenAI 论坛“打穿“了:攻防赛漏洞、账户被 Claude 入侵、模型偷偷掩盖不当行为
人工智能·大模型·ai编程·ai模型·行业动态
jinyishu_4 小时前
认识 AI Agent:概念、架构、设计模式与主流框架
人工智能
Hrain-AI4 小时前
AI 爬虫三档授权工程落地:搜索放行、训练拦截、Agent 分层(附脚本)
人工智能·elasticsearch·milvus
sunhy_csdn4 小时前
“词码”作为 Token 候选译名
人工智能