关于腾讯广告算法大赛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
相关推荐
罗西的思考12 分钟前
【轻量化复刻大模型】线性注意力交互式演示
人工智能·算法·机器学习
神也畏惧菠萝22 分钟前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
美狐美颜sdk24 分钟前
视频美颜SDK中的YUV与RGBA格式有什么区别?直播APP开发解析
人工智能·计算机视觉·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
jimmyleeee36 分钟前
Agent安全之七:当智能体之间开始“互相信任”------深入理解 OWASP ASI07 不安全的智能体间通信
人工智能·安全
二哈赛车手36 分钟前
新人笔记---hermes定时功能设计,具体讲解以及可优化点
java·人工智能·笔记·spring·ai·typescript
Fluxproxy37 分钟前
大模型批量数据采集:AI 自动化工作流搭建实战
大数据·人工智能·自动化
AAwangzong40 分钟前
AI时代RPA技术解析:如何构建兼顾流程执行与智能决策的自动化平台?
人工智能·经验分享·rpa·智能体
揽星河..44 分钟前
【C语言】分支和循环
c语言·c++·算法
达达表哥1 小时前
AI综合站商业分发系统v3.1纯净版发布 附完整安装教程(排版修正版)
人工智能