文章目录
- 推荐算法技术解析:从抖音内容分发到广告竞价的架构原理与工程实践
- 一、引言
- 二、技术演进:从相似用户到行为序列
- 2.1 协同过滤为何成为起点
- 2.2 深度学习带来的两项变化
- 2.3 从固定兴趣到随候选变化的兴趣
- 2.4 实时性逐渐成为模型的一部分
- 三、核心架构:一条视频如何经过层层筛选
- 3.1 先把反馈定义清楚
- 3.2 多路召回:先保证有机会被比较
- 3.3 粗排与精排:把算力花在更值得判断的候选上
- 3.4 重排:从单条好内容到整份好列表
- 四、内容与广告:相似的预测任务,不同的价值计算
- 4.1 内容推荐为什么不能只看完播率
- 4.2 广告预估如何连接点击与转化
- 4.3 排序价值、优化目标与扣费方式要分开
- 4.4 广告进入信息流,还要通过额外约束
- 五、工程实践:把预测模型接到真实业务
- 5.1 训练样本必须还原决策发生的时刻
- 5.2 用一个可运行示例看清三个步骤
- 5.3 用户特征更新与模型训练是两件事
- 5.4 故障时怎样仍然给出可用结果
- 六、横向对比:不同产品为什么形成不同技术重点
- 6.1 先比较用户任务,再比较模型名称
- 6.2 电商与广告更依赖后续结果
- 七、落地方法:如何证明推荐系统确实变好了
- 7.1 从可信基线开始,按瓶颈升级
- 7.2 离线指标与在线效果各自负责什么
- 7.3 推荐会改变数据,所以必须保留探索
- 7.4 长期价值需要可执行的产品约束
- 7.5 生成式推荐带来了什么新方向
- 八、总结
推荐算法技术解析:从抖音内容分发到广告竞价的架构原理与工程实践
一、引言
打开抖音,连续看完几条露营视频,接下来可能出现帐篷搭建教程,也可能出现户外装备广告。表面上,系统似乎只做了一件事:发现你喜欢露营。但教程和广告出现在屏幕上的理由并不完全相同。前者需要估计内容是否值得看,后者还要考虑广告主的目标、预算、出价和转化机会。
推荐算法的核心任务,是在有限的展示位置和计算时间内,决定把什么内容展示给谁,并从后续反馈中修正判断。用户兴趣只是输入的一部分;内容供给、展示环境、业务目标和可执行约束共同决定结果。
抖音官方的算法说明介绍了召回、多轮排序、双塔模型和行为预测,也明确指出,页面中的语义标签是为了便于理解而作的简化。[1] 因而,“给用户贴几个标签,再找标签相同的视频”只能帮助入门,无法解释现代推荐系统的全部工作。
| 需要回答的问题 | 本文采用的分析视角 |
|---|---|
| 为什么刚看过某类内容,就收到更多相关推荐? | 行为序列、实时特征与兴趣更新 |
| 为什么内容不错,却没有获得很多曝光? | 候选竞争、探索机会与数据不确定性 |
| 为什么点赞多的视频未必一直被推? | 多目标预测、负反馈和列表约束 |
| 为什么广告出价高,仍可能竞争失败? | 预估效果、投放资格与预算控制 |
| 如何搭建一个可验证的推荐系统? | 数据口径、分阶段架构、实验和监控 |
资料口径:截至 2026-09-12。平台事实依据官方说明或原始论文;历史论文用于解释技术演进,不代表对应平台当前全部实现。本文给出的架构、权重、候选数量和算例均为教学设计,不能用于反推抖音内部参数,也不承诺任何固定流量。
亲爱的朋友们,创作不容易,若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的动力,谢谢大家!有问题请私信或联系邮箱:jasonai.fn@gmail.com
二、技术演进:从相似用户到行为序列
2.1 协同过滤为何成为起点
假设甲和乙都看过相同的登山视频,甲又收藏了一条路线攻略,系统便有理由把攻略推荐给乙。协同过滤利用用户与内容之间的行为关系,不要求先理解视频讲了什么。用户协同关注“谁与我相似”,物品协同关注“哪些内容经常被同一群人消费”。
难点在于,行为记录的含义并不统一。买过商品可能表示喜欢,也可能只是替别人购买;没看过视频可能源于没有机会看到。Hu、Koren 与 Volinsky 的隐式反馈研究把偏好与置信程度分开建模,说明行为次数应影响证据强弱,而不能直接当作显式评分。[2]
潜在因子模型进一步把用户和内容表示为短向量,以向量交互估计匹配程度。这样既能压缩稀疏的行为关系,也能发现人工分类之外的关联。不过,新内容缺少交互历史、兴趣突然变化,都会使纯行为方法遇到困难。内容特征与上下文因此逐渐进入模型。
2.2 深度学习带来的两项变化
第一项变化是自动学习特征组合。2016 年的 Wide & Deep 将线性部分与深度网络联合训练:前者保留容易记住的组合关系,后者通过嵌入表示推广到较少见的组合。[3] 可以把它理解为同时利用“过去确实发生过什么”和“相似情况下可能发生什么”。
第二项变化是将检索与精细判断分开。Google 在 2016 年的 YouTube 论文中描述了候选生成与排序两个阶段。[4] 原因很实际:复杂模型对少量候选做判断可行,对整个内容库逐条判断则成本过高。之后即使模型不断变化,分阶段分配计算资源的思想仍然值得借鉴。
2.3 从固定兴趣到随候选变化的兴趣
同一个人既看育儿内容,也看汽车测评。判断儿童座椅广告时,近期育儿行为可能更相关;判断汽车保养内容时,车辆相关行为又更有价值。将全部历史压成一个固定向量,容易把这些区别平均掉。
DIN 论文于 2017 年提交,其局部激活单元根据候选广告,对历史行为学习不同的关联强度。[5] 这一思路解释了为什么“用户画像”不能只是静态标签表:画像的有效表达还取决于当前要评估的候选对象。顺序、时间间隔和行为类型也可以成为进一步建模的依据。
2.4 实时性逐渐成为模型的一部分
用户刚开始研究露营,昨天训练的长期兴趣表示可能仍偏向办公室软件。2022 年字节跳动的 Monolith 论文讨论了在线训练、无冲突嵌入表,以及频率过滤、过期清理等机制,并报告其落地于 BytePlus Recommend。[6] 这证明了相关工程路线的公开存在,不能据此认定它就是抖音完整推荐系统。
| 技术路线 | 主要解决的问题 | 仍需补足的部分 |
|---|---|---|
| 协同过滤与潜在因子 | 从共同消费行为发现关联 | 新内容和突发兴趣 |
| Wide & Deep 等特征交互模型 | 联合利用稀疏特征及其组合 | 历史行为表达方式 |
| 候选相关兴趣模型 | 根据候选挑选相关历史 | 长序列成本与时间变化 |
| 在线学习与实时特征 | 缩短新反馈影响结果的时间 | 数据质量、稳定性和回滚 |
| 序列与生成式推荐 | 用统一序列形式学习行为关系 | 检索约束、服务成本和验证 |
这些路线往往共同工作。一次请求可以同时使用物品协同召回、向量召回、序列排序和规则过滤。技术演进的主线,是不断补上旧方法遗漏的信息,同时把计算费用控制在系统能承担的范围内。
三、核心架构:一条视频如何经过层层筛选
3.1 先把反馈定义清楚
推荐系统首先需要知道内容是否真正被看见。服务端下发了十条视频,不代表用户看到了十条;预加载成功也不等于有效曝光。如果把尚未进入屏幕的内容记为“不喜欢”,训练数据就会系统性失真。
| 数据对象 | 建议记录的内容 | 作用 |
|---|---|---|
| 推荐请求 | 请求标识、会话、时间、入口、实验组 | 还原一次决策的环境 |
| 展示记录 | 内容标识、位置、实际曝光事件、策略版本 | 区分被选择与真正被看到 |
| 内容反馈 | 播放时长、视频长度、点赞、收藏、跳过 | 构造不同预测任务的标签 |
| 广告反馈 | 点击、转化事件、归因窗口、事件标识 | 连接投放与后续结果 |
| 候选信息 | 作者、发布时间、内容特征、可用状态 | 支持召回、排序与过滤 |
快速划走可以作为反馈,却不能脱离场景解释:用户可能不感兴趣,也可能遇到卡顿。一次收藏对学习教程和搞笑短片的含义也不同。工程上应保留原始事件及上下文,再定义标签,避免在采集时就把复杂行为压成一个“喜欢分”。
3.2 多路召回:先保证有机会被比较
召回负责从内容库里选出可进一步计算的候选。下图是通用教学架构,阶段划分和数量仅用于说明计算如何收缩,未声称对应任何平台的实际配置。
离线与流式数据 ├── 内容处理 → 内容特征、向量索引、可推荐状态 └── 行为处理 → 用户特征、历史序列、训练样本 │ 推荐请求 → 读取上下文与实时特征 │ 多路召回:协同行为 / 双塔 / 新内容 / 热门 │ 合并去重与资格过滤 例如 3000 条 │ 粗排:低成本筛选 例如 300 条 │ 精排:多目标行为预测 例如 50 条 │ 重排:多样性、频次、列表约束 │ 返回列表 → 实际曝光与反馈 → 特征更新与训练 广告支路:投放资格 → 广告召回与预估 → 竞价与预算检查 │ 经广告位策略参与列表组装双塔把用户侧信息编码为向量q qq,把内容侧信息编码为向量v vv,一种常见匹配函数是点积s = q ⊤ v s=q^\top vs=q⊤v。内容向量可以预先计算并建立近似最近邻索引,请求到来时只计算用户向量,再快速检索候选。相似度度量与训练目标需要配套,点积不能一概等同于余弦相似度。
“露营”不必占据向量中某个可解释的固定位置。向量表示可以从行为监督和内容信息中共同学习;抖音官方页面也把双塔列为其高效召回的主力模型之一。[1] 双塔的效率来自两侧可独立编码,代价是复杂交互受到限制,因此召回相似度通常不直接作为最终展示分数。
多路召回则防止候选来源过窄。近期互动召回能跟上当前兴趣,长期兴趣召回能保留稳定偏好,新内容通路提供学习机会。合并时还需要去重和管理各路配额,否则多个通路都找到同一批热门内容,看似候选很多,实际覆盖范围依然很小。
3.3 粗排与精排:把算力花在更值得判断的候选上
粗排可以使用较少特征和较轻模型,精排再计算候选与用户历史的复杂交互。精排通常输出多个量:有效观看概率、预期观看时长、收藏概率、负反馈概率等。这里预测的是“这次展示后的行为”,不能直接拿视频累计点赞数代替。
召回与排序必须分别检查。好视频没有被召回,精排再准确也无从选择;粗排提前误删重要候选,后面更大的模型同样无法补救。因此要衡量每个阶段保留了多少有价值内容,也要关注最终体验,不能只优化最后一个模型。
3.4 重排:从单条好内容到整份好列表
十条相似视频分别打分都很高,连着播放却可能令人厌烦。重排评估的是内容放在一起后的效果,可以限制同作者重复、降低近似内容密度,并为探索留出位置。
硬约束与软偏好要明确区分。已下架内容不能依靠“扣一点分”处理;多样性则可以在相关性与重复度之间调整。实际系统还需要在多个阶段检查资格,因为内容状态、库存和广告预算都可能在请求处理期间变化。
四、内容与广告:相似的预测任务,不同的价值计算
4.1 内容推荐为什么不能只看完播率
十秒视频看完九秒,观看比例很高;十分钟教程看了六分钟,观看比例较低,却可能提供更多价值。只优化完播率,容易偏向短内容;只优化绝对时长,又可能鼓励拖长表达。标签必须结合视频长度、内容类型和用户体验解释。
YouTube 在 2021 年的官方说明中列出观看时长、满意度调查和互动等信号,并介绍通过调查估计用户认为有价值的观看体验。[7] 这提供了一个明确的行业案例:停留时间需要与满意程度一起理解。
用于讲解的内容评分可以写成:
S c o n t e n t = α p s a t i s f a c t i o n + β p e f f e c t i v e _ v i e w + γ p s a v e − δ p n e g a t i v e S_{content}=\alpha p_{satisfaction}+\beta p_{effective\_view} +\gamma p_{save}-\delta p_{negative}Scontent=αpsatisfaction+βpeffective_view+γpsave−δpnegative
这里的概率都以本次用户、候选和上下文为条件,权重是业务设计变量,不是抖音公开公式。若加入秒数或金额,需要先处理尺度差异;不能把几十秒时长和零点几的概率直接相加,再把结果称为合理的综合价值。
4.2 广告预估如何连接点击与转化
设x xx表示一次候选曝光的上下文,C CC表示点击,V VV表示规定窗口内的点击后转化,则:
p C T R = P ( C = 1 ∣ x ) , p C V R = P ( V = 1 ∣ C = 1 , x ) pCTR=P(C=1\mid x),\qquad pCVR=P(V=1\mid C=1,x)pCTR=P(C=1∣x),pCVR=P(V=1∣C=1,x)
p C T C V R = P ( C = 1 , V = 1 ∣ x ) = p C T R × p C V R pCTCVR=P(C=1,V=1\mid x)=pCTR\times pCVRpCTCVR=P(C=1,V=1∣x)=pCTR×pCVR
两者相乘依据的是条件概率链式法则,不要求点击与转化独立。这个定义适用于点击后转化路径;浏览后转化等归因方式需要另行定义事件,不能直接套用。
2018 年的 ESMM 用全部曝光样本联合训练点击任务和“点击且转化”任务,以两个预测分支的乘积构成后者输出,并共享嵌入表示。[8] 它应对只在点击样本上训练所带来的问题。这个“全部”指观测到的曝光空间,不包含从未展示的全部用户与内容组合,也不意味着所有选择偏差自动消失。
4.3 排序价值、优化目标与扣费方式要分开
| 口径 | 简化的每次曝光价值换算 | 需要注意的边界 |
|---|---|---|
| CPM,千次曝光出价 | 千次曝光出价 ÷ 1000 | 展示价值与实际结算仍受机制影响 |
| CPC,单次点击出价 | p C T R × pCTR\timespCTR×点击出价 | 点击概率的准确程度影响排序 |
| 点击后转化价值 | p C T R × p C V R × pCTR\times pCVR\timespCTR×pCVR×单次转化价值 | 先明确转化定义和归因窗口 |
| oCPM,优化千次曝光投放 | 按目标行为优化选择曝光机会 | 优化转化不等于按转化次数扣费 |
TikTok 广告帮助文档说明,竞价考虑出价与广告对用户的相关性,并区分 CPM、CPC、CPV、oCPM 等方式。[9] TikTok 与抖音是不同产品,这里引用其公开机制作为广告系统案例,不能视为巨量引擎的具体结算规则。
假设用目标 CPA 近似表示单次转化愿意支付的价值,可以做如下教学换算:
| 广告 | 预估点击率 | 点击后转化率 | 目标 CPA | 每千次曝光的转化价值换算 |
|---|---|---|---|---|
| A:吸引点击的素材 | 8% | 1% | 50 元 | 1000 × 0.08 × 0.01 × 50 = 40 1000\times0.08\times0.01\times50=401000×0.08×0.01×50=40元 |
| B:购买意图更明确的素材 | 4% | 4% | 40 元 | 1000 × 0.04 × 0.04 × 40 = 64 1000\times0.04\times0.04\times40=641000×0.04×0.04×40=64元 |
在这个简化算例里,B 的点击率与目标 CPA 都更低,换算价值却更高。但表中数值不是实际成交 CPM,也不是最终扣费公式。真实系统还要考虑质量、预算、成本控制和竞争环境,不能由排序分数直接推导账单,更不能假定所有平台都采用同一种拍卖规则。
4.4 广告进入信息流,还要通过额外约束
预算控制决定一段时间内如何分配投放机会,频次控制减少同一用户反复看到同一广告的情况,广告负载控制则管理信息流中的广告密度。如果内容分数表示满意度、广告分数表示金额,两者不能未经转换直接混排。
一种通用设计是先确定可用广告位置,再在约束下比较候选;另一种是建立经过实验校准的统一效用模型。无论哪种方式,都应保留广告标识,并把广告主效果、用户负反馈与长期访问情况同时纳入评价。
五、工程实践:把预测模型接到真实业务
5.1 训练样本必须还原决策发生的时刻
一条样本应关联请求、实际曝光及后续反馈。特征则必须来自曝光当时已经可用的信息。如果拿视频一天后的累计点赞数,去预测它早晨刚发布时的观看效果,模型已经提前知道了未来。这种时间泄漏会让离线结果很好看,上线却失效。
推荐团队需要同时管理事件发生时间和事件到达时间。补传日志、重复上报、跨设备行为都可能改变样本关联结果;去重与时间窗口应成为明确的数据规则。对于转化任务,窗口未成熟的“暂时没买”不能随意视为最终负例。
Google 的延迟反馈研究讨论了按不同延迟区间构造标签、使用成熟标签训练等方法。[10] 实际项目可以先采用清楚的等待窗口与回补规则,再评估更复杂的延迟建模。过度追求模型更新速度,却不断喂入未成熟负例,可能损害转化预测。
5.2 用一个可运行示例看清三个步骤
下面使用 Python 标准库和合成预测值,演示内容评分、同作者去重,以及广告转化价值换算。示例中的概率由人工给定,所有权重均为教学参数;它不包含模型训练、近似检索、拍卖结算或真实投放能力。
# Python 3:合成数据上的策略演示videos=[# 内容、作者、满意概率、有效观看概率、负反馈概率("v1","author_a",0.90,0.60,0.02),("v2","author_a",0.80,0.65,0.01),("v3","author_b",0.78,0.50,0.01),]defcontent_score(row):_,_,p_satisfied,p_watch,p_negative=rowreturn0.7*p_satisfied+0.3*p_watch-0.5*p_negative ranked=sorted(videos,key=content_score,reverse=True)selected,authors=[],set()forrowinranked:video_id,author=row[:2]ifauthorinauthors:continueselected.append(video_id)authors.add(author)iflen(selected)==2:breakads=[# 广告、pCTR、点击后 pCVR、目标 CPA、是否具有投放资格("A",0.08,0.01,50.0,True),("B",0.04,0.04,40.0,True),("C",0.10,0.05,100.0,False),]ad_values=[(ad_id,round(1000*pctr*pcvr*target_cpa,2))forad_id,pctr,pcvr,target_cpa,eligibleinadsifeligible]ad_values.sort(key=lambdapair:pair[1],reverse=True)print("内容列表:",selected)print("广告价值换算:",ad_values)# 内容列表: ['v1', 'v3']# 广告价值换算: [('B', 64.0), ('A', 40.0)]这个结果说明了不同层次的决策。v2 的单条得分高于 v3,但作者重复约束让 v3 获得位置;广告 C 的换算值很高,却因资格条件不满足而被过滤;B 在可用广告中获得更高换算值。两份结果仍然分开,因为内容效用与货币价值尚未建立可比较的尺度。
示例对每个作者只保留一条,是为了让效果容易观察。真实产品需要按列表长度、作者供给和用户偏好制定频次策略,还必须处理候选不足的情况。不能把这段演示里的固定限制直接解释为平台现行规则。
5.3 用户特征更新与模型训练是两件事
用户刚看完一条露营视频,可以立刻把事件加入近期历史,使下一次请求使用新的序列;这并不要求神经网络参数同时更新。在线训练则进一步用新样本更新参数。两者都能提高响应速度,但工程成本和故障范围不同。
项目初期可以先更新会话特征,配合定期训练。只有确认模型参数陈旧已成为主要瓶颈,再引入更频繁训练。对秒级兴趣变化而言,读取及时的行为序列,可能比盲目提高全量模型训练频率更直接。
5.4 故障时怎样仍然给出可用结果
| 故障或变化 | 建议处理方式 | 需要观察的指标 |
|---|---|---|
| 某一路召回超时 | 返回其他召回结果或启用备用候选 | 各通路延迟、候选覆盖率 |
| 用户实时特征缺失 | 使用带缺失标记的默认特征或基础策略 | 缺失率、受影响用户占比 |
| 精排服务异常 | 回退到已验证的轻量模型 | 超时率、负反馈、恢复时间 |
| 内容失效或广告预算变化 | 展示前再次检查可用性 | 无效候选率、预算一致性 |
| 新模型结果异常 | 按版本回滚并保留问题请求 | 分群指标、模型与特征版本 |
延迟应观察 P95、P99 等尾部情况:P99 表示约 99% 请求不超过的延迟水平。平均值正常,仍可能有一部分用户持续等待。模型、特征定义和索引版本也要协调发布,否则两侧向量来自不同版本,检索结果可能在服务不报错的情况下悄悄变差。
六、横向对比:不同产品为什么形成不同技术重点
6.1 先比较用户任务,再比较模型名称
下表依据公开材料比较四种代表场景。技术依据对应资料发布时的设计;“工程重点”是本文结合业务约束作出的分析,不是对各平台当前内部架构的完整描述。
| 场景 | 公开技术依据 | 用户正在完成的任务 | 工程重点与取舍 |
|---|---|---|---|
| 抖音内容信息流 | 双塔召回、多轮排序说明 [1] | 连续发现值得观看的内容 | 反馈变化快,需要兼顾探索与重复控制 |
| YouTube 视频推荐 | 两阶段论文与满意度说明 [4][7] | 从不同长度视频中选择下一次观看 | 兼顾相关性、观看投入与满意程度 |
| 淘宝相关推荐与广告研究 | DIN、ESMM [5][8] | 发现商品并逐步形成购买决定 | 兴趣变化与转化标签稀疏需要共同处理 |
| Meta 广告推荐 | Andromeda 工程说明 [11] | 为广告机会寻找相关候选 | 广告供给扩大时,需要提高检索能力与效率 |
抖音这类连续播放场景,为用户提供了低操作成本的发现方式。由此推导出的工程要求是:系统既要敏感地接收近期反馈,也要避免把几次连续观看误判为永久偏好。对于创作者,值得关注的是哪些观众在什么情境下持续受益,而非把所有用户的互动数混成一个质量结论。
YouTube 的公开资料展示了另一项约束:点击进入视频以后,是否觉得值得花时间,仍需继续判断。[7] 如果用户选择的是一节长课程,观看与回访可能跨越多个会话。产品设计应能区分偶然打开、认真学习和习惯性播放,否则同一个时长标签会混入不同意图。
6.2 电商与广告更依赖后续结果
在电商场景里,点击之后还有比较、下单与履约。用户频繁看相机,既可能准备购买,也可能只是研究摄影。购买一台相机后,其需求还可能转向镜头或配件。因此,兴趣建模与转化预估承担不同任务,不能认为“更喜欢看”就等于“更愿意买”。
Meta 于 2024 年公开的 Andromeda 重点讨论广告检索,包括模型、索引以及软硬件协同设计。[11] 它提示一个容易忽略的问题:当候选广告不断增加,只扩大最后阶段的排序模型,无法自动解决前面漏掉优质广告的问题。召回覆盖与计算效率同样决定最终效果。
平台之间也不适合直接按论文提升百分比排名。各自的样本、基线、业务目标和实验流量不同,提升数字没有共同分母。对自己的业务,更有价值的比较是:哪个环节正在损失用户价值,现有资料中的哪种方法能解决这个具体问题。
七、落地方法:如何证明推荐系统确实变好了
7.1 从可信基线开始,按瓶颈升级
小型内容产品可以先建立热门、时效和简单行为召回,配合可解释的排序基线。数据足以支撑个性化后,再增加双塔与复杂排序。这里的分界应由真实曝光量、内容更新速度、实验结果和团队维护能力决定,没有适用于所有业务的用户量门槛。
每次升级都要回答明确的问题:候选覆盖不足,就检查召回;顺序判断不准,就改进排序;用户连续收到重复内容,就检查列表策略;转化预估失真,就先排查标签、归因和概率校准。把问题描述为“模型不够大”,通常还不够具体。
7.2 离线指标与在线效果各自负责什么
| 层次 | 可使用的指标 | 解释时的注意点 |
|---|---|---|
| 召回 | Recall@K、内容覆盖率 | 指明相关内容集合与候选范围 |
| 排序 | NDCG@K、AUC | 排序能力不等于概率准确程度 |
| 概率预测 | LogLoss、分桶校准误差 | 分用户、内容和广告类别检查 |
| 内容体验 | 有效观看、满意反馈、留存、负反馈 | 关注长期体验与内容类型差异 |
| 广告效果 | CPA、ROAS、增量转化 | 统一归因窗口、金额和退款口径 |
| 系统运行 | 尾部延迟、错误率、特征新鲜度 | 质量改善需要在可用服务上实现 |
假设两种模型给候选的相对顺序一样,其中一种却把购买概率整体放大一倍,它们可能获得相同的 AUC,但广告价值计算会明显不同。因此,广告系统必须关心概率校准。若训练时大量抽样删除负例,也应处理采样造成的分布变化,不能把训练集上的输出直接当作真实概率。
验证集应按时间构建,并保留请求时的特征状态。线上实验宜按合适的单位稳定分组,预先确定主指标、护栏指标和观察窗口,同时报告不确定性。不能因为一天点击率上涨就结束实验,也不能只挑上涨的分群。广告预算共享和内容竞争还可能使实验组之间相互影响,需要在实验设计中检查。
7.3 推荐会改变数据,所以必须保留探索
一个视频越被展示,越容易得到新互动;只学习已曝光数据,系统可能把自己先前的选择误当作客观偏好。新作者因此难以积累证据,热门内容则不断获得更多训练样本。
有关推荐去偏的原始研究将曝光选择纳入学习和评估,提供了逆倾向加权等方法的依据。[12] 使用这类估计需要对曝光概率作出合理假设,并保证必要的覆盖;概率太小还会引起高方差。它们不能凭空恢复从未获得展示机会的内容效果。
工程上可以在明确约束下开展随机探索,或用上下文赌博机在已知收益与不确定性之间分配机会。探索比例应由实验决定,不能把网络流传的固定“流量池级别”“点赞权重”当作平台通用规律。本文引用的资料不足以支持这些数值承诺。
7.4 长期价值需要可执行的产品约束
多样性并非随意塞入无关内容,而是在相关性基础上增加作者、主题和观点的覆盖。对于“不感兴趣”等明确反馈,产品应提供有效的控制途径。收藏、停留和评论也不应被一律解释为赞同,尤其是争议内容,互动强度可能与体验质量相反。
数据使用方面,建议明确采集目的、访问范围和保留期限,并让删除与撤回能够传递到相关特征及数据流程。广告评价则应区分归因转化与增量转化:用户看过广告后购买,不足以证明购买由广告造成;可以通过适当的随机对照或保留组实验评估新增效果。
7.5 生成式推荐带来了什么新方向
2024 年的 HSTU 论文把推荐重构为生成式建模框架中的序列转换问题,为学习大规模行为序列提供了新的架构路线。[13] 这里的“生成式”不等于让聊天模型随口输出商品名称,也不意味着检索、过滤和商业约束自然消失。
结合前文的工程问题,可以推导出两条值得验证的路径:用更好的内容表示帮助新内容进入候选,用更强的序列模型理解兴趣变化。是否采用这些方法,应比较实际质量收益、响应时间和维护成本。能可靠地解释失败发生在哪一层,仍然是升级模型的前提。
八、总结
推荐系统的发展,逐步把共同消费行为、内容特征、候选相关兴趣和实时反馈纳入决策。抖音内容分发与广告推荐共享不少预测工具,却需要处理不同的价值定义:前者要判断观看是否有益,后者还要在预算与竞争中评估广告机会。
| 维度 | 核心要点 |
|---|---|
| 用户理解 | 兴趣随候选、情境和时间改变 |
| 分阶段架构 | 召回保证机会,排序判断价值,重排组织体验 |
| 内容目标 | 时长、互动和满意度需要结合解释 |
| 广告机制 | 概率、价值、预算和结算口径必须分清 |
| 数据与实验 | 曝光真实性、时间一致性和线上验证决定可信度 |
| 技术演进 | 新模型需要解决已确认的业务瓶颈 |
横向看,不同平台的差异首先来自用户任务和反馈条件;纵向看,模型演进反复解决的仍是证据不完整、反馈变化和计算受限。这两条线索交汇后,可以得到一个实用判断:推荐系统的能力,取决于它能否把真实反馈转化为准确、及时、可验证的决策。
对工程师而言,优先把曝光、特征、训练与实验连到同一套可检查的记录上;对内容创作者而言,用观众是否获得价值来解释数据;对广告主而言,同时理解目标成本、转化质量和增量效果。只有这样,模型给出的高分才有机会转化为持续的业务收益。
下一代推荐可能拥有更强的序列建模和内容理解能力,但新的表示方法也需要清楚的反馈定义。更快捕捉兴趣变化、为未知内容提供学习机会、允许用户表达和修正偏好,应与预测精度一起成为系统设计的目标。
参考资料:
- 什么是推荐系统 — 抖音
- Collaborative Filtering for Implicit Feedback Datasets
- Wide & Deep Learning for Recommender Systems — Google Research
- Deep Neural Networks for YouTube Recommendations — Google Research
- Deep Interest Network for Click-Through Rate Prediction
- Monolith: Real Time Recommendation System With Collisionless Embedding Table
- On YouTube’s Recommendation System — YouTube Blog
- Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate
- Available Bidding Methods — TikTok Ads Manager
- Handling Many Conversions per Click in Modeling Delayed Feedback — Google Research
- Meta Andromeda: Supercharging Advantage+ Automation with the Next-Gen Personalized Ads Retrieval Engine — Engineering at Meta
- Recommendations as Treatments: Debiasing Learning and Evaluation
- Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations
时效性说明:本文截至 2026-09-12 核对所列公开资料。论文和工程文章中的设计按其原始发布背景解读,不代表平台在撰写日的完整生产配置。文中未进行平台性能复现;候选数量、评分权重、广告价值及 Python 数据均为教学示例。具体投放产品的可用功能、归因与计费规则,以对应产品当时的官方说明为准。