关于腾讯广告算法大赛2025项目分析3-重读

一、初始化

1.1 数据处理:MyDataset类

  1. 实例化 init
  2. DataLoader:batch 化和并行加载
    train_loader = DataLoader(dataset, batch_size=args.batch_size,shuffle=True, num_workers=12,collate_fn=dataset.collate_fn)
    对MyDataset类的函数调用顺序:
    len →\rightarrow→ getitem ( load_user_data →\rightarrow→random_neq →\rightarrow→get_time_diff_bin) →\rightarrow→collate_fn
  3. 数据集self.
    • self.data_dir 文件夹路径,self.data_file_path文件seq.jsonl路径
    • self.seq_offsets 文件seq.jsonl每一行的起始文件指针位置偏移
    • self.maxlen 最大序列长度
    • self.mm_emb_ids 多模态特征ID汇总
    • self.itemnum用户数,self.usernum物品数
    • 字典:self.item_feat_dict物品静态特征,self.mm_emb_dict多模态嵌入embedding,
      self.indexer索引映射(用户id,物品id,特征值映射),self.indexer_i_rev反查字典,self.indexer_u_rev
    • 特征: feat_default_value:特征缺省值,feat_types特征总字典,feat_statistics特征不同类型数量
  4. 一条数据格式:seq序列ID,pos正样本ID(下一个真实访问的item),neg,token_type 序列类型:用户/物品,next_token_type,seq_feat序列特征,pos_feat正样本特征,neg_feat
  5. batch:seq, pos, neg, token_type, next_token_type, next_action_type, seq_feat, pos_feat, neg_feat, time_feat
    • seqseq1,seq2,...,seqnseq_1,seq_2,...,seq_nseq1,seq2,...,seqn,由n个用户组成
    • time_featweekday,is_weekend,hour_feat,day_of_year,week_of_year,time_deltas,action_type
    • seq,pos,neg_feat:全部处理成batch,maxseqlen 的二维或者三维 tensor

1.2 模型:BaselineModel类

1.2.1 初始化

  1. 全局配置:self.user_num,self.item_num,self.dev,self.norm_first,self.maxlen
  2. ID Embedding:self.item_emb,self.user_emb
  3. 位置编码:self.pos_emb
  4. HSTU 主干-Transformer(变式)
    • self.emb_dropout,self.emb_layernorm
    • 特征embedding容器:self.sparse_emb离散特征,self.emb_transform连续特征
    • 主干网络容器:self.attention_layers,self.attention_layernorms,self.forward_layers,self.forward_layernorms
  5. 按特征类型分组产生不同的字典,方便声明稀疏特征的Embedding Table:self.USER_SPARSE_FEAT/USER_CONTINUAL_FEAT/ITEM_SPARSE_FEAT/ITEM_CONTINUAL_FEAT/USER_ARRAY_FEAT/ITEM_ARRAY_FEAT/ITEM_EMB_FEAT
  6. user/item特征拼接 -> DNN投影层
  7. 序列建模主干:多层 HSTU + FFN

main中初始化赋值

  1. 初始化所有参数
  • user_emb,item_emb:全零化处理

  • 其他:xavier_normal

  1. 所有emb权重 padding 位置(第0行)清零

1.3 优化器:AdamW

1.4 权重衰减:args.l2_emb

1.5 学习率策略:warmup + cosine decay

2 训练

model.train:将模式设置为训练模式

从 dataloader 依次取不同的batch

2.2 model.forward

2.3 计算损失:infonce_loss

2.4 记录日志

2.5 反向传播

2.6 更新参数

3 细节处理

  1. torch.nn.
    • Embedding升维:从 ID 变成向量 ,矩阵形状(B,L)→(B,L,D)(B, L) \rightarrow (B, L, D)(B,L)→(B,L,D)
    • Dropout随机丢弃:部分元素变 0,其余放大1/(1-p)
    • RMSNorm均方根归一化:对输入特征进行缩放
    • ModuleDict层字典容器:按Key灵活调用不同的模块→\rightarrow→选择
    • ModuleList层列表容器:像 Python 列表一样存储子模块,但会向 PyTorch 注册参数→\rightarrow→顺序执行
    • Linear:
相关推荐
码视野2 小时前
基于 Vue3 + Element Plus 的【微短剧剧本智能创作与分镜生产协同系统】设计与实现(含PRD/三端源码/大屏)
前端·人工智能·vue3
axiao92 小时前
2026年呼和浩特集团品牌全域传播服务商推荐:GEO优化+短视频+网站+广告全链路机构
大数据·人工智能
朴实赋能2 小时前
妇儿医院 AI 助手怎么落地?CareWork 本地化智能体的多 Agent 协同与合规边界设计
大数据·人工智能·腾讯云ai代码助手·ai 智能体·医疗多 agent 协同·妇儿医院 ai 助手·本地化部署 ai
circuitsosk4 小时前
NL2SQL在工业级场景下的精度优化:Schema Linking + 动态Few-shot实战
人工智能·python·sql·大模型·nl2sql
9000AI4 小时前
9000AI如何工业化生产流量?高质量规模生产与矩阵化饱和覆盖
人工智能
字节数据平台5 小时前
iDA:从 ChatBI 到专业数据分析助手的演进之路
大数据·人工智能·机器学习·数据分析
warpdrivelabs5 小时前
Codex 开源 harness 全面了解
开发语言·人工智能
mit6.8245 小时前
微软如何交付企业级Agent
人工智能
Mininglamp_27185 小时前
明略科技携手海康机器人亮相世界机器人大会,以“Agent+具身“联合进入商业机器人场景
人工智能·科技·机器人·开源·agent·ai agent
2401_894915535 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎