用户兴趣建模
2026/5/10 2:32:31 网站建设 项目流程

一、用户兴趣建模 属于离线模型吗?

结论:主体是「离线训练 + 在线实时推理」

  • 训练阶段:完全离线用过去几天 / 几十天的用户行为日志,离线训练模型(DIN/DIEN/SIM),凌晨全量跑任务、更新模型权重。

  • 向量生成:分两种

    1. 离线生成用户兴趣向量每天凌晨批量给全量用户算好兴趣向量,存到Redis / 向量池 / Hive,线上直接查,不用实时算。

    2. 在线实时推理用户当下刷广告、产生新点击 / 浏览,实时更新行为序列,实时走模型推理,刷新兴趣向量。

模型训练 = 离线;兴趣向量可离线预计算,也可在线实时更新。


二、需要实时预估吗?

业务答案:不需要实时训练,但需要实时推理

  • 不用每秒重新训练模型参数

  • 但用户行为在变(刚点了口红广告),必须实时刷新兴趣向量,否则推荐还是旧偏好,效果崩。

模型几天 / 一周更一次就行;用户兴趣向量跟着用户行为实时变


三、最关键:「主目标、0/1 标签、Target Item 从哪来」

用户兴趣建模不是凭空学向量,向量是靠一个监督任务 “带出来” 的

1. 训练时的样本长这样

一条训练样本结构:

  • 输入行为序列(历史已交互物品):Item1, Item2, Item3 ... ItemN

  • Target Item(目标物品):用户下一次真实点击 / 转化的那个广告 / 商品

  • 标签:0/11 = 真的点了这个 Target Item0 = 没点

2. Target Item 来自哪里?

来自日志回溯,拿用户行为做序列拆分举个真实拆分逻辑:以某个用户一整天行为:

浏览 A → 点击 B → 浏览 C → 点击 D(真实下一次交互)

构造训练样本:

  • 历史行为序列输入:[A, B, C]

  • Target Item = D

  • 标签 = 1(真实点击了)

再负样本构造:随机抽一个用户没点过的广告 E

  • 历史序列:[A,B,C]

  • Target Item = E

  • 标签 = 0(没点)

3. 模型训练目标是什么?

模型输入:历史行为序列要预测:当前候选 Target Item 会不会被用户点击(0/1 二分类)

训练完之后:把模型最后一层隐藏层向量,拿出来当「用户兴趣 Embedding」👉 这就是你疑惑的:明明输出向量,为啥还有 0/1 标签?

  • 0/1 是训练任务的监督信号,用来把模型训收敛

  • 训好后不用这个分类结果,只扒中间的向量当用户兴趣表征


四、极简流程

  1. 离线拿用户行为日志,做序列拆分

  2. 构造:历史行为序列 + 正样本 Target (点过) + 负样本 Target (没点过) + 0/1 标签

  3. 离线训练 DIN/DIEN,做二分类任务

  4. 训练收敛后,抛弃分类头,取模型中间层作为用户兴趣向量

  5. 离线批量全量用户生成向量入库,或在线实时推理更新

  6. 给到召回、CTR、oCPX 用


2. 召回/ctr 模型训练任务,如何使用这个向量?

用户兴趣建模训出来的用户 Embedding 向量不单独干活,是喂给「召回」和「CTR 精排」当特征用的,两套模块用法完全不一样。


一、先统一:用户兴趣向量是什么

假设模型(DIN/DIEN)产出:User_Emb ∈ R¹²⁸128 维稠密向量,每一维隐含用户对美妆、3C、低价、高端、短视频素材等隐性偏好。


二、广告召回 怎么用用户兴趣向量?

1. 召回核心逻辑

召回做的是:从千万广告库里,快速挑出几百个和用户兴趣最匹配的广告

2. 具体用法(向量相似度召回)

  1. 离线阶段给每一个广告,提前训好Ad_Emb 广告向量</

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询