关于腾讯广告算法大赛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
相关推荐
White-Legend1 小时前
第三波GPT5.4 日400刀
人工智能·ai编程
炽烈小老头1 小时前
【 每天学习一点算法 2026/03/23】数组中的第K个最大元素
学习·算法·排序算法
. . . . .1 小时前
Claude Code Hooks的原理、触发执行机制以及如何编写 Hooks
人工智能
w_t_y_y1 小时前
codex(一)下载安装&使用
人工智能
老鱼说AI2 小时前
大规模并发处理器程序设计(PMPP)讲解(CUDA架构):第四期:计算架构与调度
c语言·深度学习·算法·架构·cuda
月落归舟2 小时前
帮你从算法的角度来认识数组------( 二 )
数据结构·算法·数组
唐兴通个人2 小时前
唐兴通应邀为平安财产险北京分公司高层主讲《新媒体营销》专项培训,引领保险业AI时代内容营销变革
人工智能
阿贵---2 小时前
C++中的RAII技术深入
开发语言·c++·算法