README.md

搜广推算法工程师面经(300 题版)

本专栏为 搜索 / 广告 / 推荐算法工程师 面试与知识体系整理,每篇文章包含:完整讲解(Markdown) + 面试要点 + 记忆要点

题目覆盖:损失与优化、正则与泛化、评估指标、特征交互、序列与图模型、多任务、双塔与召回、向量检索、特征工程、排序与上下文、多目标、拍卖与策略、安全与治理、实时与存储、模型 Serving、大模型与推荐、开放设计、编程与算法等。


先读导读(推荐)

不想对着题号硬啃?可以顺着一条故事线把 300 题串起来读:


目录结构

模块 题号 说明
损失函数与优化理论 1–10 交叉熵、Focal Loss、InfoNCE、排序学习、标签平滑、温度缩放、梯度裁剪、L-BFGS
正则化与泛化 11–20 L1/L2、Dropout、早停、BN/LN、权重衰减、谱归一化、数据增强、蒸馏、自监督
评估与指标 21–30 AUC/GAUC、LogLoss、NDCG、校准、延迟反馈、位置偏置、LTV、离线-在线一致性
特征交互网络 31–40 FM/FFM、DeepFM、xDeepFM、DCN、AutoInt、FiBiNET、MaskNet
序列与时序建模 41–50 DIN、DIEN、DSIN、BST、SIM、ETA、多行为序列
图神经网络 51–60 GCN、GraphSAGE、PinSage、LightGCN、NGCF、KGAT、归纳能力
多任务与多场景 61–70 Shared-Bottom、MMOE、PLE、ESMM、STAR、多任务损失加权
模型压缩与高效推理 71–80 蒸馏、QAT、BNN、NAS、早退、嵌入表压缩、低秩分解
双塔模型 81–90 DSSM、负采样、温度系数、难负样本、MIND、ComiRec
序列召回 91–100 SASRec、BERT4Rec、S3-Rec、长序列、实时兴趣、多行为
图召回 101–110 DeepWalk、Node2Vec、LINE、图嵌入、知识图谱、分区训练
向量检索 111–120 ANN、LSH、PQ、OPQ、HNSW、IVF、增量更新、多模态
特征工程 121–130 分桶、交叉特征、哈希、序列聚合、实时特征、文本/图像特征
深度排序模型 131–140 Wide&Deep、DeepFM、NFM、DCN、xDeepFM、LorentzFM、FinalMLP
上下文感知 141–150 位置偏置、PAL、时间/设备/地理、会话、跨域
多目标优化 151–160 CTR/CVR、观看时长、帕累托、约束优化、LTV、因果
拍卖理论 161–170 GSP、VCG、pacing、RTB、频控、品牌安全、增量价值
推荐策略 171–180 多臂老虎机、LinUCB、多样性、新颖性、覆盖率、公平性、负反馈
内容安全与治理 181–190 有害内容、虚假信息、版权、未成年人、偏见审计、可解释性
实时计算 191–200 Flink、Checkpoint、窗口、反压、流批一体、状态、延迟
存储与检索 201–210 特征存储、向量库、倒排压缩、冷热分层、缓存一致性、分布式事务
模型 Serving 211–220 TF Serving、Triton、量化部署、A/B 测试、降级、全链路监控
大模型与推荐 221–250 LLM 推荐器、生成式推荐、RAG、幻觉、多模态、微调、Agent、评估
开放设计与实战 251–270 TikTok/YouTube/淘宝/广告/信息流等系统设计、从0到1、趋势
编程与算法 271–300 AUC、TopK、矩阵分解、DIN 注意力、负采样、LSH、UCB、压测等

使用方式

  • 按题号在对应模块下查找文章(文件名为 001.md300.md,按题号存放于对应模块目录)。
  • 每篇文章含 完整讲解 + 面试要点 + 记忆要点,便于掌握与复习。
  • 建议搭配 300 题漫游指南 按主题线通读后再精刷。

单页复习页 study.html

build_study_html.py 聚合全库 Markdown。改文后执行:

pip install markdown
python build_study_html.py

展示文案见 study_html_meta.txt(三行:主标题、副标题、可选浏览器标题)。


共 300 题,覆盖搜广推算法与工程全栈。

300题漫游指南.md

300 题漫游指南:从损失函数到系统设计——搜广推的一天

文中所有可点击的链接都会跳转到对应面试题的详解。

建议边读边点,像翻地图一样逛完 300 个知识点。

「单页 + 目录 + 搜索」:本地 study.html;在线 Pages(勿用 Raw)。内容由 build_study_html.py 生成,改稿后请重新运行脚本并提交 study.html


序章:明天要面「搜广推」,今晚只有一夜

你收到 HR 的消息:面试范围是 搜索 / 广告 / 推荐算法,请系统准备。

「搜广推」三个字背后,是从损失函数与优化评估指标特征与模型(FM/DeepFM/序列/图/多任务)、召回与排序(双塔、向量检索、精排)、到工程与系统(实时、存储、Serving)、再到大模型与开放设计的整条链路。所以范围特别大。

你打开那份 300 题 清单——从 交叉熵与类别不平衡简化版 Spark RDD,从 Focal LossTikTok/淘宝/YouTube 系统设计——密密麻麻,像一张从「损失与优化」画到「编程与算法」的长卷。

说白了:前面是「模型怎么训、怎么评估」,中间是「特征怎么交互、序列怎么建、图怎么用、多任务怎么拆」,后面是「怎么召回、怎么排序、怎么上工程、怎么接大模型」。你心想:这哪是 300 题,这是 300 个「推导一下」「和某某有什么区别」「你们怎么做的」的连环拷问。光背题号容易忘,不如把整条链路串成一条线,记故事比记列表轻松。

与其对着题号硬啃,不如换一种玩法:按「一天搞懂搜广推」的顺序,从早晨的损失与优化,到上午的评估与特征模型,中午的召回与排序,傍晚的工程与系统,入夜的大模型与开放设计,最后收尾于编程与算法。

  • 早晨 打地基:损失函数与优化正则化与泛化
  • 上午 定标准与建模型:评估与指标特征交互序列与时序图网络多任务与多场景
  • 中午 做召回与精排:模型压缩双塔序列召回图召回向量检索特征工程深度排序上下文多目标
  • 下午 接业务与系统:拍卖理论推荐策略内容安全与治理实时计算存储与检索模型 Serving
  • 入夜 看前沿与设计:大模型与推荐开放设计与实战
  • 收尾 手写与实现:编程与算法

三百个知识点,都藏在这条线里;读到哪,点到哪,跳过去就是那道题的详解。不用一次看完,当闲书翻也行。

准备好了?我们开始。


一、早晨:地基——损失与优化、正则与泛化

搜广推的模型训练,离不开损失函数优化。CTR/CVR 用交叉熵、排序用 Pairwise/Listwise、对比用 InfoNCE;类别不平衡上 Focal Loss、校准用温度缩放、训练稳定用梯度裁剪。你想想:面试官问「你们正样本很少怎么训」,答 Focal Loss / 样本加权 / 重采样,都要能讲清梯度层面的区别。

交叉熵与类别不平衡Focal Loss 推导与 γInfoNCE 与互信息RankNet 与 PairwiseListNet vs ListMLE标签平滑温度缩放与蒸馏样本权重与损失加权梯度裁剪L-BFGS 在推荐中:这一串是损失与优化的必考池,建议至少把交叉熵梯度、Focal Loss、InfoNCE、RankNet 讲顺。

正则化与泛化决定模型会不会过拟合、能不能泛化到线上。L1/L2 与贝叶斯先验Dropout 在 Wide&Deep 中早停与 L2 等价性BN 在推荐中的陷阱与 Layer Norm权重衰减与 Adam数据增强与蒸馏知识蒸馏软硬标签自监督与 MLM 在推荐中:推荐里稀疏特征多,BN 容易踩坑,LN 更常用;面试会问「你们怎么防过拟合」。

早晨结束,地基打好了;下一步是 怎么评估、指标怎么选


二、上午(上):标准——评估与指标

评估与指标要回答:离线看什么、线上看什么、离线-在线为什么不一致。AUC/GAUC、LogLoss、NDCG、校准、延迟反馈、位置偏置、LTV、多目标帕累托,都是高频题。

AUC 与线上收益GAUC 计算与意义LogLoss 与 AUC 冲突NDCG 归一化因子点击率校准延迟反馈 ES-DFM位置偏置评估LTV 与因果离线-在线不一致:用人话说,GAUC 按用户/组算 AUC 再平均,比全局 AUC 更反映真实排序能力;延迟反馈是「转化晚到」要专门建模。面试一句「你们离线看什么、线上看什么」就能扯出一串,建议把 AUC/GAUC、校准、延迟反馈讲顺。


三、上午(下):模型——特征交互、序列、图、多任务

特征交互网络是精排的基础:FM/FFM、DeepFM、xDeepFM、DCN、AutoInt、FiBiNET、MaskNet 等,核心都是「怎么显式/隐式建模二阶和高阶交叉」。FM 二阶分解 O(kn)DeepFM 共享 EmbeddingDCN Cross NetworkxDeepFM CIN:面试常考「DeepFM 和 DCN 区别」「CIN 怎么做的」。

序列与时序:DIN、DIEN、DSIN、BST、SIM、ETA、多行为序列——从「注意力加权历史」到「兴趣演化」「Session 分割」「长序列线性复杂度」。DIN 注意力与 AUDIEN 兴趣演化SIM Hard/Soft Search多行为融合:用人话说,DIN 是「当前候选和历史的注意力」;SIM 解决长序列,先搜再精。

图神经网络:GCN、GraphSAGE、PinSage、LightGCN、NGCF、KGAT、归纳能力。GCN 谱卷积与空间域GraphSAGE 采样LightGCN 简化冷启动与归纳:推荐里常用空间域或采样式 GNN,面试会问「过度平滑」「新节点怎么嵌」。

多任务与多场景:Shared-Bottom 负迁移、MMOE/PLE 门控、ESMM 样本空间、STAR 星型、多任务损失加权。MMOE 门控PLE 层分离ESMM CTR-CVRUncertainty Weighting:ESMM 是「曝光→点击→转化」共享空间、解决 CVR 样本少,面试必问。

上午结束,评估和主模型线都齐了;中午是 召回与精排的完整链路


四、中午:召回与精排——双塔、序列、图、向量、排序

模型压缩与高效推理(71–80)、双塔模型(81–90)、序列召回(91–100)、图召回(101–110)、向量检索(111–120)、特征工程(121–130)、深度排序模型(131–140)、上下文感知(141–150)、多目标优化(151–160)——这一整块是「怎么召回、怎么精排、怎么多目标」。

双塔:DSSM 语义匹配负采样与 In-batch Negative温度系数难负样本挖掘MIND/ComiRec 多兴趣088:面试会问「双塔负采样怎么做的」「有没有难负样本」「多兴趣怎么建」。

序列召回:SASRec/BERT4Rec/S3-Rec长序列切片实时兴趣;图召回:DeepWalk/Node2VecLINETransE 知识图谱。向量检索:ANN/LSH/PQ/OPQ/HNSW/IVF增量更新多模态与过滤:HNSW、IVF、PQ 是常考索引,面试会问「你们向量检索用啥、为什么」。

特征工程:分桶与交叉哈希与嵌入实时特征文本/图像特征。深度排序:Wide&Deep/DeepFM/NFM/DCN/xDeepFMFinalMLP。上下文:位置偏置与 PAL时间/设备/地理。多目标:ESMM 联合建模帕累托与约束LTV 与因果

中午过完,召回和精排的主线都齐了;下午是 广告、策略、安全、实时与 Serving


五、下午:广告、策略、安全、实时与 Serving

拍卖理论(161–170):GSP、VCG、pacing、RTB、频控、品牌安全、增量价值——广告主必考。GSP 纳什均衡VCG 激励相容pacing 控制RTB 100msIncrementality PSM

推荐策略(171–180):多臂老虎机、LinUCB、多样性/新颖性/覆盖率、公平性、负反馈。UCB 与 Thompson SamplingLinUCBMMR 多样性公平性

内容安全与治理(181–190):有害内容、虚假信息、版权、未成年人、偏见审计、可解释性、用户控制。

实时计算(191–200):Flink Checkpoint、状态后端、窗口与反压、流批一体、实时特征、状态 TTL。Exactly-Once反压流批一体

存储与检索(201–210):特征存储、向量库 Milvus/Faiss、倒排压缩、冷热分层、缓存一致性、分布式事务。特征存储选型Embedding 向量库缓存一致性

模型 Serving(211–220):TF Serving、Triton、量化部署、A/B 测试、降级、全链路监控。版本与金丝雀动态批处理A/B 与正交

下午结束,工程与业务线都齐了;入夜是 大模型与推荐、开放设计


六、入夜:大模型与推荐、开放设计与实战

大模型与推荐(221–250):LLM 当推荐器、Prompt 设计、生成式推荐、RAG、幻觉、多模态、微调/LoRA、推理加速、与传统模型级联、评估;指令微调、RLHF、世界模型、多智能体、可解释性、跨语言、个性化、流式、安全对齐、成本优化;推荐 Agent、对话式推荐、长期记忆、涌现与偏见、联邦、持续学习、预训练任务、多目标输出、评估基准。用人话说:大模型能当生成式推荐、当 Agent 做多轮与工具调用,但要解决幻觉、延迟和成本;面试会问「你们有没有用 LLM 做推荐」「和传统模型怎么配合」。

LLM 推荐器 Prompt生成式推荐RAG 与知识库幻觉与事实性LoRA 微调推荐 Agent评估基准

开放设计与实战(251–270):TikTok/YouTube/淘宝/Google 广告/Facebook/Uber/Netflix/Spotify/Airbnb/LinkedIn 等系统设计;从 0 到 1、效果停滞破局、多团队协同、伦理审查、国际化、增长与成本、专利与团队、趋势判断。面试官一句「设计一个某某推荐系统」就能扯出一套,建议按「召回→粗排→精排→重排→策略」+「实时/存储/Serving」准备一个通用框架,再套到具体业务。

TikTok 推荐设计淘宝爆款与长尾从 0 到 1趋势判断


七、收尾:编程与算法

编程与算法(271–300):实现 AUC、TopK、矩阵分解、DIN 注意力、负采样、LSH、UCB、图采样、Beam Search;特征存储、负载均衡、流式指标、AB 分流、缓存、Embedding 增量、剪枝、分布式同步、压测;自动微分、稀疏注意力、TransE、REINFORCE、PSM、PageRank、Count-Min Sketch、Raft、B+ 树、Spark RDD。既有「手写一个某某」的代码题,也有「设计数据结构/方案」的设计题。

AUC 流式TopK 堆与快选矩阵分解 SGD/ALSDIN 注意力实现负采样与修正AB 分流压测方案RaftSpark RDD


尾声:一日终了,300 题都在这里

交叉熵与类别不平衡简化版 Spark RDD,这一日漫游把 300 题 的关键词都串进了一条线:损失与优化 → 评估与指标 → 特征/序列/图/多任务 → 双塔/召回/向量/排序/多目标 → 拍卖/策略/安全/实时/存储/Serving → 大模型与推荐 → 开放设计 → 编程与算法。你不用一次记完,可以当故事读;每条线底下,都挂着一串可点的链接。

  • 若你想按模块或题号查,直接看 总目录 README
  • 若你想先通读故事再精刷,就顺着这篇指南一段段往下点。

两样配合用,效果更好。祝面试顺利,早日上岸。


本文为「搜广推算法工程师面经(300 题版)」漫游导读,所有链接指向本仓库内对应题目的 Markdown 文章。

01-损失函数与优化理论/001.md

第 1 题:交叉熵损失的梯度推导,为什么在类别不平衡时会导致模型偏向多数类?

题目

交叉熵损失的梯度推导,为什么在类别不平衡时会导致模型偏向多数类?


完整讲解

一、二分类交叉熵与 softmax 交叉熵

二分类:设标签 ,模型输出概率 (sigmoid),交叉熵损失为

对 logit 求导:,链式法则得

梯度 = 预测概率 − 真实标签;预测越准,梯度越小。

多分类:设 类,标签 one-hot 为 ,softmax 输出 ,则

同样有「梯度 = 预测 − 标签」的形式;对正确类

二、为什么类别不平衡会导致偏向多数类?

设正类样本数 (负类多)。总损失 = 所有样本损失之和,梯度 = 所有样本梯度之和。

  • 每个样本对梯度的贡献形式相同(),但负类样本数量多,所以负类样本贡献的梯度总和在数值上占优。
  • 为降低总损失,优化器会优先「把负类判对」(因为负类样本多,判对一点就能降很多损失),导致决策边界向正类一侧移动,正类更容易被判成负类,即模型偏向多数类(负类)。
  • 从梯度更新角度:负类样本产生的梯度方向占主导,参数更新会朝「更好拟合负类」的方向走,正类学得不足。

三、常见缓解手段

  • 类别权重 / 损失加权:对正类样本的损失乘以 (如 ),使正负类在总梯度中的贡献更平衡。
  • 重采样:过采样正类或欠采样负类,使每轮看到的正负比例更均衡(等价于在期望意义下给样本加权)。
  • Focal Loss:对易分样本降权,让难分样本(多为少数类)主导梯度。
  • 阈值移动:训练后降低正类判定阈值,提高召回,缓解「预测概率整体偏小」的问题。

面试要点

  • 能写出二分类 / 多分类交叉熵对 logit 的梯度:(或 )。
  • 能说清「多数类样本数多 → 总梯度被多数类主导 → 为降总损失模型更倾向判多数类 → 少数类被压制」。
  • 能列举 2~3 种缓解方法:加权、重采样、Focal Loss、阈值移动,并说明加权/重采样在梯度层面的等价性(期望梯度一致)。

记忆要点

  • 交叉熵对 logit 梯度:;预测越准梯度越小。
  • 类别不平衡时:多数类样本数多 → 总梯度以多数类为主 → 模型为降损失偏向多数类,少数类召回差。
  • 缓解:损失加权 / 重采样、Focal Loss、阈值移动;加权与重采样在期望梯度上可等价。

返回模块 | 返回总览

01-损失函数与优化理论/002.md

第 2 题:Focal Loss 的完整推导,γ=0 和 γ=2 时梯度形态的变化,何时会失效?

题目

Focal Loss 的完整推导,γ=0 和 γ=2 时梯度形态的变化,何时会失效?


完整讲解

一、动机与形式

Focal Loss 用于类别不平衡(如检测中前景极少):普通交叉熵对「易分样本」( 已很大)仍给不小梯度,易分样本数量多时总梯度被它们主导,难分样本(多为少数类)学不好。FL 通过对易分样本降权,让难分样本主导训练。

(当 )或 (当 ),即真实类的概率。交叉熵为 。Focal Loss 定义为

  • :类别权重,常取 (正类)与 (负类),用于平衡正负。
  • 调制因子(易分)时 ,损失与梯度被压低; 小(难分)时接近 1,损失基本保留。

二、梯度推导

设二分类、。统一写 对 logit 的导数(sigmoid): 时为 ,在 时为 。为写梯度,令 (正类),则

结合 可得对 的梯度;形式中含 的因子。

关键:相对普通交叉熵的梯度 ,FL 多了一个因子 (以及一项与 有关的项)。 大时该因子小,易分样本梯度被压制 小时梯度保留,难分样本主导更新

三、γ=0 与 γ=2 时梯度形态

  • γ=0,FL 退化为带类别权重的交叉熵,没有「易分样本降权」效果;梯度形态与普通加权 CE 一致,仍会被易分样本数量主导。
  • γ=2(常用): 对易分样本压制更强; 时调制因子 = 0.01,梯度约为无调制时的 1%;难分样本( 小)梯度接近正常。梯度分布更集中在难分样本上,适合严重不平衡。

四、何时会失效

  • 极端不平衡且难样本极少:若少数类不仅少而且大多「易分」(如简单负样本很多、难负样本极少),FL 仍可能让简单样本占主导;需配合更好的负样本挖掘或数据构造。
  • γ 过大:γ 太大时 压得过狠,有效梯度几乎只来自极难样本,训练不稳定、收敛慢,甚至欠拟合。
  • 任务本身不需要强聚焦:若数据较均衡或难易分布均匀,用 FL 收益有限,反而增加调参(γ、α)成本;普通 CE 或加权 CE 即可。

面试要点

  • 能写出 Focal Loss 形式 并说明调制因子 的作用(易分降权、难分保留)。
  • 能口述梯度中「多出 类因子,故易分样本梯度变小」。
  • γ=0 即加权 CE;γ=2 常用,易分样本梯度被明显压制。
  • 失效场景:极端不平衡且难样本很少、γ 过大、或数据本身较均衡时不必用 FL。

记忆要点

  • FL = 压低易分样本损失与梯度。
  • γ=0 → 退化为加权 CE;γ=2 → 易分样本梯度约被压到 1% 量级,难分样本主导。
  • 失效:难样本极少、γ 过大、或数据较均衡时收益小/不稳定。

返回模块 | 返回总览

01-损失函数与优化理论/003.md

第 3 题:对比学习中 InfoNCE Loss 与互信息下界的关系,负样本数 N→∞ 时的极限行为?

题目

对比学习中 InfoNCE Loss 与互信息下界的关系,负样本数 N→∞ 时的极限行为?


完整讲解

一、InfoNCE 形式

设有一个 query 和一个正样本 (与 配对),以及 个负样本 。记 为温度,相似度用点积或余弦。InfoNCE 定义为

把正样本相似度做 softmax 分子、正+负做分母,等价于 N 类分类「正确类为正样本」的交叉熵;因此也叫「N-way 分类」形式的对比损失。

二、与互信息下界的关系

为联合分布、 为从边缘分布采样的负样本。可以证明:InfoNCE 是互信息 的一个下界(在特定假设下)。

直观理解:最小化 InfoNCE ⇔ 让 的相似度相对负样本尽量大,即拉大正对与负对的 logits 差距,等价于让 的表示更「一致」、与无关负样本更「分离」,从而增加 之间的互信息。形式上有

因此 越小,互信息下界越高;对比学习是在最大化该下界,从而最大化互信息。

三、N→∞ 的极限行为

  • 负样本数 N 增大:分母中负项求和更多,若负样本与 的相似度普遍小于正样本,则分母随 N 线性增大,正确类的 softmax 概率会变小,损失会变大(在相同模型下);为保持低损失,模型必须把正对拉得更近、把负对推得更远,即学习更紧的表示
  • N→∞ 的理论极限:在「负样本从真实边缘分布 i.i.d. 采样」的假设下,有工作证明 InfoNCE 随 N→∞ 趋近于 等形式,与互信息更直接相关;即负样本越多,InfoNCE 越接近对互信息的更好估计,梯度估计也更准(负样本多,对比更充分)。
  • 工程上:N 大训练更稳、表示更好,但计算和显存成本增加;常用 in-batch negative(batch 内其他样本当负样本)折中。

面试要点

  • 能写出 InfoNCE 的 softmax 形式(正样本做分子,正+负做分母),并说明等价于 N 类交叉熵。
  • 能说「InfoNCE 是互信息的一个下界;最小化 InfoNCE 等价于最大化该下界,从而增大互信息」。
  • N 越大:对比越充分,下界越紧、表示学习越好;N→∞ 时理论上趋近对互信息的更好估计;工程上用 in-batch negative 折中。

记忆要点

  • InfoNCE = 正样本相似度 / (正 + 所有负) 再取负对数;等价 N 类 CE。
  • 与互信息:InfoNCE 是 的下界;最小化 InfoNCE ⇒ 最大化互信息下界。
  • N→∞:负样本越多,下界越紧、梯度越准;工程上 in-batch negative 折中 N 与算力。

返回模块 | 返回总览

01-损失函数与优化理论/004.md

第 4 题:排序学习中 RankNet 的梯度推导,为什么 Pairwise 比 Pointwise 更适合排序?

题目

排序学习中 RankNet 的梯度推导,为什么 Pairwise 比 Pointwise 更适合排序?


完整讲解

一、RankNet 的 Pairwise 设定

RankNet 做相对排序:不预测绝对分数,而是对文档对 建模「 是否应排在 前面」。设文档 的模型输出为 ,定义 (i 相关于 j)的概率为

标签 :若 应排在 前则 ,否则为 0(或 0.5 表示平手)。损失用交叉熵:

二、梯度推导

,则 。对 的梯度(与二分类 CE 一致):

再链式到

即:文档 的梯度 = ,文档 的梯度 = ;两者大小相等、方向相反。若 (i 应排前)但 ,则 得到正梯度(升高)、 得到负梯度(降低),符合直觉。

一个文档会出现在多个 pair 中,其总梯度 = 所有相关 pair 的梯度之和,可 batch 或 mini-batch 求和后更新。

三、为什么 Pairwise 比 Pointwise 更适合排序?

  • 目标一致:排序关心的是相对顺序,不是绝对分数是否接近某个标量。Pointwise 把排序当回归/分类,学的是「每文档一个分数」,损失与 NDCG/MAP 等排序指标不对齐;Pairwise 直接优化「谁该在谁前面」,与排序目标更一致。
  • 标注利用:排序标注多是相对(A>B>C)或等级,Pairwise 天然用文档对;Pointwise 需要把等级转成分数或类别,信息损失或噪声更大。
  • 鲁棒性:绝对分数易受标注尺度、偏差影响;相对比较更稳定,Pairwise 只依赖相对关系。
  • Listwise 更优但更贵:Listwise(如 ListNet、LambdaMART)直接对整列表的排列或 NDCG 优化,与评估最一致,但计算和实现更复杂;Pairwise 是精度与复杂度之间的良好折中,RankNet、LambdaRank 都是 Pairwise 系。

面试要点

  • 能写出 与交叉熵损失,并推导
  • 能说明 Pairwise 直接优化相对顺序,与排序指标一致;Pointwise 学绝对分数,与 NDCG 等不对齐;Listwise 更准但更复杂。

记忆要点

  • RankNet:,CE 损失;梯度
  • Pairwise 优于 Pointwise:排序看相对顺序,Pairwise 直接建模「谁前谁后」,与 NDCG 等一致;Pointwise 学绝对分数,目标不对齐。

返回模块 | 返回总览

01-损失函数与优化理论/005.md

第 5 题:ListNet vs ListMLE,Listwise 方法的计算复杂度瓶颈在哪里?

题目

ListNet vs ListMLE,Listwise 方法的计算复杂度瓶颈在哪里?


完整讲解

一、Listwise 思想

Listwise 方法用整个文档列表作为训练单位,损失基于列表级的排列或概率,与 NDCG 等列表指标更一致。常见两种:ListNet(基于排列概率的 top-one 近似)ListMLE(基于列表似然)

二、ListNet

  • 把「理想排序」和「预测排序」都看成排列分布;ListNet 用 top-one 概率来近似:即「排第一的文档是哪个」的分布。
  • 理想 top-one:按标签得分做 softmax;预测 top-one:按模型得分做 softmax。损失为两者之间的交叉熵(或 KL),即对「谁该排第一」的分布做 CE。
  • 复杂度:只需对当前列表做一次 softmax(按标签/按预测),O(L) 前向与梯度,L 为列表长度;不枚举排列,因此可行。但 top-one 只是排列的一个粗糙近似,对「第二、第三是谁」不直接建模。

三、ListMLE

  • 列表似然:把「正确排序」视为一个排列 ,定义在给定模型下该排列的似然(即按 顺序依次「当前文档排第一」的连乘概率),取负对数作为损失。
  • 形式等价于:按真实顺序依次做 softmax(每次在「剩余文档」中选当前最相关的),损失 = 这些 softmax 的负对数和。
  • 复杂度:要按顺序做 L 次 softmax,每次候选集从 L 减到 L-1、…、1,单样本是 O(L²) 级别(或 O(L) 次、每次 O(L) 的 softmax);列表越长越贵,且实现要处理「剩余集合」的 mask 与归一化。

四、Listwise 的复杂度瓶颈

  • 排列空间巨大:完整排列分布有 L! 种,无法显式计算。ListNet 用 top-one 近似,避免枚举;ListMLE 用似然,只沿一条正确路径计算,但也要沿路径做多次 softmax。
  • 瓶颈
  • ListNet:单列表 O(L),瓶颈在列表长度 L 和 batch 内列表数;可接受。
  • ListMLE:单列表 O(L²) 或 O(L·L),L 大时(如 L=100)明显变慢;且需要「按真实顺序」构造计算图,实现更复杂。
  • 工程上:常对列表做截断(只取 top-L),或采样子列表;或改用 Pairwise(RankNet/LambdaRank)折中复杂度与效果。

面试要点

  • ListNet:用 top-one 概率近似排列分布,损失为两分布 CE;复杂度 O(L),不枚举排列。
  • ListMLE:列表似然,按真实顺序依次 softmax 连乘取负对数;复杂度 O(L²) 级,L 大时贵。
  • Listwise 瓶颈:排列数 L! 不可枚举;ListNet 用 top-one 降为 O(L);ListMLE 沿一条路径但要多次 softmax,O(L²)。

记忆要点

  • ListNet:top-one 排列近似 + CE,O(L)。
  • ListMLE:列表似然,按真实顺序多次 softmax,O(L²)。
  • 瓶颈:ListNet 可接受;ListMLE 的 L 次 softmax 与剩余集合处理是主要成本。

返回模块 | 返回总览

01-损失函数与优化理论/006.md

第 6 题:标签平滑(Label Smoothing)的贝叶斯解释,推荐场景中 ε 的最佳取值范围?

题目

标签平滑(Label Smoothing)的贝叶斯解释,推荐场景中ε的最佳取值范围?


完整讲解

一、做法

对 one-hot 标签 (如 其余为 0),标签平滑改为

即正确类从 1 变为 ,错误类从 0 变为 (或均匀 ,两种写法略有不同,总和为 1 即可)。常用

二、贝叶斯解释

  • 硬标签 相当于「正确类概率=1、其余=0」的信念,即认为标注绝对正确,没有不确定性。
  • 软标签 相当于给标注一个先验不确定性:以概率 相信标注,以概率 均匀分给其他类;等价于在「标注」与「均匀先验」之间做插值。
  • 从正则角度:软标签防止模型对正确类输出过度自信(logit 无穷大),使 logits 更平滑,校准更好,泛化往往更稳。

三、推荐场景中 ε 的取值

  • 推荐/CTR:类别常为二分类或多类(如点击/未点击、多目标),样本不平衡、噪声较大。 太小(如 0.01)几乎无效果;太大(如 0.3)会削弱正类信号,效果可能变差。
  • 经验范围:多数工作用 0.1~0.2;0.1 最常用,稳定且有一定平滑与校准效果。在点击率等任务上可先试 0.1,再按验证集 AUC/校准曲线微调。
  • 与噪声的关系:标注噪声大时可略大(如 0.15~0.2),相当于更不信「硬标签」;数据很干净时可略小(如 0.05~0.1)。

面试要点

  • 能写出软标签形式 并说明总和为 1。
  • 贝叶斯解释:在「相信标注」与「均匀先验」之间插值,相当于给标注加不确定性,起到正则与校准作用。
  • 推荐场景:ε 常用 0.1~0.2,0.1 为默认起点;噪声大可略增。

记忆要点

  • 软标签:;正确类 1→,其余 0→
  • 贝叶斯:标注不确定性先验,正则 + 校准,防过度自信。
  • ε 推荐:0.1~0.2,默认 0.1;噪声大可略大。

返回模块 | 返回总览

01-损失函数与优化理论/007.md

第 7 题:温度缩放(Temperature Scaling)的校准原理,与模型蒸馏中温度系数的联系?

题目

温度缩放(Temperature Scaling)的校准原理,与模型蒸馏中温度系数的联系?


完整讲解

一、温度缩放做法

对 logits ,softmax 改为

即标准 softmax; 时分布更平滑(概率差变小); 时更尖锐(更自信)。校准阶段:在验证集上只学习一个标量 ,不动其他参数,使验证集上的预测概率与真实频率更一致(如按概率分桶后,桶内准确率接近桶中心概率)。

二、校准原理

  • 模型常过度自信:预测概率 0.9 的样本里真实正确率可能只有 0.7。校准目标是让「预测概率 ≈ 实际正确率」。
  • 温度缩放:放大 (如 T=2)会压低高 logit、抬高低 logit,softmax 输出整体变平滑,极端高概率被拉低,从而缓解过自信,使 ECE(期望校准误差)等指标下降。
  • 单参数、只调 ,几乎不增加推理成本;通常用验证集最小化 NLL 或校准损失得到

三、与蒸馏中温度的联系

  • 蒸馏:教师 softmax 用温度 得到软标签 ,学生拟合 时也用相同 时软标签更平滑,暗含「类间相似度」等 dark knowledge,学生更容易学。
  • 联系:都是对 logits 除以 再 softmax;蒸馏里 控制软标签的平滑程度,校准时 控制输出概率的平滑程度以匹配真实分布。数学形式相同,用途不同:蒸馏用 传知识,校准用 修概率。
  • 区别:蒸馏通常训练时用 、推理时学生用 (或固定 );校准时推理阶段也保留 ,专门用于提升校准。

面试要点

  • 温度缩放: 使分布更平滑,缓解过自信,单参数校准。
  • 校准原理:过自信时高概率被高估,放大 拉平分布,使预测概率更接近真实频率。
  • 与蒸馏:同一形式 ;蒸馏用 生成软标签传知识,校准用 做后处理修概率。

记忆要点

  • 温度缩放:softmax 前 logits 除以 平滑、校准过自信。
  • 校准:单参数 ,验证集调,使预测概率与真实频率一致。
  • 蒸馏:同一 形式;蒸馏是训练时软标签,校准时推理时修概率。

返回模块 | 返回总览

01-损失函数与优化理论/008.md

第 8 题:样本权重重采样 vs 损失函数加权,在梯度更新层面的等价性条件?

题目

样本权重重采样 vs 损失函数加权,在梯度更新层面的等价性条件?


完整讲解

一、两种做法

  • 损失加权:对样本 的损失乘权重 ,总损失 ,梯度
  • 重采样:按权重改变样本被采到的概率(如 ),每轮 batch 内样本 出现次数期望 ,梯度为 (未再乘 ),但期望等于「按 加权的梯度」当采样概率正比于 时。

二、等价性条件

  • 期望意义:若重采样时样本 被采中的概率 ,且每个被采样本的梯度贡献为 (不再乘权),则一个 epoch 内梯度的期望 = ,与「损失加权后求梯度」在期望上一致(差一个全局常数倍,可由学习率吸收)。
  • 等价条件
    1)采样概率严格正比于 (如带放回采样);
    2)batch 内每个样本只计一次梯度(不按出现次数再乘);
    3)比较的是同一优化步数/同一数据扫过次数下的期望梯度。
    满足时,期望梯度等价;单步方差可能不同(重采样带来采样方差)。

三、实现差异与注意点

  • 加权:实现简单,每个 batch 固定,梯度就是 ;但若 差异大,可能梯度方差大,需配合梯度裁剪或小学习率。
  • 重采样:过采样少数类时,同一少数样本会重复出现,等价于给该样本更大「有效权重」;欠采样多数类时,多数样本被看到次数少,等价于降权。与加权在期望上可一致,但 epoch 内看到的样本集合不同(重采样会重复/缺失),一个 epoch 的更新次数可能不同,需注意「一个 epoch」的定义(按样本数还是按 batch 数)。

面试要点

  • 能说清:重采样使样本出现概率 、梯度不乘权时,期望梯度 ,与损失加权等价(期望意义)。
  • 等价条件:采样概率正比权重、每样本梯度贡献不重复乘权、在期望与同一数据扫过下比较。
  • 实现:加权简单;重采样有采样方差,且 epoch 定义需统一。

记忆要点

  • 加权:;重采样:采中概率 ,梯度 ,期望
  • 等价:期望梯度一致,当采样概率正比 、每样本梯度不重复乘权时成立。
  • 差异:加权实现简单;重采样有采样方差,epoch 内样本分布不同。

返回模块 | 返回总览

01-损失函数与优化理论/009.md

第 9 题:梯度裁剪(Gradient Clipping)的 L2 norm vs Global norm,推荐场景哪种更稳定?

题目

梯度裁剪(Gradient Clipping)的L2 norm vs Global norm,推荐场景哪种更稳定?


完整讲解

一、两种方式

  • 按参数裁剪(L2 norm per param):对每个参数的梯度向量单独做 L2 范数裁剪,若 则缩放到 。各参数各自为政,互不影响。
  • Global norm(全局范数):先算所有参数梯度拼成一个大向量的 L2 范数 ,若 则把所有梯度整体乘以 。所有参数同比例缩放,保持方向不变。

二、区别与性质

  • Global norm:保持梯度方向不变,只缩小步长;适合「整体梯度爆炸、但方向仍可信」的情况(如 RNN、Transformer)。PyTorch 的 clip_grad_norm_、TensorFlow 的 clip_by_global_norm 即此类。
  • 按参数 L2:不同参数可被裁到不同「长度」,相对比例会变,方向可能被扭曲;若某层梯度特别大,只裁该层,其他层不变,可能加剧层间不平衡。

三、推荐场景哪种更稳定

  • 推荐模型:常为大规模稀疏(Embedding + 稠密 MLP),梯度在不同参数上差异大:Embedding 梯度稀疏、MLP 梯度稠密,且不同特征/样本对梯度贡献不均。
  • 更稳的通常是 Global norm
    1)统一尺度,避免某一块梯度极大导致更新过猛、其他块几乎不动;
    2)不改变方向,优化更可预测;
    3)实现简单、超参少(一个 )。
  • 按参数 L2 在推荐里较少用,除非有明确需求(如只保护某几层)。实践中推荐用 Global norm,阈值 常用 1.0 或 5.0,按验证集/训练曲线微调。

面试要点

  • Global norm:所有梯度拼成向量求 L2,超阈值则整体缩放,方向不变;按参数 L2:每参数单独裁,方向可能变。
  • 推荐场景:Global norm 更稳,统一尺度、不扭曲方向、超参少;推荐模型梯度差异大,Global 更合适。

记忆要点

  • Global norm:整体梯度 L2 超阈值则同比例缩小,方向不变;按参数 L2:每参数单独裁。
  • 推荐:用 Global norm 更稳定; 常用 1.0 或 5.0。

返回模块 | 返回总览

01-损失函数与优化理论/010.md

第 10 题:二阶优化方法(L-BFGS)在推荐中的可行性分析,与一阶方法的精度-效率权衡?

题目

二阶优化方法(L-BFGS)在推荐中的可行性分析,与一阶方法的精度-效率权衡?


完整讲解

一、L-BFGS 简述

L-BFGS 是拟牛顿法:用历史梯度与步长近似 Hessian 的逆,更新方向为 ,步长再线搜。优点:收敛步数少、对条件数差的病态问题更稳;缺点:每步要存若干组 并做递推,单步成本高于 SGD/Adam,且对非凸、大规模、随机问题不如一阶+小 batch 灵活。

二、在推荐中的可行性

  • 规模:推荐模型参数量大(Embedding 数十亿维 + 稠密层),全量 Hessian 不可行;L-BFGS 只存低维近似,但每步仍要算全梯度(或大 batch),数据与通信成本高。
  • 非凸与随机:CTR/排序等非凸,且常用 mini-batch 随机梯度;L-BFGS 更适合光滑、确定性或大 batch 的优化,小 batch 下曲率估计噪声大,效果未必好。
  • 稀疏与离散:大量 ID 特征、Embedding 稀疏更新;L-BFGS 通常按「全参数向量」更新,对稀疏结构不友好,实现复杂。
  • 结论全模型用 L-BFGS 在推荐里少见;更可行的是「稠密部分用 L-BFGS、Embedding 用一阶」或只在精排小模型/离线调参时尝试,且需大 batch、少步数。

三、精度-效率权衡

  • 一阶(SGD/Adam):单步快、易扩展、适合分布式与稀疏;要更多步数、对病态问题收敛慢;效率高、精度靠步数堆
  • 二阶(L-BFGS):单步慢、需大 batch/全梯度;步数少、单步进展大;精度 per step 高、但总时间与实现成本高
  • 推荐实践:大规模训练几乎都用 Adam/AdaGrad + 学习率调度;少量场景(如小模型、离线超参、凸子问题)可试 L-BFGS,作为补充而非主方案。

面试要点

  • L-BFGS:拟牛顿、近似 ,收敛步数少但单步贵、需大 batch/全梯度。
  • 推荐中:模型大、非凸、随机、稀疏;全模型 L-BFGS 不现实;可考虑稠密部分 L-BFGS 或离线小模型。
  • 权衡:一阶效率高、易扩展;二阶单步精度高、总成本与实现难度大;推荐以一阶为主。

记忆要点

  • L-BFGS:拟牛顿、步数少、单步贵、适合光滑/大 batch。
  • 推荐:规模大、非凸、稀疏,全模型 L-BFGS 不现实;可局部或离线尝试。
  • 精度-效率:一阶快、易扩展;二阶单步准、总成本高;推荐以一阶为主。

返回模块 | 返回总览

01-损失函数与优化理论/README.md

01-损失函数与优化理论(第 1–10 题)

题号 主题 文章
1 交叉熵损失的梯度推导,为什么在类别不平衡时会导致模型偏向… 001.md
2 Focal Loss的完整推导,γ=0和γ=2时梯度形态… 002.md
3 对比学习中InfoNCE Loss与互信息下界的关系,负… 003.md
4 排序学习中RankNet的梯度推导,为什么Pairwis… 004.md
5 ListNet vs ListMLE,Listwise方… 005.md
6 标签平滑(Label Smoothing)的贝叶斯解释,… 006.md
7 温度缩放(Temperature Scaling)的校准… 007.md
8 样本权重重采样 vs 损失函数加权,在梯度更新层面的等价… 008.md
9 梯度裁剪(Gradient Clipping)的L2 n… 009.md
10 二阶优化方法(L-BFGS)在推荐中的可行性分析,与一阶… 010.md

返回总览

02-正则化与泛化/011.md

第 11 题:L1/L2 正则化的贝叶斯先验解释,为什么 L1 产生稀疏解的几何直觉?

题目

L1/L2正则化的贝叶斯先验解释,为什么L1产生稀疏解的几何直觉?


完整讲解

一、贝叶斯先验

  • L2:对参数加惩罚 ,等价于假设参数服从高斯先验 ,MAP 估计即带 L2 的损失最小化;高斯把权重重心拉向 0,但不会严格为 0。
  • L1:惩罚 ,等价于拉普拉斯先验 ,拉普拉斯在 0 处更尖、尾部更厚,MAP 下更容易得到精确为 0 的权重,即稀疏。

二、几何直觉:等高线与约束域

  • 损失最小化 + 正则约束:在参数空间里,损失是「等高线」,正则约束是「可行域」。
  • L2 约束 :可行域是圆/球,光滑凸。最优解通常是等高线与球相切,切点一般在非零坐标,所以 L2 很少得到精确 0,只是把权缩小。
  • L1 约束 :可行域是菱形/多面体,有尖角(在坐标轴上)。等高线与菱形相交时,最容易碰在尖角上,尖角对应某几个维度为 0,因此 L1 容易产生稀疏解(部分权重精确为 0)。

三、小结

  • L2:高斯先验,几何上球约束,解多在内部 → 小但不稀疏。
  • L1:拉普拉斯先验,几何上菱形尖角 → 解常落在轴上 → 稀疏。

面试要点

  • L2 ↔ 高斯先验;L1 ↔ 拉普拉斯先验;拉普拉斯在 0 处尖,易得 0。
  • 几何:L2 球面光滑,切点少在轴;L1 菱形有尖角,最优常落在轴 → 稀疏。

记忆要点

  • L2:高斯先验,球约束,权变小不稀疏。L1:拉普拉斯先验,菱形尖角,易得稀疏。
  • 稀疏来自 L1 约束的「角」与等高线相交在轴上。

返回模块 | 返回总览

02-正则化与泛化/012.md

第 12 题:Dropout 在 Wide&Deep 中的最佳放置位置,输入层 vs 隐藏层的理论差异?

题目

Dropout在Wide&Deep中的最佳放置位置,输入层 vs 隐藏层的理论差异?


完整讲解

一、Dropout 作用

训练时以概率 将神经元输出置 0,等价于采样「子网络」、做模型平均,起到正则、减轻共适应;推理时关闭或做 scale(乘 )。

二、输入层 vs 隐藏层

  • 输入层 Dropout:对特征/Embedding 做 dropout,直接丢掉部分特征维度。优点:防过拟合输入、对稀疏高维特征尤其有用;缺点:若放在 Embedding 后,会丢掉部分 ID 信息,可能影响记忆能力。推荐里常用在 Embedding 拼接之后、第一层 MLP 之前,比例一般较小(如 0.1~0.2),避免信息损失过大。
  • 隐藏层 Dropout:对中间表示做 dropout。理论更经典:打破共适应、子网络集成。Wide&Deep 的 Deep 部分通常在各层之间加 dropout(如 0.3~0.5),最后一层前可略大。

三、Wide&Deep 中的建议

  • Wide 侧:一般不加 dropout,Wide 负责记忆、需要完整特征。
  • Deep 侧
  • 输入:Embedding concat 后可加轻度 dropout(0.1~0.2),防止某些 ID 过拟合。
  • 隐藏层:每层后加 dropout(0.3~0.5),最后一层前可略大。
  • 理论差异:输入层 dropout 控特征冗余与过拟合特征;隐藏层 dropout 控表示层共适应与容量。两者可同时用,输入轻、隐藏重。

面试要点

  • 输入层 dropout:控特征过拟合,建议轻(0.1~0.2),放在 concat 后、MLP 前。
  • 隐藏层 dropout:控共适应与容量,0.3~0.5;Wide 侧一般不加。
  • 理论:输入=特征维度正则;隐藏=表示子网络正则。

记忆要点

  • Wide&Deep:Wide 不加;Deep 输入轻 drop、隐藏层重 drop。
  • 输入 drop:特征过拟合;隐藏 drop:共适应与子网络集成。

返回模块 | 返回总览

02-正则化与泛化/013.md

第 13 题:早停(Early Stopping)与 L2 正则化的等价性证明,验证集频率如何影响?

题目

早停(Early Stopping)与L2正则化的等价性证明,验证集频率如何影响?


完整讲解

一、直观联系

早停:在验证损失不再下降时停止,相当于限制有效训练步数,参数不会走到「训练集上过度拟合」的那一侧。L2:限制参数范数,把解压向 0。二者都在限制模型复杂度,只是早停限制的是「优化轨迹长度」,L2 限制的是「参数空间中的范数球」。

二、等价性(在简化设定下)

梯度下降、二次近似损失、小学习率等简化假设下,可以证明:
- 梯度下降的轨迹在参数空间里近似沿「损失下降方向」走;早停相当于在某一时刻 截断,得到
- 在强凸或局部二次的设定下,该 可对应到某个带 L2 惩罚的目标的最优解,即存在某个 使得「早停解」与「L2 正则解」一致(或近似)。结论:早停 ≈ 隐式的 L2 正则,验证频率决定「在轨迹上取哪个点」。

三、验证集频率的影响

  • 验证太频繁:早停可能过早触发(验证损失波动),训练不足;或对噪声敏感,停在不稳定点。
  • 验证太稀疏:可能已经过拟合一段才检测到,早停点偏晚,正则效果弱。
  • 实践:通常每 1 个 epoch 或每 N 个 step 验证一次,配合 patience(连续若干次不提升再停),平衡噪声与及时性。

面试要点

  • 早停与 L2 都在限制复杂度;在梯度下降+二次近似下,早停解可对应某 L2 正则解(等价性)。
  • 验证频率:太频易早停、欠拟合;太疏易停晚、过拟合;常用每 epoch 或每 N step + patience。

记忆要点

  • 早停 ≈ 隐式 L2:限制优化轨迹长度,等价于某 下的 L2 解(简化假设下)。
  • 验证频率:适中 + patience,避免过早或过晚停止。

返回模块 | 返回总览

02-正则化与泛化/014.md

第 14 题:批归一化(BN)在推荐稀疏特征中的陷阱,为什么 Layer Norm 更常用?

题目

批归一化(BN)在推荐稀疏特征中的陷阱,为什么Layer Norm更常用?


完整讲解

一、BN 的做法与假设

BN 对每个特征维度batch 内做均值为 0、方差为 1 的标准化,再 scale & shift。依赖「同一特征在 batch 内有多样本」才有稳定均值和方差。

二、推荐里稀疏特征的陷阱

  • 稀疏性:大量 ID 特征 one-hot/embedding,batch 内很多样本在该维度为 0,或只有少数非零;batch 统计不稳定(方差可能接近 0、均值偏 0),BN 除方差时易数值爆炸或梯度异常。
  • batch 内分布:推荐 batch 常按点击/曝光采样,同一 batch 内用户或物品分布偏斜,batch 统计 ≠ 全局分布,推理时用 moving average 的全局统计与训练时分布不一致,泛化差
  • 变长与缺失:序列/多值特征长度不一,BN 在「特征维度」上做不自然;且缺失、padding 会污染 batch 统计。

三、为什么 Layer Norm 更常用

  • LN:对每个样本在其特征维度上做均值为 0、方差为 1,不依赖 batch 内其他样本。
  • 优点:不依赖 batch 统计,无 batch 内稀疏与分布问题;对变长、缺失更友好;推理与训练一致。Transformer、推荐 Deep 部分多用 LN。
  • 推荐实践:稠密 MLP 用 LN(或不用 norm);Embedding 后、concat 后也可用 LN;避免在稀疏 ID 特征上直接用 BN。

面试要点

  • BN 依赖 batch 内同一特征的统计;推荐稀疏导致 batch 统计不稳定、分布偏、推理不一致。
  • LN 按样本、按特征维度归一化,不依赖 batch,适合稀疏与变长;推荐多用 LN。

记忆要点

  • BN 陷阱:稀疏→batch 统计不稳;batch 分布≠全局→推理漂移;变长/缺失难处理。
  • 推荐用 LN:样本内归一化,与 batch 无关,稳定且与 Transformer 一致。

返回模块 | 返回总览

02-正则化与泛化/015.md

第 15 题:权重衰减(Weight Decay)与 L2 正则化在 Adam 优化器中的不等价性?

题目

权重衰减(Weight Decay)与L2正则化在Adam优化器中的不等价性?


完整讲解

一、在 SGD 中的等价

SGD 更新:。这里「损失里加 L2 惩罚 」与「更新时额外减 (即 weight decay)」数学上等价,都是每步先缩放再减梯度。

二、在 Adam 中的不等价

Adam 先算一阶矩 、二阶矩 ,再做 。若把 L2 写进损失,梯度变成 ;该加项会进入 的指数移动平均,被 除之后,对 的衰减效果与「每步直接减 不同
- L2 进损失:正则项参与梯度、被 Adam 的 机制调制,衰减强度依赖历史梯度,大梯度维度衰减弱、小梯度维度衰减强,与 SGD 下「各维度同比例衰减」不一致。
- 解耦的 Weight Decay:在应用 更新之后,再单独做 (或等价的 ),即 AdamW。这样衰减与梯度解耦,行为更接近「真正的 L2 正则」,效果通常更好、调参更直观。

三、结论

  • 在 Adam 中:L2 写在损失里 ≠ 解耦的 weight decay;推荐用 AdamW(解耦 weight decay)。
  • 不等价原因:L2 进损失后会被 的 EMA 改变各维度的有效衰减率。

面试要点

  • SGD 下:L2 正则与 weight decay 等价(都是每步先乘 再减梯度)。
  • Adam 下:L2 进损失会被 调制,与解耦的 weight decay 不等价;AdamW 解耦后更稳、更易调。

记忆要点

  • SGD:L2 = weight decay(等价)。Adam:L2 进损失 ≠ 解耦 decay;用 AdamW 解耦。

返回模块 | 返回总览

02-正则化与泛化/016.md

第 16 题:谱归一化(Spectral Normalization)在 GAN 中的原理,能否用于推荐模型稳定训练?

题目

谱归一化(Spectral Normalization)在GAN中的原理,能否用于推荐模型稳定训练?


完整讲解

一、原理

对线性层 谱归一化 替换为 ,其中 最大奇异值(谱范数)。这样每层 Lipschitz 常数 ≤ 1,限制梯度爆炸、稳定 GAN 判别器。

计算:最大奇异值可用幂迭代近似(每次前向时做 1~2 次 并归一化),不增加太多成本。

二、在 GAN 中的作用

判别器过强时生成器梯度消失;过弱时梯度爆炸。谱归一化约束判别器每层 1-Lipschitz,使梯度范数有界,训练更稳,且不引入额外超参(相比 Gradient Penalty)。

三、能否用于推荐模型

  • 可以:推荐里 Deep 部分若梯度不稳、易爆炸,可对 MLP 的权重做谱归一化,起到温和的正则与稳定;尤其大学习率、深网络时。
  • 必要性一般:推荐常用 BN/LN、梯度裁剪、较小学习率,多数场景已够稳;谱归一化要每层做幂迭代,计算略增,通常不作为首选,而是「不稳时再试」的选项。
  • 适用:训练不稳定、梯度爆炸时;或希望限制每层 Lipschitz 的场合(如鲁棒性)。一般不作为默认配置。

面试要点

  • 谱归一化:,限制每层 1-Lipschitz,用幂迭代求最大奇异值。
  • GAN:稳定判别器、有界梯度。推荐:可用以稳训练,但非必需;LN+裁剪常已够。

记忆要点

  • 谱归一化 = 除以最大奇异值,1-Lipschitz;幂迭代近似。
  • 推荐可用但不首选;训练不稳时可试。

返回模块 | 返回总览

02-正则化与泛化/017.md

第 17 题:数据增强在表格数据中的有效方法,Mixup/CutMix 如何适配推荐场景?

题目

数据增强在表格数据中的有效方法,Mixup/CutMix如何适配推荐场景?


完整讲解

一、表格数据中的增强

  • 数值特征:加噪声(高斯)、缩放、分桶扰动;或按样本插值(类似 Mixup)。
  • 类别特征:替换为同分布采样、或同 field 内随机其他 ID(需约束语义);dropout 部分特征。
  • 序列特征:截断、打乱顺序、mask 部分行为、时间抖动。
  • 行级:Mixup 在样本间做凸组合 ;对表格要区分数值(可插值)与类别(通常不直接插值,或只对 embedding 插值)。

二、Mixup 适配推荐

  • 连续/Embedding 空间:在拼接后的稠密向量上做 Mixup(即对数值特征与 embedding 向量做 ),标签用 (CTR 为软标签)。可提升泛化、平滑决策边界。
  • 注意:ID 类特征不直接在离散空间 Mixup,而是先 embedding 再在向量空间 Mixup;或只对非 ID 部分 Mixup、ID 部分随机选其一。

三、CutMix 适配推荐

  • CutMix 源自图像:裁剪一块区域、用另一张图同位置块替换。表格无「空间」概念,可类比为特征维度上的 mask:随机选一部分特征维度用样本 A、其余用样本 B,标签按比例混合。或对 embedding 的某些维度做「切块」混合。
  • 推荐里更常见的是特征维度 dropout / 随机 mask(如随机丢弃部分 field),效果类似「部分用 A、部分用 B」的稀疏版,实现简单。

面试要点

  • 表格增强:数值加噪/缩放;类别同分布替换或 dropout;序列截断/mask;行级 Mixup 在稠密/embedding 空间做。
  • Mixup 推荐:对 concat 后的向量(或仅稠密+embedding)做插值,标签软标签;ID 不直接插值。
  • CutMix:可类比为特征维 mask 或按维度混合;或简化为特征 dropout。

记忆要点

  • 表格:数值噪声、类别替换/dropout、序列截断/mask;Mixup 在向量空间、软标签。
  • 推荐 Mixup:embedding+稠密可插值;CutMix 可做特征维 mask。

返回模块 | 返回总览

02-正则化与泛化/018.md

第 18 题:模型集成(Bagging/Boosting)在推荐中的落地难点,如何降低 serving 成本?

题目

模型集成(Bagging/Boosting)在推荐中的落地难点,如何降低serving成本?


完整讲解

一、落地难点

  • 延迟:推荐精排常在 10~50ms 内要返回,集成多模型(如 5~10 个)串行或并行推理,延迟成倍增加,难以满足线上 SLA。
  • 资源:多份模型显存/内存、QPS 放大,机器与成本高。
  • 更新:多模型要一起训练、一起发布,迭代与运维复杂;版本不一致易出问题。
  • 收益递减:模型已经较大时,再集成多个大模型,边际收益有限而成本明显。

二、降低 serving 成本的做法

  • 蒸馏:用集成模型(或单大模型)做教师,蒸馏成单模型,serving 只跑一个模型,延迟与资源与单模型一致,大部分效果可保留。
  • 模型压缩:集成前先对子模型剪枝/量化,再集成,在「效果-成本」之间折中。
  • 选择性集成:不是所有请求都走全量集成,例如粗排用单模型、精排对高分或高价值请求用 2~3 个模型投票,控制放大倍数。
  • 共享底层:多模型共享 Embedding 与部分层,只顶层不同,推理时共享部分算一次,减少重复计算。
  • 离线集成:离线用集成得到分数或排序,线上只做检索与简单打分(如单模型),适合非实时场景。

面试要点

  • 难点:延迟、资源、运维、收益递减。
  • 降成本:蒸馏成单模型、压缩子模型、选择性集成、共享底层、离线集成。

记忆要点

  • 集成难点:延迟与资源放大、运维复杂、边际收益有限。
  • 降成本:蒸馏、压缩、选择性集成、共享底层、离线集成。

返回模块 | 返回总览

02-正则化与泛化/019.md

第 19 题:知识蒸馏中软标签与硬标签的权重分配,温度与软标签熵的关系?

题目

知识蒸馏中软标签与硬标签的权重分配,温度与软标签熵的关系?


完整讲解

一、软标签与硬标签

  • 硬标签:one-hot,正确类 1、其余 0;信息少,只告诉「哪个类」。
  • 软标签:教师 softmax 输出(常带温度 ),;含类间相对关系(dark knowledge),如「与正确类相近的类概率略高」。

二、温度与软标签熵

  • :教师原始 logits,分布通常较尖,熵小
  • :分布变平滑,熵增大;类间差异被压缩,相对大小仍保留,学生更容易学到「谁比谁略好」。
  • 过大:分布趋近均匀,熵很大但信息量下降,蒸馏信号弱。通常 常见。

三、软硬标签的权重分配

  • 总损失常写为: 用 KL(学生||教师) 或 CE(学生, 教师软标签); 用 CE(学生, 真实标签)。
  • :更依赖教师,适合教师很强、学生容量小;:更依赖真实标签,适合教师一般或数据噪声小。
  • 实践:可先 ,再按验证集调;或两阶段:先主要用软标签训,后期加大硬标签权重做校准。

面试要点

  • 温度 使软标签更平滑、熵增大,保留相对关系; 过大则趋均匀、信息弱。
  • 软硬权重 :软标签传 dark knowledge,硬标签保正确类; 按教师强弱与阶段调。

记忆要点

  • 大 → 软标签熵大、更平滑;常用
  • 损失 按教师与阶段调。

返回模块 | 返回总览

02-正则化与泛化/020.md

第 20 题:自监督学习中的预训练任务设计,MLM 在推荐中为何效果有限?

题目

自监督学习中的预训练任务设计,MLM在推荐中为何效果有限?


完整讲解

一、自监督预训练任务(通用)

  • MLM(Masked Language Model):随机 mask 部分 token,预测被 mask 的 token;适合文本,学语法与语义。
  • 对比学习:正对拉近、负对推远,学表征不变性(如 SimCLR、MoCo)。
  • 下一句/下一项预测:序列中预测下一个 token/item,学顺序与转移。

二、MLM 在推荐中效果有限的原因

  • 数据形态不同:推荐多为 ID 序列(item_id、user 行为序列),语义不像自然语言有强局部语法与上下文;mask 一个 ID 预测「哪个 ID」更像记忆表而非泛化结构,迁移与泛化收益有限
  • 目标与下游不对齐:CTR/排序关心「是否点击/排序好坏」,MLM 目标是「预测被 mask 的 token」,二者不一致;预训练学到的「补全」能力对「点击概率」的直接帮助有限。
  • 稀疏与长尾:大量长尾 item 很少出现,mask 后难以预测,MLM 容易偏向头部 item,对长尾与冷启动帮助不大。
  • 更合适的预训练:推荐里序列下一项预测行为序列对比学习(如 S3-Rec)、图上的对比/掩码等,与「顺序、共现、用户意图」更对齐,往往比直接套 MLM 效果更好。

三、小结

  • MLM 适合文本;推荐以 ID 序列为主,语义与任务不同,MLM 效果有限。
  • 推荐预训练更常用:下一项预测、序列/图对比、行为预测等与下游一致的任务。

面试要点

  • MLM 在推荐有限:ID 序列无语法、目标与 CTR/排序不对齐、长尾难预测、易偏头部。
  • 推荐预训练:下一项预测、序列/图对比、行为预测等更合适。

记忆要点

  • MLM 适合文本;推荐 ID 序列 + 任务不对齐 → 效果有限。
  • 推荐用下一项预测、对比学习、图预训练等更对齐。

返回模块 | 返回总览

02-正则化与泛化/README.md

02-正则化与泛化(第 11–20 题)

题号 主题 文章
11 L1/L2正则化的贝叶斯先验解释,为什么L1产生稀疏解的… 011.md
12 Dropout在Wide&Deep中的最佳放置位置,输入… 012.md
13 早停(Early Stopping)与L2正则化的等价性… 013.md
14 批归一化(BN)在推荐稀疏特征中的陷阱,为什么Layer… 014.md
15 权重衰减(Weight Decay)与L2正则化在Ada… 015.md
16 谱归一化(Spectral Normalization)… 016.md
17 数据增强在表格数据中的有效方法,Mixup/CutMix… 017.md
18 模型集成(Bagging/Boosting)在推荐中的落… 018.md
19 知识蒸馏中软标签与硬标签的权重分配,温度与软标签熵的关系… 019.md
20 自监督学习中的预训练任务设计,MLM在推荐中为何效果有限… 020.md

返回总览

03-评估与指标/021.md

第 21 题:AUC 的物理意义,为什么线上 AUC 提升 0.1% 可能带来显著收益?

题目

AUC的物理意义,为什么线上AUC提升0.1%可能带来显著收益?


完整讲解

一、AUC 的物理意义

  • 定义:随机取一个正样本和一个负样本,模型给正样本打分高于负样本的概率。AUC = 1 表示完美排序,0.5 表示随机。
  • 等价:等于 ROC 曲线下面积;也等于「按预测分从高到低排序后,正样本的排名和」的线性变换(与 Gini 相关)。
  • 物理意义排序能力的度量——分数能否把正样本整体排在负样本前面,与阈值无关。

二、为什么 0.1% 提升可能带来显著收益

  • 排序敏感:推荐/广告按分数排序取 top-K,边界附近(如第 100 与第 101 名)的顺序交换会直接改变曝光与点击;AUC 提升 0.1% 意味着「正负对」中更多边界对被判对,边界处的顺序更准,曝光分配更优。
  • 规模放大:日活千万、每次请求精排几百条时,0.1% 的排序改进会累积成大量「临界位置」的纠正,点击率、转化、收入可观测提升。
  • 业务杠杆:在已经较高的 AUC 基础上(如 0.75→0.751),再提升往往对应难样本的改进,对高价值用户或高价值场景影响大,ROI 高。
  • 注意:AUC 与业务指标非严格线性;需结合线上 A/B、点击率与转化一起看;但 AUC 是离线最常用的排序能力指标,小幅稳定提升通常值得上线验证。

面试要点

  • AUC = 随机正样本得分高于随机负样本的概率;表示排序能力,与阈值无关。
  • 0.1% 提升:边界处正负对顺序更准 → 曝光与点击分配更优 → 规模下收益放大;需结合 A/B 验证。

记忆要点

  • AUC = 正样本得分高于负样本的概率;排序能力。
  • 小提升大收益:边界顺序改善 × 大规模请求 × 业务杠杆。

返回模块 | 返回总览

03-评估与指标/022.md

第 22 题:GAUC(Group AUC)的计算方式,为什么比全局 AUC 更反映真实排序能力?

题目

GAUC(Group AUC)的计算方式,为什么比全局AUC更反映真实排序能力?


完整讲解

一、计算方式

  • 全局 AUC:把所有样本混在一起,算「随机正样本得分 > 随机负样本得分」的概率;不同用户/请求的样本混在一起。
  • GAUC:先按用户(或请求/session)分组,在每个组内分别算 AUC,再按曝光量或样本量加权平均

常取该用户/请求下的曝光数或样本数,避免小样本组拉低或拉高整体。

二、为什么更反映真实排序能力

  • 用户内排序:线上每次请求是在同一用户的一次曝光列表内排序,关心的是「这个用户看到的几条里谁更该排前面」,而不是「用户 A 的正样本 vs 用户 B 的负样本」谁高。
  • 全局 AUC 的偏差:不同用户点击率、分布差异大;全局 AUC 会被高活用户、高样本量用户主导,且「跨用户正负对」的排序与线上场景不一致;模型可能把用户 A 的负样本压过用户 B 的正样本,全局 AUC 仍高,但单用户内排序未必好。
  • GAUC:组内 AUC 直接衡量「单次请求内的排序」,与线上一致;加权平均后更能反映各流量上的整体排序能力,减少用户间分布差异的干扰。

面试要点

  • GAUC:按用户/请求分组算 AUC,再按曝光或样本量加权平均。
  • 更反映真实:线上是用户内排序;全局 AUC 跨用户、被高活主导;GAUC 与请求内排序一致。

记忆要点

  • GAUC = 组内 AUC 的加权平均;组=用户或请求。
  • 全局 AUC 跨用户、偏流量分布;GAUC 对应用户内排序,更贴近线上。

返回模块 | 返回总览

03-评估与指标/023.md

第 23 题:LogLoss 与 AUC 的优化目标冲突,如何设计联合优化策略?

题目

LogLoss与AUC的优化目标冲突,如何设计联合优化策略?


完整讲解

一、冲突在哪

  • LogLoss:逐样本交叉熵,等价于概率校准——希望预测概率接近真实 0/1;对「已经判对但概率略偏」的样本仍给梯度。
  • AUC:只关心相对排序——正样本得分整体高于负样本即可,不关心概率绝对值;对「正>负但概率都偏小」无惩罚。
  • 冲突:一味降 LogLoss 会推动概率趋于 0/1(过自信),排序边界附近的样本梯度大;一味提 AUC 可接受概率不校准。二者在边界样本的梯度方向是否强调校准上可能不一致。

二、联合优化策略

  • 多目标加权,其中 用可微的 AUC 近似(如 pairwise 代理损失、或基于排序的 surrogate)。 控制排序与校准的权衡。
  • 分阶段:先主要优化 LogLoss 或 CE 得到较好排序,再校准阶段(如温度缩放、Platt)只调校准不破坏排序;或先优化 AUC 类目标,再对输出做校准。
  • 使用 AUC 可微近似:如 ListNet、 pairwise hinge/CE,使梯度直接优化排序;再配合 CE 做适度校准(小权重 CE 或后处理校准)。
  • 业务侧:若强依赖概率做决策(如出价),以 LogLoss/校准为主;若只关心排序,可加大 AUC 相关权重。

面试要点

  • 冲突:LogLoss 要校准、AUC 要排序;梯度与目标侧重不同。
  • 策略:多目标加权、分阶段(先排序后校准)、AUC 可微近似+CE、按业务选侧重。

记忆要点

  • LogLoss 重校准,AUC 重排序;可联合损失或分阶段。
  • 实践:CE + λ·AUC 近似,或先排序后校准。

返回模块 | 返回总览

03-评估与指标/024.md

第 24 题:NDCG 的归一化因子设计,如何处理文档集合动态变化的情况?

题目

NDCG的归一化因子设计,如何处理文档集合动态变化的情况?


完整讲解

一、NDCG 与归一化因子

  • DCG 为第 位文档的相关性。
  • IDCG理想排序下的 DCG(按相关性从高到低排),即同一文档集合上能达到的最大 DCG。
  • NDCG,用 IDCG 做归一化,使不同 query、不同文档数的结果可比,取值 [0,1]。

二、归一化因子的作用

  • IDCG 与文档集合与相关性分布有关:集合变、相关性变,IDCG 就变。
  • 除以 IDCG 后,不同 list 长度、不同相关性分布的 NDCG 可比较;否则长列表、高相关文档多的 query 天然 DCG 大,难以公平比较。

三、文档集合动态变化时

  • 每次用当前候选集算 IDCG:线上/评估时文档集合每请求不同(检索结果、过滤后不同),应对当前请求的候选集单独算 IDCG,再算该请求的 NDCG;即 NDCG 是「当前集合下的相对表现」。
  • 固定深度 k:常用 NDCG@k(如 k=5,10),只考虑 top-k,候选再多也只取前 k 的贡献,部分缓解集合大小差异;IDCG@k 也只看当前集合中前 k 的理想排序。
  • 评估集:离线评估时若文档集合固定(如每个 query 固定一个 doc set),IDCG 每 query 算一次即可;若集合动态,则按「每个 (query, candidate_set)」算 IDCG,保证归一化与当前集合一致。

面试要点

  • NDCG = DCG / IDCG;IDCG 为当前集合理想排序的 DCG,用于归一化使不同 list 可比。
  • 集合动态:按当前请求的候选集算 IDCG;用 NDCG@k 固定深度;离线按 (query, set) 算。

记忆要点

  • IDCG = 理想排序的 DCG,归一化因子;NDCG 取值 [0,1],可跨 query 比。
  • 动态集合:当前集合算 IDCG、NDCG@k、按 (query, set) 评估。

返回模块 | 返回总览

03-评估与指标/025.md

第 25 题:点击率校准(Calibration)的重要性,Platt Scaling vs Isotonic Regression?

题目

点击率校准(Calibration)的重要性,Platt Scaling vs Isotonic Regression?


完整讲解

一、校准的重要性

  • 定义:预测概率与真实频率一致;即「预测 0.1 的样本里,真实点击率应接近 10%」。
  • 重要性:出价、预算、ROI 计算依赖概率绝对值;若模型过自信(预测普遍偏高)或欠自信(普遍偏低),会导致出价与决策偏差,影响收入与体验。排序好(AUC 高)不等于校准好。

二、Platt Scaling

  • 做法:对模型输出 (或 )做逻辑回归,在验证集上学
  • 特点:单参数族(实为两参数),单调;假设校准误差可用简单伸缩和平移修正,适合偏差不太复杂的情况;实现简单、稳定。

三、Isotonic Regression

  • 做法:学一个单调的映射 ,使 最小且 单调;通常得到分段常数的阶梯函数。
  • 特点:非参数、任意单调,可拟合复杂校准曲线;需要足够验证样本,否则易过拟合;对「预测值分布稀疏」的区间估计不稳。

四、对比与选用

  • Platt:参数少、样本少时稳;校准形状简单时够用。
  • Isotonic:表达力强、可纠复杂形状;样本多、需要细粒度校准时用。
  • 推荐/广告常用:先试 Platt,不够再试 Isotonic;或分段(按流量/分位数)分别校准。

面试要点

  • 校准:预测概率 ≈ 真实频率;对出价与决策重要。
  • Platt:,简单单调;Isotonic:单调非参数,表达力强、需更多样本。

记忆要点

  • 校准重要:排序≠校准;出价依赖概率值。
  • Platt 简单稳;Isotonic 灵活、需样本多;可先 Platt 再 Isotonic。

返回模块 | 返回总览

03-评估与指标/026.md

第 26 题:延迟反馈(Delayed Feedback)建模,ES-DFM 与基于重要性采样的方法对比?

题目

延迟反馈(Delayed Feedback)建模,ES-DFM与基于重要性采样的方法对比?


完整讲解

一、问题

点击后转化可能几天后才发生;训练时只用「当前已观测」的标签,会把「未到转化窗口的点击」当负样本,造成假负(FN),CVR 被低估。

二、ES-DFM(Elapsed Time Sampling - Delayed Feedback Model)

  • 思想:把「点击到当前经过的时间」作为特征,显式建模转化发生的延迟分布;假设转化服从某分布(如指数),用已转化样本估计该分布,再对「未到窗口的点击」做等待概率的加权或采样。
  • 做法:引入「是否已过转化窗口」「elapsed time」等,用两阶段或联合模型:先估「会转化吗」,再估「若会、延迟多长」;训练时对未到窗口的样本按「预期会转化」的概率加权或作为软标签。
  • 特点:利用延迟分布、可处理变长窗口;需要延迟分布假设与设计。

三、重要性采样(Importance Sampling)

  • 思想:把「未到窗口的点击」视为部分观测;用重要性权重修正梯度或损失,使无偏估计「全量延迟后的真实 CVR」。
  • 做法:对未到窗口的负样本赋权 或基于延迟模型的权重,使期望梯度等于「若等够久再标」的梯度;需估计观测概率(如依时间衰减)。
  • 特点:无偏(在正确权重下);对权重估计敏感,方差可能大。

四、对比

  • ES-DFM:显式延迟模型,可解释、可做等待概率;实现与假设稍复杂。
  • 重要性采样:无偏、形式通用;权重估计与方差需处理。实践中可结合:用 ES-DFM 类模型估延迟与等待概率,再用于重要性权重或样本加权。

面试要点

  • 延迟反馈:转化晚到导致假负,需显式建模延迟或用权重修正。
  • ES-DFM:elapsed time + 延迟分布,估计等待概率、软标签/加权。
  • 重要性采样:未到窗口样本加权使梯度无偏;可结合延迟模型估权重。

记忆要点

  • 问题:未到窗口的点击被当负样本 → 假负。
  • ES-DFM:延迟分布 + 等待概率。重要性采样:权重修正、无偏。可结合使用。

返回模块 | 返回总览

03-评估与指标/027.md

第 27 题:位置偏置的评估,Interleaving vs 随机位置实验的统计效力比较?

题目

位置偏置的评估,Interleaving vs 随机位置实验的统计效力比较?


完整讲解

一、位置偏置

用户更倾向点击靠前的结果,即使内容略差;同一文档放不同位置,点击率不同。评估排序模型时若不控制位置,高位置的模型会占优,难以公平比较 A/B 两个排序。

二、随机位置实验

  • 做法:同一文档在不同请求中被随机分配到不同位置(如 1~10),控制「文档-位置」的混淆;比较模型时看同一文档在不同位置的点击率模型 A/B 在随机位置下的整体表现
  • 统计效力:需要大量请求才能让每个 (文档, 位置) 有足够样本;位置多、文档多时,要达到显著差异所需流量大,效力较低

三、Interleaving

  • 做法:在一次请求中混合 A 和 B 的排序结果(如奇偶位来自 A/B),用户看到的列表是 A/B 的交错;根据用户点击落在「来自 A 还是 B」来判定胜者(如 1 credit 或 team draft)。
  • 统计效力同一次请求内比较,用户、上下文相同,噪声小;通常更少样本即可得到显著结论,效力高。但实现与解释稍复杂(需定义如何混合、如何计分)。

四、对比

  • 随机位置:直接、无偏,但需大流量,统计效力低。
  • Interleaving:同请求比较、噪声小,效力高;需设计混合与计分规则。实践上可先用 Interleaving 快速筛,再用 A/B 随机位置或全量上线做最终验证。

面试要点

  • 位置偏置:高位置天然点击高,评估需控位置。
  • 随机位置:无偏但需大流量,效力低。Interleaving:同请求混合 A/B,效力高,实现稍复杂。

记忆要点

  • 随机位置:控混淆、需大样本。Interleaving:同请求比较、样本效率高。
  • 实践:Interleaving 快速筛,A/B 全量验证。

返回模块 | 返回总览

03-评估与指标/028.md

第 28 题:长期价值(LTV)评估,Cohort 分析 vs 因果推断方法的适用边界?

题目

长期价值(LTV)评估,Cohort分析 vs 因果推断方法的适用边界?


完整讲解

一、LTV 评估目标

估计用户/群组的长期价值(如总付费、留存、生命周期贡献),用于资源配置、补贴与运营决策;难点在于长期需等待、混淆(如活跃用户本身就更可能付费)。

二、Cohort 分析

  • 做法:按 cohort(如注册时间、首次行为时间)分组,跟踪各组随时间的累积指标(留存、付费、LTV 曲线);比较不同策略/产品下的 cohort 曲线。
  • 适用描述性、趋势对比、自然实验前后对比;不控制混淆,只能看相关性。适用于「策略或产品明显按时间/批次切换」、且混淆较弱的场景。
  • 边界:无法回答「若没上这个策略,LTV 会怎样」;选择偏置、同期其他因素会干扰。

三、因果推断方法

  • 做法:PSM(倾向得分匹配)、DID(双重差分)、IV(工具变量)、Uplift 模型等,估计因果效应——策略对 LTV 的净影响。
  • 适用:需要因果结论、做预算与 ROI 决策时;有随机化或可假设「条件独立」的混淆控制时。
  • 边界:需满足识别假设(无未观测混淆、SUTVA 等);数据与设计要求高;长期结果观测晚、损耗大,因果估计方差大。

四、选用

  • Cohort:快速看趋势、做描述、自然实验的初步对比;不强调因果时用。
  • 因果方法:要做策略归因、预算分配、AB 解读时用;有随机化优先 RCT,否则 PSM/DID 等,并明确假设与局限。

面试要点

  • Cohort:按群组跟踪曲线,描述与对比;不控混淆,相关非因果。
  • 因果方法:PSM/DID/IV 等,估策略净效应;需识别假设与数据。
  • 边界:描述用 Cohort;归因与决策用因果方法。

记忆要点

  • Cohort = 群组+时间曲线,描述性。因果 = 效应估计,需假设。
  • 适用:趋势用 Cohort;归因与 ROI 用因果。

返回模块 | 返回总览

03-评估与指标/029.md

第 29 题:多目标评估的帕累托前沿,如何可视化高维目标空间的权衡?

题目

多目标评估的帕累托前沿,如何可视化高维目标空间的权衡?


完整讲解

一、帕累托前沿

  • 帕累托支配:解 A 在所有目标上不差于 B,且至少一个目标严格更好,则 A 支配 B。
  • 帕累托前沿:不被任何其他解支配的解的集合;表示权衡边界——再想提升某一目标就要牺牲另一目标。

二、高维可视化的难点

  • 目标数 > 3 时无法直接画空间图;需要降维或投影。

三、常用可视化方法

  • 两两散点图矩阵:每两个目标做散点图,形成矩阵;可看两两之间的权衡,但看不到全局 Pareto。
  • 平行坐标:每轴一个目标,一条线为一个解;可看多目标上的折中,线不交叉多的区域接近前沿。
  • 主成分/降维:对目标向量做 PCA 等,在 2D 上画点,颜色或大小表示某一目标;看「主方向」上的分布与前沿近似。
  • 雷达图:每个解一个多边形,顶点为各目标归一化值;适合少量解、少量目标的对比。
  • 加权标量化后排序:先固定一组权重得到标量分,按该分排序取 top 解,再在 2D(如选两个主目标)上标出,看这些解在前沿上的位置。
  • Hypervolume 等指标:用标量指标(如 HV)衡量前沿质量,配合 2D 投影看解的分布。

面试要点

  • 帕累托前沿 = 不被支配的解集,表示多目标权衡边界。
  • 高维可视化:两两散点矩阵、平行坐标、PCA 降维、雷达图、标量化+2D 投影、HV 等。

记忆要点

  • 前沿 = 权衡边界。高维:散点矩阵、平行坐标、降维、雷达、标量化+2D。

返回模块 | 返回总览

03-评估与指标/030.md

第 30 题:离线-在线指标不一致的根因分析,特征分布偏移 vs 选择偏置?

题目

离线-在线指标不一致的根因分析,特征分布偏移 vs 选择偏置?


完整讲解

一、现象

离线 AUC/GAUC 提升,上线后点击率、转化、收入无提升甚至下降——离线-在线不一致

二、特征分布偏移(Distribution Shift)

  • 定义:线上请求的特征分布与离线训练数据不同(如新用户增多、季节与活动、策略与产品改动导致曝光分布变)。
  • 影响:模型在「没见过的分布」上泛化差;校准与排序都可能变差。
  • 应对:用近期在线或全量日志训;领域自适应/重加权;在线学习或定期更新;监控特征与预测分布。

三、选择偏置(Selection Bias)

  • 定义:离线数据是之前策略筛选后的结果——只有被曝光、被点击的才有样本;未曝光或未点击的 item/用户 underrepresented,即数据非随机、受历史策略影响
  • 影响:模型学到「历史策略的偏好」而非「真实用户偏好」;离线指标高可能只是拟合了选择机制,线上换策略后分布变,效果变差。
  • 应对:因果纠偏(IPW、DR)、反事实评估、使用无偏或低偏的评估集(如随机探索数据);在训练中显式建模曝光/选择。

四、对比与综合

  • 分布偏移:强调 P(X) 或 P(X,Y) 变了,环境与数据来源变了。
  • 选择偏置:强调 数据是谁被选进来的,历史策略导致样本不具代表性。
  • 实践中两者常并存:既有分布随时间的偏移,也有历史策略的选择偏置。排查时可先看特征与标签分布(偏移),再看曝光/点击与随机探索比例(选择);再结合 A/B、Interleaving 与无偏评估设计验证。

面试要点

  • 分布偏移:线上特征/联合分布与训练不同;应对用近期数据、自适应、监控。
  • 选择偏置:离线数据受历史策略筛选,非随机;应对用 IPW、反事实、随机探索数据。
  • 两者可并存;排查时先看分布、再看选择与探索。

记忆要点

  • 偏移 = 分布变了;选择偏置 = 数据被策略筛选。
  • 应对:偏移→近期数据/自适应;选择→IPW、反事实、探索数据。

返回模块 | 返回总览

03-评估与指标/README.md

03-评估与指标(第 21–30 题)

题号 主题 文章
21 AUC的物理意义,为什么线上AUC提升0.1%可能带来显… 021.md
22 GAUC(Group AUC)的计算方式,为什么比全局A… 022.md
23 LogLoss与AUC的优化目标冲突,如何设计联合优化策… 023.md
24 NDCG的归一化因子设计,如何处理文档集合动态变化的情况… 024.md
25 点击率校准(Calibration)的重要性,Platt… 025.md
26 延迟反馈(Delayed Feedback)建模,ES-… 026.md
27 位置偏置的评估,Interleaving vs 随机位置… 027.md
28 长期价值(LTV)评估,Cohort分析 vs 因果推断… 028.md
29 多目标评估的帕累托前沿,如何可视化高维目标空间的权衡? 029.md
30 离线-在线指标不一致的根因分析,特征分布偏移 vs 选择… 030.md

返回总览

04-特征交互网络/031.md

第 31 题:FM的二阶交互分解,复杂度从O(n²)到O(kn)的推导过程?

题目

FM的二阶交互分解,复杂度从O(n²)到O(kn)的推导过程?


完整讲解

一、FM 的二阶项原始形式

设特征向量 (已 one-hot 或离散化),FM 的二阶交互项定义为所有特征对 的加权和。若用完整矩阵 表示交互权重,则

这里 个参数;且当特征稀疏时,很多 在训练中几乎从未共现, 难以学到可靠估计,参数量与样本需求都很大

二、低秩分解:从

FM 的核心假设:交互矩阵可分解为低秩形式,即 ,其中 。代入二阶项:

参数从 变为 ,即 。接下来把双重求和化成「先按维度聚合、再平方差」的形式,实现计算也从 降到

三、化简公式推导

利用恒等式 ,令 (这里为向量),对每一维 有:

因此

  • 对每个 :先对 做一次遍历得到 ),再算平方与第二项(),共
  • 维合计:总复杂度 ,且无需显式枚举所有 ,在稀疏 上只需遍历非零维度,工程上非常高效。

四、小结

FM 通过「交互矩阵低秩分解 + 代数化简」两步:参数量计算量,同时缓解稀疏场景下二阶参数难学的问题,是 CTR 等场景里二阶特征交互的经典做法。


面试要点

  • 能写出 FM 二阶项原始形式 ,并说明直接存 导致 参数与计算。
  • 能写出低秩假设 ,参数变为
  • 能推导或口述「平方差」化简:,从而每维 、总计
  • 能说明在稀疏特征下只遍历非零维,实现上进一步省计算。

记忆要点

  • FM 二阶:;低秩 → 参数
  • 化简:,按 聚合 → 计算
  • 稀疏时只算非零维,工程友好。

返回模块 | 返回总览

04-特征交互网络/032.md

第 32 题:FFM(Field-aware FM)的field划分策略,内存爆炸的缓解方案?

题目

FFM(Field-aware FM)的field划分策略,内存爆炸的缓解方案?


完整讲解

一、FFM 的 field 划分策略

在 FFM(Field-aware Factorization Machines)里,每个特征不仅有一个 id,还属于一个 field(域)。例如「年龄」「性别」「城市」分别是三个 field;同一 field 内可能有多维 one-hot 或一个标量。划分原则通常有两条:

  1. 业务语义:同一语义单元划为一个 field(如「用户画像」「物品属性」「上下文」各成 field),这样同一 field 内特征共享「域内」的隐向量空间,不同 field 之间用「域对」专属的隐向量建模交互,更细粒度。
  2. 离散/连续与基数:有时会把高基数 categorical 单独成 field、低基数或连续特征合并或单独成 field,在参数量与表达能力之间做折中。

形式上,FFM 的二阶项写成:特征 属于 field ,特征 属于 field 时,用与 field 对 相关的隐向量 做内积:

也就是说,每个特征在「与不同 field 交互」时使用不同的隐向量,所以参数量从 FM 的 变成 为 field 个数)。

二、为什么容易「内存爆炸」

  • 参数量: 个特征 × 个 field × 维 ≈ 。当 field 数 较大(例如几十个)、特征数 也大时,参数量会远大于 FM 的 显存与模型体积都容易爆。
  • 计算量:要枚举所有 并查 ,实现上通常也按二阶展开写,和参数量同量级地放大。

三、缓解方案

  1. 控制 field 数量:不要过细拆分,把语义相近的 feature 合并到同一 field,使 从几十降到十几或更少。
  2. 降低隐向量维度 :FFM 里 往往比 FM 设得小(如 4~8),用较小 换更多 field 感知能力。
  3. 共享部分 field 隐向量:对部分 field 对不单独学 ,而是复用 FM 式的单向量 ,做成 FFM 与 FM 的混合,减少
  4. 用 FFM 做离线/蒸馏、线上用 FM 或更小模型:训练用 FFM 学细粒度交互,线上用 FM、DeepFM 等少参数模型做推理,缓解部署侧内存与延迟。
  5. 正则与早停:FFM 易过拟合,强 L2 或 early stopping 可控制有效参数量,间接缓解「大模型」带来的内存与过拟合问题。

面试要点

  • 能说清 FFM 的 field 含义:按业务语义或特征类型划分,同一 field 内特征共享「与某域交互」的隐向量。
  • 能写出 FFM 二阶形式 ,并说明参数量为 ,相对 FM 的 易爆炸。
  • 能列举 2~3 种缓解方式:减少 field 数、减小 、部分共享隐向量、离线 FFM+线上轻量模型、正则/早停。

记忆要点

  • FFM:按 field 划分;,参数量
  • 内存爆炸主因: 大导致 远大于 FM。
  • 缓解:减 field、减 、部分共享、离线 FFM 线上轻量、强正则/早停。

返回模块 | 返回总览

04-特征交互网络/033.md

第 33 题:DeepFM的共享Embedding设计,Wide侧和Deep侧的学习冲突?

题目

DeepFM的共享Embedding设计,Wide侧和Deep侧的学习冲突?


完整讲解

一、共享 Embedding 设计

DeepFM 由 Wide 侧(FM 部分)和 Deep 侧(DNN)组成,两者共用同一套特征 Embedding。具体来说:每个特征 对应一个隐向量 ;FM 的二阶项用 计算,DNN 则把所有特征的 (或仅非零对应的 )拼成一个大向量后过多层全连接。这样做的优点有三:(1) 只存一份 embedding,参数与显存更省;(2) FM 显式学二阶、DNN 学高阶,信息在同一表示空间里互补;(3) 端到端训练,无需人工宽特征。

二、Wide 侧与 Deep 侧在学什么

  • Wide(FM):拟合「二阶特征交叉」的线性组合,梯度主要来自 FM 的损失分量,倾向于把共现频繁的 拟合好,embedding 会往「可分解的、逐对内积有意义」的方向走。
  • Deep(DNN):拟合高阶、非线性组合,梯度来自 DNN 的损失分量,倾向于把 embedding 变成「堆叠后经非线性能预测目标」的表示,可能更强调全局模式、冗余或平滑。

两边的目标函数是同一个(如 CTR 的 BCE),但对同一组 的梯度方向可能不一致:FM 希望两两内积有用,DNN 希望拼接后整体有用,有时会「抢」embedding 的维度,导致某一侧学得不够好。

三、学习冲突的典型表现与缓解

表现:训练时 FM loss 与 DNN loss 下降不均衡;或验证集上单独 ablate 掉 FM/Deep 某一侧时,发现共享 embedding 时某一侧明显弱于「该侧单独一套 embedding」的版本,说明存在冲突。

常见缓解
1. 损失加权:给 Wide 和 Deep 的 loss 加不同权重(如 ),让一侧不要过度主导梯度。
2. 梯度裁剪 / 归一化:对两路梯度分别做 scale 或 clip,避免某一侧梯度远大于另一侧。
3. 分阶段或渐进训练:先主要训 FM(或先训 DNN)若干 epoch,再联合微调,减轻早期「抢参数」。
4. 结构上适度解耦:例如 DNN 不用全部 embedding 维度,或给 DNN 单独加一层从 embedding 到「Deep 专用」的线性映射(相当于给 Deep 一点专用容量),再与 FM 共享底层 embedding,冲突会小一些。


面试要点

  • 能说清 DeepFM 的共享 Embedding:FM 与 DNN 共用同一 ,FM 用内积、DNN 用拼接后 MLP。
  • 能解释「学习冲突」:同一组参数要同时满足 FM 的二阶内积目标和 DNN 的高阶非线性目标,梯度方向可能不一致,导致一侧被压制。
  • 能列举 1~2 种缓解方式:损失加权、梯度 scale、分阶段训练、或结构上给 Deep 一点专用容量。

记忆要点

  • DeepFM:Wide(FM) + Deep(DNN) 共享一套 embedding;省参数、端到端。
  • 冲突:FM 要两两内积好、DNN 要整体表示好,梯度可能抢 embedding。
  • 缓解:loss 加权、梯度归一/裁剪、分阶段训、或 DNN 侧少量专用层。

返回模块 | 返回总览

04-特征交互网络/034.md

第 34 题:xDeepFM的CIN模块,层间特征映射的显式构造过程?

题目

xDeepFM的CIN模块,层间特征映射的显式构造过程?


完整讲解

一、CIN 在 xDeepFM 中的角色

xDeepFM 在 FM/DeepFM 的基础上,用 CIN(Compressed Interaction Network) 显式、逐层地构造向量级特征交互,而不是 DNN 那种「隐式」的黑箱高阶交互。CIN 的每一层输出一组「交互向量」,层与层之间通过显式的特征映射(类似外积 + 压缩)得到下一层,从而可以控制交互的阶数(层数)和维度。

二、层间特征映射的显式构造

记第 0 层为原始 embedding 矩阵: 为 field 数(或特征组数),每行是一个 field 的 D 维 embedding。CIN 第 层()的构造分两步:

  1. 外积扩展:用第 层的输出 第 0 层 做「每行对每行」的外积,得到一张 3D 张量。具体地, 的第 行与 的第 行做外积,得到一个 的矩阵,所有 拼起来得到形状与「field 数 × field 数 × 维度」相关的 3D 张量,即显式地枚举了当前层每个单元与原始每个 field 的成对交互
  2. 压缩成向量:该 3D 张量在某一维度(通常是在「新生成的 field 维」或「 维」)上通过一个可学习的压缩矩阵(或 1×1 卷积 / 线性映射)压成向量,得到第 层的输出 ,即每一层输出仍为「若干向量」的矩阵,维度可控(如每层 维向量)。

这样, 层的每个单元都是由「第 层的表示」与「原始 」的显式二阶交互再压缩而来;递归地看, 层等价于 阶的向量级特征交互(每多一层就多一次与 的交互)。

三、与 DNN、FM 的对比

  • FM:只做二阶,且是标量级(内积),无层间显式结构。
  • DNN:高阶隐式,层间是通用线性+非线性,不保证「每层对应明确几阶交互」。
  • CIN:层数对应交互阶数,层间映射是「外积 + 压缩」的显式公式,可解释性强;最后把各层输出拼起来或加权求和再预测,实现显式高阶向量交互

四、小结

CIN 的「层间特征映射」就是:上一层矩阵 与固定原始 做外积式交互,再经可学习映射压成下一层 ;重复多层即得到 3 阶、4 阶等显式向量交互,是 xDeepFM 区别于普通 DeepFM 的核心设计。


面试要点

  • 能说清 CIN 的作用:在 xDeepFM 中显式、逐层构造向量级特征交互,层数对应交互阶数。
  • 能描述层间构造:上一层 与第 0 层 做外积得到 3D 张量,再经可学习压缩得到
  • 能对比 CIN 与 FM(仅二阶标量)、DNN(隐式高阶):CIN 是显式、可控阶数的高阶向量交互。

记忆要点

  • CIN:每层 = 上一层与 的外积交互 + 压缩;层数 = 交互阶数。
  • 显式构造:外积枚举「当前层单元 × 原始 field」,再线性/卷积压成向量。
  • 与 FM/DNN:CIN 显式、可控阶;FM 二阶标量;DNN 隐式高阶。

返回模块 | 返回总览

04-特征交互网络/035.md

第 35 题:DCN的Cross Network,多项式逼近能力的理论证明?

题目

DCN的Cross Network,多项式逼近能力的理论证明?


完整讲解

一、Cross Network 的递推形式

DCN(Deep & Cross Network)的 Cross 层 做的是「当前层与初始输入」的显式交叉,递推式为:

其中 是初始输入(embedding 拼接), 是第 层输出, 为可学习参数。注意 矩阵,右乘 后得到 维向量,所以每层只增加 参数(),总参数量与层数 线性,且不增加「宽度」。

二、多项式逼近能力的直观理解

把递推式展开: 含有 与自身的一次项; 含有 的乘积,而 已含 ,所以 中会出现 二次项;依此类推, 层输出可表成 次多项式(系数由 等决定)。因此 Cross 网络用 层就能表达 阶多项式,这是「多项式逼近能力」的由来。

三、理论结论(多项式逼近)

严格来说,有工作证明:在适当条件下,DCN 的 Cross 部分可以逼近 的多元多项式函数(在紧集上),且阶数由层数 决定 阶)。证明思路一般是:把 写成 的多项式,归纳得到每层引入更高一阶的单项式组合;再说明通过调节 可以调节这些单项式的系数,从而在多项式空间里逼近目标函数。因此「增加 Cross 层数」等价于「提高可表达多项式的阶数」,适合需要显式、可控阶数特征交叉的 CTR 等场景。

四、与 DNN 的对比

DNN 也可以逼近连续函数(如用 ReLU 的万有逼近),但不保证用少量参数就得到「显式的、按阶数递增」的交叉;Cross 用 参数就得到 阶多项式子空间,结构归纳偏置强,在特征交叉任务上往往更省参数、更易解释。


面试要点

  • 能写出 Cross 层递推:,并说明每层 参数。
  • 能说清「多项式逼近」: 可表成 次多项式,故 层对应 阶;理论上有证明 Cross 可逼近 的多元多项式。
  • 能对比 DNN:Cross 显式、阶数由层数决定;DNN 隐式、参数量与阶数关系不直接。

记忆要点

  • Cross:;每层 参数。
  • 多项式:第 层输出 = 次多项式; 层 → 阶逼近。
  • 理论:Cross 可逼近 的多元多项式;阶数由层数控制,归纳偏置强。

返回模块 | 返回总览

04-特征交互网络/036.md

第 36 题:DCN-V2的Matrix Low-Rank分解,秩的选择对表达能力的影响?

题目

DCN-V2的Matrix Low-Rank分解,秩的选择对表达能力的影响?


完整讲解

一、DCN-V2 的 Cross 与低秩形式

DCN 的 Cross 层可写成 (忽略 bias),其中 是秩至多为 1 的矩阵。DCN-V2 把这一「秩 1」的交叉扩展为多秩形式,用一组低秩矩阵来建模更丰富的交叉:

或等价的矩阵形式:用 个秩 1 矩阵之和,故 的秩 ),则 (这里为简化略去与 的显式关系,V2 中有与 结合的版本,但「低秩分解」思想一致)。 即每一层用 个「左向量 + 右向量」来近似一个更大的交互矩阵,参数量从 降为

二、秩 对表达能力的影响

  • 小(低秩):参数量少、不易过拟合、训练稳定;但可表达的交叉模式有限,相当于限制在「少数几个主方向」上的交互,表达能力弱,复杂交叉可能学不好。
  • :更接近满秩矩阵,表达能力更强,可拟合更细粒度的特征组合;但参数多、易过拟合,且计算与显存都增加。
  • 经验 常取 1~32 之间,在 CTR 等任务上 往往就够用;可通过验证集或正则选择 ,相当于在表达力与泛化、算力之间做折中

三、与 DCN 原版的对比

  • DCN 原版:每层等价于秩 1(),一层只有一个「交叉方向」。
  • DCN-V2:每层用秩 的矩阵,一层内有 个交叉方向,同层参数量仍为 ,在相近参数量下比单秩更灵活,因此 V2 在不少 benchmark 上优于 DCN。

面试要点

  • 能说清 DCN-V2 的 Matrix Low-Rank 形式:每层用 个秩 1 矩阵之和,参数量 而非
  • 能说明秩 的影响: 小 → 省参数、稳、表达弱; 大 → 表达强、易过拟合;常取 4~16 折中。
  • 能对比 DCN:原版每层秩 1;V2 每层秩 ,同参数量下表达更丰富。

记忆要点

  • DCN-V2:Cross 用低秩 ,参数量
  • :小 → 表达弱、稳;大 → 表达强、易过拟合;常用
  • 相对 DCN:原版秩 1;V2 秩 ,更灵活。

返回模块 | 返回总览

04-特征交互网络/037.md

第 37 题:AutoInt的多头自注意力,特征间交互的稀疏性诱导?

题目

AutoInt的多头自注意力,特征间交互的稀疏性诱导?


完整讲解

一、AutoInt 的多头自注意力

AutoInt 用 Multi-Head Self-Attention 在特征 embedding 上做交互:把每个特征看成一个「token」,用 attention 学习「哪些特征对之间重要」。设 embedding 矩阵 个特征、每维 ),在 head 上做

多头输出拼起来再经线性层得到「交互后的特征表示」,可堆叠多层,最后用 sum pooling 或 concat 等得到样本表示并预测。这样特征与特征之间的权重由 attention 动态学习,不再像 FM 那样固定为两两内积。

二、特征间交互的稀疏性从哪里来

「稀疏性」在这里主要指:不是所有特征对都同等重要,attention 学到的权重矩阵往往大部分接近 0、少数突出,即交互集中在少数特征对上。

  1. Softmax 的竞争 对每一行做归一化,大 logit 会被放大、小 logit 被压小,天然倾向于产生「少数大权重、多数小权重」的分布,相当于对 attention 权重做了稀疏化(相对均匀分布而言)。
  2. 多头:不同 head 可以关注不同子集的特征对(如 head1 关注用户–物品、head2 关注上下文–物品),每个 head 内部仍是「少数对重要」,整体上交互矩阵是块状或结构化稀疏
  3. 训练目标:若任务是 CTR 等,只有少数特征组合真正驱动标签,梯度会鼓励模型把 attention 集中在这些对上,其余对的权重被压低,学习到的交互自然稀疏

因此不需要额外加 L1 等正则,softmax + 多头 + 任务目标 就能诱导出「特征间交互的稀疏性」,使模型可解释、且参数利用更集中。

三、与 FM 的对比

FM 是「所有二阶对都参与、用内积权重」,没有显式的「谁和谁更重要」;AutoInt 用 attention 显式学成对权重,且权重分布往往稀疏,可解释性更好,也适合高维稀疏特征下「只关心少量关键交叉」的场景。


面试要点

  • 能写出 AutoInt 中多头 self-attention 的形式: 线性变换得到,输出为 softmax(),多头拼接再线性。
  • 能说清「稀疏性诱导」:softmax 竞争导致少数大权重;多头分工;任务目标让重要特征对获得更大权重,其余被压低。
  • 能对比 FM:FM 全对参与、内积权重;AutoInt 动态权重、往往稀疏、可解释。

记忆要点

  • AutoInt:特征当 token,多头 self-attention 学特征间权重;堆叠多层后 pooling 预测。
  • 稀疏性:softmax 竞争 + 多头分工 + 任务目标 → 交互权重多数小、少数大。
  • 与 FM:attention 显式、稀疏;FM 全对、内积。

返回模块 | 返回总览

04-特征交互网络/038.md

第 38 题:FiBiNET的Squeeze-Excitation,与CV中SE-Net的输入维度差异处理?

题目

FiBiNET的Squeeze-Excitation,与CV中SE-Net的输入维度差异处理?


完整讲解

一、CV 里 SE-Net 的 Squeeze-Excitation

SE(Squeeze-and-Excitation)在 CV 中作用在通道维:对特征图 ,先 Squeeze(对空间维 做全局池化)得到 维向量 ,再 Excitation(两层 FC:,中间用 ReLU)得到 个通道权重,最后用这些权重对原特征图逐通道 scale。即输入是 3D(高×宽×通道),Squeeze 压掉空间维,得到 1D 通道向量,维度从 变成

二、FiBiNET 里的 SE 用在什么上

FiBiNET 在双线性特征交互之后,对「交互结果」做双线性权重的重标定。具体地,会得到一组向量(例如每个 field 对对应一个向量,或每个特征一个向量),把这些向量在「某个维度」上排成矩阵,例如形状为「特征数 × 隐维」或「field 对数 × 隐维」。此时没有空间维 ,只有「样本内特征/field 数」和「隐维」两维,即输入是 2D(如 ),而不是 3D 特征图。

三、输入维度差异怎么处理

  • CV SE:Squeeze 对 池化 → 得到长 的向量;Excitation 的 FC 输入/输出维都是「通道相关」的
  • FiBiNET SE:没有空间维,只有「特征/field 维」和「隐维」。两种常见做法:
    1. 在「特征/field 维」上 Squeeze:对「隐维」那一维做池化(如 mean/max),把每个特征/field 压成一个标量,得到长 (或 )的向量,再经 FC 得到每个特征/field 的权重,对原 2D 张量按「特征/field」这一维做 scale。这样 Squeeze 压的是隐维,Excitation 在「特征/field 数」这一维上做,和 CV 里「压空间、权通道」是对偶的。
    2. 在「隐维」上做 SE:若把「特征/field 维」视作「通道」,则对特征/field 维做 Squeeze 得到 维向量,再 得到隐维各维的权重,对隐维做 scale。即把 2D 的 (特征数×隐维) 中的「特征数」当空间、「隐维」当通道,和 CV 的 (H×W×C) 对应。

无论哪种,核心都是:CV 输入 3D,压空间得通道权;FiBiNET 输入 2D,要选「压哪一维、权哪一维」,选「压隐维、权特征」或「压特征、权隐维」取决于你是想强调「哪些特征/field 重要」还是「哪些隐维重要」,实现时维度与 FC 的 in/out 与之一致即可。

四、小结

FiBiNET 的 SE 与 CV 的 SE-Net 思想相同(Squeeze 聚合、Excitation 学权重、再 scale),输入形状不同(2D 特征矩阵 vs 3D 特征图),通过「选定哪一维当空间、哪一维当通道」并相应做池化与 FC,即可复刻 SE 的「压缩–激励」流程。


面试要点

  • 能说清 CV 中 SE:Squeeze 对空间 池化得 维,Excitation 为 ,再对通道 scale。
  • 能说明 FiBiNET 输入是 2D(如特征数×隐维),无空间维;需选定「压哪一维、权哪一维」。
  • 能举例:压隐维权特征(得「哪些特征重要」),或压特征权隐维(得「哪些隐维重要」),与 CV 的「压空间权通道」对偶。

记忆要点

  • CV SE:3D 输入,压 (H,W) 得 C 维,Excitation 权通道。
  • FiBiNET SE:2D 输入,压一维、权另一维;压隐维权特征 / 压特征权隐维 二选一。
  • 思想一致,维度处理不同:选好「谁当空间、谁当通道」即可。

返回模块 | 返回总览

04-特征交互网络/039.md

第 39 题:InterHAt的层次化注意力,如何建模特征组的层级结构?

题目

InterHAt的层次化注意力,如何建模特征组的层级结构?


完整讲解

一、特征组的层级结构是什么

在推荐/CTR 里,特征常按语义分层:例如最底层是「原始特征」(年龄、性别、物品 ID、城市等),再往上是「特征组」或「field」(用户画像、物品属性、上下文),再往上可以是「模块级」(用户侧、物品侧、交叉侧)。层级结构指:组与组之间有包含或从属关系(如「用户画像」包含「年龄、性别」),或不同层级的抽象程度不同(底层细粒度、上层粗粒度),希望模型能同时利用「组内」和「组间」的关系。

二、InterHAt 的层次化注意力怎么建

InterHAt(Interpretable Hierarchical Attention)用多层注意力对应多层结构:

  1. 底层:特征级 attention。在每组(field)内部,对组内各特征的 embedding 做 self-attention 或类似聚合,得到「组表示」;同时得到组内每个特征的权重,表示该特征在组内的重要性
  2. 上层:组级 attention。把各组的表示当作新的一层「token」,再对这些组做 attention,得到「组与组」之间的权重和最终的组级聚合表示;表示哪些组之间、哪些组整体更重要
  3. 可有多层:若业务上还有更高层(如用户侧/物品侧),可再对「侧」做一层 attention,形成「特征 → 组 → 侧」的层级注意力。

这样,每一层 attention 负责一层结构:底层学组内关系,上层学组间关系,层级与 attention 的层级一一对应,既建模了特征组的层级,又便于可解释(每层可可视化权重)。

三、层级如何与网络结构对应

  • 输入:按 field/组组织好的特征 embedding,例如 list of (field_embedding_matrix)。
  • 第 1 层 attention:在每个 field 内做 attention,输出每个 field 的向量表示 + 组内权重。
  • 第 2 层 attention:以各 field 的表示为输入,做 field 之间的 attention,输出 field 级权重与全局表示。
  • 更高层(若有):继续把当前层输出当「超组」的表示,再 attention。

参数上,每层有各自的 或 scoring 网络;层级结构由「先组内、再组间」的拓扑固定,不是 DNN 那种「全连接层」的扁平结构,因此是显式的层次化建模

四、小结

InterHAt 通过「特征 → 组 → (可选)更高层」的逐层 attention,让每一层 attention 对应一层特征组层级,从而建模组内重要性与组间重要性,并保持可解释性。


面试要点

  • 能说清「特征组的层级」:如特征 → 组(field) → 侧,或组内/组间两层。
  • 能描述 InterHAt:底层 attention 在组内、得到组表示;上层 attention 在组间、得到组间权重与全局表示;可堆叠更多层对应更高层级。
  • 能说明层级与网络对应:每层 attention 负责一层结构,拓扑是「先组内再组间」,显式层次化。

记忆要点

  • InterHAt:层次化注意力 = 底层组内 attention + 上层组间 attention,可再加更高层。
  • 层级结构:特征 → 组 → (可选)侧;每层 attention 对应一层。
  • 实现:按 field 组织输入,先算组内权重与组表示,再算组间权重与全局表示。

返回模块 | 返回总览

04-特征交互网络/040.md

第 40 题:MaskNet的实例引导掩码,动态特征选择的实现机制?

题目

MaskNet的实例引导掩码,动态特征选择的实现机制?


完整讲解

一、实例引导掩码在做什么

MaskNet 的核心是实例级(instance-wise)动态特征选择:对每个样本,根据当前输入生成一个掩码,用这个掩码对特征或特征通道做加权/门控,从而不同样本看到不同的特征子集或不同的特征强度,实现「动态特征选择」。所谓实例引导,就是掩码由当前样本经过一个小网络(如 MLP)或 attention 得到,而不是全局共享的固定权重。

二、动态特征选择的实现机制

常见做法有两种(或组合使用):

  1. 基于 MLP 的掩码生成:输入为当前样本的 embedding 拼接(或 pooled 表示),经过一两层全连接 + 激活(如 sigmoid),输出与「特征数」或「特征维度」同长的向量 。然后用 对特征做逐元素乘:(或对每个 field 一个标量掩码)。这样每个样本的 不同,相当于每个实例选出了「对自己有用的」特征或维度,实现动态选择。
  2. 基于 attention 的掩码:用当前样本的某个 query 表示对「所有特征」或「所有 field」做 attention,得到权重 ,再用 对对应特征或 field 加权。attention 权重天然在 0~1 之间(softmax),且随样本变化,等价于软掩码;若对权重做 threshold 或 top-k,可得到近似「硬」选择。

训练:掩码生成器与主模型一起端到端训练;损失只来自最终预测,梯度会反传到掩码,使掩码学会「在哪些样本上突出哪些特征」能降低损失,从而学到实例相关的有用模式

三、与静态特征选择的区别

  • 静态:特征重要性或选择是全局的(如对所有样本同一套权重或同一套选中的特征),不随样本变。
  • MaskNet 实例引导:掩码随样本变,同一特征在不同样本上可以有时被强调、有时被抑制,更灵活,适合「不同用户/不同上下文下重要特征不同」的场景。

四、小结

MaskNet 的实例引导掩码 = 用当前样本的表示通过 MLP 或 attention 生成掩码向量,对特征或维度做逐元素乘(或加权),实现按样本动态特征选择;掩码与主模型联合训练,由任务目标驱动学到「何时突出哪些特征」。


面试要点

  • 能说清「实例引导掩码」:掩码由当前样本生成,不同样本掩码不同,用于对特征/维度做加权或门控。
  • 能描述实现:MLP 以样本表示为输入、输出与特征数/维度同长的向量,sigmoid 后与特征逐元素乘;或用 attention 得到样本相关的特征权重作软掩码。
  • 能对比静态选择:实例引导是样本级动态;静态是全局固定权重或固定特征子集。

记忆要点

  • MaskNet:实例引导 = 当前样本 → 生成掩码 → 对特征/维度加权(如 )。
  • 实现:MLP(sample_embedding) → sigmoid → mask;或 attention 权重当软掩码;端到端训练。
  • 动态 vs 静态:同一特征在不同样本上可被不同强度选择;静态则全局一致。

返回模块 | 返回总览

04-特征交互网络/README.md

04-特征交互网络(第 31–40 题)

题号 主题 文章
31 FM的二阶交互分解,复杂度从O(n²)到O(kn)的推导… 031.md
32 FFM(Field-aware FM)的field划分策… 032.md
33 DeepFM的共享Embedding设计,Wide侧和D… 033.md
34 xDeepFM的CIN模块,层间特征映射的显式构造过程? 034.md
35 DCN的Cross Network,多项式逼近能力的理论… 035.md
36 DCN-V2的Matrix Low-Rank分解,秩的选… 036.md
37 AutoInt的多头自注意力,特征间交互的稀疏性诱导? 037.md
38 FiBiNET的Squeeze-Excitation,与… 038.md
39 InterHAt的层次化注意力,如何建模特征组的层级结构… 039.md
40 MaskNet的实例引导掩码,动态特征选择的实现机制? 040.md

返回总览

05-序列与时序建模/041.md

第 41 题:DIN的注意力权重计算,引入激活单元(Activation Unit)的动机?

题目

DIN的注意力权重计算,引入激活单元(Activation Unit)的动机?


完整讲解

一、DIN 的注意力权重计算

Deep Interest Network (DIN) 用局部注意力从用户历史行为序列中选出与候选 item 相关的部分。设用户行为序列为 为 item 嵌入),候选 item 嵌入为 ,注意力权重为

用户表示 加权和,与候选相关的历史获得更大权重,实现「候选相关」的兴趣表达。

二、激活单元 (Activation Unit) 的动机

动机:简单内积 表达能力有限,无法刻画「行为 item 与候选 item 在多种维度上的复杂匹配」(如类目、品牌、价格等)。引入 Activation Unit (AU) 做一个小型前馈网络,输入为行为与候选的拼接及外积等,输出标量分数:

其中 提供拼接 + 逐元素乘积,增强交互; 常用 PReLU。这样模型能学习「在什么维度上、多大程度上相关」,而不是单一内积。

三、工程要点

  • 序列通常按时间倒序,近期行为更靠前;训练时用候选 item 作为 query,历史行为作为 key/value。
  • 为控制序列长度与计算量,常对历史做截断或池化(如 sum pooling 前先乘 );线上可对用户侧预计算 embedding,候选侧实时算 attention 得到

面试要点

  • 能写出 DIN 的注意力权重公式及用户向量 ,并说明「与候选相关」的局部注意力动机。
  • 能解释为何不用简单内积而用 Activation Unit:内积表达能力有限,AU 用 MLP + 拼接与外积,可学习多维度上的复杂匹配。
  • 能简述 AU 的典型输入形式: 及在工业界序列长度、预计算等方面的工程处理。

记忆要点

  • DIN 注意力:;候选相关历史权重大。
  • 激活单元 AU:用 MLP 对 打分,替代内积,增强多维度匹配能力。
  • 工程:历史序列截断、用户侧预计算、候选侧实时 attention。

返回模块 | 返回总览

05-序列与时序建模/042.md

第 42 题:DIEN的GRU with Attentional Update gate,兴趣演化的建模细节?

题目

DIEN的GRU with Attentional Update gate,兴趣演化的建模细节?


完整讲解

一、兴趣演化与 GRU 建模

DIEN (Deep Interest Evolution Network) 认为用户兴趣会随时间演化,而非静态池化。用两层结构:底层 Interest Extractor Layer 从行为序列得到兴趣序列 (常用 GRU);顶层 Interest Evolving Layer 在兴趣序列上再跑 GRU,并引入与候选 item 相关的注意力来驱动演化,使最后隐状态更贴合当前候选。

二、GRU with Attentional Update gate (AUGRU)

标准 GRU 的更新门为 ,与候选无关。AUGRU 用注意力得分 (由当前兴趣 与候选 算得)对更新门做调制:

即:与候选越相关的历史兴趣, 越大,更新门越大,越倾向于保留当前步的隐状态(少被覆盖);不相关的兴趣更新门被压低,隐状态更快演化掉。这样演化过程是「面向候选的兴趣演化」,最终 既有时序信息又对齐候选。

三、注意力得分与损失

通常由 经一个小网络或内积 + softmax 得到。辅助损失:用下一时刻真实行为(如 next item)作为正样本,当前兴趣 做预测,增加兴趣表示的判别性,避免兴趣向量退化成无关表示。


面试要点

  • 能说清 DIEN 的两层:Interest Extractor(行为→兴趣序列)与 Interest Evolving(兴趣序列的演化),以及「演化要面向候选」的动机。
  • 能写出 AUGRU 的核心式子:,并解释「相关兴趣保留、不相关兴趣被遗忘」的语义。
  • 能简述辅助损失:用 next behavior 监督兴趣向量,提升兴趣表达的判别性。

记忆要点

  • DIEN:兴趣抽取层(GRU)→ 兴趣演化层(AUGRU);演化与候选 item 相关。
  • AUGRU: 大则多保留当前兴趣,小则多遗忘,实现面向候选的演化。
  • 辅助损失:用下一行为监督兴趣,避免兴趣表示退化。

返回模块 | 返回总览

05-序列与时序建模/043.md

第 43 题:DSIN的Session分割策略,Session内兴趣提取的Self-Attention设计?

题目

DSIN的Session分割策略,Session内兴趣提取的Self-Attention设计?


完整讲解

一、Session 分割策略

DSIN (Deep Session Interest Network) 将用户行为序列按 Session 切分:同一 Session 内行为时间间隔短(如 30 分钟内),Session 间间隔长。这样每个 Session 对应一段相对集中的意图(如「看手机」「看耳机」),Session 级建模更符合「多兴趣片段」的假设。分割可用固定时间阈值或基于间隔的聚类。

二、Session 内兴趣提取:Self-Attention

在每个 Session 内,用 Self-Attention 聚合行为得到 Session 兴趣向量。设 Session 内行为嵌入为 ,则

或简化为对 Session 内做 scaled dot-product self-attention,再对输出做 pooling(如 mean)得到该 Session 的表示 。Self-Attention 能捕捉 Session 内 item 之间的共现与顺序,比简单 mean pooling 表达力更强。

三、Session 间兴趣与候选注意力

得到各 Session 表示 后,再对候选 item 做一层注意力,得到用户多兴趣的加权和(类似 DIN),作为最终用户表示。部分工作还会对 Session 间做 Bi-LSTM 等建模顺序。整体:Session 分割 → Session 内 Self-Attention → Session 间 + 候选注意力。


面试要点

  • 能说明 DSIN 的 Session 分割动机:短间隔为 Session,对应局部意图;Session 级建模多兴趣片段。
  • 能写出 Session 内 Self-Attention 的作用:在 Session 内做 Q/K/V 注意力或 scaled dot-product,再 pooling 得到
  • 能简述整体流程:分割 → Session 内 Self-Attention → 各 Session 表示 → 对候选的注意力聚合。

记忆要点

  • Session 分割:按时间间隔(如 30 分钟)切分,一段 Session 一个局部意图。
  • Session 内:Self-Attention 聚合行为 → Session 表示
  • Session 间:对候选 item 再做注意力,多 Session 兴趣加权融合。

返回模块 | 返回总览

05-序列与时序建模/044.md

第 44 题:BST的Transformer编码器,位置编码在异构行为序列中的设计?

题目

BST的Transformer编码器,位置编码在异构行为序列中的设计?


完整讲解

一、BST 与 Transformer 编码器

BST (Behavior Sequence Transformer) 用 Transformer 编码用户行为序列,直接对序列做 self-attention,得到每个位置的上下文表示,再通过 pooling 或取最后位置得到用户表示。序列为 item 嵌入序列 ,经过多层 Transformer block(Multi-Head Self-Attention + FFN + 残差 + LayerNorm),输出 ,用户向量常取 或 mean pooling。

二、异构行为与位置编码设计

推荐场景中行为是异构的:点击、加购、购买等不同类型,且同一 item 可能多次出现、不同位置含义不同。BST 的位置编码设计通常包括:(1)序列位置:学习式或正弦位置编码,区分「第几个行为」;(2)行为类型:为点击/加购/购买等学 type embedding,与 item embedding 相加或拼接;(3)时间信息:可把时间间隔或时间戳编码后加入。形式化可写为

这样同一 item 在不同位置、不同行为类型下有不同的输入表示,Transformer 能区分「早先的点击」与「最近的购买」等。

三、与候选的融合

得到 后,与候选 item 嵌入通过 MLP 或再乘一层候选相关 attention 得到最终预测。BST 的优势是长程依赖与异构行为在一个统一的 Transformer 框架内建模,位置与类型编码是关键设计点。


面试要点

  • 能说明 BST 用 Transformer 编码行为序列,输出上下文表示再 pooling/取最后位置得到用户表示。
  • 能列举异构行为下的位置编码设计:序列位置、行为类型 embedding、可选时间编码,以及为何需要(区分顺序与行为强度)。
  • 能简述同一 item 多位置、多类型时的输入形式: 等。

记忆要点

  • BST:行为序列经 Transformer → 或 pooling 为用户表示。
  • 位置编码:序列位置 + 行为类型(点击/加购/购买)+ 可选时间;同一 item 不同位置/类型不同表示。
  • 异构行为:用 type embedding 与位置编码让模型区分行为强度与顺序。

返回模块 | 返回总览

05-序列与时序建模/045.md

第 45 题:SIM的搜索兴趣模型,Hard Search与Soft Search的联合训练?

题目

SIM的搜索兴趣模型,Hard Search与Soft Search的联合训练?


完整讲解

一、SIM:超长序列与两阶段检索

Search Interest Model (SIM) 面向超长行为序列(如数百到数千):若全部喂进 Transformer 或 RNN,计算与显存不可接受。SIM 采用两阶段:(1)检索阶段:从全序列中检索出与当前候选当前 query 最相关的一小段子序列(如百级);(2)建模阶段:只对检索到的子序列用复杂模型(如 Transformer)做兴趣建模。检索方式分为 Hard SearchSoft Search

二、Hard Search 与 Soft Search

Hard Search:用现成检索系统(如 ANN、倒排索引),以候选 item 的 ID/类目/标签等为 query,从用户历史中召回 Top-K 相关行为,得到的是离散的子序列。实现简单、可离线建索引,但不可微,无法端到端训练。

Soft Search:用可学习的相似度(如内积或小型网络)对历史每个行为打分,取 Top-K 或软性加权,得到子序列或加权序列。可微,可与主模型联合训练,但要对长序列逐条算分,计算量大,常配合采样或近似。

三、联合训练与工程折中

联合训练:主任务(如 CTR)的损失 + 检索/打分模块的辅助损失(如检索到的序列上的 next-item 预测)。Soft Search 的相似度网络可与主模型一起反向传播;Hard Search 的检索结果可视为固定,只训练主模型,或通过 RL/梯度估计近似对检索的梯度。实践中常用 Hard 离线检索 + Soft 精排:Hard 缩小候选序列,再在缩小的序列上用可微的 attention/Soft 做精细加权,兼顾效率与可学习性。


面试要点

  • 能说清 SIM 两阶段:长序列上先检索出相关子序列,再对子序列做复杂建模;动机是控制复杂度。
  • 能对比 Hard Search(离散检索、不可微、可离线)与 Soft Search(可微、可联合训练、计算贵)。
  • 能简述联合训练思路:主损失 + 检索相关辅助损失;Hard+Soft 混合的工程做法。

记忆要点

  • SIM:长序列 → 检索相关子序列 → 对子序列用 Transformer 等建模。
  • Hard Search:ANN/倒排、离散、不可微;Soft Search:可学习打分、可微、可联合训练。
  • 工程:常 Hard 粗筛 + Soft 精排,或 Hard 固定 + 主模型端到端。

返回模块 | 返回总览

05-序列与时序建模/046.md

第 46 题:ETA的End-to-End长序列,长序列兴趣提取的线性复杂度方案?

题目

ETA的End-to-End长序列,长序列兴趣提取的线性复杂度方案?


完整讲解

一、长序列与复杂度瓶颈

用户行为序列可达数千甚至更长,若用标准 self-attention(每位置 attend 到所有位置),复杂度为 ,显存与计算难以承受。ETA (End-to-End Target Attention) 等工作的目标是在端到端不丢长序列信息的前提下,把兴趣提取的复杂度压到 或近线性。

二、ETA 的线性复杂度思路

ETA 的核心是用 Target (候选 item) 作为 query,只与行为序列做一次 target attention,而不是行为序列内部的 self-attention。设候选嵌入 ,行为嵌入 ,则

计算量:对每个 ,softmax 与加权和再 ,整体 ,与序列长度线性。这样既保留「与候选相关」的局部注意力语义,又避免 的 self-attention。

三、实现细节与扩展

可对 先做线性变换再内积(即 target 为 query,行为为 key/value);为增强表达,可堆叠多层 target attention 或混合少量 local self-attention(窗口内 )。ETA 类方法适合超长序列的线上服务:用户侧可预计算行为 embedding,请求时只对候选算一次 attention 得到


面试要点

  • 能说明长序列下 self-attention 的问题,以及 ETA 目标:端到端、线性复杂度。
  • 能写出 ETA 的 target attention 形式:以候选为 query、行为为 key/value,;复杂度
  • 能简述工程上的预计算与多层/局部 attention 的扩展。

记忆要点

  • ETA:以候选为 query 的 target attention,不做行为间 attention;复杂度
  • 公式:;保留「候选相关」且线性。
  • 工程:用户侧预计算 embedding,请求时只算一次 attention;可多层或加局部 self-attention。

返回模块 | 返回总览

05-序列与时序建模/047.md

第 47 题:SDIM的哈希注意力,局部敏感哈希(LSH)的碰撞概率控制?

题目

SDIM的哈希注意力,局部敏感哈希(LSH)的碰撞概率控制?


完整讲解

一、哈希注意力与 LSH 动机

SDIM 用局部敏感哈希 (LSH) 把「候选与历史行为」的精确 attention 近似成「只与同一哈希桶内行为」做 attention,从而把复杂度从 降到与桶大小相关、近似 或常数级(取决于 LSH 族)。核心是:相似的行为与候选会以高概率落入同一桶,只需在桶内算注意力。

二、LSH 与碰撞概率

为 LSH 函数,满足 locality-sensitive:相似向量碰撞概率高,不相似低。对于夹角相似度(如 attention 用的内积/余弦),常用 random projection LSH:随机向量 。两向量 夹角为 时,同号(同桶)概率为

越小(越相似),碰撞概率越大。用 个独立哈希函数构成复合桶(如 AND 或 OR 构造),可控制 precision-recall:更多 hash 联合(AND)桶更小、更准、召回低;少 hash(OR)桶更大、召回高、噪声多。

三、碰撞概率控制与工程

控制方式:(1)调节 hash 个数 与 AND/OR 结构;(2)多组独立哈希(多轮 bucket),取并集或投票,提高召回;(3)桶内再做精确 attention 或二次排序。SDIM 通过 LSH 把「全序列 attention」变为「若干桶内 attention」,在可控碰撞概率下近似长序列兴趣,兼顾效果与复杂度。


面试要点

  • 能说明 SDIM 用 LSH 做哈希注意力的动机:相似项同桶、只算桶内 attention,降复杂度。
  • 能写出 random projection LSH 的碰撞概率与夹角关系:;夹角小则碰撞概率高。
  • 能说清如何控制:、AND/OR、多组哈希;桶内精确 attention 做精排。

记忆要点

  • SDIM:LSH 将行为/候选分桶,只在桶内做 attention;复杂度由桶大小控制。
  • LSH 碰撞概率:夹角 小 → 碰撞概率高(如 ); 与 AND/OR 控制桶大小与召回。
  • 工程:多组 hash 提高召回,桶内精确 attention 保证质量。

返回模块 | 返回总览

05-序列与时序建模/048.md

第 48 题:HSTU的块级因果注意力,生成式推荐的新范式挑战?

题目

HSTU的块级因果注意力,生成式推荐的新范式挑战?


完整讲解

一、生成式推荐与因果注意力

生成式推荐(如下一项生成、序列生成)需要自回归地预测下一个 token/item,因此对历史序列必须用 因果(单向)注意力:位置 只能看到 ,不能看到 ,否则会信息泄露。标准做法是 attention 矩阵加 causal mask,得到下三角注意力权重。

二、HSTU 的块级因果注意力

块级(chunk-wise)因果注意力把序列切成若干块,块内做完整 self-attention(块内无因果限制),块间做因果:当前块只能 attend 到当前块及之前块。即注意力矩阵按块分块,下三角块可 attend,上三角块 mask 掉。这样在块内可并行、长程依赖通过「块与块」的因果传递建模,相比逐 token 因果 attention 计算更高效(块内无 mask,GPU 友好),同时满足自回归因果性。

三、生成式推荐的新范式与挑战

新范式:从「判别式 CTR/CVR」转向「生成式序列生成」——给定历史,生成下一项或整个序列;模型可做检索、重排序、多样性生成。挑战:(1)评估:BLEU/NDCG 等与业务指标不完全一致,需定义生成质量与多样性指标;(2)解码:自回归解码慢,需要 chunk 并行、非自回归或蒸馏;(3)可控性:如何注入约束(如类目、长度、多样性);(4)与检索结合:生成式常与检索混合(retrieve-then-generate)。块级因果注意力是生成式架构里兼顾效率与因果约束的一种典型设计。


面试要点

  • 能说明生成式推荐为何需要因果注意力:自回归预测下一项,不能看到未来位置。
  • 能解释 HSTU 块级因果:块内全连接 attention,块间仅向后看;兼顾因果性与块内并行。
  • 能简述生成式推荐的新范式(序列生成)及挑战:评估、解码速度、可控性、与检索结合。

记忆要点

  • 因果注意力:位置 只能看 ;生成式推荐必备。
  • 块级因果:块内全 attention,块间下三角;块内并行、满足因果。
  • 生成式挑战:评估指标、解码效率、可控性、检索与生成结合。

返回模块 | 返回总览

05-序列与时序建模/049.md

第 49 题:时间感知的注意力权重衰减,指数衰减 vs 可学习衰减函数?

题目

时间感知的注意力权重衰减,指数衰减 vs 可学习衰减函数?


完整讲解

一、时间感知注意力的动机

用户行为序列中,时间越近的行为往往与当前意图越相关;直接对历史做 attention 若不显式引入时间,模型只能从数据里隐式学时间偏好。时间感知的注意力在算权重时加入时间衰减,使近期行为天然获得更高权重或更高先验,提升可解释性与效果。

二、指数衰减

设行为时间戳为 ,当前时间 ,时间差 (或 等)。指数衰减形式为

即先对 attention score 乘上时间衰减 再 softmax。 为衰减率: 大则远期行为权重快速趋近 0,更强调近期; 小则衰减慢,中长期历史仍有用。优点:形式简单、可解释、超参少;缺点:衰减形式固定,无法随数据或用户变化。

三、可学习衰减函数

可学习衰减:用小型网络或参数化函数,以 (及可选的其他特征)为输入,输出标量权重 ,再与 content-based attention score 结合。例如 或学习一个非单调的「近期与某段中期都重要」的曲线。优点:可拟合复杂时间模式(如周期性、用户差异);缺点:需更多数据与正则,避免过拟合。实践中常采用「指数衰减 + 可学习缩放/偏置」的折中。


面试要点

  • 能写出时间感知注意力的动机:近期行为更相关,显式时间衰减提升效果与可解释性。
  • 能给出指数衰减公式: 与 attention 的结合方式; 对近期/远期权重的控制。
  • 能对比可学习衰减:可拟合复杂模式、用户差异,但需数据与正则;可与指数形式结合使用。

记忆要点

  • 时间衰减: 与 score 相乘再 softmax; 大偏近期。
  • 指数衰减:简单可解释、超参少;可学习衰减:灵活、可非单调,需更多数据。
  • 折中:指数形式 + 可学习的缩放/偏置或混合。

返回模块 | 返回总览

05-序列与时序建模/050.md

第 50 题:多行为序列融合(点击、收藏、购买),行为强度的量化与嵌入?

题目

多行为序列融合(点击、收藏、购买),行为强度的量化与嵌入?


完整讲解

一、多行为及其强度

推荐场景存在多种行为:点击、收藏、加购、购买等,它们对「用户兴趣/意图」的强度不同:购买 > 加购 > 收藏 > 点击。多行为序列融合的目标是:在同一序列中区分行为类型与强度,让强行为在用户表示中占更大权重或更显式地参与预测。

二、行为强度的量化与嵌入

量化方式:(1)离散类型嵌入:为每种行为学一个 type embedding ,与 item 嵌入相加或拼接,即 ,模型通过 type 学习不同强度的贡献;(2)标量权重:给每种行为一个可学习或预设的标量 (如购买=1,加购=0.7,点击=0.3),在 attention 或 pooling 时乘上 ,即 ;(3)行为嵌入 + MLP:用 MLP 将 (item_emb, behavior_emb) 映射到统一空间,隐式学强度。形式化可写为

三、融合方式与损失

序列融合:同一序列里混合多种行为,用上述 作为序列元素做 attention/GRU/Transformer;或在 loss 侧做多任务:主目标(如购买) + 辅助目标(点击、加购),各行为共享序列表示、分头预测。这样强行为在梯度与表示中自然占优,同时利用全序列信息。工程上需注意行为分布不平衡(点击远多于购买),常用样本加权或多任务权重平衡。


面试要点

  • 能列举多行为(点击、收藏、加购、购买)及强度差异,说明融合目标。
  • 能说明行为强度的量化:type embedding、标量权重、或 MLP 融合;以及如何与 attention/pooling 结合。
  • 能简述多任务损失与序列融合:共享表示、多行为预测头;以及样本/损失加权应对不平衡。

记忆要点

  • 多行为强度:购买 > 加购 > 收藏 > 点击;需在表示或权重中体现。
  • 量化:type embedding、标量 、或 MLP;与 结合。
  • 融合:同一序列混合多行为 + 多任务损失;注意行为不平衡与加权。

返回模块 | 返回总览

05-序列与时序建模/README.md

05-序列与时序建模(第 41–50 题)

题号 主题 文章
41 DIN的注意力权重计算,引入激活单元(Activatio… 041.md
42 DIEN的GRU with Attentional Up… 042.md
43 DSIN的Session分割策略,Session内兴趣提… 043.md
44 BST的Transformer编码器,位置编码在异构行为… 044.md
45 SIM的搜索兴趣模型,Hard Search与Soft … 045.md
46 ETA的End-to-End长序列,长序列兴趣提取的线性… 046.md
47 SDIM的哈希注意力,局部敏感哈希(LSH)的碰撞概率控… 047.md
48 HSTU的块级因果注意力,生成式推荐的新范式挑战? 048.md
49 时间感知的注意力权重衰减,指数衰减 vs 可学习衰减函数… 049.md
50 多行为序列融合(点击、收藏、购买),行为强度的量化与嵌入… 050.md

返回总览

06-图神经网络/051.md

第 51 题:GCN的谱卷积推导,为什么推荐中常用空间域而非谱域方法?

题目

GCN的谱卷积推导,为什么推荐中常用空间域而非谱域方法?


完整讲解

一、GCN 的谱卷积推导

图上的卷积在谱域定义:对图拉普拉斯 (或 )做特征分解 ,图信号 在谱域为 。谱卷积定义为在谱域对特征值做逐点乘积(滤波),再逆变换回空域:

为减少参数量并局部化,常用 Chebyshev 多项式 近似 ,取 阶:,其中 一阶近似)并设 、合并参数后得到 GCN 的常见形式:

即对邻接矩阵加自环、对称归一化后,与特征矩阵相乘再经线性变换与激活。

二、谱域与空间域的区别

谱域方法:依赖拉普拉斯特征分解,卷积核是特征值的函数;需要整图、且与图结构(特征值)强绑定,换图需重新分解,难以归纳到新图/新节点空间域方法:直接在节点邻域上定义聚合,如「把邻居特征聚合再变换」,不依赖全局特征分解,可对任意子图、新节点应用,天然归纳

三、推荐中为何常用空间域

推荐场景常含超大规模图(用户-物品二部图、社交+物品等),全图特征分解不可行;且新用户、新物品不断加入,需要归纳式对新节点生成嵌入。空间域 GNN(如 GraphSAGE、LightGCN)只依赖邻居采样与聚合,不依赖全局谱,易扩展、易做 mini-batch,因此工业界推荐里多用空间域或「空间式」的 GCN 实现(即把 GCN 当逐层邻居聚合用,不显式做谱分解)。


面试要点

  • 能写出 GCN 的谱卷积思想:谱域滤波 ,以及一阶近似后的形式
  • 能区分谱域(整图、依赖特征分解、难归纳)与空间域(邻域聚合、可归纳、可扩展)。
  • 能说明推荐场景为何多用空间域:大图、新节点、需要归纳与可扩展。

记忆要点

  • GCN 谱卷积:谱域 ;一阶近似 →
  • 谱域:整图、难归纳;空间域:邻域聚合、可归纳。
  • 推荐:大图+新节点 → 多用空间域/空间式 GCN。

返回模块 | 返回总览

06-图神经网络/052.md

第 52 题:GraphSAGE的邻居采样,采样数量与估计方差的权衡?

题目

GraphSAGE的邻居采样,采样数量与估计方差的权衡?


完整讲解

一、GraphSAGE 的邻居采样

GraphSAGE 用采样子图做 mini-batch 训练与推理:对每个目标节点,从邻居中有放回/无放回采样固定数量(如 为每层采样数),得到以该节点为根、深度为 子图,仅在该子图上做 层聚合。这样每层每个节点的邻居数有上界,单 batch 的计算量为 ,与图总规模解耦,可扩展到大图。

二、采样数量与估计方差

设节点 的邻居集合为 ,真实聚合为 。若随机采样 个邻居,用样本均值 估计,则

其中 与邻居特征方差相关。采样数量 越大,估计方差越小,聚合越稳定、表达越充分,但计算与显存上升; 过小则方差大、梯度噪声大、可能欠拟合。因此存在 方差与计算量的权衡

三、实践中的选择

通常每层 取 10~25;层数 时总邻居数 在几百量级。可用均匀采样按边权/度数的非均匀采样(重要邻居多采);训练时还可加 dropout 在邻居上做正则。归纳时对新节点同样做 层采样与聚合,无需重训。


面试要点

  • 能说明 GraphSAGE 的邻居采样方式:每层固定采样数 ,形成 层采样子图;动机是控制计算量。
  • 能写出采样估计的方差与 的关系: 大方差小但算力贵, 小方差大。
  • 能简述实践中的 取值、均匀/非均匀采样及 dropout。

记忆要点

  • GraphSAGE:每层采样 个邻居, 层子图;计算
  • 方差: 大稳但贵, 小省但噪声大。
  • 实践: 约 10~25,可非均匀采样、邻居 dropout。

返回模块 | 返回总览

06-图神经网络/053.md

第 53 题:PinSage的随机游走采样,如何设计适合推荐的游走策略?

题目

PinSage的随机游走采样,如何设计适合推荐的游走策略?


完整讲解

一、PinSage 与随机游走

PinSage 是 Pinterest 提出的图推荐方法,在用户-物品-物品等异构图或二部图上,用 random walk 采样邻居,再在采样子图上做聚合(如 mean pooling + MLP),得到节点嵌入用于推荐。随机游走替代「均匀采样邻居」的好处是:多跳路径上的共现能反映「结构相似性」(如同一 session、同一类目下的物品更容易在游走中一起被采到),更适合推荐中的「相似物品/同兴趣」定义。

二、适合推荐的游走策略

长度与步数:游走长度 和每节点采样的游走次数 决定覆盖范围与计算量; 大则多跳、感受野大,但噪声也增加;推荐里常用 边权:按边权(如点击次数、共现次数)做非均匀采样——高权边以更高概率被走,使重要连接在采样子图中更集中。重启/偏置:从目标节点出发的 random walk with restart (RWR)node2vec 式的 p/q 偏置(BFS/DFS 倾向)可控制「局部 vs 全局」: 小、 小更偏向 BFS(邻域), 大更偏向 DFS(远距离)。二部图:在 user-item 图上可约束「user→item→user→…」交替,或只在 item 子图上做游走再与 user 聚合,以符合业务逻辑。

三、从游走到嵌入

游走序列可送入 Word2Vec / Node2Vec 得到嵌入;或把「从 出发的游走所经过的节点集合」视为 多跳邻居,再用 GNN 在该集合上做聚合得到 的嵌入。PinSage 采用后者:游走定义邻居、再 GNN 聚合,并配合课程学习(先易后难)、负采样与 hard negative 提升效果。


面试要点

  • 能说明 PinSage 用随机游走采样的动机:多跳路径反映结构/兴趣相似性,适合推荐。
  • 能列举游走策略:长度 、次数 ;边权非均匀采样;RWR 或 p/q 偏置控制 BFS/DFS;二部图上的交替或 item 子图。
  • 能简述游走与嵌入的结合:游走得到邻居集 → GNN 聚合,或游走序列 → Node2Vec。

记忆要点

  • PinSage:随机游走采样邻居 → 多跳结构相似性,适合推荐。
  • 策略:;边权采样;RWR/p/q(BFS/DFS);二部图交替或 item 子图。
  • 嵌入:游走邻居集 + GNN 聚合,或游走序列 + Node2Vec。

返回模块 | 返回总览

06-图神经网络/054.md

第 54 题:LightGCN的简化分析,去除特征变换的合理性实验验证?

题目

LightGCN的简化分析,去除特征变换的合理性实验验证?


完整讲解

一、LightGCN 的简化

LightGCN 认为在协同过滤场景中,GCN 里的特征变换(线性层 )与非线性激活不是必需的,甚至可能带来过平滑与过拟合。因此 LightGCN 去掉:每层只做邻接矩阵归一化后的邻居聚合,不做 ,仅做

最终嵌入为各层表示的平均;预测时用 。参数量仅剩 embedding 层,模型极简。

二、合理性的实验验证

原论文通过消融与对比验证「去掉特征变换」的合理性:(1)与 NGCF(含 )对比,LightGCN 在多个数据集上 Recall/NDCG 更高,说明在 CF 场景下邻接结构本身已提供足够信号,多余变换反而损害;(2)层数:LightGCN 在 2~4 层时效果较好,层数再增会过平滑,与「无 时过平滑更易发生」一致,但适度层数下简化版更优;(3)嵌入维度:与 NGCF 同维时 LightGCN 更少参数、更好泛化。这些实验支持「在 CF 中邻域聚合比特征变换更重要」的结论。

三、理论视角

从图信号角度,LightGCN 相当于对初始嵌入做多阶平滑),各阶求平均相当于一种多尺度聚合;去掉 避免了每层对特征空间的拉伸/旋转,减轻过平滑时的维度坍缩。因此「简化」既有实验支撑,也有一定的图滤波解释。


面试要点

  • 能写出 LightGCN 的简化:无 、无 ,仅 ,最终
  • 能说明合理性验证:与 NGCF 对比效果更好;层数 2~4 适宜;参数量少、泛化好。
  • 能简述「邻域结构比特征变换更重要」的结论及多尺度平滑的直观理解。

记忆要点

  • LightGCN:只做 ,无 为各层平均;仅 embedding 参数。
  • 验证:优于 NGCF、层数 2~4、少参数更好泛化。
  • 直观:CF 中邻接结构足够;多阶平滑、无 减轻过平滑。

返回模块 | 返回总览

06-图神经网络/055.md

第 55 题:NGCF的邻居聚合,高阶连通性的过度平滑问题?

题目

NGCF的邻居聚合,高阶连通性的过度平滑问题?


完整讲解

一、NGCF 的邻居聚合与高阶连通性

NGCF (Neural Graph Collaborative Filtering) 在 user-item 二部图上做 GCN 式传播:每层将邻居表示聚合后经线性变换与非线性,再与自身表示结合,即

多层堆叠后,节点表示会融合 -hop 邻居的信息,即高阶连通性(共同交互过的 user/item、协同过滤的多跳路径)。高阶信息有助于捕捉间接兴趣,但层数过多会带来过平滑

二、过度平滑问题

过平滑 (over-smoothing):GCN 每层本质是邻接矩阵归一化后对特征的平滑;层数 大时, 趋于稳定,节点表示会趋同(趋于同一向量或子空间),区分度下降。从特征值角度, 的最大特征值为 1,多次幂后主导特征子空间,节点在该子空间上的投影越来越接近。表现上:层数增加时,先升后降——2~3 层常最优,再加深则 Recall/NDCG 下降。

三、缓解思路

结构层面:减少层数(2~3);残差/初始残差()保留初始特征,减缓趋同。LightGCN 的应对是去掉 并做层平均,减轻每层变换带来的坍缩。Jumping Knowledge:不同层表示做 concat 或 attention 聚合,而非只用最后一层。其他:边 dropout、层 dropout、或只在低层用 GCN、高层用 MLP 等,均可缓解过平滑。


面试要点

  • 能写出 NGCF 的层聚合形式及「高阶连通性」的含义: 层即 -hop 邻居信息。
  • 能解释过平滑:多层平滑使表示趋同、区分度下降;层数多时效果先升后降。
  • 能列举缓解方法:少层、残差/初始残差、层平均、JK、dropout 等。

记忆要点

  • NGCF:GCN 式二部图传播;多层 = 高阶连通性。
  • 过平滑: 使表示趋同;层多效果变差。
  • 缓解:2~3 层、残差、LightGCN 式简化、JK、dropout。

返回模块 | 返回总览

06-图神经网络/056.md

第 56 题:UltraGCN的约束损失,直接学习邻接矩阵的收敛性分析?

题目

UltraGCN的约束损失,直接学习邻接矩阵的收敛性分析?


完整讲解

一、UltraGCN 的约束损失与无消息传递

UltraGCN 认为显式的多层消息传递(如 GCN/NGCF)会带来过平滑与高计算量,因此去掉消息传递,直接对嵌入施加与图结构一致的约束:希望「有边相连的节点」嵌入更相似、「无边」的节点更不相似。即把「图结构」转化为损失中的约束,通过优化损失间接学到符合邻接关系的嵌入,而不经过显式 的传播。

二、约束损失形式

设邻接矩阵 (或带权),正样本对 ,负样本对从无边节点中采样 。约束损失可写为

即 BPR/InfoNCE 形式的对比损失:正对拉近、负对推远; 为温度。可选地加入二阶约束:若 都有边,则希望 在嵌入空间也较近,通过多跳正样本或额外项实现,从而隐式利用高阶结构,而无需显式多层 GCN。

三、收敛性分析直观

在理想情况下,若负样本充分、优化收敛,最小化上述损失会使 对有边 较大、对无边较小,即嵌入满足「邻接 ≈ 相似」。收敛性依赖:损失凸性(在嵌入空间非凸,但相对平滑);负采样质量与数量;学习率与正则。原论文通过实验表明:不做过消息传递、仅约束损失即可达到或超过多轮 GCN 的效果,且训练更快、超参更少,从侧面说明「约束式」学习的有效性。


面试要点

  • 能说明 UltraGCN 的核心:无显式消息传递,用损失约束「有边相似、无边不相似」。
  • 能写出约束损失的形式:正对拉近、负对推远(BPR/InfoNCE);可选二阶/多跳约束。
  • 能简述收敛性直觉:优化使嵌入对齐邻接;实验上不传播也可达到/超过 GCN 效果。

记忆要点

  • UltraGCN:无消息传递,损失约束有边相似、无边不相似。
  • 损失:BPR/InfoNCE 式正负对;可选二阶约束隐式利用高阶。
  • 收敛:优化使嵌入对齐图;实验上效果相当或更好、更高效。

返回模块 | 返回总览

06-图神经网络/057.md

第 57 题:SGL的自监督图学习,图结构增强(边丢弃、特征掩码)的有效性?

题目

SGL的自监督图学习,图结构增强(边丢弃、特征掩码)的有效性?


完整讲解

一、SGL 的自监督图学习框架

SGL (Self-supervised Graph Learning) 在图推荐模型(如 LightGCN)上引入自监督辅助任务:对同一图做多种增强得到不同视图,要求同一节点在不同视图下的表示一致、不同节点区分开,即典型的 contrastive learning。主任务仍是推荐(如 BPR),辅助任务为对比损失,二者联合训练,使嵌入既满足协同信号又具备更好的泛化与鲁棒性。

二、图结构增强:边丢弃与特征掩码

边丢弃 (edge dropout):随机以概率 丢弃图中的边,得到稀疏子图;做两次独立边丢弃得到两个视图,同一节点在两个子图上的表示(经同一 GNN 编码)应接近。增强后的图仍保持局部结构,但迫使模型不过度依赖单条边,学到更稳健的表示。节点/特征掩码 (feature masking):随机将部分节点特征置零或加噪声,再经 GNN;两次独立掩码得到两视图。迫使模型利用邻居与结构补偿缺失特征,增强鲁棒性。形式化:视图 由增强得到, 为节点 在两视图的表示,对比损失(如 InfoNCE)为

三、有效性原因

边丢弃:相当于对结构的正则,防止过拟合少数强边;多视图对比要求「结构变化下表示稳定」,等价于学习结构不变的语义。特征掩码:类似 BERT 的 mask,利用上下文补全,增强对缺失/噪声的鲁棒性。二者结合能提升冷启动、长尾与稀疏场景下的表现,实验上 SGL 在多个基准上优于仅用 BPR 的 LightGCN。


面试要点

  • 能说明 SGL 框架:图推荐模型 + 自监督对比;主任务 BPR + 辅助对比损失。
  • 能解释边丢弃与特征掩码:如何生成两视图、对比目标是什么;为何有效(结构/特征正则、鲁棒性)。
  • 能写出对比损失形式(InfoNCE)及适用场景(冷启动、长尾、稀疏)。

记忆要点

  • SGL:图增强(边丢弃/特征掩码)→ 两视图对比,主任务 + 对比损失联合训练。
  • 边丢弃:子图稳健性;特征掩码:缺省/噪声鲁棒。
  • 有效:结构正则、多视图一致,提升冷启动与长尾。

返回模块 | 返回总览

06-图神经网络/058.md

第 58 题:KGAT的知识图谱注意力,实体-关系联合嵌入的翻译模型?

题目

KGAT的知识图谱注意力,实体-关系联合嵌入的翻译模型?


完整讲解

一、KGAT 与知识图谱注意力

KGAT (Knowledge Graph Attention Network) 将 user-item 交互图知识图谱 (KG) 结合:物品对应 KG 中的实体,实体间通过关系边相连(如「品牌」「类目」)。在 user-item-entity 的联合图上做 GAT 式注意力:聚合邻居时按「关系类型 + 节点内容」计算注意力权重,得到同时利用协同信号与 KG 语义的 user/item 嵌入,用于推荐。

二、实体-关系联合嵌入与翻译模型

联合嵌入:不仅学习实体嵌入 ,还学习关系嵌入 翻译模型(Trans 系列)假设 ,即头实体 加关系 应接近尾实体 ,损失为

这样关系在嵌入空间中有明确方向,可做多跳推理(如 user→item→品牌→同类目 item)。KGAT 在聚合时会把「关系」纳入注意力:例如 ,使不同关系类型对邻居权重不同,实现实体-关系联合的图注意力。

三、与推荐的结合

推荐损失(如 BPR) + KG 嵌入损失 联合训练;或先预训练 KG 嵌入再固定/微调。KG 提供可解释路径(如「同品牌」「同属性」)并缓解物品冷启动(通过属性与关系连接到已知物品)。


面试要点

  • 能说明 KGAT:user-item 图 + KG,在联合图上做关系感知的 GAT。
  • 能写出翻译模型:,以及联合嵌入与关系在注意力中的使用。
  • 能简述与推荐的结合:推荐损失 + KG 损失;可解释路径与冷启动。

记忆要点

  • KGAT:user-item + KG,关系感知的图注意力。
  • 翻译模型:;关系嵌入参与注意力权重。
  • 推荐:联合训练;可解释路径、缓解冷启动。

返回模块 | 返回总览

06-图神经网络/059.md

第 59 题:Ripple Set的波纹传播,知识图谱多跳推理的可解释性?

题目

Ripple Set的波纹传播,知识图谱多跳推理的可解释性?


完整讲解

一、Ripple Set 与波纹传播

RippleNet 用知识图谱做推荐时,不显式全图传播,而是以用户历史交互的实体为种子,在 KG 上做多跳扩展,得到若干「波纹集合」(Ripple Set):第 跳的 ripple set 为与第 跳实体通过关系边直接相连的 (头实体, 关系, 尾实体) 三元组集合。这样形成以用户兴趣为圆心、沿 KG 关系向外扩散的多跳邻域,用于生成用户表示。

二、波纹传播与用户表示

设用户历史对应实体集合 ,第 跳 ripple set 为 。用户在第 跳的表示通过对 中的三元组做注意力加权得到:以候选 item 对应实体为 query,对 计算相关性,再聚合 的嵌入(或 的翻译向量)。最终用户表示为多跳表示的加权和或拼接,再与候选 item 嵌入匹配。即「用户 → 历史实体 → 多跳邻居 → 加权聚合 → 用户向量」,形成沿 KG 的波纹式扩散

三、可解释性

路径可解释:预测可追溯到「用户点击了 A → A 与 B 同品牌 → B 与候选 C 同类目」等 KG 路径,便于解释为何推荐 C。多跳:1 跳为直接属性/关系,2~3 跳为间接偏好,跳数可调以平衡语义与噪声。Ripple Set 显式限制每跳的规模,避免全图扩展,计算可控。


面试要点

  • 能说明 Ripple Set 的定义:以用户历史实体为种子,在 KG 上多跳扩展得到的 (h,r,t) 集合。
  • 能描述波纹传播:每跳对 ripple set 做注意力聚合,多跳表示融合成用户向量;与候选 item 匹配。
  • 能说明可解释性:预测可追溯 KG 路径(同品牌、同类目等);多跳平衡语义与噪声。

记忆要点

  • Ripple Set:用户历史实体 → KG 多跳扩展 → 每跳 (h,r,t) 集合。
  • 传播:每跳注意力聚合,多跳融合为用户表示;与候选匹配。
  • 可解释:推荐理由对应 KG 路径;跳数可调。

返回模块 | 返回总览

06-图神经网络/060.md

第 60 题:图神经网络的归纳能力,如何冷启动新节点的嵌入生成?

题目

图神经网络的归纳能力,如何冷启动新节点的嵌入生成?


完整讲解

一、归纳 (inductive) 与直推 (transductive)

直推:训练时见过图中所有节点,预测时仍是对这些节点的标签/嵌入做推断,新节点必须加入图并重新训练或至少重新传播。归纳:训练时只用部分节点/子图,预测时可为从未见过的节点生成嵌入,无需重训。推荐场景中新用户、新物品不断出现,需要归纳式方法。

二、归纳能力的来源

邻居聚合 + 共享参数:若模型的形式是「用邻居特征 + 可学习聚合函数」得到自身表示,且聚合函数(如 MLP、attention)不依赖节点 ID,则对新节点只需提供其邻居及邻居特征,即可前向得到其嵌入。GraphSAGE、GAT 等属于此类:聚合权重由「节点特征与图结构」决定,而非全局节点 ID,故可归纳。限制:新节点的邻居若多为新节点,则嵌入质量依赖「邻居的表示质量」;若新节点无边(纯冷启动),则需额外策略(见下)。

三、冷启动新节点的嵌入生成

有少量边的新节点:直接套用归纳 GNN,用其邻居的(已训练或在线计算的)嵌入做聚合;若邻居也是新的,可多轮迭代或先用启发式(如邻居均值)再参与训练。无边新节点(纯冷启动):无结构信息时只能依赖内容特征(如物品的类目、标题、图像);用 MLP 或跨模态模型将内容映射到与图嵌入同一空间,即 可在「有边节点」上通过重建损失或对比损失学习,使内容空间与图空间对齐。也可结合 KG:新物品通过属性与关系连到已有实体,用 RippleNet/KGAT 等得到其嵌入。


面试要点

  • 能区分归纳与直推:归纳可为新节点生成嵌入、无需重训;推荐需要归纳。
  • 能说明归纳能力来自「邻居聚合 + 共享参数、不依赖节点 ID」;举例 GraphSAGE、GAT。
  • 能说清冷启动:有边则归纳聚合;无边则内容映射 或借助 KG。

记忆要点

  • 归纳:新节点可用邻居+共享聚合函数得到嵌入;直推需重训。
  • 归纳来源:聚合不依赖节点 ID,只依赖特征与结构。
  • 冷启动:有边→归纳聚合;无边→内容嵌入 或 KG 连接。

返回模块 | 返回总览

06-图神经网络/README.md

06-图神经网络(第 51–60 题)

题号 主题 文章
51 GCN的谱卷积推导,为什么推荐中常用空间域而非谱域方法? 051.md
52 GraphSAGE的邻居采样,采样数量与估计方差的权衡? 052.md
53 PinSage的随机游走采样,如何设计适合推荐的游走策略… 053.md
54 LightGCN的简化分析,去除特征变换的合理性实验验证… 054.md
55 NGCF的邻居聚合,高阶连通性的过度平滑问题? 055.md
56 UltraGCN的约束损失,直接学习邻接矩阵的收敛性分析… 056.md
57 SGL的自监督图学习,图结构增强(边丢弃、特征掩码)的有… 057.md
58 KGAT的知识图谱注意力,实体-关系联合嵌入的翻译模型? 058.md
59 Ripple Set的波纹传播,知识图谱多跳推理的可解释… 059.md
60 图神经网络的归纳能力,如何冷启动新节点的嵌入生成? 060.md

返回总览

07-多任务与多场景/061.md

第 61 题:Shared-Bottom的负迁移,梯度冲突的数学量化(余弦相似度)?

题目

Shared-Bottom的负迁移,梯度冲突的数学量化(余弦相似度)?


完整讲解

一、Shared-Bottom 与负迁移

Shared-Bottom 多任务学习:底层共享表示 ,各任务塔 。负迁移指任务 A 的学习损害任务 B——共享表示被强势或样本多的任务主导,弱势任务梯度被稀释或与其它任务梯度冲突,导致性能下降。

二、梯度冲突的数学量化(余弦相似度)

设任务 的损失为 ,其对共享参数的梯度为 。两任务 的梯度冲突可用余弦相似度度量:

  • :梯度方向相反,存在冲突;直接相加会相互抵消,共享层难以同时优化两任务。
  • :梯度一致,可共享;:近似正交,冲突不明显但协同也弱。

多任务总梯度 ,若某任务 夹角很大甚至反向,则该任务在本次更新中收益小或受损,即负迁移的梯度视角。

三、工程启示

  • 用梯度余弦或 PCGrad/ GradNorm 等算法检测、缓解冲突;冲突大时考虑 MMOE/PLE 等显式专家与门控,减少共享、增加任务专属容量。
  • 对任务损失加权或采用不确定性加权,使各任务梯度量级与方向更平衡。

面试要点

  • 能解释 Shared-Bottom 负迁移:共享表示被部分任务主导,其它任务梯度被稀释或与其它任务梯度冲突,导致性能变差。
  • 能用梯度余弦 量化两任务梯度关系:负值表冲突,正值表一致;多任务总梯度与某任务梯度夹角大则该任务易受损。
  • 能说出缓解思路:MMOE/PLE 等门控与专家、梯度冲突检测与投影(如 PCGrad)、损失加权或不确定性加权。

记忆要点

  • Shared-Bottom 负迁移:共享底层被部分任务主导 → 其它任务梯度冲突或稀释 → 性能下降。
  • 梯度冲突量化:,负为冲突、正为一致;总梯度与单任务梯度夹角大则该任务易负迁移。
  • 缓解:门控/专家(MMOE/PLE)、梯度投影/归一(PCGrad/GradNorm)、损失或不确定性加权。

返回模块 | 返回总览

07-多任务与多场景/062.md

第 62 题:MMOE的门控网络,噪声门控与负载均衡的权衡?

题目

MMOE的门控网络,噪声门控与负载均衡的权衡?


完整讲解

一、MMOE 门控机制

MMOE(Multi-gate Mixture-of-Experts)在共享底层之上为每个任务 设独立门控,对 个专家 加权:

门控输出软分配,样本可路由到多个专家,不同任务可学到不同的专家组合,缓解负迁移。

二、噪声门控与负载均衡的权衡

  • 噪声门控:门控输入若包含噪声或与任务无关特征, 会不稳定,出现门控几乎均匀(无区分)或极端集中到某一专家,导致表达能力或稳定性下降。可通过对门控输入做特征选择、降噪或约束熵来缓解。
  • 负载均衡:希望各专家被充分使用,避免「少数专家承载大部分流量」导致容量浪费与过拟合。常用辅助损失(如基于门控分布的熵最大或负载方差最小)鼓励门控更均匀;但过度均衡会削弱「不同样本走不同专家」的差异化,相当于退回均匀混合,即噪声门控(不稳定)与强负载均衡(过度均匀)之间存在权衡:既要门控有区分度,又要专家负载不过于集中。

三、工程实践

  • 负载均衡损失权重需调参:过大门控趋均匀,过小易专家坍缩。
  • 门控输入可仅用关键特征或单独小网络,减少噪声;可监控各专家被选中的分布,发现坍缩时加大均衡损失或增加专家数。

面试要点

  • 能写出 MMOE 门控公式: 为 softmax 门控,任务专属、样本自适应。
  • 能说明噪声门控:门控输入噪声导致门控不稳定(均匀或极端集中);负载均衡:辅助损失使专家负载更均匀,但过强会削弱差异化,与「有区分度的门控」存在权衡。
  • 能提及调参要点:均衡损失权重、门控输入设计、专家利用率监控。

记忆要点

  • MMOE:每任务独立门控 ;缓解负迁移。
  • 噪声门控 ↔ 负载均衡:噪声导致门控不稳;强均衡使门控趋均匀,削弱差异化,需折中。
  • 实践:均衡损失权重、门控输入降噪、专家利用率监控。

返回模块 | 返回总览

07-多任务与多场景/063.md

第 63 题:PLE的渐进式层分离,显式路径的梯度阻塞设计?

题目

PLE的渐进式层分离,显式路径的梯度阻塞设计?


完整讲解

一、PLE 的渐进式层分离

PLE(Progressive Layered Extraction)在 MMOE 基础上做层级化专家分离:底层有「任务共享专家」与「任务专属专家」,逐层往上,每层通过门控只融合当前层及下层的专家输出,高层任务不再直接依赖底层所有专家,从而显式减少负迁移、加强任务特定信息向上传递。

二、显式路径与梯度阻塞

  • 显式路径:每个任务有清晰路径——先经过共享/自有专家混合,再经任务塔。门控决定每层各专家权重,形成「任务 → 专家子集 → 输出」的显式路由。
  • 梯度阻塞:PLE 通过结构设计实现「梯度隔离」:某任务的梯度只回传到该任务所经过的专家与共享部分,其它任务的专属专家不会收到该任务梯度;同层内任务专属专家之间无直接参数共享,因此梯度不会在任务间乱窜,减轻梯度冲突与负迁移。可理解为在计算图上,非该任务路径上的连接在反向时等价于被阻塞或权重为 0。

三、与 MMOE 的对比

MMOE 所有任务共享同一组专家,仅门控不同;PLE 在专家层面就区分共享与任务特定,且多层递进,显式路径 + 梯度隔离,更适合任务冲突大、层级特征差异明显的场景。


面试要点

  • 能说清 PLE 的「渐进式层分离」:层级化专家(共享 + 任务专属),逐层门控融合,高层不直接依赖底层全部专家,减少负迁移。
  • 能解释显式路径:任务有明确「专家子集 → 塔」路径;梯度阻塞:某任务梯度只回传其路径上的参数,其它任务专属专家不收该梯度,实现梯度隔离。
  • 能对比 MMOE:共享专家+门控;PLE:专家即分离 + 多层 + 梯度隔离,更适合冲突大的多任务。

记忆要点

  • PLE:渐进式层分离,共享/任务专属专家分层、逐层门控;显式任务路径。
  • 梯度阻塞:任务梯度只沿自身路径回传,不流入其它任务专属专家,减轻冲突。
  • 与 MMOE:PLE 专家级分离 + 多层 + 梯度隔离,冲突大时更稳。

返回模块 | 返回总览

07-多任务与多场景/064.md

第 64 题:CGC的自定义门控控制,任务特定与共享专家的动态路由?

题目

CGC的自定义门控控制,任务特定与共享专家的动态路由?


完整讲解

一、CGC 与自定义门控

CGC(Customized Gate Control)是 PLE 的单层特例/组件:每个任务有任务特定专家,另有共享专家;每个任务的门控只对该任务专家 + 共享专家做加权,即「自定义」——任务 A 的门控不会把权重给到任务 B 的专家。输出为

二、任务特定与共享专家的动态路由

  • 任务特定专家:只服务单一任务,学该任务特有模式,不被其它任务梯度干扰。
  • 共享专家:多任务共用,学通用表示;门控决定每个任务对共享专家的依赖程度。
  • 动态路由:门控 依赖输入 ,不同样本可得到不同专家权重——简单样本可能多用共享专家,难样本或任务特异样本多用任务专家,实现样本级自适应。

三、与 MMOE/PLE 的关系

CGC 可看作「一层 PLE」或「专家按任务分组的 MMOE」:门控受控(仅看到本任务专家+共享),避免任务间专家混用;PLE 则在多层级重复 CGC 式结构,形成渐进提取。


面试要点

  • 能写出 CGC 的输出形式:任务 的输出 = 对「共享专家 + 本任务专家」的门控加权和;门控为自定义,不看其它任务专家。
  • 能说明任务特定 vs 共享专家:特定专家只服务单任务,共享专家多任务共用;动态路由指门控随输入 变化,样本级路由。
  • 能联系 PLE:CGC 是单层、专家按任务分组+自定义门控;PLE 是多层 CGC 式堆叠。

记忆要点

  • CGC:每任务门控只对「共享专家 + 该任务专家」加权,自定义门控、无跨任务专家混用。
  • 任务特定专家 vs 共享专家 + 门控动态路由(依输入 )。
  • PLE = 多层 CGC 式结构,渐进提取。

返回模块 | 返回总览

07-多任务与多场景/065.md

第 65 题:ESMM的样本空间共享,CTR与CVR的延迟反馈差异处理?

题目

ESMM的样本空间共享,CTR与CVR的延迟反馈差异处理?


完整讲解

一、ESMM 的样本空间共享

ESMM(Entire Space Multi-task Model)同时建模 CTR 与 CVR,解决 CVR 样本极少且存在样本选择偏差的问题。传统单独训 CVR 时只用「点击后」的样本,与真实曝光空间分布不一致。ESMM 利用序列关系:

全空间(所有曝光样本)上联合训练 CTR 与 CTCVR(点击且转化),CVR 隐式地在全空间被约束,避免只用点击样本带来的偏差。

二、CTR 与 CVR 的延迟反馈差异

  • CVR 延迟:转化发生在点击后数小时甚至数天,当时刻样本的转化标签大量为「未发生」而非「确定不转化」,即延迟反馈——正样本滞后、负样本需等待或做负样本假设。
  • 处理方式:ESMM 不直接对 CVR 建 0/1 标签,而是用 CTCVR 作为监督(点击且转化为正),与 CTR 共享底层表示;CVR 塔输出在点击样本上可对齐 CTCVR/CTR 得到隐式监督,同时全空间样本都参与 CTR 与共享表示的学习,缓解 CVR 样本少与选择偏差。工程上还可配合延迟反馈建模(如 DFM)、假负样本纠错等。

三、工程要点

  • 损失设计:CTR 损失 + CTCVR 损失,或再加 CVR 辅助损失(仅点击样本);共享底层,双塔输出 CTR、CVR,CTCVR = CTR × CVR。
  • 推理时用 CTR × CVR 作为点击转化概率,或单独用 CVR 塔在点击后链路使用。

面试要点

  • 能写出 ESMM 的概率分解:,全空间训 CTR+CTCVR,CVR 隐式全空间学习。
  • 能说明 CVR 延迟反馈:转化滞后导致正样本延迟、负样本需等待;ESMM 用 CTCVR 监督 + 全空间样本缓解选择偏差与样本少。
  • 能简述损失与推理:CTR 损失 + CTCVR 损失,共享底;推理 CTR×CVR 或单独 CVR。

记忆要点

  • ESMM:全空间联合训 CTR 与 CTCVR,,CVR 全空间约束、缓解选择偏差。
  • CVR 延迟反馈:转化滞后;用 CTCVR 监督与全空间样本缓解。
  • 损失:CTR + CTCVR;推理:CTR×CVR。

返回模块 | 返回总览

07-多任务与多场景/066.md

第 66 题:ESM2的多延迟反馈建模,多目标间的因果关系利用?

题目

ESM2的多延迟反馈建模,多目标间的因果关系利用?


完整讲解

一、ESM2 与多延迟反馈建模

ESM2 在 ESMM 基础上扩展为多目标、多阶段的延迟反馈建模。除 CTR、CVR 外,可包含下单、支付、复购等,各目标反馈延迟不同(点击即时、转化/下单延迟数小时至数天)。ESM2 通过多任务联合 + 序列依赖在全空间建模,例如

各阶段概率共享或部分共享表示,全空间样本参与各阶段塔的学习,缓解各阶段正样本少与选择偏差。

二、多目标间的因果关系利用

  • 因果链:曝光 → 点击 → 转化 → 下单 → 支付,前序事件是后序的必要条件。模型显式建模 ,与真实因果一致,且可复用前序预测(如 CTR)作为后序输入或约束。
  • 利用方式:共享底层表示;损失可对每阶段设计(CTR、CTCVR、CTOrder 等),或对联合概率做 MLE;后序任务的正样本一定是前序正样本的子集,全空间训练使后序任务不被「仅前序正样本」的选择偏差主导。
  • 与 ESMM 的关系:ESM2 把 ESMM 的「CTR + CVR」推广到更长因果链与更多延迟目标,统一处理多延迟反馈。

三、工程要点

  • 各阶段延迟不同,需设定等待窗口或使用 DFM 等延迟模型处理假负样本。
  • 损失权重与样本权重可按业务重要性或样本量调节;可引入课程学习先训前序再训后序。

面试要点

  • 能说明 ESM2:多目标、多阶段延迟反馈,全空间联合建模 ,各阶段塔+共享表示。
  • 能解释因果关系利用:曝光→点击→转化→… 因果链,显式建模条件概率,全空间训练缓解选择偏差与样本少。
  • 能对比 ESMM:ESM2 为多阶段扩展,统一多延迟目标。

记忆要点

  • ESM2:多阶段(CTR/CVR/Order/Pay…)全空间联合建模,多延迟反馈统一处理。
  • 因果利用:前序→后序条件概率,共享表示与全空间样本缓解偏差。
  • 与 ESMM:ESM2 为因果链与多目标的扩展。

返回模块 | 返回总览

07-多任务与多场景/067.md

第 67 题:PEPNet的参数个性化,EPNet与PPNet的协同工作机制?

题目

PEPNet的参数个性化,EPNet与PPNet的协同工作机制?


完整讲解

一、PEPNet 与参数个性化

PEPNet(Parameter and Embedding Personalized Network)面向多场景/多域推荐,通过「参数个性化」让同一模型在不同场景下表现更好:不增加太多参数,却能让场景特定信息调制网络行为。核心是 EPNet(Embedding Personalized)与 PPNet(Parameter Personalized)的协同。

二、EPNet 与 PPNet 的协同

  • EPNet:对嵌入做个性化。根据场景 ID 或场景特征生成调制向量(如 gate),对共享 embedding 做逐元素缩放或偏移:,其中 由场景决定。这样同一 ID 在不同场景下得到不同嵌入表示,参数量仅为调制网络,远小于为每场景维护独立大表。
  • PPNet:对全连接等层参数做个性化。用场景信息生成「 delta 参数」或门控,与共享权重结合:,使同一层在不同场景使用不同有效权重,适配分布差异。
  • 协同:底层更多用 EPNet 做嵌入级适配(特征空间差异大);高层更多用 PPNet 做决策边界适配(任务/场景目标差异)。两者共用同一主干与场景编码,联合训练,实现「一个模型、多场景个性化」。

三、工程要点

  • 场景编码可用场景 ID 嵌入、统计特征或小网络;调制网络宜轻量以防过拟合。
  • 冷启动场景可用共享部分或从相似场景迁移调制器。

面试要点

  • 能区分 EPNet 与 PPNet:EPNet 对嵌入做场景相关调制();PPNet 对层参数做场景相关调制(delta 或门控),协同实现多场景参数个性化。
  • 能说明协同:底层偏 EPNet、高层偏 PPNet;一个主干 + 场景编码,轻量个性化。
  • 能提及多场景/多域、冷启动与调制网络轻量化。

记忆要点

  • PEPNet:EPNet(嵌入个性化)+ PPNet(参数个性化),场景调制嵌入与权重。
  • EPNet:;PPNet: 或门控;底层嵌入、高层参数。
  • 一模型多场景、轻量调制、可冷启动迁移。

返回模块 | 返回总览

07-多任务与多场景/068.md

第 68 题:STAR的星型拓扑,场景共享与场景特定参数的分离策略?

题目

STAR的星型拓扑,场景共享与场景特定参数的分离策略?


完整讲解

一、STAR 的星型拓扑

STAR(Single Task Adaptive Region)采用星型拓扑:中心为共享参数 ,每个场景/任务有场景特定参数 ;同一层在推理时使用「共享 + 该场景特定」的组合,例如

所有场景共享中心参数,各自仅增加少量场景参数,形成以共享为核心的星型结构。

二、场景共享与场景特定参数的分离策略

  • 共享参数:从所有场景数据中学习通用表示与通用能力,参数量大、泛化好;负责「共性」。
  • 场景特定参数:每个场景单独一份小参数(如 delta、缩放/偏置),只在该场景数据上更新或与共享联合更新,负责「个性」与分布偏移。
  • 分离策略:底层可共享为主、场景参数做微调;高层可加大场景参数比例以适配不同目标或排序偏好。训练时可用多任务损失(各场景一个头)或按场景采样交替更新;正则可约束 避免场景参数过大、破坏共享。

三、与 PEPNet、MMOE 的对比

  • STAR:显式「共享 + 每场景 delta」的星型结构,参数分离清晰。
  • PEPNet:通过门控/调制网络生成个性化嵌入与参数,不直接存每场景完整 delta。
  • MMOE:专家+门控,无显式「共享+场景参数」分解;STAR 更偏多场景/多域适配。

面试要点

  • 能画出/描述星型拓扑:中心共享 ,每场景 ,有效参数 (或门控形式)。
  • 能说明分离策略:共享学共性、场景参数学个性;底层多共享、高层可多场景;训练多任务或按场景采样,正则约束场景参数。
  • 能简要对比 STAR / PEPNet / MMOE 的适用点。

记忆要点

  • STAR:星型拓扑,,共享中心 + 场景分支。
  • 共享学共性、场景特定学个性;底层多共享、高层可多场景参数。
  • 与 PEPNet:STAR 显式 delta;与 MMOE:STAR 为多场景参数分离。

返回模块 | 返回总览

07-多任务与多场景/069.md

第 69 题:M2M的多场景元学习,场景间迁移学习的初始化策略?

题目

M2M的多场景元学习,场景间迁移学习的初始化策略?


完整讲解

一、M2M 与多场景元学习

M2M(Multi-to-Multi)通过元学习实现多场景间的知识迁移:将「场景」视为任务,用 MAML 或类似算法学一个对所有场景友好的初始化 ,使得在新场景或数据少的场景上,只需少量更新即可达到较好效果。目标形式可为

即在内层用场景 的支持集更新,外层用查询集损失评估该初始化在场景 上的表现,通过优化 使各场景上「一阶或少量步微调」后损失都较小。

二、场景间迁移学习的初始化策略

  • 初始化:元学习得到的 不是针对单场景最优,而是易于适应多场景的「好起点」——在任意场景上做少量梯度步即可快速收敛,适合冷启动与少样本场景。
  • 迁移方式:新场景到来时,用该场景少量数据在 上做 fine-tune;或保持 固定,仅训练场景特定头/适配器。这样旧场景知识编码在 中,新场景只需学增量。
  • 与多任务的区别:多任务同时优化所有场景;M2M 显式优化「初始化 + 少量步适应」的联合目标,更强调快速适应与跨场景泛化。

三、工程要点

  • 内层步数、学习率 需调;可二階近似(MAML)或一阶简化(First-order MAML)降计算。
  • 场景划分要合理(按域、国家、产品线等),保证任务分布适合元学习假设。

面试要点

  • 能说明 M2M 的元学习目标:学一个初始化 ,使各场景上少量步更新后损失小;可与 MAML 形式对照。
  • 能解释初始化策略: 为「易适应」的起点,新场景少量数据微调即可;实现场景间迁移与冷启动。
  • 能区分多任务:同时优化;M2M:优化「初始化+适应」的元目标,强调快速适应。

记忆要点

  • M2M:多场景元学习,学共享初始化 ,各场景少量步适应即可收敛。
  • 迁移:新场景用少量数据在 上微调; 为易适应起点。
  • 与多任务:M2M 优化元目标(初始化+适应),强调快速适应与冷启动。

返回模块 | 返回总览

07-多任务与多场景/070.md

第 70 题:多任务损失加权,Uncertainty Weighting的异方差不确定性建模?

题目

多任务损失加权,Uncertainty Weighting的异方差不确定性建模?


完整讲解

一、多任务损失加权的难点

多任务学习总损失常写为 。手动设 依赖经验与调参,且各任务损失量纲、量级不同(如 CTR 0.01 量级、回归 MSE 可能很大),固定权重难以同时兼顾所有任务。

二、Uncertainty Weighting 与异方差不确定性

Uncertainty Weighting(Kendall 等)用任务依赖的噪声尺度(异方差不确定性)自动调节权重。设任务 的观测为 为可学习标量。则负对数似然为

  • 自动权重 大表示该任务不确定性高, 小,该任务损失被降权; 小则任务被重视,等价于数据驱动地平衡多任务
  • 异方差:各任务噪声方差 不同且可学习,故名异方差不确定性建模。

多任务总损失为 ,无需手设 ;优化过程中 与网络一起更新,实现自适应加权。

三、分类任务的扩展与注意点

分类任务可把 作为任务相关标量,损失写为 等形式;注意 初始化和正则,避免坍缩到 0 或无穷。可与 GradNorm、PCGrad 等结合使用。


面试要点

  • 能写出 Uncertainty Weighting 的损失形式: 可学习;大 自动降权该任务。
  • 能解释异方差:各任务噪声方差 不同且可学,自动平衡多任务损失量级与重要性。
  • 能提及分类扩展、 初始化与正则,以及与其他多任务加权方法的结合。

记忆要点

  • Uncertainty Weighting: 可学;大 → 该任务权小。
  • 异方差:每任务一噪声尺度 ,数据驱动平衡多任务。
  • 分类可类比;注意 初始化与正则。

返回模块 | 返回总览

07-多任务与多场景/README.md

07-多任务与多场景(第 61–70 题)

题号 主题 文章
61 Shared-Bottom的负迁移,梯度冲突的数学量化(… 061.md
62 MMOE的门控网络,噪声门控与负载均衡的权衡? 062.md
63 PLE的渐进式层分离,显式路径的梯度阻塞设计? 063.md
64 CGC的自定义门控控制,任务特定与共享专家的动态路由? 064.md
65 ESMM的样本空间共享,CTR与CVR的延迟反馈差异处理… 065.md
66 ESM2的多延迟反馈建模,多目标间的因果关系利用? 066.md
67 PEPNet的参数个性化,EPNet与PPNet的协同工… 067.md
68 STAR的星型拓扑,场景共享与场景特定参数的分离策略? 068.md
69 M2M的多场景元学习,场景间迁移学习的初始化策略? 069.md
70 多任务损失加权,Uncertainty Weightin… 070.md

返回总览

08-模型压缩与高效推理/071.md

第 71 题:知识蒸馏的温度系数,软标签熵与蒸馏效果的关系?

题目

知识蒸馏的温度系数,软标签熵与蒸馏效果的关系?


完整讲解

一、知识蒸馏与软标签

知识蒸馏用教师模型(大模型)的软输出作为学生模型(小模型)的监督。设教师 logits 为 ,学生为 ,软标签为 softmax 后的概率分布 。蒸馏损失常用 KL 散度:

二、温度系数与软标签熵

引入温度 ,将 logits 缩放后再做 softmax:

  • :即标准 softmax,分布通常较尖锐(高置信度),熵小。
  • :分布变「软」,概率更均匀,熵增大;软标签携带更多类间相对关系(dark knowledge),例如「像猫又略像狗」的信息,学生可从这些相对关系中学到更多,而不只学硬标签。
  • 过大:分布趋近均匀,信息量下降,蒸馏信号变弱; 过小则趋硬标签,蒸馏优势丧失。通常 经验有效。

三、蒸馏效果与温度选择

  • 软标签熵适中时,学生既能学到类间相对强度,又不过于平滑;中等温度(如 )常作为起点。
  • 与硬标签联合训练时: 可补偿温度对 KL 梯度量级的影响。温度需与 一起调参。

面试要点

  • 能写出带温度的 softmax: 使分布变软、熵增,携带 dark knowledge。
  • 能说明温度与蒸馏效果:适中 软标签信息丰富; 过大趋均匀、过小趋硬标签;常取 ,与 加权配合。
  • 能提及 KL 蒸馏损失、与硬标签联合训练时的 补偿。

记忆要点

  • 温度 → 软、熵大、dark knowledge 多。
  • 效果:适中 最佳;过大过小均不利; 补偿 KL 量级。
  • 实践:,与硬标签联合时调

返回模块 | 返回总览

08-模型压缩与高效推理/072.md

第 72 题:量化感知训练(QAT)的伪量化节点,梯度近似的前向-反向传播?

题目

量化感知训练(QAT)的伪量化节点,梯度近似的前向-反向传播?


完整讲解

一、QAT 与伪量化节点

量化感知训练(QAT)在训练时模拟量化,使权重与激活在前向中经过量化与反量化,梯度在反向时能穿过该模块更新全精度参数。伪量化指用可微的量化模拟算子代替真实离散量化:

前向时 ,数值为离散格点,但计算图保留;反向时需对「round」做梯度近似。

二、梯度近似的前向-反向

  • 前向:权重量化 ,激活量化 ,用 做卷积/矩阵乘,得到量化后的输出,与真实部署一致。
  • 反向 在 round 处为 0 几乎处处,不可直接反传。常用 Straight-Through Estimator(STE):假定 ,即梯度直接传到量化前变量;或用 clip 的梯度(在饱和区外为 1)。这样全精度参数仍能根据量化后的误差更新,学到对量化友好的表示。
  • 效果:QAT 使权重与激活的分布适应量化格点,减少训练后量化(PTQ)的精度损失;推荐中可用于嵌入与全连接层的低比特量化。

三、工程要点

  • 伪量化可对每层或每通道设 scale/zero-point;训练初期可用更细的量化或延迟启用量化以稳定。
  • STE 有偏但工程上常用;可配合梯度裁剪与学习率调度。

面试要点

  • 能说明伪量化节点:前向 ,模拟量化;反向需梯度近似。
  • 能解释 STE:,使梯度穿过 round,全精度参数可更新、适应量化。
  • 能简述 QAT 目的:训练时模拟量化,减少部署时精度损失;可用于推荐中的嵌入与全连接。

记忆要点

  • QAT:前向伪量化 ,反向 STE 或 clip 梯度近似。
  • STE:梯度当 1 传回,全精度参数可更新、适应量化。
  • 目的:训练即模拟量化,降低部署精度损失。

返回模块 | 返回总览

08-模型压缩与高效推理/073.md

第 73 题:二值神经网络(BNN)在推荐中的可行性,XNOR-Net的位运算加速?

题目

二值神经网络(BNN)在推荐中的可行性,XNOR-Net的位运算加速?


完整讲解

一、二值神经网络(BNN)简述

BNN 将权重与/或激活量化为 +1 / -1(或 0/1),前向用位运算(XNOR + popcount)替代乘加,大幅降低算力与存储,适合极低功耗或专用硬件。

二、XNOR-Net 的位运算加速

  • 二值化:权重 ,激活 ;为减少信息损失,常保留每通道/每层的尺度因子 ,即 ,前向为
  • XNOR-Net 等价于 XNOR 位运算,求和等价于 popcount(统计 1 的个数),因此 卷积/全连接可化为 XNOR + popcount,在支持位运算的硬件上速度与能效显著优于浮点乘加。
  • 训练:二值化不可微,用 STE:前向二值,反向按全精度梯度更新;或对 sign 用近似梯度(如 HardTanh)。

三、在推荐中的可行性

  • 挑战:推荐模型依赖大量嵌入与细粒度数值,二值化损失大;用户/物品数多,嵌入二值后表达力下降明显;CTR 等任务对数值敏感,二值往往带来较大 AUC 损失。
  • 可行场景:仅对部分全连接层二值、嵌入仍用低比特(如 8bit)的混合方案;或对延迟与功耗极度敏感、可接受一定精度损失的边缘推荐。纯 BNN 在推荐中较少用,更多是「二值/极低比特 + 嵌入保留」的折中。

面试要点

  • 能说明 BNN:权重/激活二值 ±1,前向 XNOR + popcount 替代乘加,STE 训练。
  • 能解释 XNOR-Net: → XNOR,求和 → popcount,位运算加速。
  • 能评价推荐可行性:嵌入与数值敏感,纯 BNN 少用;可考虑部分层二值 + 嵌入低比特的混合。

记忆要点

  • BNN:±1 二值,XNOR+popcount 替代乘加,STE 或近似梯度训练。
  • XNOR-Net:二值卷积/全连接 → 位运算,硬件友好。
  • 推荐:纯 BNN 可行性低;混合(部分二值+嵌入低比特)可考虑。

返回模块 | 返回总览

08-模型压缩与高效推理/074.md

第 74 题:神经网络架构搜索(NAS)在推荐中的应用,DARTS的连续松弛策略?

题目

神经网络架构搜索(NAS)在推荐中的应用,DARTS的连续松弛策略?


完整讲解

一、NAS 在推荐中的诉求

推荐模型有大量超参与结构选择:嵌入维度、塔的层数与宽度、是否用注意力、专家数量等。神经网络架构搜索(NAS) 希望自动在搜索空间内找到在验证指标上较优的结构,减少人工试错。

二、DARTS 的连续松弛策略

  • 离散搜索:结构选择本是离散的(如选哪条边、哪种 op),直接搜组合爆炸。DARTS 将离散选择松弛为连续:每条边上一组候选操作 ,引入结构参数 ,边的输出为

即用 softmax() 对候选操作做加权混合,可微,可与网络权重一起用梯度优化。
- 联合优化:训练时同时更新网络权重 与结构参数 (如交替或同步);验证集上根据 选最大对应的 op 得到离散结构,再重新训练或微调。
- 在推荐中的应用:搜索空间可包含不同 MLP 宽度/深度、是否用 FM/注意力、嵌入维度等;用 DARTS 或类似可微 NAS 在 CTR/多任务等任务上搜结构,再部署最优子网。

三、注意点

  • 连续松弛存在离散-连续 gap:最优 对应的离散结构未必最优;可多阶段(先搜再 retrain)、或加熵正则鼓励 稀疏。计算成本为「同时训练多 op」的倍数,需控制候选集大小。

面试要点

  • 能写出 DARTS 的连续松弛:,结构可微、与权重联合优化。
  • 能说明流程:训练 → 根据 取离散结构 → 再训练或微调;推荐中可搜塔结构、嵌入维、是否注意力等。
  • 能提及离散-连续 gap、熵正则与计算成本。

记忆要点

  • DARTS:结构参数 ,边输出为 softmax() 加权混合 op,可微联合优化。
  • 推荐 NAS:搜塔结构、嵌入维、op 类型等;训练 后离散化再训。
  • 注意:离散-连续 gap、熵正则、计算成本。

返回模块 | 返回总览

08-模型压缩与高效推理/075.md

第 75 题:动态神经网络(Dynamic Network),样本自适应的计算图剪枝?

题目

动态神经网络(Dynamic Network),样本自适应的计算图剪枝?


完整讲解

一、动态神经网络的概念

动态网络指根据输入样本在推理时改变计算图:不同样本走不同子网络、不同深度或不同宽度,实现「简单样本少算、复杂样本多算」,在保持精度的前提下降低平均计算量与延迟。

二、样本自适应的计算图剪枝

  • 自适应深度:如 Early Exit,样本在中间层若置信度足够高则提前输出,否则继续到更深层;等效于按样本剪掉后续层。
  • 自适应宽度:如动态通道/专家选择,根据输入激活或轻量路由决定本层使用哪些通道或哪些专家,未选中的通道/专家不计算,等效于按样本剪枝部分连接。
  • 数学形式:可写为 或软门控;推理时仅对 计算,或对软门控做稀疏化/早停。

三、在推荐中的意义

  • 推荐请求量极大、延迟敏感;用户/请求难度不一(新用户 vs 老用户、简单 query vs 长序列)。动态网络可对「简单」请求少算几层或少量专家,对「难」请求用满容量,从而在相同或略降精度下降低平均时延与算力
  • 实现要点:路由要轻量(避免路由本身成为瓶颈);需定义「简单/难」的度量(置信度、熵、路由得分);训练时需兼顾准确性与计算预算(如加计算量正则或约束)。

面试要点

  • 能解释动态网络:按输入改变计算图,简单样本少算、复杂样本多算,降低平均计算与延迟。
  • 能说明样本自适应剪枝:自适应深度(早退)、自适应宽度(通道/专家选择),等效按样本剪枝子网络。
  • 能联系推荐:请求难度不一,动态深度/宽度可降平均时延;路由轻量化与计算预算约束。

记忆要点

  • 动态网络:输入决定计算图,简单少算、复杂多算。
  • 自适应剪枝:深度(早退)、宽度(通道/专家选择); 门控决定是否算
  • 推荐:降平均延迟与算力;轻量路由 + 计算预算约束。

返回模块 | 返回总览

08-模型压缩与高效推理/076.md

第 76 题:早退机制(Early Exit),置信度阈值的选择与精度-延迟权衡?

题目

早退机制(Early Exit),置信度阈值的选择与精度-延迟权衡?


完整讲解

一、早退机制(Early Exit)

早退在深度网络中设置多个出口(exit):输入依次经过各层,在每一出口处做一次预测;若某出口的置信度达到阈值,则直接输出该预测并提前结束,不再计算后续层。这样「简单样本」在浅层即可高置信输出,节省计算与延迟。

二、置信度阈值的选择

  • 置信度度量:常用最大类别概率 ,或 1 - 熵;高表示模型「有把握」。
  • 阈值:设阈值 ,若 则早退。 高 → 早退少、精度高、延迟大; 低 → 早退多、延迟小、易误判。需在精度-延迟曲线上选业务可接受的工作点。
  • 自适应:可按请求 SLA 或当前负载动态调 ;或为不同出口设不同阈值(浅层出口可设更高 ,避免浅层误判多)。

三、精度-延迟权衡

  • 训练时:各出口都有监督(辅助损失),总损失为各出口损失的加权和,使浅层也能学到有效特征,避免早退精度过差。
  • 推理时:平均延迟 = ;阈值与出口位置共同决定该分布。工程上常画「延迟 vs AUC」曲线,选满足延迟约束下 AUC 最高的 或出口配置。

面试要点

  • 能说明早退:多出口,每层预测;置信度 ≥ 阈值则输出并停止,否则继续;简单样本早退省算力。
  • 能解释阈值:高阈值少早退、高精度高延迟;低阈值多早退、低延迟可能损精度;需精度-延迟权衡。
  • 能提及辅助损失训练各出口、延迟-AUC 曲线选工作点。

记忆要点

  • 早退:多出口 + 置信度阈值;达标即输出并停止,否则继续。
  • 阈值高 → 少早退、高精度高延迟;阈值低 → 多早退、低延迟;需权衡。
  • 训练:各出口辅助损失;推理:延迟-AUC 曲线定

返回模块 | 返回总览

08-模型压缩与高效推理/077.md

第 77 题:模型切片(Model Slicing),不同设备算力的自适应子网络选择?

题目

模型切片(Model Slicing),不同设备算力的自适应子网络选择?


完整讲解

一、模型切片(Model Slicing)的含义

模型切片指将一个大模型拆成多个子网络不同规模的副本,在推理时根据设备算力、延迟要求或请求类型选择其中一个子网络执行,从而在弱设备上跑小模型、在强设备上跑大模型,实现「一份训练、多档部署」。

二、不同设备算力的自适应子网络选择

  • 按设备选子网:例如同一推荐模型训练时包含「小塔」「中塔」「大塔」(不同层数/宽度),或通过剪枝/蒸馏得到小中大三个版本;边缘/手机请求走小塔,云端走大塔。路由可由接入层根据设备 ID、能力标签或延迟预算决定。
  • 自适应选择:也可根据请求内容动态选:简单 query 或低价值请求走小模型,复杂 query 或高价值请求走大模型,在保证整体效果的前提下降低平均算力与成本。
  • 训练方式:可先训大模型再蒸馏/剪枝得到小模型;或训练时就用多出口/多子网(如 slimmable network),共享大部分参数,仅部分层宽度不同,一次训练得到多档。

三、与早退、动态网络的关系

  • 早退:同一条计算路径,按置信度提前停。
  • 模型切片:多条不同规模的路径,按设备或请求选一条完整执行。
  • 可结合:先按设备选切片,再在该切片内做早退,进一步细粒度控延迟。

面试要点

  • 能解释模型切片:大模型拆成多档子网络,推理时按设备算力或请求选一档执行,一份训练多档部署。
  • 能说明自适应选择:按设备 ID/能力或按请求难度选小/中/大塔;训练可多档联合训或大模型蒸馏/剪枝得小模型。
  • 能区分早退(同路径提前停)与切片(多路径选一档)。

记忆要点

  • 模型切片:多档子网络,按设备/请求选一档;弱设备小塔、强设备大塔。
  • 自适应:按设备或请求难度选子网;多档可联合训或蒸馏/剪枝得到。
  • 与早退:切片选路径,早退在同路径上提前停;可叠加使用。

返回模块 | 返回总览

08-模型压缩与高效推理/078.md

第 78 题:嵌入表压缩,哈希技巧(Hashing Trick)的冲突率与精度损失?

题目

嵌入表压缩,哈希技巧(Hashing Trick)的冲突率与精度损失?


完整讲解

一、嵌入表与压缩动机

推荐模型中有大量 embedding 表(用户 ID、物品 ID、类目等),表大小为「词表大小 × 嵌入维度」,常占模型绝大部分参数与显存。嵌入表压缩在基本不损效果的前提下减小表规模,便于部署与训练。

二、哈希技巧(Hashing Trick)

  • 做法:不维护「ID → 嵌入」的大表,而是用哈希函数 将 ID 映射到大小为 的桶,多个 ID 共享同一桶的嵌入(即共享同一向量)。表规模从 降为
  • 冲突率:若 个 ID 均匀落入 个桶,期望每桶 个 ID;冲突率可理解为「共享同一嵌入的 ID 数」比例。冲突会导致不同 ID 得到相同表示,表达力下降,尤其高频 ID 与低频 ID 冲突时,低频 ID 表示被「带偏」。
  • 精度损失:冲突多 → 区分度下降,CTR/AUC 可能下降;可通过增大 、或多哈希(如 2 个哈希各取一嵌入再相加/拼接)缓解冲突、减小精度损失,但 增大会增加显存。

三、工程要点

  • 的选择:在显存与精度间折中;工业上常见 量级,视词表与资源定。
  • 多哈希、可学习哈希或混合(部分 ID 保留专属嵌入、长尾用哈希)可进一步平衡冲突与参数。

面试要点

  • 能说明哈希技巧:,多 ID 共享 个嵌入,表规模
  • 能分析冲突率与精度:冲突多 → 不同 ID 同表示 → 表达力与精度下降;增大 或多哈希可缓解。
  • 能提及 的显存-精度折中、多哈希与混合策略。

记忆要点

  • 哈希技巧:ID→桶 ,表 ;冲突 = 多 ID 共一嵌入。
  • 冲突多 → 精度损;增大 、多哈希或混合可缓解。
  • 工程: 显存-精度折中;多哈希/混合策略。

返回模块 | 返回总览

08-模型压缩与高效推理/079.md

第 79 题:特征选择门控,L0正则化的稀疏诱导与优化技巧?

题目

特征选择门控,L0正则化的稀疏诱导与优化技巧?


完整讲解

一、L0 正则与稀疏诱导

L0 正则 为参数中非零个数,最小化「损失 + 」会直接得到稀疏解(部分参数为 0),实现特征选择或结构剪枝。但 L0 非连续、非凸,优化困难。

二、L0 的连续松弛与优化技巧

  • 连续松弛:用可微的门控变量近似 L0。例如对每维参数引入 ,输出为 ,并约束 的期望或和接近 0 的个数。常用 Hard Concrete / L0 门控 可学习, 为温度;训练时对 采样或用直通估计,使 近似「非零数」,可微优化。
  • 稀疏诱导:损失中加入对 的正则(如鼓励 变小),优化后部分 ,对应特征或神经元被关闭,实现可学习的特征/结构选择
  • 优化技巧:温度 从大往小退火,使 从软变硬;或用 STE 将 的梯度回传到 ;初始化与 需调,以平衡稀疏度与任务损失。

三、在推荐中的应用

  • 特征选择:对大规模特征做 L0 门控,自动筛掉冗余或噪声特征,减小嵌入与计算。
  • 结构稀疏:对专家、通道或注意力头做 L0,得到更小或更稀疏的子网络。与 NAS、剪枝结合可进一步压缩。

面试要点

  • 能说明 L0: 非零数,最小化可获稀疏解;L0 非凸难优化,需连续松弛。
  • 能解释门控松弛:用 Hard Concrete 等可微门控 与对 的稀疏正则,可学习地关掉部分参数/特征。
  • 能提及温度退火、STE、特征选择与结构稀疏在推荐中的用途。

记忆要点

  • L0:非零数,稀疏但难优化;用可微门控(如 Hard Concrete)松弛。
  • 门控 + 稀疏正则 → 可学习特征/结构选择;温度退火、STE。
  • 推荐:特征选择、专家/通道稀疏。

返回模块 | 返回总览

08-模型压缩与高效推理/080.md

第 80 题:低秩分解在推荐中的应用,Tucker分解 vs CP分解的效率比较?

题目

低秩分解在推荐中的应用,Tucker分解 vs CP分解的效率比较?


完整讲解

一、低秩分解在推荐中的动机

推荐模型里的大矩阵(如全连接层 、协同过滤矩阵、某些嵌入变换)往往低秩或近似低秩。用低秩分解 ,参数量从 降为 ,计算也由一次大矩阵乘变为两次小矩阵乘,利于压缩与加速。

二、Tucker 分解 vs CP 分解

  • CP 分解(CANDECOMP/PARAFAC):张量 分解为若干秩 1 张量之和:

参数量与 和各模态维度之和成线性关系;存储与计算都较省,适合张量阶数高、各维规模大的场景;但表达能力受 限制,且拟合非 CP 结构时可能需较大

  • Tucker 分解 为核张量, 为因子矩阵。更灵活,可对不同模态设不同秩(),表达力强;但核张量 与各因子参数量相对 CP 更大,计算与存储成本更高

三、效率比较与选用

  • 效率:CP 参数量与计算量更小,适合极致压缩与快速推理;Tucker 表达力强,适合精度要求高、可接受更多参数的场景。
  • 推荐场景:嵌入层后的变换、双线性层、序列建模中的低秩注意力等,可按「参数量-精度」需求选 CP(更省)或 Tucker(更准);实际中 CP 与矩阵 SVD()在推荐里更常见,Tucker 多用于高阶张量(如多模态、多关系)。

面试要点

  • 能写出低秩动机:,参数量 ,计算两次小矩阵乘。
  • 能对比 CP 与 Tucker:CP 为秩 1 和,参数量小、省算力,表达受 限;Tucker 有核张量+各模态因子,更灵活、表达强,但参数量与计算更大。
  • 能说推荐中 CP/矩阵 SVD 常用,Tucker 多用于高阶张量。

记忆要点

  • 低秩: 或张量 CP/Tucker,参数量与计算降。
  • CP:秩 1 和,省参省算;Tucker:核+因子,表达强、成本高。
  • 推荐:矩阵低秩/CP 常用;Tucker 用于高阶张量。

返回模块 | 返回总览

08-模型压缩与高效推理/README.md

08-模型压缩与高效推理(第 71–80 题)

题号 主题 文章
71 知识蒸馏的温度系数,软标签熵与蒸馏效果的关系? 071.md
72 量化感知训练(QAT)的伪量化节点,梯度近似的前向-反向… 072.md
73 二值神经网络(BNN)在推荐中的可行性,XNOR-Net… 073.md
74 神经网络架构搜索(NAS)在推荐中的应用,DARTS的连… 074.md
75 动态神经网络(Dynamic Network),样本自适… 075.md
76 早退机制(Early Exit),置信度阈值的选择与精度… 076.md
77 模型切片(Model Slicing),不同设备算力的自… 077.md
78 嵌入表压缩,哈希技巧(Hashing Trick)的冲突… 078.md
79 特征选择门控,L0正则化的稀疏诱导与优化技巧? 079.md
80 低秩分解在推荐中的应用,Tucker分解 vs CP分解… 080.md

返回总览

09-双塔模型/081.md

第 81 题:DSSM的语义匹配,词袋模型与深度语义表示的演进?

题目

DSSM的语义匹配,词袋模型与深度语义表示的演进?


完整讲解

一、词袋模型与语义局限

早期语义匹配多用词袋(BOW)或 TF-IDF:查询与文档表示为稀疏向量,相似度用余弦或内积。缺点:无词序、无语义——「苹果手机」与「手机苹果」完全同表示,与「香蕉」的相似度仅由共现决定,无法区分同义、多义与上下文。

二、DSSM 的深度语义表示

DSSM(Deep Structured Semantic Model)用深度网络将查询 与文档 分别映射到低维语义空间的向量 ,用语义向量的相似度(如余弦或内积)作为匹配分:

  • 词袋到深度:输入可为 BOW 或字/词 n-gram 的向量,经多层 MLP 得到稠密表示;同一语义的多种表述被映射到相近向量,实现语义层面的匹配,而非字面匹配。
  • 训练:用点击或标注数据,正样本 (q,d+) 相似度拉高、负样本 (q,d-) 相似度压低,损失常用 pairwise 交叉熵或 softmax over 候选。

三、演进与在推荐中的位置

  • DSSM 奠定了「双塔 + 向量内积/余弦」的范式,后续双塔召回、向量检索均沿用:一侧用户/查询塔、一侧物品塔,离线算物品向量、在线算用户向量、ANN 检索。从 BOW 到 DSSM 是从稀疏字面稠密语义的演进;再往后用 Transformer、序列建模等进一步强化语义与顺序信息。

面试要点

  • 能说明 BOW 局限:无词序、无语义;DSSM 用深度网络将 query/doc 映射到语义空间,用向量相似度匹配。
  • 能写出 DSSM 的相似度形式:,sim = 内积或余弦;训练用点击数据拉正压负。
  • 能联系双塔召回与语义检索的演进:BOW → DSSM 语义向量 → 双塔 + ANN。

记忆要点

  • BOW:稀疏、无序、无语义;DSSM:深度映射 ,语义向量相似度匹配。
  • DSSM:双塔雏形,pairwise/softmax 训练;演进为双塔召回 + ANN。
  • 语义匹配 = 稠密语义空间中的向量相似度。

返回模块 | 返回总览

09-双塔模型/082.md

第 82 题:双塔模型的负采样策略,In-batch Negative的梯度方差分析?

题目

双塔模型的负采样策略,In-batch Negative的梯度方差分析?


完整讲解

一、In-batch Negative 的做法

In-batch Negative:在一个 batch 内,以当前样本的正样本对为锚点,同一 batch 内其它样本的正样本作为该锚点的负样本。例如 batch 内有 ,对 而言, 均为 in-batch 负样本。正负一起做 softmax 或 NCE 形式的损失,无需额外采样负样本,实现简单、且负样本数随 batch 增大而增多

二、梯度方差分析

  • 正样本:每个锚点只有 1 个正样本,梯度信号来自「拉大正样本相似度」。
  • 负样本:每个锚点有 个 in-batch 负样本,梯度来自「压低这些负样本的相似度」。当 大时,负样本多,梯度更稳定;但 in-batch 负样本的分布 = batch 内物品的分布,若 batch 随机采样,则负样本近似均匀;若 batch 有偏(如同用户多、或同品类多),则负样本分布有偏,梯度会系统性地往「压低某类物品」偏,带来偏差
  • 梯度方差:负样本多(大 batch)一般会降低梯度方差,利于收敛;但若正样本对在 batch 内重复(同 query 多条样本),梯度会重复叠加,方差与 batch 构造方式相关。工程上常加大 batch、或对 in-batch 做去重/加权以平衡正负与方差。

三、与采样负样本的对比

  • 随机负采样:负样本来自全局或采样子集,分布可控但需额外采样与存储;每个 batch 负样本数固定。
  • In-batch:无额外采样,负样本数 = batch 大小 - 1,大 batch 时负样本多且实现简单;但负样本分布依赖 batch 构造,可能存在分布偏差,需配合温度、或与少量难负样本/全局采样结合。

面试要点

  • 能说明 In-batch Negative:batch 内其它样本的正样本当作当前样本的负样本,无额外采样,负样本数随 batch 增大。
  • 能分析梯度:负样本多梯度更稳;但 in-batch 负样本分布 = batch 内物品分布,batch 有偏会带来偏差;正样本重复会改变梯度叠加。
  • 能对比随机负采样:分布可控 vs In-batch 实现简单但分布依赖 batch。

记忆要点

  • In-batch Negative:同 batch 它样本的正即本样本的负;无额外采样,负样本数 ∝ batch。
  • 梯度:大 batch 负多、方差可降;batch 有偏 → 负样本分布偏 → 偏差。
  • 对比:随机负采样分布可控;In-batch 简单但需注意 batch 构造与偏差。

返回模块 | 返回总览

09-双塔模型/083.md

第 83 题:温度系数对分布的影响,对比学习中的自动温度调整?

题目

温度系数对分布的影响,对比学习中的自动温度调整?


完整讲解

一、温度系数对相似度分布的影响

双塔或对比学习中,得分常写为 ,其中 温度系数。softmax 为

  • 放大,分布更尖锐——高分会更高、低分更低,梯度集中在最难分的负样本上,学习信号强但若 过小易不稳定、过拟合难负样本。
  • :分布更平滑,负样本间差异被压缩,梯度分散,训练平滑但区分度学习变慢。因此 控制「难度」与「稳定性」的权衡。

二、对比学习中的自动温度调整

  • 固定 :需手调,不同数据与阶段最优 可能不同。
  • 可学习 :将 设为可学习标量(或与输入相关),与模型一起优化。约束 (如用 或 softplus),避免除零或负温度。可学习 会自适应数据尺度与训练阶段。
  • 其他自动策略:如根据 batch 内相似度分布动态设 ,或按训练进度从大 退火到小 ,使前期平滑、后期锐化。

三、工程要点

  • 常取 0.05~0.2;过小易塌缩(所有向量趋同)或梯度爆炸,过大则区分度不足。
  • 可学习 时注意初始化与正则,避免坍缩到 0 或无穷。

面试要点

  • 能写出带温度的 softmax: 小分布尖锐、 大分布平滑。
  • 能说明温度对梯度与学习的影响:小 难负样本梯度大、大 梯度分散;自动温度可学习 或退火。
  • 能提及 取值范围、可学习时的约束与塌缩风险。

记忆要点

  • 温度 尖锐、大 平滑;控难度与稳定性。
  • 自动温度:可学习 或退火;注意约束与塌缩。
  • 实践: 常 0.05~0.2;过小易塌缩,过大区分度不足。

返回模块 | 返回总览

09-双塔模型/084.md

第 84 题:难负样本挖掘(Hard Negative Mining),在线 vs 离线的生成策略?

题目

难负样本挖掘(Hard Negative Mining),在线 vs 离线的生成策略?


完整讲解

一、难负样本的作用

难负样本:与正样本相似度高、易被模型误判为正的负样本。使用难负样本可让模型在「边界」附近得到更强梯度,提升区分度与排序能力;仅用随机负样本则大量是简单负样本,梯度弱、学习慢。

二、离线难负样本生成

  • 离线:用当前或历史模型在全量或大规模候选集上算分,取得分最高的若干非正样本作为难负样本,写入样本库或候选池;训练时从该池中采样或混合随机负样本。优点:难负样本质量高、可复用;缺点:需离线跑分、更新有延迟,且与当前模型可能不同步(过时)。
  • 构造方式:按 batch 内相似度取 top-k 非正作为 in-batch 难负;或从曝光未点击、同品类非点击等业务负样本中筛选高分的作为难负。

三、在线难负样本生成

  • 在线:在当前 batch 前向时,用当前模型对候选(如 in-batch 或少量额外采样)算分,实时取高分的非正样本作为难负,再参与 loss 计算。即「每个 batch 用当前模型现算难负」。优点:难负与当前模型一致、始终「难」;缺点:计算与实现更复杂,需在 batch 内做多轮或缓存 key 等。
  • 混合:常用「随机负 + in-batch 负 + 少量离线/在线难负」,在效果与成本间折中;难负比例过高可能导致过拟合或训练不稳定,需调参。

面试要点

  • 能解释难负样本:与正样本相似度高、易被误判的负样本;用难负可加强边界学习。
  • 能区分离线与在线:离线用历史/当前模型跑分取高分非正,质量高但有延迟;在线在当前 batch 用当前模型现算难负,一致但实现复杂。
  • 能提及 in-batch 难负、混合策略与难负比例调参。

记忆要点

  • 难负样本:高相似度负样本,加强边界梯度;离线跑分取高分非正,在线 batch 内现算。
  • 离线:质量高、有延迟;在线:与当前模型一致、实现复杂。
  • 实践:随机 + in-batch + 少量难负混合,难负比例需调。

返回模块 | 返回总览

09-双塔模型/085.md

第 85 题:双塔模型的特征交互限制,何时必须引入显式交叉?

题目

双塔模型的特征交互限制,何时必须引入显式交叉?


完整讲解

一、双塔模型的特征交互限制

双塔结构:用户侧 ,物品侧 ,得分 (或余弦)。用户塔与物品塔在最后一层才通过内积交互,中间层无显式交叉;因此无法对「用户特征 × 物品特征」的细粒度交叉建模(如「年轻用户 × 某品牌」),只能依赖两塔各自学到的抽象向量在空间中对齐,表达能力受限于单塔的表达与内积的线性匹配。

二、何时必须引入显式交叉

  • 强依赖细粒度交叉的场景:如某些品类/品牌与人群的交互很强、或决策依赖「用户属性 × 物品属性」的匹配规则,纯双塔可能欠拟合,需要显式交叉
  • 引入方式
  • 轻量交叉:在最后一层内积前,用少量交叉特征(如 user_id × item_id 的共现统计、或若干离散交叉)拼接到 再内积;或双塔输出后加一个小的交叉 MLP。
  • 交叉层:在双塔中间某层引入 user 与 item 的交叉(如 attention、双线性),再分别得到 ;会牺牲一部分「离线算 item 向量、在线只算 user」的便利性(若交叉在 item 侧依赖 user,则 item 向量无法完全离线)。
  • 权衡:显式交叉提升表达与排序能力,但增加计算、可能影响离线预计算与检索流程;粗排/召回常用纯双塔求速度,精排可引入交叉或单塔。

三、实践建议

  • 先验证双塔是否足够:A/B 看加交叉后增益;若增益大且可接受延迟与工程成本,再在合适阶段(如精排)加显式交叉。
  • 显式交叉尽量放在最后一小段或单独小模块,便于在检索链路中做「双塔 + 轻量交叉」的混合部署。

面试要点

  • 能说明双塔限制:仅最后内积交互,无中间显式特征交叉;无法细粒度「用户×物品」交叉。
  • 能说何时要交叉:强依赖细粒度交叉、规则式匹配时;可用交叉特征、小 MLP 或中间交叉层。
  • 能权衡:交叉提升表达与排序,但增加计算、可能影响离线 item 向量;召回/粗排多用纯双塔,精排可加交叉。

记忆要点

  • 双塔限制:仅最后内积,无显式交叉;细粒度「用户×物品」依赖交叉。
  • 引入交叉:交叉特征、小 MLP、或中间交叉层;注意对离线预计算的影响。
  • 召回/粗排多纯双塔;精排可加显式交叉。

返回模块 | 返回总览

09-双塔模型/086.md

第 86 题:用户塔与物品塔的不对称设计,历史行为长度差异的处理?

题目

用户塔与物品塔的不对称设计,历史行为长度差异的处理?


完整讲解

一、用户塔与物品塔的不对称性

用户侧:输入常包含长序列——用户历史行为(点击/观看序列),长度可达几十至几百;需用 RNN/Transformer 等做序列编码,计算量大、表示维度高。物品侧:输入多为单物品或短属性(物品 ID、类目、标签等),无长序列,结构相对简单。因此两塔在输入长度、网络深度与宽度上天然不对称。

二、历史行为长度差异的处理

  • 用户塔:长序列需池化为定长向量。常用 sum/mean pooling、attention pooling(如 target attention:用目标物品对历史做 attention 再聚合)、或最后一隐状态;为控计算,可对序列截断或采样(如最近 N 条、或随机采样),或分层/分块编码后再聚合。
  • 物品塔:无长序列,可直接 MLP 或浅层网络;为与用户塔维度对齐,输出维度与用户塔一致(如均为 128 维),内积才可算。
  • 不对称设计:用户塔可更深、更宽、用更强序列模型;物品塔保持轻量,便于离线预计算所有物品向量。训练时两边都更新;部署时用户塔在线算、物品塔离线算并建索引,不对称不影响检索流程。

三、工程要点

  • 用户塔序列过长时:截断、采样、或使用高效 attention(线性 attention、稀疏 attention)控制时延。
  • 若物品侧也有序列(如物品的评论、描述),可对称地做序列编码,但需权衡物品塔复杂度与离线计算成本。

面试要点

  • 能说明不对称:用户塔长序列、需序列编码与池化;物品塔单物品/短属性、结构简单;两塔深度/宽度可不同。
  • 能说历史长度处理:用户侧截断、采样、attention/sum 池化得到定长向量;物品侧定长输入;输出维对齐以便内积。
  • 能提及用户塔可更强、物品塔轻量以利离线预计算;序列过长时的截断与高效 attention。

记忆要点

  • 用户塔:长序列 → 序列编码 + 池化 → 定长向量;物品塔:单物品/短属性,轻量。
  • 长度差异:截断/采样/attention 池化;输出维对齐。
  • 不对称设计:用户塔可更深,物品塔轻量便于离线算 item 向量。

返回模块 | 返回总览

09-双塔模型/087.md

第 87 题:多兴趣召回(MIND),动态路由的胶囊网络实现细节?

题目

多兴趣召回(MIND),动态路由的胶囊网络实现细节?


完整讲解

一、MIND 与多兴趣召回

MIND(Multi-Interest Network with Dynamic Routing)做多兴趣召回:用户有多个兴趣,用多个兴趣向量表示,召回时用每个兴趣向量分别检索再合并,从而覆盖「多兴趣」、提升召回多样性与命中率。核心是如何从用户行为序列中动态生成多个兴趣向量。

二、动态路由与胶囊网络

  • 胶囊与动态路由:将每个行为物品视为一个「胶囊」(向量),用户侧有 个兴趣胶囊。动态路由迭代地计算「行为胶囊 → 兴趣胶囊」的归属:兴趣胶囊由行为胶囊的加权和得到,权重由当前兴趣与行为的相似度(如内积)经 softmax 得到;下一轮用更新后的兴趣胶囊再算权重,如此迭代 2~3 轮,使兴趣胶囊自动聚类行为,形成 个兴趣向量。
  • 公式:设行为嵌入 ,兴趣胶囊 ,路由系数 经 softmax 得 ,更新 ,squash 为压缩模长的非线性; 每轮加上 (兴趣-行为一致性)再 softmax,实现动态路由。
  • 实现细节 为超参(兴趣数);迭代轮数通常 2~3;squash 保证胶囊模长在 (0,1);训练时用多兴趣向量与正样本的相似度(如 max 或 sum)做损失,负样本用 in-batch 或采样。

三、与双塔的结合

  • 用户侧输出 个兴趣向量;物品侧仍为单塔。召回时用 个兴趣分别 ANN 检索,取并集或按分融合,实现多兴趣召回。

面试要点

  • 能说明 MIND 目标:多兴趣向量表示用户,多兴趣分别召回再合并;动态路由从行为序列生成 个兴趣胶囊。
  • 能解释胶囊与动态路由:行为为胶囊,兴趣胶囊由行为加权和得到,权重由兴趣-行为相似度迭代更新(2~3 轮),squash 压缩模长。
  • 能提及 、迭代轮数、训练时多兴趣与正负样本的损失形式。

记忆要点

  • MIND:多兴趣召回; 个兴趣向量,动态路由从行为序列生成。
  • 动态路由:行为胶囊 → 兴趣胶囊,权重由相似度迭代更新,squash;2~3 轮。
  • 召回: 个兴趣分别 ANN,结果合并。

返回模块 | 返回总览

09-双塔模型/088.md

第 88 题:ComiRec的多兴趣聚合,兴趣向量的自注意力池化?

题目

ComiRec的多兴趣聚合,兴趣向量的自注意力池化?


完整讲解

一、ComiRec 与多兴趣聚合

ComiRec(Controllable Multi-Interest Framework for Recommendation)也是多兴趣召回框架:从用户行为序列得到多个兴趣向量,再对这些兴趣做可控聚合(如根据目标物品或多样性需求选择/加权兴趣),用于召回或排序。多兴趣的生成与聚合是核心。

二、兴趣向量的自注意力池化

  • 多兴趣生成:可用类似 MIND 的动态路由,或更简单的自注意力池化。自注意力池化:对行为序列 学习 组注意力权重,每组得到一个兴趣向量:

其中 为可学习的 query( 个),每个 与行为做 attention 得到 ,即 个兴趣向量。无需迭代,一步得到多兴趣,实现比动态路由简单。
- 聚合:得到 个兴趣后,与目标物品算相似度时可取 max、加权和、或根据目标物品对 个兴趣再做一次 attention(target attention),得到单一用户表示再内积;ComiRec 强调「可控」,即可通过聚合策略调节多样性与准确性。

三、与 MIND 的对比

  • MIND:动态路由(胶囊)、迭代更新兴趣;ComiRec:可用自注意力池化、一步得 兴趣,并强调可控聚合(多样性等)。
  • 自注意力池化参数量为 个 query,计算一次 attention 即可,工程上更易实现与扩展。

面试要点

  • 能说明 ComiRec:多兴趣召回 + 可控聚合;兴趣可由自注意力池化得到。
  • 能写出自注意力池化: 个 query ,一步得 个兴趣向量。
  • 能对比 MIND:ComiRec 自注意力一步、可配合可控聚合(多样性等)。

记忆要点

  • ComiRec:多兴趣 + 可控聚合;兴趣可来自自注意力池化。
  • 自注意力池化: 个 query 与行为做 attention → 个兴趣向量,一步完成。
  • 与 MIND:自注意力实现更简单;可控聚合可调多样性。

返回模块 | 返回总览

09-双塔模型/089.md

第 89 题:双塔模型的蒸馏,单塔教师模型的监督信号设计?

题目

双塔模型的蒸馏,单塔教师模型的监督信号设计?


完整讲解

一、双塔蒸馏的动机

双塔为检索效率牺牲了表达:仅最后内积、无显式交叉。蒸馏用更强的教师模型(如精排单塔、或带交叉的复杂模型)的输出来监督双塔学生,使学生在不改结构的前提下逼近教师的排序或得分分布,提升双塔效果。

二、单塔教师与监督信号设计

  • 教师:常用精排单塔——用户与物品特征一起输入、含丰富交叉的模型,在点击/转化等标签上训练,得到样本对的得分或排序。教师可离线对 (user, item) 对算分,生成软标签。
  • 监督信号
  • 得分蒸馏:教师得分 ,学生得分 ,最小化 或 KL(softmax() | softmax()),使学生得分分布逼近教师。
  • 排序蒸馏:用教师排序(如 listwise 的排列概率)作为监督,学生学习同一排序或 listwise 损失。
  • 特征蒸馏:若教师有中间表示,可让学生塔的某层逼近教师对应表示(需结构有一定对应);双塔中较难直接对应,更多用得分/排序。
  • 训练:学生仍用点击等硬标签 + 教师软标签联合训练,如 ;软标签可来自曝光日志经教师打分得到,或在线/离线 batch 内教师前向得到。

三、工程要点

  • 教师需在大量 (user, item) 对上算分,可离线预计算或采样;学生双塔结构不变,部署仍为向量检索。
  • 温度 需调;教师过强时学生可能无法完全跟上,可只蒸馏 top 或高置信样本。

面试要点

  • 能说明双塔蒸馏目的:用强教师(如精排单塔)监督双塔学生,提升双塔效果、不改结构。
  • 能说教师与监督信号:教师为单塔/精排;监督可为得分 MSE/KL、或排序/listwise;软标签来自教师对 (user, item) 打分。
  • 能提及联合训练(硬标签+蒸馏)、教师打分来源与温度/权重调参。

记忆要点

  • 双塔蒸馏:教师(精排单塔)→ 学生(双塔);得分或排序蒸馏。
  • 监督: vs 的 MSE/KL,或教师排序;软标签来自教师打分。
  • 训练:硬标签 + 蒸馏损失;教师可离线算分; 需调。

返回模块 | 返回总览

09-双塔模型/090.md

第 90 题:流式训练中的Embedding更新,负采样偏差与修正方法?

题目

流式训练中的Embedding更新,负采样偏差与修正方法?


完整讲解

一、流式训练中的 Embedding 更新

流式训练:数据以流的形式到达,模型持续用新 batch 更新(在线学习),而非固定离线全量数据多轮训练。此时 Embedding 表(用户、物品等)随新样本不断更新:新出现的 ID 被插入、已有 ID 的向量被梯度更新。好处是模型始终反映最新分布;难点是负采样与梯度估计存在偏差、以及 embedding 的稀疏更新与一致性。

二、负采样偏差与修正

  • 偏差来源:流式下负样本多从当前 batch 或当前窗口采样(如 in-batch negative),负样本分布 = 当前数据流分布,与全局长期分布可能不一致(例如热门物品在流中占比高,被采为负样本的概率高,模型会过度压低热门物品的分数,即流行度偏差)。此外,正样本通常是「点击」等,负样本为未点击或随机,若不做修正,模型会系统性地偏向某些分布。
  • 修正方法
  • 重要性采样:对负样本加权 ,其中 为物品 被采为负样本的概率,使梯度在期望上等价于从均匀或目标分布采样;需估计 (如用曝光或采样统计)。
  • 纠偏项:在 loss 或得分中加入与采样概率相关的偏置项(如 log 采样概率),推理时减去该偏置,使得分无偏。
  • 流式下的频率估计:用滑动窗口或指数衰减统计 ID 出现频率,用于 或权重;或对热门做降权、对长尾做上采样,缓解流行度偏差。

三、工程要点

  • Embedding 表需支持动态插入与稀疏更新;可设 TTL 或 LRU 淘汰冷门 ID 控表大小。
  • 负采样策略(in-batch / 全局采样 / 难负样本)与修正项需一起调,兼顾无偏性与实现成本。

面试要点

  • 能说明流式训练:数据流式到达、持续更新;Embedding 随新样本插入与更新。
  • 能分析负采样偏差:流式负样本分布 = 当前流分布,与全局不一致,易产生流行度偏差等;需修正。
  • 能说出修正方法:重要性采样()、纠偏项(得分减 log 采样概率)、频率估计与热门降权/长尾上采样。

记忆要点

  • 流式训练:持续更新;Embedding 动态插入与更新。
  • 负采样偏差:流式负样本分布有偏(如热门过多);重要性采样、纠偏项、频率估计与降权/上采样可修正。
  • 工程:动态 Embedding 表、TTL/LRU;负采样与修正联合调参。

返回模块 | 返回总览

09-双塔模型/README.md

09-双塔模型(第 81–90 题)

题号 主题 文章
81 DSSM的语义匹配,词袋模型与深度语义表示的演进? 081.md
82 双塔模型的负采样策略,In-batch Negative… 082.md
83 温度系数对分布的影响,对比学习中的自动温度调整? 083.md
84 难负样本挖掘(Hard Negative Mining)… 084.md
85 双塔模型的特征交互限制,何时必须引入显式交叉? 085.md
86 用户塔与物品塔的不对称设计,历史行为长度差异的处理? 086.md
87 多兴趣召回(MIND),动态路由的胶囊网络实现细节? 087.md
88 ComiRec的多兴趣聚合,兴趣向量的自注意力池化? 088.md
89 双塔模型的蒸馏,单塔教师模型的监督信号设计? 089.md
90 流式训练中的Embedding更新,负采样偏差与修正方法… 090.md

返回总览

10-序列召回/091.md

第 91 题:SASRec的自注意力序列,因果掩码与双向编码的取舍?

题目

SASRec的自注意力序列,因果掩码与双向编码的取舍?


完整讲解

一、SASRec 的自注意力序列

SASRec 用自注意力对用户行为序列建模:设序列 ,嵌入为 ,加位置编码后得到 。自注意力计算

其中 。每位置可 attend 到序列中任意位置,表达力强。

二、因果掩码(Causal Mask)

因果掩码:在 处若 则掩为 ,预测 时只能看到 ,避免信息泄露,符合自回归 next-item 设定。形式为下三角掩码矩阵 ,再对 做 mask 后 softmax。

三、双向编码的取舍

双向(如 BERT4Rec):可同时利用左右上下文,表征更丰富,但预测时存在「看到未来」的泄露,需用 MLM 等掩码目标;且线上 serving 时若要做 next-item,仍需取最后一位置输出或单独做因果解码。因果(SASRec):严格符合 next-item 设定、实现简单、线上直接取最后位置输出即可;代价是无法利用右侧上下文,对「完形填空」类任务弱于双向。

工程取舍:纯 next-item 召回/排序优先因果;若强调利用全序列做表征或预训练再微调,可选用双向 + MLM,但需注意训练与推理的一致性。


面试要点

  • 能写出自注意力公式并说明因果掩码即对 的 attention 置 ,保证预测 时只看前 个。
  • 能说清因果 vs 双向:因果无泄露、next-item 一致、实现简单;双向表征强但需 MLM、推理时要注意与训练一致。
  • 能说明业务选型:next-item 主场景选因果;全序列表征/预训练可考虑双向。

记忆要点

  • SASRec 因果掩码: 的 attention 掩成 ,next-item 无泄露。
  • 因果 = 自回归一致、实现简单;双向 = 表征强、需 MLM,推理要一致。
  • 纯 next-item 用因果;全序列/预训练可双向。

返回模块 | 返回总览

10-序列召回/092.md

第 92 题:BERT4Rec的MLM预训练,推荐场景下的掩码比例调优?

题目

BERT4Rec的MLM预训练,推荐场景下的掩码比例调优?


完整讲解

一、BERT4Rec 的 MLM 预训练

BERT4Rec 用双向 Transformer 建模序列,通过 Masked Language Model (MLM) 预训练:随机将序列中比例 的 item 替换为 [MASK],模型根据上下文预测被掩位置的原 item。损失为被掩位置上的交叉熵:

其中 为被掩位置集合, 为未掩的上下文。

二、推荐场景下的掩码比例

通用 NLP(如 BERT)常取 15% 左右;推荐序列通常更短、item 空间更大,需单独调优。

  • 比例过小(如 5%):正样本少,学习信号弱,预训练慢、易欠拟合。
  • 比例过大(如 50%):上下文损失过多,预测难度大,且序列「残缺」严重,与真实 next-item 分布偏差大。
  • 推荐常用区间:多数工作在 0.15~0.4 之间实验,如 0.2~0.3 较常见;也可对长序列略提高、短序列略降低,使被掩数量相对稳定。

三、工程调优建议

  • 与微调阶段一致:若微调是 next-item,可适当降低掩码率或结合 last-item 预测损失。
  • 可做 span 掩码(连续掩一段)或 随机单 token,推荐里单 token 更常见。
  • 结合序列长度与 batch 量:保证每 batch 内有效掩码数足够,以稳定梯度。

面试要点

  • 能写出 BERT4Rec MLM 损失形式,并说明与 BERT 的 15% 掩码在推荐中的差异(序列短、item 空间大)。
  • 能说清掩码过小导致信号弱、过大导致上下文残缺与分布偏移,推荐常用 0.2~0.3。
  • 能提及 span 掩码、与微调目标一致、按序列长度微调等工程点。

记忆要点

  • BERT4Rec 预训练:MLM 对被掩位置预测原 item,损失为交叉熵。
  • 推荐掩码比例:过小信号弱、过大上下文残缺;常用 0.15~0.4,实践中 0.2~0.3 较多。
  • 调优:与微调目标一致、可按序列长度调节、注意每 batch 有效掩码数。

返回模块 | 返回总览

10-序列召回/093.md

第 93 题:SSE-PT的个性化Transformer,用户嵌入与位置编码的融合?

题目

SSE-PT的个性化Transformer,用户嵌入与位置编码的融合?


完整讲解

一、SSE-PT 的个性化思路

SSE-PT(Stochastic Shared Embeddings for Parameter-efficient Transfer)在序列 Transformer 中引入用户级个性化:同一模型服务多用户,通过「用户嵌入」区分不同用户对同一序列的差异反应。序列输入为 item 嵌入 + 位置编码;用户信息通过用户嵌入注入,使同一序列在不同用户下得到不同表征。

二、用户嵌入与位置编码的融合方式

  • 相加融合,将用户嵌入 与 item 嵌入、位置编码 直接相加后送进 Transformer。实现简单,但用户信息与位置在语义上混在一起。
  • 门控/拼接后投影:如 经线性层再输入,或对用户嵌入做门控调制,可显式区分「谁」「在什么位置」「看了什么」。
  • 分层注入:仅在部分层(如第一层或最后一层)加用户嵌入,或每层用可学习的门控融合用户向量,在表达力与参数效率间折中。

三、与位置编码的关系

位置编码提供「第几个」的序信息;用户嵌入提供「谁」的身份信息。二者同属加法型条件时,模型可学习到「某用户在某位置对某 item 的注意力」;若担心互相干扰,可采用分离注入(如用户只加在 [CLS]/最后一层)或门控融合,便于可解释性与调参。


面试要点

  • 能说明 SSE-PT 用用户嵌入实现个性化、与 item/位置一起输入 Transformer。
  • 能列举融合方式:直接相加、拼接/门控、分层注入,并说明各自优缺点。
  • 能区分位置编码(序信息)与用户嵌入(身份信息),以及可选的门控/分层注入。

记忆要点

  • SSE-PT:用户嵌入 + item 嵌入 + 位置编码一起输入 Transformer,实现个性化序列建模。
  • 融合方式:相加简单、拼接/门控更可辨、分层注入省参数。
  • 位置编码=序信息,用户嵌入=身份;可门控或分层注入减少干扰。

返回模块 | 返回总览

10-序列召回/094.md

第 94 题:FDSA的特征级自注意力,物品属性与ID的联合编码?

题目

FDSA的特征级自注意力,物品属性与ID的联合编码?


完整讲解

一、FDSA 的特征级自注意力

FDSA(Feature-level Decomposed Self-Attention)在序列推荐中不仅用 item ID,还显式引入 item 属性(类目、品牌、标签等),并在特征维度上做自注意力分解。即对每个特征类型(如 ID、类目、品牌)分别做 self-attention,再融合,使模型同时利用「同一类目内的转移」「同一品牌内的转移」等模式。

二、物品属性与 ID 的联合编码

  • 联合输入:将 ID 嵌入与各属性嵌入拼接或相加后作为序列中每步的表示,即 (或拼接再投影),再送入自注意力。属性提供归纳偏置、缓解 ID 稀疏。
  • 特征级注意力:对 ID、类目、品牌等分别建 attention 子层,各自做 Q/K/V 与 softmax,再对多路结果加权或拼接。这样可学到「类目内转移权重」「品牌内转移权重」等,可解释性更好。
  • 共享与解耦:部分参数共享(如 value 投影)、部分解耦(如每类特征独立 key),在表达力与参数量间平衡。

三、工程要点

属性缺失时可用零向量或单独「缺失」嵌入;高基数属性需嵌入降维或哈希。联合编码后序列长度不变,主要增加每步的特征维度和 attention 头数,计算量随特征类型数近似线性增加。


面试要点

  • 能说明 FDSA 在特征级做自注意力分解,ID 与属性(类目、品牌等)联合编码。
  • 能说清联合输入(拼接/相加)与特征级分别 attention 再融合两种方式及优劣。
  • 能提及属性缺失处理、高基数降维与计算量随特征类型增加。

记忆要点

  • FDSA:特征级分解自注意力,ID + 属性(类目、品牌等)联合编码序列。
  • 联合方式:拼接/相加输入 vs 每类特征单独 attention 再融合;后者可解释性更好。
  • 属性缺失用零/缺失嵌入;高基数要降维;计算量随特征类型增加。

返回模块 | 返回总览

10-序列召回/095.md

第 95 题:S3-Rec的自监督预训练,互信息最大化的代理任务设计?

题目

S3-Rec的自监督预训练,互信息最大化的代理任务设计?


完整讲解

一、S3-Rec 与自监督预训练

S3-Rec 通过自监督预训练学习序列表征,再在下游点击/转化等任务上微调。核心思想是设计代理任务(pretext),使模型从无标注行为序列中学习有用的结构,其中 互信息最大化(MIM) 是常用目标之一。

二、互信息最大化的代理任务

互信息 衡量两个随机变量的关联程度。在序列推荐中,常令 为局部/掩码后的序列视图, 为全局序列表征或另一视图,目标为最大化 ,使局部与全局一致、或不同增强视图一致。

  • 全局-局部:用 encoder 得到全局表征 ,再对局部片段(如连续子序列)得到 ,通过 MIM 目标(如 InfoNCE)拉近正对 、推远负对。
  • 多视图:对同一序列做不同增强(掩码、裁剪、重排等)得到多视图,最大化各视图表征间的互信息。
  • Item-Attribute:物品 ID 与属性(类目、描述)的互信息,使嵌入对齐多模态信息。

三、代理任务设计要点

  • 与下游一致:若下游是 next-item,代理任务宜包含序列连续性/预测性;若下游是多行为,可包含行为类型预测。
  • 负样本:InfoNCE 需负样本,常用 in-batch 负例或采样负例;负例质量影响对比学习效果。
  • 预训练+微调:预训练阶段只优化 MIM,微调阶段接任务头(如 next-item 交叉熵),可冻结或全量微调 encoder。

面试要点

  • 能说明 S3-Rec 用自监督预训练 + 互信息最大化学习序列表征。
  • 能解释 MIM 在序列中的典型形式:全局-局部、多视图、item-attribute 对齐。
  • 能说清代理任务与下游一致、负样本设计、预训练与微调两阶段。

记忆要点

  • S3-Rec:自监督预训练,代理任务常用互信息最大化(MIM)。
  • MIM 形式:全局-局部、多视图、item-属性对齐;拉近正对、推远负对(如 InfoNCE)。
  • 设计要点:代理与下游一致、负样本质量、预训练后微调。

返回模块 | 返回总览

10-序列召回/096.md

第 96 题:长序列召回的切片策略,滑动窗口 vs 分层注意力?

题目

长序列召回的切片策略,滑动窗口 vs 分层注意力?


完整讲解

一、长序列带来的问题

用户行为序列可达数百甚至数千,直接对全序列做 self-attention 的复杂度为 ,显存与延迟难以承受。因此需要切片/截断策略,在保持表达能力的前提下控制计算量。

二、滑动窗口(Sliding Window)

  • 做法:只保留最近 个 item(如 ),或对长序列按固定步长滑动,每次只对窗口内做 attention。复杂度 ,与全长 无关。
  • 优点:实现简单、显存与延迟可控;近期行为权重大,符合「近期兴趣」假设。
  • 缺点:窗口外信息完全丢失,无法利用长期偏好与周期性模式。

三、分层注意力(Hierarchical / Staged Attention)

  • 做法:将序列分成若干段(如每段 ),先在各段内做 self-attention 得到段表征,再对段表征做一次 attention 或 RNN 得到全局表征;或「局部 + 全局」两层,局部用窗口、全局用采样/压缩后的序列。
  • 优点:兼顾局部细节与全局结构,长期信息通过段摘要保留;复杂度约 ,可通过分段数控制。
  • 缺点:实现与调参更复杂;段边界可能割裂连续行为。

四、选型建议

  • 强近期、弱长期的场景(如会话内推荐)可用滑动窗口。
  • 需要长期兴趣、周期性或多阶段兴趣时,优先分层/分段注意力或类似 SIM、MIMN 等长序列结构。

面试要点

  • 能说清长序列 的问题,以及切片策略的目的(控计算、保表达)。
  • 能对比滑动窗口(只保留最近 )与分层注意力(分段再聚合)的优缺点。
  • 能根据业务需求选型:近期为主用窗口,长期/周期用分层。

记忆要点

  • 长序列:滑动窗口 = 最近 ,简单但丢长期;分层 = 分段 attention 再聚合,保留长期。
  • 滑动窗口适合强近期场景;分层适合长期兴趣、周期性。
  • 复杂度:窗口 ;分层约

返回模块 | 返回总览

10-序列召回/097.md

第 97 题:实时兴趣的在线更新,增量学习与全量刷新的权衡?

题目

实时兴趣的在线更新,增量学习与全量刷新的权衡?


完整讲解

一、实时兴趣的两种更新方式

增量学习:每来新行为(点击、加购等),在已有用户表征/序列嵌入基础上做增量更新(如用新行为向量与旧状态做 attention 或 GRU 一步),不重算全量历史。全量刷新:按固定周期(如小时/天)用完整行为序列重新跑模型,得到全新用户表征或序列嵌入。

二、增量学习的优劣

  • 优点:延迟低(毫秒级)、存储与计算省(只存紧凑状态、只算一步或少量步),适合实时排序与实时召回。
  • 缺点:长期依赖易衰减、误差会累积;状态维度有限,信息压缩有损;对「概念漂移」的适应依赖设计(如衰减、门控)。

三、全量刷新的优劣

  • 优点:表达完整、无累积误差,可充分利用长序列与复杂模型;适合离线训练、T+1 更新。
  • 缺点:延迟高、资源消耗大,无法做到「当前行为立刻影响下一刷」。

四、工程权衡

  • 混合:实时层用增量(如 DIN 的 attention 更新、GRU 状态),离线层定期全量重算,两者融合(如实时分 + 离线分加权)。
  • 触发策略:关键行为(如下单)触发即时增量;普通浏览可异步批量增量或等全量。
  • 一致性:增量与全量若用不同模型或特征,需注意 A/B 与线上一致性。

面试要点

  • 能说清增量学习(单步/小步更新、低延迟)与全量刷新(完整重算、高表达)的差异。
  • 能分析各自优缺点:增量省资源但易累积误差;全量准但慢且贵。
  • 能给出混合方案、触发策略与一致性注意点。

记忆要点

  • 增量:新行为驱动、低延迟、省资源;缺点为误差累积、长期依赖有限。
  • 全量:完整序列重算、表达完整;缺点为延迟高、资源大。
  • 工程上常混合:实时增量 + 定期全量;关键行为触发即时更新。

返回模块 | 返回总览

10-序列召回/098.md

第 98 题:序列中的时间间隔建模,相对位置编码 vs 显式时间嵌入?

题目

序列中的时间间隔建模,相对位置编码 vs 显式时间嵌入?


完整讲解

一、序列中时间间隔的作用

用户行为间的时间间隔蕴含「兴趣强度」「会话边界」等信息:间隔短往往表示连续兴趣,间隔长可能表示新会话或兴趣转移。因此对时间间隔建模可提升序列推荐效果。

二、相对位置编码(Relative Position Encoding)

  • 思路:不编码绝对位置,而编码相对位置/相对距离。如 attention 中 不仅依赖 ,还加上与 相关的可学习标量或向量。
  • 形式:如 ,其中 为相对位置嵌入;或对时间差 做嵌入
  • 优点:外推性好(未见的长度可泛化)、对「间隔」更直接;不显式存时间戳时,相对位置即间隔的离散近似。

三、显式时间嵌入(Explicit Time Embedding)

  • 思路:将每个行为的时间戳 (或离散化后的 bin)映射为时间嵌入 ,与 item 嵌入相加或拼接后输入:
  • 优点:可建模绝对时间(小时、星期、节假日)、周期性;间隔信息通过两位置时间嵌入的差隐式体现。
  • 缺点:需时间戳与离散化策略;长尾时间 bin 稀疏。

四、取舍建议

  • 只有相对序、无时间戳:用相对位置编码即可。
  • 有精确时间戳、需周期/绝对时间:用显式时间嵌入;可同时加相对间隔项(如 )强化间隔建模。
  • 会话边界敏感:显式时间 + 间隔阈值或会话切分往往更稳。

面试要点

  • 能说明相对位置编码(如 的嵌入)与显式时间嵌入(时间戳映射)的区别。
  • 能说清各自适用场景:无时间戳用相对位置;要周期/绝对时间用显式时间;可二者结合。
  • 能提及间隔对会话边界与兴趣强度的作用。

记忆要点

  • 相对位置编码:编码 ,外推性好,不依赖时间戳。
  • 显式时间嵌入:时间戳→嵌入,可建模周期与绝对时间;可再加间隔项。
  • 无时间戳用相对;要周期/会话用显式;可组合使用。

返回模块 | 返回总览

10-序列召回/099.md

第 99 题:多行为序列的统一建模,行为类型嵌入与强度归一化?

题目

多行为序列的统一建模,行为类型嵌入与强度归一化?


完整讲解

一、多行为序列的统一建模

推荐中存在多种行为:点击、加购、收藏、下单、分享等。统一建模即在一个序列模型中同时利用多种行为,而不是为每种行为建单独序列或单独目标。核心问题是如何区分行为类型并处理行为强度/频次差异。

二、行为类型嵌入(Behavior Type Embedding)

  • 做法:为每种行为类型(click, cart, order, …)学习一个嵌入 ,与 item 嵌入组合后输入。如 ,或 再投影。
  • 作用:模型可学习「点击→加购」「加购→下单」等转移模式,以及不同行为对下一行为预测的权重差异(如下单比点击更能表征强兴趣)。
  • 实现:行为类型 ID 做 embedding lookup,维度通常较小(几维到几十维)。

三、强度归一化(Intensity Normalization)

  • 问题:不同行为发生频次差异大(点击远多于下单),若直接按发生顺序建序列,点击会主导序列,弱行为信号被稀释。
  • 做法:(1)加权:对每种行为的 loss 或梯度加权,如下单权重大于点击;(2)重复/采样:对稀少行为过采样或重复插入序列;(3)强度特征:将频次、时长等作为标量特征或分段嵌入与行为类型一起输入;(4)多任务:多行为预测多头,各头损失加权或帕累托。
  • 归一化:对同一 user 内各行为类型的计数或时长做归一化(如 min-max、z-score),再作为特征,避免绝对值主导。

四、工程要点

  • 行为类型嵌入可与位置编码、用户嵌入一起加性融合。
  • 强度归一化与多目标权重需一起调,避免高频行为淹没低频、同时不使低频过拟合。

面试要点

  • 能说明多行为统一建模中行为类型嵌入的作用(区分 click/cart/order 等、学习转移模式)。
  • 能说清强度归一化的必要性(频次差异大)及常见做法:加权、采样、强度特征、多任务。
  • 能列举 2~3 种强度处理方式并与业务场景对应。

记忆要点

  • 行为类型嵌入:每种行为一个嵌入,与 item 嵌入组合输入,学习行为间转移。
  • 强度归一化:解决点击多、下单少等频次差异;手段有加权、过采样、强度特征、多任务权重。
  • 类型嵌入 + 强度处理一起用,避免高频行为主导、低频信号丢失。

返回模块 | 返回总览

10-序列召回/100.md

第 100 题:序列去噪,异常点击的检测与过滤机制?

题目

序列去噪,异常点击的检测与过滤机制?


完整讲解

一、序列去噪的必要性

用户行为序列中常含异常点击:误触、爬虫、刷量、兴趣漂移前的噪声等。若直接用于序列模型,会污染兴趣表征、拉低 next-item 或 CTR 预测效果,因此需要检测与过滤

二、异常点击的检测

  • 规则:极短停留(如 <1s)、重复连续点击同一 item、与历史兴趣明显偏离(如类目突变且无后续转化)。可用阈值或简单统计(停留时长分布、类目转移矩阵)筛出一部分。
  • 模型:用二分类模型(正常/异常)对每个行为打分,特征可为:停留时长、与上一 item 的相似度、与用户长期兴趣的相似度、时间间隔、设备/环境特征。正样本为「正常行为」、负样本为人工标注或启发式规则构造的异常。
  • 无监督:基于序列的重构误差或预测误差,异常点往往重构/预测差;或基于隔离森林、LOF 等对行为向量做异常检测。

三、过滤机制与工程

  • 离线:在构建训练序列时,先跑检测模型或规则,将判为异常的行为剔除或降权(如不参与 loss、或权重 <1),再喂给序列模型。
  • 在线:对实时序列同样做过滤后再做召回/排序;或对「可疑」行为不写入长期兴趣、只参与短期会话。
  • 软过滤:不直接删,而是给每个行为一个可信度权重,在 attention 或 loss 中乘上该权重,异常行为权重接近 0,减少影响同时保留顺序信息。

四、注意点

  • 过滤过猛会删掉真实但稀疏的长尾兴趣;建议保留「低置信异常」或做 A/B 看指标。
  • 检测模型本身需定期用新样本更新,避免与当前分布漂移。

面试要点

  • 能说明序列去噪的目的(异常点击污染兴趣、拉低效果)及检测思路:规则 + 模型 + 无监督。
  • 能说清过滤机制:离线建序时剔除/降权、在线过滤或软权重复用。
  • 能提及过猛过滤的风险与检测模型的更新。

记忆要点

  • 异常点击:误触、爬虫、兴趣漂移噪声;检测用规则(停留、重复、类目突变)+ 模型/无监督。
  • 过滤:离线剔除或降权、在线过滤;软过滤=可信度权重乘入 attention/loss。
  • 避免过滤过猛伤及长尾兴趣;检测模型需随分布更新。

返回模块 | 返回总览

10-序列召回/README.md

10-序列召回(第 91–100 题)

题号 主题 文章
91 SASRec的自注意力序列,因果掩码与双向编码的取舍? 091.md
92 BERT4Rec的MLM预训练,推荐场景下的掩码比例调优… 092.md
93 SSE-PT的个性化Transformer,用户嵌入与位… 093.md
94 FDSA的特征级自注意力,物品属性与ID的联合编码? 094.md
95 S3-Rec的自监督预训练,互信息最大化的代理任务设计? 095.md
96 长序列召回的切片策略,滑动窗口 vs 分层注意力? 096.md
97 实时兴趣的在线更新,增量学习与全量刷新的权衡? 097.md
98 序列中的时间间隔建模,相对位置编码 vs 显式时间嵌入? 098.md
99 多行为序列的统一建模,行为类型嵌入与强度归一化? 099.md
100 序列去噪,异常点击的检测与过滤机制? 100.md

返回总览

11-图召回/101.md

第 101 题:Graph Embedding的随机游走,DeepWalk与Node2Vec的偏置参数?

题目

Graph Embedding的随机游走,DeepWalk与Node2Vec的偏置参数?


完整讲解

一、Graph Embedding 与随机游走

图嵌入将节点映射为低维向量,使图上「相近」的节点向量接近。随机游走从某节点出发,按边随机跳转得到节点序列,把序列当作「句子」、节点当作「词」,用 Skip-gram 等语言模型学习嵌入,从而把图结构转化为共现关系。

二、DeepWalk 的偏置参数

DeepWalk 采用均匀随机游走:从当前节点 出发,下一跳以等概率选邻居,即 。无额外偏置参数,实现简单,适合无权图或边权无差别时的结构相似性(同质性与短路径)。

三、Node2Vec 的偏置参数

Node2Vec 引入二阶偏置,用两个参数控制游走形态:

  • 返回参数 :从 走到 后,下一步回到 的概率正比于 小则易回到上一跳(局部游走), 大则不易回(更发散)。
  • 进出参数 :下一步走到 的其他邻居(与 不相邻)的概率正比于 小则倾向「往外走」(BFS 式,多跳邻居), 大则倾向「在 附近」(DFS 式,局部邻域)。

形式上,从 的未归一化转移权重为 :若 ,若 相邻为 ,若 的其它邻居为 。通过调 同质性(相邻节点相似)与结构等价性(结构角色相似)间权衡。

四、工程要点

  • DeepWalk 无超参、易实现;Node2Vec 需调 ,通常 大偏 BFS, 小偏 DFS。
  • 游走长度与每节点游走次数影响共现覆盖与训练规模,需在效果与耗时间折中。

面试要点

  • 能说明随机游走 + Skip-gram 的图嵌入思路,以及 DeepWalk 的均匀游走(无偏置)。
  • 能写出 Node2Vec 的 (回退)、(BFS/DFS)含义及对游走形态的影响。
  • 能说清 小易回退、 小偏 BFS、 大偏 DFS,以及同质性 vs 结构等价性的取舍。

记忆要点

  • DeepWalk:均匀随机游走,无偏置;Node2Vec: 控制回退、 控制 BFS/DFS。
  • 小→易回上一跳(局部); 小→往外走(BFS), 大→邻域内(DFS)。
  • 同质性用较小 ;结构角色相似用较大 常取 [0.25, 4]。

返回模块 | 返回总览

11-图召回/102.md

第 102 题:LINE的一阶与二阶邻近,大规模图的负采样优化?

题目

LINE的一阶与二阶邻近,大规模图的负采样优化?


完整讲解

一、一阶邻近与二阶邻近

一阶邻近:直接相连的节点对,边 存在则 应接近。二阶邻近:不直接相连但共享很多邻居的节点对,即「邻居的邻居」相似,如两个用户买了大量相同商品。LINE 用两个目标分别刻画这两种关系,再联合训练或拼接嵌入。

二、一阶邻近的目标

对边 与边权 ,定义联合概率与经验概率,用 KL 散度或交叉熵最小化。一阶目标使直接相连节点嵌入内积大(或距离小):

其中 为节点嵌入, 为 sigmoid。即最大化边两端节点向量的相似度,权重大则损失权重大。

三、二阶邻近的目标

二阶:节点 的「上下文」为其邻居分布。设 的邻居分布为经验分布 ,模型用 softmax 拟合 为上下文嵌入)。目标为最小化 的 KL 或交叉熵,使「邻居分布」相似的节点嵌入相似。形式上与 Skip-gram 一致,即

四、大规模图的负采样优化

中 softmax 分母对大规模图不可算。负采样:对每条边 ,采样 个负节点 ,用

近似,将 的归一化变为 。负样本常按度或均匀采样;边采样:按边权 采样边做 mini-batch,避免权重大边主导梯度,同时控制每轮计算量。二者结合可在大规模图上高效训练 LINE。


面试要点

  • 能区分一阶(直接相连)与二阶(共享邻居),并写出对应损失形式。
  • 能说明二阶目标等价于 Skip-gram、softmax 分母在大图上不可行。
  • 能说清负采样替代 softmax、边采样控制 batch,以及负样本采样策略。

记忆要点

  • 一阶=直接相连、最大化 ;二阶=邻居分布相似、Skip-gram 形式。
  • 大规模优化:负采样近似 softmax、边采样按 控制 batch。
  • 一阶+二阶可联合训练或拼接嵌入;负样本按度/均匀采样。

返回模块 | 返回总览

11-图召回/103.md

第 103 题:SDNE的自编码器结构,图拉普拉斯正则化的作用?

题目

SDNE的自编码器结构,图拉普拉斯正则化的作用?


完整讲解

一、SDNE 的自编码器结构

SDNE(Structural Deep Network Embedding)用深度自编码器学习节点嵌入:输入为节点 邻接向量 ,否则为 0 或边权),经编码器(多层非线性)得到低维表示 ,再经解码器重构为 。无监督损失为重构误差,如

编码器输出 即节点嵌入,既压缩了邻接信息,又通过非线性捕捉高阶结构。

二、图拉普拉斯正则化的作用

若仅用重构损失,直接相连的节点可能学到相似邻接向量、从而相似嵌入,但一阶邻近未被显式约束。SDNE 加入一阶邻近的拉普拉斯正则:对每条边 ,约束 接近,即

其中 为嵌入矩阵, 为图拉普拉斯矩阵( 或归一化形式)。该项使直接相连节点嵌入相近,与重构项(隐式保留邻接/二阶信息)互补。

三、总损失与效果

总损失 。重构项保证嵌入保留邻接结构(二阶/高阶);拉普拉斯项显式平滑一阶邻居,使图上的局部平滑性进入表示,提升链接预测与节点分类效果。


面试要点

  • 能说明 SDNE 的输入(邻接向量)、自编码器(编码→嵌入、解码→重构)及重构损失。
  • 能写出拉普拉斯正则 并解释:一阶邻近显式约束、使相邻节点嵌入接近。
  • 能说清重构=结构压缩/二阶、拉普拉斯=一阶平滑,二者结合。

记忆要点

  • SDNE:邻接向量→自编码器→嵌入;无监督损失=重构误差。
  • 拉普拉斯正则:,一阶邻近显式平滑。
  • 重构保留邻接/高阶;拉普拉斯保留一阶;总损失=重构+α·拉普拉斯。

返回模块 | 返回总览

11-图召回/104.md

第 104 题:HNE的异构网络嵌入,元路径的自动选择 vs 人工设计?

题目

HNE的异构网络嵌入,元路径的自动选择 vs 人工设计?


完整讲解

一、异构网络与元路径

异构网络:节点或边有多种类型(如用户、商品、类目;点击、购买、收藏)。元路径是节点类型与边类型组成的模式,如 User–Item–User(U-I-U)、User–Item–Category–Item–User(U-I-C-I-U),表示「同一商品被谁买」「同类目下的商品」等语义。不同元路径刻画不同语义关系,嵌入时可沿元路径游走或聚合。

二、人工设计元路径

  • 做法:根据业务与领域知识预先选定若干元路径(如 U-I-U、U-I-C-I-U、U-I-Brand-I-U),基于这些路径做游走、共现或 GNN 消息传递,再训练嵌入。
  • 优点:可解释、可控、易与业务对齐;实现简单。
  • 缺点:依赖专家经验;遗漏或错误路径会限制表达;类型与关系多时组合爆炸,难以穷举。

三、元路径的自动选择

  • 做法:用强化学习、可微搜索或启发式,从候选元路径中选对下游任务(链接预测、节点分类)贡献大的子集;或学习路径权重、自动加权融合多路径。
  • 优点:可发现非显式语义、适应数据与任务;减少人工设计。
  • 缺点:计算与调参成本高;可解释性下降;需足够标注或自监督信号。

四、取舍建议

  • 类型与关系少、业务语义清晰时,人工设计 2~5 条主元路径即可。
  • 类型多、关系复杂或追求自动化时,可自动选择/加权,并结合人工校验与可解释性分析。

面试要点

  • 能说明异构网络与元路径的概念,以及元路径如何表达不同语义(如 U-I-U、U-I-C-I-U)。
  • 能对比人工设计(可解释、依赖经验)与自动选择(灵活、成本高、可解释性弱)。
  • 能根据场景选型:简单清晰用人设;复杂/自动化用自动选择或加权。

记忆要点

  • 元路径=节点/边类型组成的模式,表达不同语义(U-I-U、U-I-C-I-U 等)。
  • 人工设计:可解释、依赖领域;自动选择:灵活、成本高、可解释性弱。
  • 简单场景用人设;复杂/多类型可自动选择或学习路径权重。

返回模块 | 返回总览

11-图召回/105.md

第 105 题:GES的带边信息嵌入,属性与结构的联合编码?

题目

GES的带边信息嵌入,属性与结构的联合编码?


完整讲解

一、GES 与带边信息的图嵌入

GES(Graph Embedding with Side information)在基础图结构(如 user-item 共现)上引入边或节点的侧信息(属性、上下文),使嵌入同时编码结构属性,提升冷启动与泛化。

二、属性与结构的联合编码

  • 节点侧信息:节点带属性(如 item 的类目、品牌、文本)。联合编码方式:(1)将 ID 嵌入与属性嵌入相加或拼接后作为节点表示;(2)用 GNN 在图上传播时,消息同时依赖边权/边类型与端点属性。
  • 边侧信息:边带权重、类型、时间等。联合编码方式:(1)边权作为 attention 或 message 的权重;(2)边类型对应不同变换矩阵或嵌入,消息为 为边类型);(3)时间边可加时间嵌入,再与结构一起参与聚合。
  • 目标联合:无监督上可同时优化结构损失(如邻接重构、随机游走共现)与属性一致性损失(如属性相似节点嵌入接近);也可多任务(链接预测 + 属性预测)联合训练。

三、工程要点

  • 属性高维或高基数时需嵌入/降维;缺失属性用零或单独嵌入。
  • 结构为主、属性为辅时,可对属性损失加较小权重,避免属性主导、结构弱化。

面试要点

  • 能说明 GES 类方法如何把边/节点属性与图结构联合编码(相加、拼接、边类型矩阵、多任务)。
  • 能区分节点侧信息(类目、品牌)与边侧信息(权重、类型、时间)的用法。
  • 能提及属性缺失、高基数处理与结构/属性损失权重平衡。

记忆要点

  • GES:图结构 + 边/节点属性联合嵌入;结构=邻接/游走,属性=类目/边权/类型等。
  • 联合方式:ID+属性相加或拼接;边类型/边权参与 message 或 attention;多任务联合训练。
  • 属性缺失与高基数要处理;结构主、属性辅时可降属性损失权重。

返回模块 | 返回总览

11-图召回/106.md

第 106 题:EGES的边缘特征增强,边权重的自适应学习?

题目

EGES的边缘特征增强,边权重的自适应学习?


完整讲解

一、EGES 与 Graph Embedding 的边信息

EGES(Enhanced Graph Embedding with Side information)在 GES 基础上,对多源侧信息(如 item 的 ID、类目、品牌等)不是简单相加,而是用可学习的权重融合,使不同侧信息对最终嵌入的贡献可自适应,即边(侧)特征增强

二、多源嵌入与加权融合

  • 多源嵌入:每个 item 有 ID 嵌入 及多个侧信息嵌入 (类目、品牌等)。若简单平均或相加,则假设各源同等重要。
  • 边权/权重:EGES 为每个源学习一个标量权重 (或与上下文相关的权重),融合时用

或先对 做 softmax 再加权。训练时 与嵌入一起更新,自适应学习到「ID 重要还是类目重要」等,即边(侧)特征的权重由数据驱动。

三、边权重的自适应学习

  • 训练:目标仍为 Skip-gram 式(正样本为共现对、负采样),梯度同时更新 。梯度反传时,对损失贡献大的源会得到更大 (若未做约束)或更大梯度,从而自适应。
  • 冷启动:新 item 无 ID 共现时,可仅用侧信息嵌入的加权和作为初始嵌入,冷启动效果优于固定平均。
  • 实现 可初始化为 1 或可学习标量;多跳/图上游走时的「边」若指边类型,则边类型也可对应不同权重,与「侧信息源」权重同理。

四、与 GES 的对比

GES 常为固定相加或拼接;EGES 显式学习各源权重,表达力与冷启动通常更好,多一组小参数量(每个源一个标量)。


面试要点

  • 能说明 EGES 用多源嵌入(ID + 类目 + 品牌等)与可学习权重融合,实现边/侧特征增强。
  • 能写出加权融合形式(如 softmax 权或归一化加权和)并说明权重随训练自适应。
  • 能说清与 GES 的差异(固定 vs 自适应权重)及冷启动上的优势。

记忆要点

  • EGES:多源嵌入 + 可学习权重 融合;(可归一化)。
  • 边权重自适应: 与嵌入一起训练,数据驱动各源重要性;冷启动时侧信息权重大。
  • 与 GES 区别:GES 多固定融合,EGES 显式学习权重、表达与冷启动更好。

返回模块 | 返回总览

11-图召回/107.md

第 107 题:图神经网络的归纳召回,新节点的实时嵌入生成?

题目

图神经网络的归纳召回,新节点的实时嵌入生成?


完整讲解

一、归纳式 vs 直推式

直推式:训练时只对图中已有节点学习嵌入,新节点加入需重新训练或单独推断,无法泛化到未见节点。归纳式:模型学习的是「从邻接/特征生成嵌入」的函数,给定新节点的邻居与特征即可实时算出其嵌入,无需重训,适合动态图与冷启动。

二、图神经网络的归纳能力

GNN 的归纳式代表如 GraphSAGE:聚合邻居表示后与自身特征结合,再经非线性得到节点表示。参数是共享的(聚合函数、MLP),因此对新节点,只要知道其邻居及其特征,即可前向传播得到嵌入,无需该节点在训练集中出现。归纳式 GNN 的输入为子图或 k-hop 邻域 + 节点特征,输出为节点嵌入。

三、新节点的实时嵌入生成

  • 在线流程:新节点(如新上架商品、新用户)到来时,取其在当前图中的 k-hop 邻居(或 1-hop 即可),取这些节点的已有嵌入或特征,按训练好的 GNN 聚合与更新公式算一步或多步,得到新节点嵌入。若图存储与邻接查询高效(如图 DB、邻接表),单次前向为毫秒级,可实时生成。
  • 冷启动:新节点无或极少边时,可用节点特征(属性、内容)经同一 GNN 的「0-hop」分支或单独 MLP 得到初始嵌入,或与仅用结构的嵌入做融合;后续行为增加后再用邻居聚合更新。
  • 工程:预计算好老节点嵌入并建索引;新节点按需实时算或异步写入缓存,保证召回/排序能用到最新嵌入。

四、注意点

  • 归纳式依赖「邻居表示」质量;若邻居也是新节点,需递归或用特征初始化。
  • 图结构变更(新边、删边)时,相关节点嵌入需更新,可增量重算或定期全量刷新。

面试要点

  • 能区分直推(只对训练节点)与归纳(可对新节点生成嵌入),并说明 GNN 的归纳性来自参数共享。
  • 能说清新节点实时嵌入流程:取邻居→用已训 GNN 聚合→得到嵌入;冷启动用特征或 0-hop。
  • 能提及工程上的预计算、按需计算、图变更时的更新策略。

记忆要点

  • 归纳式 GNN(如 GraphSAGE):参数共享,新节点用邻居+特征前向即得嵌入。
  • 实时生成:取 k-hop 邻居、用已训模型聚合、毫秒级;冷启动用节点特征或 0-hop。
  • 老节点预计算建索引;新节点按需/异步算;图变更时增量或定期更新。

返回模块 | 返回总览

11-图召回/108.md

第 108 题:知识图谱召回,TransE的翻译假设与复杂关系建模?

题目

知识图谱召回,TransE的翻译假设与复杂关系建模?


完整讲解

一、知识图谱召回与 TransE

知识图谱由三元组 (头实体、关系、尾实体)组成。知识图谱召回即利用 KG 做推荐:如 (user, 点击, item)、(item, 属于类目, category)。TransE 将关系视为头尾实体向量间的平移,即

希望正样本得分低、负样本得分高。嵌入 通过 margin-based 损失学习,从而可用 做链接预测与召回(给定 ,或给定 与关系「点击」找 item)。

二、翻译假设的局限与复杂关系

翻译假设 1-to-1 关系自然;对 1-to-NN-to-1N-to-N 或对称/反对称关系,单向量平移难以区分。例如同一 对应多个 ,则 会聚到同一点,与「多个不同尾实体」矛盾。这即复杂关系建模的难点。

三、复杂关系建模的改进

  • TransH / TransR:关系对应超平面或不同空间, 投影后再平移,使同一关系下多尾实体可有不同表示。
  • DistMult / ComplEx:用双线性 或复数空间,可表达对称/反对称与多对多。
  • RotatE:关系视为复数旋转 ,可建模对称、反对称、逆关系。
  • 多跳与路径:用多跳路径 做推理与召回,或路径嵌入与 TransE 结合,增强复杂关系表达。

四、召回中的使用

将 user 与 item 映射为实体或通过交互关系连到 KG,用学到的 对候选 item 打分、做 Top-K 召回;或沿 KG 路径做扩展与排序,融合协同与知识信号。


面试要点

  • 能写出 TransE 的翻译假设 与得分函数
  • 能说清翻译假设对 1-to-N、N-to-N 等复杂关系的局限(多尾实体坍缩)。
  • 能列举 TransH/R、DistMult、RotatE、多跳路径等改进思路及在召回中的用法。

记忆要点

  • TransE:;适合 1-to-1。
  • 复杂关系:1-to-N/N-to-N 单平移不够;TransH/R、DistMult、RotatE、多跳路径等改进。
  • 召回:用 或路径对候选打分、做 Top-K 或扩展。

返回模块 | 返回总览

11-图召回/109.md

第 109 题:图卷积的邻居聚合,注意力机制与均值池化的比较?

题目

图卷积的邻居聚合,注意力机制与均值池化的比较?


完整讲解

一、图卷积的邻居聚合

GNN 每层将节点表示更新为自身与邻居的聚合。设节点 的邻居为 ,第 层更新为

聚合方式决定信息如何从邻居流向中心节点,常见有均值池化注意力加权

二、均值池化(Mean Pooling)

,即邻居(及自身)等权平均。优点:简单、稳定、无额外参数、对度不敏感(归一化后尺度一致)。缺点:无法区分邻居重要性,噪声或无关邻居权重大时效果受限。

三、注意力机制(Attention)

,其中 (GAT 形式)。优点:可学习邻居权重、对重要邻居赋予更大权、可解释(看 attention 分布)。缺点:多参数、计算与显存开销大;高度节点 softmax 易平滑、需大 batch 或采样。

四、选型建议

  • 邻居同质、图较规整时,均值池化即可且更省资源。
  • 邻居异质、存在关键节点与噪声时,用注意力或加权聚合(如 GAT、GATv2)通常更好;可配合邻居采样控制计算量。

面试要点

  • 能写出 GNN 邻居聚合的通用形式,并对比均值池化(等权)与注意力(学习权重)。
  • 能说清均值池化简单稳定但无法区分重要性;注意力可学习权重但参数与计算更多。
  • 能根据邻居同质/异质、资源约束选型。

记忆要点

  • 均值池化:邻居等权平均,简单稳定,不区分重要性。
  • 注意力: 学习权重,重要邻居权大,可解释;参数与计算更多。
  • 同质图用均值;异质/关键节点明显用注意力;可配合邻居采样。

返回模块 | 返回总览

11-图召回/110.md

第 110 题:大规模图的分区训练,GraphSAGE的minibatch实现细节?

题目

大规模图的分区训练,GraphSAGE的minibatch实现细节?


完整讲解

一、大规模图与分区

图规模大时无法单机存整图或单 batch 全图训练,需要分区:将节点或边划分到多机/多 GPU,每部分只存子图,训练时通过通信或采样子图组成 mini-batch。分区策略影响负载均衡、通信量与收敛。

二、GraphSAGE 的 Mini-batch 思路

GraphSAGE 本身是按节点 mini-batch:每 batch 采样一组目标节点,再对每个目标节点采样其 k-hop 邻域(如 2 层:先采 25 邻居、再每邻居采 10),形成子图。前向时从外向内逐层聚合(先 2-hop 再 1-hop 再目标节点),只在该子图上计算,无需全图。因此天然适合「分区 + 按节点采样」:分区后每分区存局部邻接,采样时在分区内或跨分区取邻居。

三、分区训练的实现细节

  • 节点分区:按节点 ID 或图划分算法(如 Metis)将节点分到若干分区,每分区存「节点及其出边」或「节点 + 其邻接表」。采样时,若目标节点在分区 A,则 1-hop 可能跨到分区 B,需远程拉取邻居特征或嵌入。
  • 采样子图:对每个 batch 的目标节点,在各自分区内做 k-hop 采样,得到多个子图;若邻居在它分区,由该分区本地采样并返回节点 ID 与特征,中心节点所在分区做聚合。需通信:拉取它分区节点特征、或推送梯度。
  • 负载均衡:高度节点被采样到的概率大,若分区按度划分不均会导致部分分区热点。可按时度或随机划分、或对高度节点做复制/缓存,减少跨分区访问。
  • 层数与邻居数:k 层 GNN 每节点需 k-hop 邻域;每层采样邻居数 控制子图大小。 过大则单 batch 显存与计算大,过小则信息不足。常用 2 层、每层 10~25 邻居。

四、工程要点

  • 分布式时邻接与特征可存图引擎(如 DGL、PyG 分布式),采样与 mini-batch 由框架封装。
  • 梯度与嵌入更新:若用 DGL 等,梯度按子图反传后由框架同步或异步聚合到全局参数;嵌入表可分区存储、按需拉取。

面试要点

  • 能说明大规模图需分区、GraphSAGE 按节点 mini-batch + k-hop 采样子图。
  • 能说清分区后采样如何跨分区、需拉取邻居特征/嵌入与通信。
  • 能提及负载均衡(高度节点、分区策略)、每层邻居数 与层数 k 的权衡。

记忆要点

  • 大规模图:节点/边分区;GraphSAGE mini-batch = 采样目标节点 + k-hop 邻域子图。
  • 实现:分区内存邻接;采样可能跨分区→拉取邻居特征、通信;负载均衡注意高度节点。
  • 层数 k、每层邻居数 控制子图大小与显存;常用 2 层、每层 10~25。

返回模块 | 返回总览

11-图召回/README.md

11-图召回(第 101–110 题)

题号 主题 文章
101 Graph Embedding的随机游走,DeepWal… 101.md
102 LINE的一阶与二阶邻近,大规模图的负采样优化? 102.md
103 SDNE的自编码器结构,图拉普拉斯正则化的作用? 103.md
104 HNE的异构网络嵌入,元路径的自动选择 vs 人工设计? 104.md
105 GES的带边信息嵌入,属性与结构的联合编码? 105.md
106 EGES的边缘特征增强,边权重的自适应学习? 106.md
107 图神经网络的归纳召回,新节点的实时嵌入生成? 107.md
108 知识图谱召回,TransE的翻译假设与复杂关系建模? 108.md
109 图卷积的邻居聚合,注意力机制与均值池化的比较? 109.md
110 大规模图的分区训练,GraphSAGE的minibatc… 110.md

返回总览

12-向量检索/111.md

第 111 题:近似最近邻(ANN)的LSH,局部敏感哈希族的构造?

题目

近似最近邻(ANN)的LSH,局部敏感哈希族的构造?


完整讲解

一、近似最近邻(ANN)与 LSH

精确最近邻在大规模高维下成本高(暴力 ),ANN 用索引与近似算法在召回率与延迟间折中。局部敏感哈希(LSH):若两点相似(距离小),则它们以高概率落入同一桶;若不相似,则以高概率落入不同桶。通过多组哈希函数与多桶,可放大「相似→同桶」的概率,实现快速候选筛选。

二、LSH 族的定义

哈希族 称为对距离 -敏感的,若:距离 的点对以概率 发生碰撞;距离 的点对以概率 发生碰撞;且 。好的 LSH 族要求 尽量大、 尽量小,使真近邻易同桶、远点易分离。

三、常见 LSH 族的构造

  • 欧氏距离(L2)p-stable LSH。利用 p-stable 分布(如 对应高斯):,其中 服从高斯、。距离近的 上接近,易落入同一整数桶。
  • 余弦相似度 / 内积随机投影 为单位随机向量。内积大则 同号概率大,可做 SimHash;或多 bit 扩展为多桶。
  • 汉明距离位采样MinHash(用于集合 Jaccard)。对 0/1 向量,LSH 可直接用子位或 MinHash 族。

四、多表与多哈希

单次哈希碰撞率有限,通常建 张表、每表用 个哈希函数组合成复合桶()。查询时对 ,在 个桶内取并集作候选。 增大则召回升、延迟与存储也升,需按 recall/latency 调参。


面试要点

  • 能说明 LSH 的直观:相似点高概率同桶、不相似高概率不同桶; 定义。
  • 能写出欧氏下的 p-stable()与内积/余弦下的 sign 随机投影。
  • 能说清多表 、每表 个哈希对召回与延迟的权衡。

记忆要点

  • LSH:相似→高概率同桶;需 。欧氏用 p-stable;内积/余弦用 sign 随机投影。
  • 多表 、复合 提高召回; 大则延迟与存储增。
  • 调参: 根据 recall/latency 曲线选。

返回模块 | 返回总览

12-向量检索/112.md

第 112 题:乘积量化(PQ)的码本训练,k-means的聚类数量选择?

题目

乘积量化(PQ)的码本训练,k-means的聚类数量选择?


完整讲解

一、乘积量化(PQ)概要

维向量分成 段,每段 维;每段各自用子码本量化,共 个子码本、每码本 个码字。向量用 个码字索引表示,存储从 个 float 变为 bit,距离用码字间距离表近似,复杂度 而非

二、码本训练与 k-means

每个子空间独立做 k-means:对第 段的所有训练向量 聚类,得到 个聚类中心作为该段的码本 。训练数据通常为全量或采样的底库向量,按段切分后各自聚类,无交叉子空间约束。

量化:,即每段找最近码字,用码字索引 表示。查询时用非对称距离(查询未量化)或对称距离(查表)近似

三、聚类数量 的选择

  • 每段码本大小 :总码本大小为 (组合数),实际可区分向量数约 大则每段量化误差小、重构好,但码本与距离表大( 个码字、查表 若暴力); 小则压缩狠、快但误差大。常用(8 bit/段),平衡精度与存储; 或 512 也常见。
  • 段数 大则每段维度 小,子空间 k-means 更准,但 过大每段信息不足、量化误差反升。通常 常见。
  • 经验:先定总 bit 预算(如 64 bit = ),再在 间折中;或用验证集扫 recall@K 与 latency 选

四、工程要点

  • 子空间假设(各段独立)在向量旋转/分布不均时可能弱;可先用 OPQ 旋转再 PQ。
  • 训练时 k-means 的 与推理一致;大规模底库可对每段采样训练以加速码本学习。

面试要点

  • 能说明 PQ 的段划分、每段 k-means 得子码本、量化与查表距离。
  • 能说清 大则精度高、存储与查表成本大; 小则压缩狠、误差大;常用 约 4~16。
  • 能提及总 bit 预算、验证集调参、与 OPQ 结合。

记忆要点

  • PQ: 维分 段,每段 k-means 得 个码字;量化用最近码字索引,距离查表
  • 大→精度高、成本大; 小→压缩狠、误差大;常用
  • 总 bit=;可结合 OPQ 旋转再 PQ。

返回模块 | 返回总览

12-向量检索/113.md

第 113 题:OPQ的正交优化,旋转矩阵对向量分布的适配?

题目

OPQ的正交优化,旋转矩阵对向量分布的适配?


完整讲解

一、PQ 的假设与各向异性问题

PQ 假设各子空间独立且每段内向量分布适合 k-means。若原始向量各维度强相关或方差分布不均(各向异性),直接按坐标分段会导致:某些段方差极大、量化误差大;段间仍有依赖,独立 k-means 不是最优。OPQ(Optimized Product Quantization) 通过正交旋转 正交矩阵)将向量变换到更「均衡」的空间,再做 PQ,使各段方差更接近、相关性减弱。

二、正交优化与目标

目标:在给定 PQ 段划分下,最小化重构误差(或量化误差)。设旋转 、码本 ,优化

其中 经 PQ 量化后的重构。正交约束 保证旋转不改变范数、保持距离关系,且可逆、无尺度膨胀。

三、旋转矩阵对向量分布的适配

  • 效果:好的 使旋转后各段方差更均衡(各向同性),每段 k-means 的量化误差更均匀;同时可减弱段间相关,使「分段独立」假设更成立。
  • 求解:常用交替优化——固定 更新码本(k-means);固定码本更新 (闭式解或梯度,保持正交用 Procrustes 或 Cayley 参数化)。多次迭代至收敛。
  • 初始化 可取单位阵(即先做一次 PQ 再优化);或用 PCA 旋转(主成分对齐坐标轴),再微调。

四、工程要点

  • OPQ 比 PQ 多一步旋转与旋转矩阵存储();训练与编码时多一次 ,查询时对 query 同样旋转后再查表,精度通常明显优于裸 PQ。
  • 与 IVF 结合时:先 OPQ 量化,再在 IVF 粗筛后的桶内做 PQ 距离精排。

面试要点

  • 能说明 PQ 各向异性问题及 OPQ 用正交旋转 再做 PQ 的思路。
  • 能写出最小化重构误差、正交约束 ,以及交替优化码本与
  • 能说清旋转使各段方差均衡、减弱相关,以及 OPQ 相对 PQ 的精度与开销。

记忆要点

  • OPQ:正交旋转 后再 PQ,缓解各向异性、均衡各段方差。
  • 目标:最小化旋转后向量的 PQ 重构误差; 正交保持范数、可逆。
  • 交替优化 与码本;初始化可用单位阵或 PCA;精度优于 PQ、多存 与一次旋转。

返回模块 | 返回总览

12-向量检索/114.md

第 114 题:HNSW的图索引构建,邻居选择策略与连通性保证?

题目

HNSW的图索引构建,邻居选择策略与连通性保证?


完整讲解

一、HNSW 的图结构

HNSW(Hierarchical Navigable Small World)是多层图索引:底层(层 0)包含所有节点,上层是下层的稀疏子集,形成「塔」结构。每节点以概率 (如 )进入上一层,形成多层级。查询时从顶层入口出发,在当前层贪心走到局部最近邻,再下到底层继续贪心,得到近似最近邻。复杂度约 层数 × 每层步数。

二、图索引构建(插入)

  • 新节点插入:随机得到其最高层 (如几何分布);从顶层入口开始,在每层用贪心(当前层找最近邻、沿边走到更近)找到该层的「插入邻居」候选,再按邻居选择策略确定最终连边并插入,然后进入下一层重复,直到层 0。
  • 边数限制:每节点每层最多保留 条出边(如 ),以控制图密度与查询时每步的候选数。插入时候选邻居数往往大于 ,需,即邻居选择策略。

三、邻居选择策略

  • 简单策略:在候选集中选距离当前节点最近的 个。可能使图过于「局部团」、长程连接少,连通性导航性差。
  • HNSW 的启发式:在候选里选 个时,不仅看距离,还鼓励多样性(如选中的点彼此不要太近),使边更分散、图更「小世界」。具体可用贪心:依次选能最大程度增加当前邻居集覆盖的节点(如最小化与已选点的最小距离、或最大化到已选集的最小距离),在距离与多样性间折中。
  • 连通性保证:若严格只选最近 个,孤岛或弱连通可能出现。实践中通过(1)入口多、层间连接;(2)邻居选择时加入多样性/启发式;(3)构建时保证层 0 全连接或做连通分量检查,减少断连。HNSW 论文中的「neighbor selection」算法即为此设计,兼顾距离与图性质。

四、参数与工程

  • :每节点每层最大邻居数,大则图密、召回高、内存与计算增。
  • :构建时每层搜索的候选池大小,大则插入更准、图质量高、构建慢。
  • 查询时 :底层搜索的候选池大小,大则召回高、延迟大。

面试要点

  • 能说明 HNSW 的多层图、插入流程与每层边数限制
  • 能说清邻居选择不仅「最近 」、要兼顾多样性/小世界,以及连通性风险的应对。
  • 能列举 对构建质量、召回与延迟的影响。

记忆要点

  • HNSW:多层图、插入时每层选 个邻居;邻居选择要多样性、保证小世界与连通性。
  • 仅最近 易局部团、弱连通;启发式选多样邻居、多入口、层 0 检查可缓解。
  • 参数:(每层边数)、(构建候选池)、(查询候选池)。

返回模块 | 返回总览

12-向量检索/115.md

第 115 题:IVF的倒排索引,聚类中心数与查询精度的权衡?

题目

IVF的倒排索引,聚类中心数与查询精度的权衡?


完整讲解

一、IVF 倒排索引

IVF(Inverted File):先对底库向量做聚类(如 k-means),得到 个聚类中心;每个向量归属最近中心,形成 个桶(倒排列表)。查询时:算 query 到各中心的距离,选最近的 个桶(),只在这几个桶内做精确距离或二级量化(如 PQ)搜索,从而将搜索范围从全库 缩小到约

二、聚类中心数 的权衡

  • :桶多、每桶内向量少,粗筛后候选少,延迟低;但桶多则 query 要算到更多中心的距离(),且若 固定,探访的桶占总桶数比例小,漏桶风险大(真近邻可能落在未探访桶),召回率可能下降。另外聚类质量在中心数很大时可能变差(每桶样本少、中心不稳定)。
  • :桶少、每桶内向量多,探访少量桶就覆盖大量向量,召回易高;但每桶内搜索成本大(若桶内暴力或二次索引大),延迟内存可能上升。
  • 经验 常取 量级或 ;与 联合调: 大则即使 大也能探够桶、召回有保障,但延迟升。按 recall@K 与 latency 曲线在 上做 Pareto 选择。

三、查询精度与

  • :探访桶数。 大则覆盖桶多、召回高、延迟大(更多桶内搜索); 小则快但易漏。通常 ,实际取 1~几百不等,与 、数据分布相关。
  • 粗量化误差:IVF 的「最近中心」是近似,真近邻若在邻桶可能被漏;增大 或提高聚类质量(如多轮 k-means、更大 但探更多桶)可缓解。

四、与 PQ 的结合

常见 IVF-PQ:粗筛用 IVF( 桶),桶内用 PQ 量化向量、用非对称距离精排。此时 与 PQ 的 一起决定精度与速度; 主要控「桶内规模」, 控「探访多少桶」。


面试要点

  • 能说明 IVF 的聚类→桶、查询时选最近 个桶、只在桶内搜索。
  • 能分析 大:桶多、每桶少、延迟可能低但漏桶风险; 小:桶大、召回易高但桶内成本大。
  • 能说清 对召回与延迟的影响,以及与 PQ 结合的 IVF-PQ。

记忆要点

  • IVF:k-means 得 桶;查询选最近 桶、桶内搜索;范围从 缩到约
  • 大→桶多、桶内少,漏桶风险升; 小→桶大、桶内成本大。常取 量级。
  • 大→召回高、延迟大;与 联合调;IVF-PQ 中 控桶规模、PQ 控桶内精度。

返回模块 | 返回总览

12-向量检索/116.md

第 116 题:ScaNN的各向异性量化,非对称距离计算的精度提升?

题目

ScaNN的各向异性量化,非对称距离计算的精度提升?


完整讲解

一、量化与距离计算

向量量化后,对称距离:查表用「码字-码字」距离近似 ,查询与底库都量化,误差来自两端量化。非对称距离(AQD/ADC)查询不量化,只量化底库;距离用 或查表得到的「query 与码字」距离。非对称时只有底库一端有量化误差,通常比对称更准,但查询侧要算 query 到各码字的距离(或查预计算表),计算略增。

二、各向异性与 ScaNN

各向异性:向量在不同维度上方差或重要性差异大;直接 PQ 时某些子空间误差主导,整体距离失真。ScaNN(Scalable Nearest Neighbors)在量化与距离计算上做多项优化,其中各向异性量化指:对子空间或维度做不等权非均匀量化——方差大/重要的子空间给更多码字或更细量化,方差小的更粗,使总重构误差更均衡,从而提升距离精度

三、非对称距离的精度提升

  • 查询不量化:如上,非对称只量化底库,query 用原始向量与码字距离(或与量化重构距离),减少一端量化误差,recall 通常优于对称。
  • 残差/精细码本:对量化残差再做一层量化(多级量化),或对 query 与码字距离做更细的查表/插值,在存储与计算可接受下进一步提高精度。
  • ScaNN 中的使用:结合各向异性划分或加权、非对称 ADC、以及训练时优化码本以最小化查询-底库距离误差(而非仅重构误差),使检索阶段的排序更准。

四、工程要点

  • 非对称的代价:query 要与各段码字算距离或查表,若码本大则 query 侧计算增加;可通过 IVF 先粗筛再在桶内做非对称 PQ 控制范围。
  • 各向异性量化需在训练阶段估计各子空间方差或重要性,再分配 bit 或码本大小。

面试要点

  • 能区分对称距离(两端量化)与非对称距离(仅底库量化、query 不量化),并说明非对称更准。
  • 能说明各向异性量化:不同子空间/维度不等权或不等码本,使误差均衡、精度提升。
  • 能提及 ScaNN 中非对称 + 各向异性、以及训练目标针对检索距离的优化。

记忆要点

  • 非对称距离:只量化底库,query 不量化;只有一端误差,精度优于对称。
  • 各向异性量化:方差大/重要子空间更细量化,误差均衡,距离更准。
  • ScaNN:各向异性 + 非对称 ADC、训练优化检索距离;query 侧计算略增、可结合 IVF。

返回模块 | 返回总览

12-向量检索/117.md

第 117 题:向量索引的增量更新,动态图索引的合并策略?

题目

向量索引的增量更新,动态图索引的合并策略?


完整讲解

一、向量索引的增量更新需求

底库会持续增删:新 item 上线、下架、用户行为更新导致嵌入变化。若每次全量重建索引,耗时长、期间服务可能不可用或读旧索引。增量更新即在已有索引上只更新变化部分,尽量保持高召回与低延迟。

二、图索引(如 HNSW)的增量特性

  • 天然支持插入:HNSW 等图索引单点插入是标准操作:新向量找入口、逐层贪心找邻居、连边并限制每层 条。插入复杂度约 层 × 每层搜索,无需重算全图。
  • 删除:图索引通常不真正删节点(会破坏图连通与邻居指针),常见做法是逻辑删除:在结果中过滤掉已删 ID;或维护「删除位图」,检索后过滤。物理删除需重建局部或全量,成本高。
  • 更新:若向量内容变化,可视为「删旧 + 插新」;或保留节点、只更新节点上的向量与距离计算,取决于实现(多数实现仍推荐删+插)。

三、动态图索引的合并策略

  • 多图合并:维护多个子图(如按时间或批次建的小图),查询时并行在各子图搜索、合并结果再排序(多路归并 Top-K)。新增数据先写入增量小图,积累到一定量再将小图与主图合并:遍历主图与增量图,对增量图中的点做「插入主图」操作,或重建主图时把增量图节点一起加入。
  • 合并时机:定时(如每小时);或增量图大小/条数达阈值时触发合并。合并期间可双读(读旧主图 + 增量图)保证不丢新数据,合并完成后切换。
  • 层级/分层索引:底层为「热」数据、小图常合并;上层为冷数据、大图少合并,减少全量重建频率。

四、与 IVF 的对比

IVF 增量:新向量算最近中心、加入对应桶即可;桶内可排序或子索引。删除同样多逻辑删除。合并时若聚类中心重算,则需重分配所有向量(相当于重建);若不重算中心,只追加桶内,则聚类会逐渐偏移,可定期重训中心与重建。


面试要点

  • 能说明图索引(HNSW)天然支持单点插入;删除多逻辑删除或过滤;更新多为删+插。
  • 能说清多图合并:增量小图 + 主图、查询并归、定时或阈值触发合并、合并时插入或重建。
  • 能对比 IVF 的增量(追加桶)与图索引的增量(插入/逻辑删),以及合并策略的选择。

记忆要点

  • 图索引:插入=逐层找邻居连边;删除=逻辑删或结果过滤;更新=删+插。
  • 合并:多子图并行查、结果归并;增量图定期或按阈值合并入主图;合并期可双读。
  • IVF 增量=追加桶;删为逻辑删;重算中心则需重建,不重算则长期需重训。

返回模块 | 返回总览

12-向量检索/118.md

第 118 题:GPU上的批量检索,TensorRT-LLM的优化技巧?

题目

GPU上的批量检索,TensorRT-LLM的优化技巧?


完整讲解

一、GPU 上的批量检索

推荐与检索场景常需单请求多候选多请求并行。在 GPU 上做向量检索时,将多条 query 或同一 query 的多路候选组成 batch,利用 GPU 并行算距离(矩阵乘、L2/内积 kernel),可提高吞吐、摊薄显存与调度开销。批量检索的核心是:批量化距离计算 + 批量化 Top-K/堆,以及减少 CPU-GPU 传输与 kernel 启动次数。

二、TensorRT-LLM 的关联与可借鉴点

TensorRT-LLM 主要面向大语言模型推理,其优化思路可迁移到检索侧(尤其 RAG、向量检索与 LLM 同 pipeline 时):(1)算子融合:将多层/多步计算合并为少量 kernel,减少显存读写与 launch 开销;(2)连续内存与批处理:batch 内请求连续排布、统一 shape,便于矩阵运算与内存对齐;(3)动态 batch:请求队列积累到一定 batch 或超时后统一推理,提高 GPU 利用率;(4)KV cache / 状态复用:对检索而言可类比「向量/索引块常驻显存、只传 query batch」;(5)精度与量化:FP16/BF16 或 INT8 降低带宽与算量,检索同样可用半精度距离。

三、检索侧的批量优化技巧

  • 距离计算 一次算 batch query 与底库/候选向量内积;L2 距离展开为 ,预存 ,batch 上算 与范数即可。
  • Top-K:batch 内每行独立 Top-K,用 GPU 的 radix sort 或 heap kernel、或调用库(如 faiss GPU、cupy)的 batch 接口。
  • 索引在 GPU:IVF/PQ 码本或图结构放显存,减少 CPU-GPU 传输;大批量时考虑分块或流式避免 OOM。
  • 与 LLM 同卡:若检索与 LLM 在同一 pipeline(如 RAG),可共享 batch 调度、统一用 TensorRT-LLM 风格的最大 batch 与 padding,减少端到端延迟。

四、注意点

  • TensorRT-LLM 本身不实现向量检索;「TensorRT-LLM 的优化技巧」指其思想(融合、批处理、动态 batch、量化)在检索实现中的借鉴。
  • 实际 GPU 检索多依赖 Faiss-GPU、RAFT、Cagra 等;批量接口与 TensorRT 风格 batching 可结合使用。

面试要点

  • 能说明 GPU 批量检索:batch query/候选、矩阵化距离、batch Top-K,提高吞吐。
  • 能列举 TensorRT-LLM 可借鉴点:算子融合、连续 batch、动态 batch、量化、显存布局,并迁移到检索。
  • 能说清距离展开、预存范数、索引驻显存、与 LLM 同 pipeline 的 batch 统一等工程点。

记忆要点

  • GPU 批量检索:batch 距离(矩阵乘)、batch Top-K;索引可驻显存、减少传输。
  • TensorRT-LLM 思路:融合、连续/动态 batch、量化、显存复用;可迁移到检索 pipeline。
  • 距离用 ;实际多用 Faiss-GPU 等、结合 batch 接口。

返回模块 | 返回总览

12-向量检索/119.md

第 119 题:多模态向量融合,早期融合 vs 晚期融合的精度差异?

题目

多模态向量融合,早期融合 vs 晚期融合的精度差异?


完整讲解

一、多模态向量与融合

多模态检索中,同一实体有文本嵌入 、图像嵌入 等。检索时 query 可能为文本或图像,需与底库的多种模态对齐。融合指如何将多路向量合并成单一表示用于索引与距离计算,或如何在检索阶段联合多路相似度。

二、早期融合(Early Fusion)

  • 做法:在特征/向量层面先融合,再建索引与检索。例如 拼接后做一次投影 ,或 得到单向量,再用单向量建 ANN 索引、query 同样融合后查一次。
  • 优点:只建一个索引、一次检索;多模态信息在表示里已交互,理论上有更强表征。
  • 缺点:若模态缺失(如只有图无文)需补零或单独分支;融合方式(拼接/相加/门控)与投影需训练;索引对「融合后分布」敏感,某一模态主导时另一模态可能被压制,精度依赖融合质量与数据平衡。

三、晚期融合(Late Fusion)

  • 做法:各模态分别建索引、分别检索得到 Top-K 列表,再在分数层面融合(如加权和、RRF、或学习融合模型)得到最终排序。
  • 优点:各模态独立、可单独调参与扩展;缺模态时只查有数据的模态;实现简单、易做 A/B。
  • 缺点:要维护多套索引、多次检索,延迟与资源翻倍(量级上);早期无跨模态交互,仅靠分数融合,表达上限可能不如早期;若两路排序差异大,简单加权可能不稳定,需 RRF 或学习融合。

四、精度差异与选型

  • 精度:早期融合在「多模态对齐好、融合训练充分」时,单向量表达更丰富,上限可更高;晚期融合无表示层交互,但可针对每路做专门优化(如文本用 BERT、图像用 CLIP),两路都强时分数融合也能很好。实际谁更准取决于数据与训练。
  • 选型:强对齐、单向量检索为主、资源允许单大索引时倾向早期;多模态可缺、要灵活扩展、或延迟敏感时倾向晚期或混合(部分早期 + 部分晚期再融合)。

面试要点

  • 能区分早期融合(特征/向量先合并、单索引单次检索)与晚期融合(多路分别检索、分数融合)。
  • 能分析早期优点(单索引、表示可更强)与缺点(缺模态处理、融合质量敏感);晚期优点(灵活、可缺模态)与缺点(多索引、多次检索、无表示交互)。
  • 能说清精度谁高取决于数据与训练;选型看对齐程度、资源与延迟、是否缺模态。

记忆要点

  • 早期融合:向量先合并→单索引单次检索;晚期融合:多路分别检索→分数融合(加权/RRF)。
  • 早期:单索引、表示可更强,但缺模态与融合质量敏感;晚期:灵活、可缺模态,但多路检索、无表示交互。
  • 精度看数据与训练;选型看对齐、资源、缺模态情况。

返回模块 | 返回总览

12-向量检索/120.md

第 120 题:向量检索的过滤条件,标量属性与向量相似度的联合索引?

题目

向量检索的过滤条件,标量属性与向量相似度的联合索引?


完整讲解

一、过滤条件与业务需求

检索不仅按向量相似度排序,还常带标量过滤:类目=某值、价格区间、上架时间、地域等。需求是:在满足过滤条件的候选上做向量 Top-K,或先向量召回再过滤(可能导致不足 K 条)。联合索引即把标量属性与向量放在一起设计与查询,在保证过滤的前提下尽量减少扫描量、保持低延迟。

二、先过滤再向量检索

  • 做法:按标量建倒排/二级索引(如类目→doc list、价格→区间索引)。查询时先根据过滤条件取满足条件的 ID 集合,再只对这些 ID 对应的向量做 ANN 或精确 Top-K。这样向量检索只在「过滤后集合」上进行,精度与语义一致。
  • 难点:过滤后集合可能很大或很分散,无法直接利用「全库向量」建的 ANN 索引(索引是按全库建的)。需要标量与向量的联合结构:要么对「每个过滤桶」单独建小向量索引(类目 A 一个索引、类目 B 一个索引),要么用支持过滤的索引引擎,在检索时先过滤再在子集上搜。

三、标量属性与向量相似度的联合索引

  • 支持过滤的 ANN:部分引擎(如 Faiss 的 IDMap + 过滤、Milvus 的 scalar index + vector index)在检索时先按标量筛出候选分区或 doc list,再在该子集上做向量搜索。底层可以是 IVF:聚类时考虑标量(如按类目分桶再每桶内聚类),或向量索引不变、检索阶段对返回 ID 做标量过滤并重排/补采。
  • 复合索引:标量 B+树/倒排 + 向量索引。查询先走标量得 ID 集,再在向量索引中只对这批 ID 做近似搜索(需索引支持「指定 ID 集合」下的搜索,或先取 ID 集再取向量、做精确或小规模 ANN)。
  • 预分层:按主要过滤维度(如类目)分层建多个小 ANN 索引,查询时只开满足条件的类目对应索引,合并结果。适合过滤维度离散、取值不多的场景。

四、工程要点

  • 过滤过严时候选很少,向量检索几乎退化为精确算;过滤过松则候选多、ANN 范围大。需根据业务分布设计分层或分区,平衡「过滤粒度」与「每层索引大小」。
  • 延迟:标量过滤 + 子集向量检索的总延迟要控制;子集过大时可对子集再做 IVF 或图索引的「子索引」。

面试要点

  • 能说明业务需求:在满足标量过滤的候选上做向量 Top-K;先过滤再向量检索。
  • 能说清联合索引的几种方式:每过滤桶单独建向量索引、支持过滤的 ANN 引擎、标量索引+向量索引组合、按维度分层多索引。
  • 能提及过滤过严/过松的权衡、延迟与分区设计。

记忆要点

  • 联合索引:标量过滤 + 向量相似度;先满足过滤再在子集上做向量 Top-K。
  • 实现:每桶单独小索引、ANN 引擎支持过滤、标量索引+向量子集检索、按维度分层多索引。
  • 过滤过严候选少、过松候选多;需按业务设计分区与索引粒度。

返回模块 | 返回总览

12-向量检索/README.md

12-向量检索(第 111–120 题)

题号 主题 文章
111 近似最近邻(ANN)的LSH,局部敏感哈希族的构造? 111.md
112 乘积量化(PQ)的码本训练,k-means的聚类数量选择… 112.md
113 OPQ的正交优化,旋转矩阵对向量分布的适配? 113.md
114 HNSW的图索引构建,邻居选择策略与连通性保证? 114.md
115 IVF的倒排索引,聚类中心数与查询精度的权衡? 115.md
116 ScaNN的各向异性量化,非对称距离计算的精度提升? 116.md
117 向量索引的增量更新,动态图索引的合并策略? 117.md
118 GPU上的批量检索,TensorRT-LLM的优化技巧? 118.md
119 多模态向量融合,早期融合 vs 晚期融合的精度差异? 119.md
120 向量检索的过滤条件,标量属性与向量相似度的联合索引? 120.md

返回总览

13-特征工程/121.md

第 121 题:连续特征分桶,等频 vs 等宽 vs 基于树的自适应分桶?

题目

连续特征分桶,等频 vs 等宽 vs 基于树的自适应分桶?


完整讲解

一、连续特征分桶的目的

连续特征(价格、年龄、时长等)若直接进模型,线性项只能学线性关系、且易受尺度与异常值影响。分桶将连续值映射为离散 bin,再做嵌入或 one-hot,使模型能学非线性与分段模式,且对尺度与异常值更鲁棒。

二、等频(Quantile)分桶

  • 做法:按分位数划分,使每个桶内样本数大致相等。如 10 桶则取 10%, 20%, …, 90% 分位数为边界。
  • 优点:各桶样本量均衡,训练稳定;对长尾分布友好,尾部不会挤在一桶。
  • 缺点:边界依赖当前数据分布,分布漂移时边界需重算;相同数值间隔在不同区间可能落入不同桶数(如 [0,1] 与 [99,100] 桶宽差很多)。

三、等宽(Equal Width)分桶

  • 做法:按值域均匀划分,,桶边界为
  • 优点:实现简单、边界直观;对近似均匀分布友好。
  • 缺点:长尾时多数样本挤在少数桶、多数桶空,训练不均衡;对异常值敏感(一个极大值拉高 max、其他桶变宽)。

四、基于树的自适应分桶

  • 做法:用树模型(如 CART、GBDT)在目标变量(点击率、转化等)上对连续特征做分裂,分裂点即为桶边界。即按「对目标区分度」找切分点,而非按样本数或值域均匀。
  • 优点:边界与目标强相关、信息量高;自动适应分布与非线性;可结合特征重要性做筛选。
  • 缺点:依赖标签与树训练;分布或目标漂移时需重训树与边界;实现比等频/等宽复杂。
  • 工程:常用 GBDT 的分裂点或单变量 CART 的分裂点;可定期用近期数据重算边界。

五、选型建议

  • 无标签或快速上线:等频较稳;等宽仅当分布较均匀时用。
  • 有标签、追求效果:树分裂边界通常优于等频/等宽;可与等频结合(先等频粗分再树细分,或树边界用于在线、等频用于兜底)。

面试要点

  • 能说明等频(分位数)、等宽(值域均分)、树分裂(按目标找切分点)三种方式及各自优缺点。
  • 能说清等频样本均衡、等宽易受长尾影响、树边界与目标相关且自适应。
  • 能根据有无标签、分布与工程成本选型;能提及边界随分布漂移需更新。

记忆要点

  • 等频:按分位数、样本均衡;等宽:值域均分、简单但对长尾差;树:按目标分裂、自适应、依赖标签。
  • 等频稳、等宽慎用、有标签优先树边界;边界需随分布/目标更新。

返回模块 | 返回总览

13-特征工程/122.md

第 122 题:交叉特征的自动发现,GBDT特征重要性的阈值选择?

题目

交叉特征的自动发现,GBDT特征重要性的阈值选择?


完整讲解

一、交叉特征的自动发现

交叉特征(如 user_age × item_category)能刻画组合模式,但人工枚举成本高、易遗漏。自动发现即用数据与模型自动筛选「哪些单特征或组合对目标有用」,常用 GBDT:树每层分裂即一次特征(或阈值)选择,分裂带来的增益可视为该特征/该点的贡献,汇总为特征重要性(如 gain、split count、cover)。重要性高的特征可视为「自动发现」的强特征,进一步可构造交叉:取重要性 Top 的特征两两或高阶组合作为新特征,或直接用 GBDT 的叶子索引/路径作为交叉表示。

二、GBDT 特征重要性的计算

  • Gain:该特征在所有分裂上的信息增益之和;大则说明该特征分裂带来的损失下降多。
  • Split count:该特征被选为分裂点的次数;多则使用频繁。
  • Cover:该特征分裂所覆盖的样本量;可做归一化权重。

重要性可用于排序特征、做自动筛选:只保留重要性高于某阈值的特征或交叉项,或按重要性加权输入下游 DNN。

三、阈值选择

  • 固定分位:保留重要性 Top 10% 或 Top K 个,等价于按排名设阈值。
  • 按增益绝对值:设 gain 的阈值,如只保留 gain > 某分位数(如中位数)的特征;需在验证集或 OOB 上看「阈值-效果」曲线,避免过严(丢有用特征)或过松(噪声多)。
  • 与业务结合:强业务必选特征可白名单保留;其余按重要性阈值过滤。阈值可随数据周期重算(如每周用近期数据跑 GBDT 得新重要性、更新阈值)。
  • 交叉构造后的阈值:若用「重要性 Top 的两两组合」建交叉,可对交叉项再跑一次 GBDT 或线性模型,对交叉项重要性再设阈值,控制特征膨胀。

四、工程要点

  • 重要性依赖当前 GBDT 的树结构与数据;分布漂移时需重算。
  • 阈值过严导致欠拟合、过松导致过拟合与线上特征爆炸,建议用验证集/AUC 或线上 A/B 定阈值。

面试要点

  • 能说明用 GBDT 分裂与增益做特征重要性、用于自动发现重要特征与交叉思路。
  • 能说清重要性指标(gain、split count、cover)及阈值选择的几种方式(Top K、分位数、验证曲线)。
  • 能提及阈值过严/过松的影响、与业务白名单、周期性更新。

记忆要点

  • 交叉自动发现:GBDT 特征重要性(gain/split/cover)排序,取 Top 构造交叉或叶子/路径。
  • 阈值:Top K、按 gain 分位数、验证集曲线;过严丢特征、过松噪声多。
  • 重要性随数据与模型变,需周期性重算与阈值更新。

返回模块 | 返回总览

13-特征工程/123.md

第 123 题:ID特征的哈希冲突,特征哈希 vs 特征嵌入的内存权衡?

题目

ID特征的哈希冲突,特征哈希 vs 特征嵌入的内存权衡?


完整讲解

一、ID 特征与高基数

用户 ID、物品 ID、请求 ID 等高基数类别特征,若 one-hot 或纯嵌入表,参数量为「基数 × 嵌入维度」,内存与训练成本高,且长尾 ID 样本少、嵌入难学准。特征哈希特征嵌入是两种常用方案,各有内存与精度权衡。

二、特征哈希(Hashing)

  • 做法:将 ID 映射到固定大小的桶,,得到桶索引 ,再对桶做嵌入(共 个嵌入向量)。冲突:不同 ID 可能落入同一桶,共享同一嵌入,即哈希冲突
  • 优点:内存固定 ,与 ID 基数无关;可控制内存上限;实现简单、无需预知全量 ID。
  • 缺点:冲突导致不同 ID 共享表示,表达力下降、可能负向;冲突率约 量级(生日悖论下实际冲突比理论略高), 小则冲突多。

三、特征嵌入(Embedding Table)

  • 做法:为每个 ID 分配独立嵌入向量,即嵌入表大小 = 基数 × 。无冲突、表达力最强。
  • 优点:无冲突、每个 ID 可学独立表示;长尾 ID 可通过预训练或冷启动策略补足。
  • 缺点:内存 ,高基数时巨大;新 ID 需动态扩展或映射到「未登录」嵌入。

四、内存与冲突的权衡

  • 小内存、可接受一定冲突:用哈希、 取百万级或千万级,监控冲突率与指标;可多哈希(多个 )取不同桶做多嵌入再融合,缓解单桶冲突。
  • 追求精度、内存允许:用完整嵌入表;或「高频 ID 嵌入 + 长尾哈希」混合。
  • 经验 约为预估唯一 ID 数的 1~2 倍可压低冲突;若指标对冲突敏感,优先增大 或改用嵌入表+动态扩展。

面试要点

  • 能说明特征哈希:ID→桶索引→桶嵌入,内存 ;冲突即不同 ID 同桶共享嵌入。
  • 能对比嵌入表:无冲突、内存 ;哈希省内存但冲突损表达。
  • 能说清选型:内存紧用哈希并调 、多哈希;追求精度用嵌入或混合;可监控冲突率。

记忆要点

  • 特征哈希:固定 桶、内存可控;冲突=多 ID 同桶、表达力降。
  • 嵌入表:无冲突、表达力强;内存与基数成正比。
  • 权衡:小内存用哈希、调 或多哈希;大内存/高精度用嵌入或高频嵌入+长尾哈希。

返回模块 | 返回总览

13-特征工程/124.md

第 124 题:序列特征的统计聚合,均值/方差/分位数的压缩表示?

题目

序列特征的统计聚合,均值/方差/分位数的压缩表示?


完整讲解

一、序列特征与压缩需求

用户行为序列、历史统计等序列特征长度不定且可能很长,直接喂入模型会带来变长与高维问题。统计聚合将序列压缩为固定维度的统计量,既降维又保留分布信息,便于作为标量或低维向量输入排序/召回模型。

二、均值、方差、分位数

  • 均值 :刻画中心趋势;对异常值敏感。
  • 方差 或标准差:刻画离散程度;与均值一起可粗描分布。
  • 分位数(如 P25、P50、P75、P90):刻画分布形状与尾部,比均值更鲁棒;多取几个分位数即得到固定维向量(如 4 维),作为序列的压缩表示。

三者结合: 等,用少量标量近似「整段序列的分布」,实现压缩表示

三、工程实现与流式

  • 离线:对每条样本的序列(如过去 30 天点击次数序列)算均值、方差、分位数,写入特征表;分位数用排序或近似算法(如 TDigest、GK summary)在有限内存下算。
  • 在线/流式:用增量公式维护均值与方差: 用 Welford 等增量更新;分位数可用可并行的 sketch(如 TDigest)做增量更新,支持流式数据的压缩表示。
  • 多序列:若有多条序列(如按行为类型分),每条单独做统计聚合再拼接,得到多组「均值/方差/分位数」向量。

四、使用方式

  • 直接作为标量特征输入 DNN;或作为序列的「概要」与 ID 序列、注意力输出等一起融合。
  • 分位数维数不宜过多(3~5 个常用),在表达力与维度间折中。

面试要点

  • 能说明序列用均值、方差、分位数做统计聚合得到固定维压缩表示的目的与形式。
  • 能说清均值/方差/分位数各自含义及分位数对分布与尾部的刻画;流式下的增量与 sketch。
  • 能提及多序列分别聚合、维度选择与输入下游的方式。

记忆要点

  • 序列压缩:均值(中心)、方差(离散)、分位数(形状/尾部)→ 固定维向量。
  • 流式:均值/方差可增量;分位数用 TDigest 等 sketch 增量更新。
  • 多序列可分别聚合再拼接;维数 3~5 个分位数常用。

返回模块 | 返回总览

13-特征工程/125.md

第 125 题:实时特征的延迟容忍,Flink窗口的乱序处理策略?

题目

实时特征的延迟容忍,Flink窗口的乱序处理策略?


完整讲解

一、实时特征与延迟

实时特征依赖流式事件(点击、加购、曝光等),从事件发生到特征可被用于推理存在延迟(采集、传输、计算、写入特征库)。若严格「事件时间」对齐,乱序与迟到数据会导致窗口结果不确定或需等待很久。延迟容忍即在保证正确性的前提下,设定「最多等多长时间」的迟到数据,平衡实时性与完整性。

二、Flink 窗口与事件时间

  • 事件时间:以业务事件发生时间为准(如 click_time),需从消息中提取 event time 并可能设置水印(Watermark)处理时间:以处理到达时间为准,无乱序问题但语义与「事件发生」不一致。
  • 窗口:按事件时间划分的窗口(如 Tumble 5min)在乱序下会面临「窗口已关闭又来了属于该窗口的数据」的问题,需要延迟容忍策略决定何时关闭窗口、是否允许迟到数据触发修正。

三、乱序与迟到处理策略

  • Watermark:Watermark(t) 表示「事件时间 ≤ t 的数据应已到齐」。窗口的结束时间 + 允许延迟与当前 Watermark 比较:Watermark 超过「窗口结束 + allowedLateness」才真正关闭窗口,此前到达的、属于该窗口的迟到数据仍可进入该窗口并触发延迟输出(late output)或更新结果。
  • Allowed Lateness:设置窗口关闭前允许的最大迟到时间。例如窗口 [0,5min)、allowedLateness=1min,则到 Watermark 达到 6min 才关闭该窗口;在 5min~6min 内到达的、属于 [0,5min) 的数据仍会进入该窗口并触发输出(或侧输出)。
  • Side Output:将超过 allowedLateness 的极晚数据打到侧输出流,用于监控、补数或离线修正,而不阻塞主流水线。
  • 触发器(Trigger):可配置「窗口有数据即触发」「Watermark 超过结束时间触发」「迟到数据再触发」等,配合 allowedLateness 实现「先输出初步结果、迟到数据到达时再输出更新」的语义。

四、选型建议

  • 对实时性要求高、可接受部分不完整:缩短 allowedLateness 或用水印提前关闭,牺牲少量完整性。
  • 对准确性要求高:适当增大 allowedLateness,并用 Side Output 处理超晚数据;下游可做延迟修正或离线对账。

面试要点

  • 能说明事件时间与乱序导致「窗口已关又到迟到数据」的问题,以及延迟容忍的含义。
  • 能说清 Watermark、allowedLateness、窗口关闭时机,以及迟到数据进入窗口与延迟输出。
  • 能提及 Side Output 处理超晚数据、触发器与实时性/完整性权衡。

记忆要点

  • 事件时间 + 乱序→需延迟容忍;Watermark 表示「≤t 的数据到齐」、窗口结束+allowedLateness 后关闭。
  • allowedLateness:允许的最大迟到时间;此内到达的属于该窗口的数据仍进入并可触发输出。
  • 超晚数据→Side Output;触发器可配置多次触发;按实时性/完整性调 allowedLateness。

返回模块 | 返回总览

13-特征工程/126.md

第 126 题:特征缺失的填充策略,学习得到的缺失值嵌入?

题目

特征缺失的填充策略,学习得到的缺失值嵌入?


完整讲解

一、特征缺失的来源

样本中部分特征可能缺失:未采集、未登录用户、埋点丢失、或可选字段为空。模型需对缺失值有统一处理,否则无法前向或会引入 bias。常见策略有填充常量/统计量学习缺失嵌入

二、传统填充策略

  • 常量:用 0、-1、或专用「缺失」标记填充分类特征;连续特征用 0、均值、中位数等。简单但可能引入虚假模式(模型可能学到「0=缺失」而非真实语义)。
  • 统计量:用全局或分组的均值/众数填充;连续特征也可用回归预测缺失值(如用其他特征预测)。依赖其他特征质量与缺失机制(MCAR/MAR/MNAR)。
  • 单独 bin:将「缺失」视为一个单独类别,给一个独立 ID 或 one-hot 位,让模型显式学习「缺失」的效应。等价于「用常数填充 + 加缺失指示位」,但缺失指示位更通用。

三、学习得到的缺失值嵌入

  • 做法:对类别特征,若某样本该特征缺失,不填具体值,而是查一个可学习的「缺失」嵌入 ,与其它特征的嵌入一起输入模型。即「缺失」作为一个可学习向量,由梯度更新,使模型在缺失情况下仍能最小化损失。
  • 优点:不引入任意常数、缺失的表示由数据驱动;不同特征可有各自的缺失嵌入,或共享一个全局缺失嵌入;与嵌入表一致、实现简单(lookup 时缺失走 missing 分支)。
  • 扩展:连续特征缺失时,可学习一个「缺失标量」或「缺失向量」作为该维的输入;或该特征整维用可学习向量替代。多特征缺失时可共享或分特征 missing 嵌入。

四、工程要点

  • 缺失比例很高时,单独缺失嵌入或缺失指示位尤为重要,避免填充值主导梯度。
  • 线上推理时需明确缺失判定逻辑(null、空串、默认值等)与表结构中的缺失表示一致。

面试要点

  • 能说明传统填充(常量、统计量、单独 bin/缺失指示)与学习缺失嵌入的区别。
  • 能说清缺失嵌入:缺失时查可学习向量 ,由损失反传更新,不引入任意常数。
  • 能提及多特征可共享或分特征 missing 嵌入、连续特征的可学习缺失表示、以及线上一致性。

记忆要点

  • 传统:常量/均值/众数填充、或缺失单独成类;学习缺失嵌入=缺失时用可学习向量、梯度更新。
  • 缺失嵌入不引入任意常数、由数据驱动;可每特征一个或全局共享。
  • 缺失比例高时缺失表示很重要;线上缺失判定与训练一致。

返回模块 | 返回总览

13-特征工程/127.md

第 127 题:特征归一化的在线更新,流式数据的均值方差估计?

题目

特征归一化的在线更新,流式数据的均值方差估计?


完整讲解

一、特征归一化的作用

连续特征归一化(如 z-score 或 min-max)使各维尺度一致、加速收敛、避免大尺度特征主导梯度。离线训练时 可从全量或 batch 统计得到;流式/在线场景下数据持续到达,全量重算不现实,需要在线更新的均值与方差估计。

二、流式均值与方差的增量更新

  • 均值:递推公式

单遍、 更新,无需存历史。
- 方差:用 Welford 算法 增量维护二阶中心矩,避免两次遍历:

其中 为平方和偏差的累积,(或 为无偏方差)。
- 在线使用:每来一条样本或一个 batch,用上述公式更新全局 (或滑动窗口内的统计);推理时用当前估计的 做 z-score 归一化。需定期持久化 供 serving 使用。

三、衰减与窗口

  • 全历史:上述为全历史均值和方差,对分布漂移反应慢。指数移动平均(EMA),近期权重大,对漂移更敏感。
  • 滑动窗口:只保留最近 条更新 ;需存窗口或用近似(如 TDigest 算分位数、或 EMA 近似窗口均值和方差)。
  • 多任务/多场景:若不同场景分布不同,可维护多套 或按 key(如 user 分桶)维护,在线按 key 查表归一化。

四、工程注意

  • 冷启动: 很小时 不稳定,可设下限或先用全局默认 直到样本足够。
  • 与训练一致:线上推理用的 应与训练阶段估计方式一致(全量/EMA/窗口),避免 train-serving skew。

面试要点

  • 能写出流式均值的递推公式与 Welford 方差增量更新,并说明单遍、无需存全量数据。
  • 能说清全历史 vs EMA vs 滑动窗口的取舍;EMA 对漂移敏感、窗口需存或近似。
  • 能提及冷启动、多 key 统计、与训练阶段估计一致以避免 skew。

记忆要点

  • 流式均值:;方差:Welford 增量
  • 全历史稳但慢于漂移;EMA 敏感;滑动窗口需存或近似。
  • 冷启动设 下限;线上 与训练估计方式一致。

返回模块 | 返回总览

13-特征工程/128.md

第 128 题:高基数类别特征的降维,实体嵌入 vs 聚类哈希?

题目

高基数类别特征的降维,实体嵌入 vs 聚类哈希?


完整讲解

一、高基数类别特征的问题

用户 ID、物品 ID、店铺 ID 等高基数类别特征,若 one-hot 或大嵌入表,维度或参数量巨大,且长尾 ID 样本极少、嵌入难学。降维即在保留有用信息的前提下压缩表示,常用实体嵌入聚类哈希两类思路。

二、实体嵌入(Entity Embedding)

  • 做法:为每个实体(ID)学习一个 维嵌入向量,嵌入表大小 = 基数 × 。通过任务目标(点击率、转化等)端到端训练,嵌入自动学到与目标相关的表示;相似实体在空间中接近。
  • 降维:相对 one-hot(维度=基数),嵌入将每个实体压成 维( 基数),即语义降维。若仍需进一步压参数量,可对嵌入做二次降维:PCA、自编码器、或训练时用共享低维子空间(如矩阵分解式 ,实体用 的一行,)。
  • 优点:表达力强、可学习语义;冷启动可用属性或图传播补嵌入。
  • 缺点:参数量仍为 ;长尾实体嵌入稀疏更新、可能不准。

三、聚类哈希(Clustering / Hashing)

  • 做法:先将高基数 ID 聚类 个簇(如用行为共现、图结构、或嵌入空间 k-means),每个实体归属某簇;或用哈希将 ID 映射到 个桶。检索或特征使用时用簇 ID 或桶 ID(低基数 )代替原 ID,再做嵌入或 one-hot。即「ID → 簇/桶 → 嵌入」,参数量
  • 优点:参数量与基数解耦、可控;新 ID 可通过聚类/哈希规则映射到某簇或桶,冷启动自然。
  • 缺点:同一簇/桶内多实体共享表示,粒度变粗、有信息损失;聚类与哈希质量依赖设计。

四、选型与结合

  • 精度优先、资源允许:实体嵌入;必要时对嵌入再做 PCA/共享子空间降维。
  • 内存与冷启动优先:聚类或哈希降基数再嵌入;可「高频实体单独嵌入 + 长尾走聚类/哈希」混合。
  • 实体嵌入 + 聚类:先学嵌入,再在嵌入空间做 k-means 得到簇,用「簇嵌入 + 簇内残差」或仅簇嵌入,兼顾表达与参数。

面试要点

  • 能说明高基数问题及实体嵌入(每 ID 一向量、任务驱动学习)的降维与二次降维方式。
  • 能说清聚类哈希:ID→簇/桶→低维 ID→嵌入,参数量可控、粒度变粗;可与冷启动结合。
  • 能对比二者并给出混合策略(高频嵌入+长尾聚类/哈希)。

记忆要点

  • 实体嵌入:每实体 维、任务学习;相对 one-hot 为语义降维;可再 PCA/子空间压参数量。
  • 聚类哈希:ID→簇或桶→低基数→嵌入;参数可控、粒度粗、冷启动友好。
  • 混合:高频嵌入+长尾聚类/哈希;或嵌入空间聚类后簇嵌入+残差。

返回模块 | 返回总览

13-特征工程/129.md

第 129 题:文本特征的提取,BERT嵌入 vs TF-IDF的适用场景?

题目

文本特征的提取,BERT嵌入 vs TF-IDF的适用场景?


完整讲解

一、文本特征在推荐中的角色

标题、描述、评论、搜索词等文本需转为数值特征供排序/召回使用。常见有两类:TF-IDF(或 BM25)的稀疏向量表示,与 BERT 等预训练模型的稠密嵌入。二者适用场景不同。

二、TF-IDF 的适用场景

  • 做法:词频 TF × 逆文档频率 IDF,得到词权重;文档表示为稀疏向量(词袋或 n-gram),可用于检索(与 query 做内积/余弦)、或作为特征输入模型。
  • 优点:无需训练、可解释、对关键词与精确匹配敏感;检索场景下与倒排结合好、可做 BM25 排序;资源占用小。
  • 缺点:稀疏高维、无语义(同义不同词不匹配);长文本向量维度过大;不适合直接做复杂语义相似或深度模型的主输入(需配合降维或仅作一路特征)。
  • 适用:关键词检索、冷启动(无行为时用文本匹配)、可解释性要求高、资源受限;或作为多路特征中的一路与 BERT 融合。

三、BERT 嵌入的适用场景

  • 做法:用 BERT(或 Sentence-BERT、SimCSE 等)对句子/段落编码得到稠密向量(如 768 维),用于相似度计算、检索、或拼入排序模型。
  • 优点语义强、同义与 paraphrasing 可对齐;稠密低维、便于与其它嵌入联合建模;预训练后可微调适配领域。
  • 缺点:计算与显存开销大;需 GPU/优化才能满足线上延迟;长文本需截断或分块。
  • 适用:语义召回、语义相似度排序、多模态对齐(与图像 CLIP 等);有足够算力与延迟预算时作为主文本表示。

四、选型与融合

  • 检索主链路、要语义:BERT 嵌入 + 向量索引;或 BERT 粗排 + 精排。
  • 关键词与可解释、或冷启动:TF-IDF/BM25 一路,与 BERT 分数或特征融合。
  • 资源紧:TF-IDF 或轻量 sentence 模型(如蒸馏后的 BERT);或离线算 BERT 嵌入建索引、线上只做检索。

面试要点

  • 能说明 TF-IDF 与 BERT 嵌入各自形式(稀疏词权 vs 稠密向量)及优缺点。
  • 能说清 TF-IDF 适合检索/关键词/冷启动/可解释、BERT 适合语义/相似度/排序主输入。
  • 能根据算力、延迟、业务需求选型或融合(双路检索、特征拼接等)。

记忆要点

  • TF-IDF:稀疏、无训练、关键词敏感;适合检索、冷启动、可解释、资源紧。
  • BERT 嵌入:稠密、语义强;适合语义召回与排序、有算力时;开销大、长文本需截断。
  • 融合:双路检索或特征拼接;按算力与需求选主路与辅助路。

返回模块 | 返回总览

13-特征工程/130.md

第 130 题:图像特征的迁移学习,CLIP嵌入的微调策略?

题目

图像特征的迁移学习,CLIP嵌入的微调策略?


完整讲解

一、图像特征与迁移学习

推荐中的图像特征(商品图、封面等)常用预训练视觉模型提取,再在推荐任务上微调或冻结使用,即迁移学习CLIP(Contrastive Language-Image Pre-training)在图文对上做对比学习,得到统一的图像与文本嵌入空间,图像编码器可直接产出语义对齐的向量,适合跨模态检索与多模态推荐。

二、CLIP 嵌入的使用方式

  • 冻结:直接使用官方或开源 CLIP 的图像编码器,对图像前向得到向量,作为特征输入推荐模型。优点:零训练、稳定;缺点:与推荐目标(点击、转化)未必对齐,领域差异大时效果有限。
  • 微调:在推荐数据上对 CLIP 的图像编码器(或连同文本塔)做有监督或对比微调,使图像向量与点击/转化等信号对齐。可只微调顶层、或全量微调;需注意过拟合与数据量。
  • 双塔:图像塔(CLIP 或微调 CLIP)与行为/ID 塔分别编码,用内积或 DNN 做匹配;微调时用点击/转化对做对比或 pointwise 损失。

三、微调策略

  • 层级:先冻结 backbone、只训顶层(如投影层或分类头);再解冻部分层或全量微调;学习率通常 backbone 小、顶层大。
  • 目标:与推荐主任务一致(CTR、CVR);或先做图文/图-行为对比再接任务头。负样本用 in-batch 或采样负例。
  • 数据:用业务曝光/点击/转化数据;图像量不足时可结合公开图文数据做两阶段(先通用再领域)。
  • 正则:微调时加 L2、或约束与预训练向量不要偏离太远(knowledge distillation),避免遗忘通用语义。

四、工程要点

  • CLIP 推理成本较高,线上可离线算好图像嵌入建索引、线上只查向量;或用小模型蒸馏 CLIP 做线上编码。
  • 与文本、ID 等多模态融合时,CLIP 嵌入可与其他嵌入拼接或做早期/晚期融合(见向量检索题)。

面试要点

  • 能说明 CLIP 图像嵌入在推荐中的迁移方式:冻结 vs 微调,以及微调的目的(与点击/转化对齐)。
  • 能说清微调策略:层级解冻、学习率、目标(CTR/CVR 或对比)、数据与正则。
  • 能提及离线预计算嵌入、蒸馏以降低线上成本,以及与多模态融合。

记忆要点

  • CLIP 嵌入:冻结=零训练稳定;微调=与推荐目标对齐,可只训顶层或全量。
  • 微调:层级解冻、backbone 小 lr、目标与主任务一致、负样本与正则。
  • 线上可离线算嵌入或蒸馏;与文本/ID 多模态融合。

返回模块 | 返回总览

13-特征工程/README.md

13-特征工程(第 121–130 题)

题号 主题 文章
121 连续特征分桶,等频 vs 等宽 vs 基于树的自适应分桶… 121.md
122 交叉特征的自动发现,GBDT特征重要性的阈值选择? 122.md
123 ID特征的哈希冲突,特征哈希 vs 特征嵌入的内存权衡? 123.md
124 序列特征的统计聚合,均值/方差/分位数的压缩表示? 124.md
125 实时特征的延迟容忍,Flink窗口的乱序处理策略? 125.md
126 特征缺失的填充策略,学习得到的缺失值嵌入? 126.md
127 特征归一化的在线更新,流式数据的均值方差估计? 127.md
128 高基数类别特征的降维,实体嵌入 vs 聚类哈希? 128.md
129 文本特征的提取,BERT嵌入 vs TF-IDF的适用场… 129.md
130 图像特征的迁移学习,CLIP嵌入的微调策略? 130.md

返回总览

14-深度排序模型/131.md

第 131 题:Wide&Deep的工程实践,Wide侧特征的手工设计原则?

题目

Wide&Deep的工程实践,Wide侧特征的手工设计原则?


完整讲解

一、Wide&Deep 的结构

Wide 侧:线性模型 ,输入为手工设计的原始特征与交叉特征,负责记忆(memorization)、拟合历史共现与规则。Deep 侧:嵌入 + 多层 MLP,负责泛化(generalization)、学习稠密表示的组合。输出为

两路联合训练、联合 serving。

二、Wide 侧特征的手工设计原则

  • 原始特征:单特征(user_id、item_id、年龄、类目等)经嵌入或 one-hot 输入 Wide;Wide 侧通常用离散化/分桶后的 ID 与类别,便于线性拟合。
  • 交叉特征关键交叉必须显式放进 Wide,否则线性部分学不到。典型:user 与 item 的交叉(user_id × item_id、user_group × item_category)、上下文与 item 的交叉(position × item_id、device × category)。原则:业务上「共现即强信号」的组合应作为 Wide 的输入,使模型能直接记住「A 与 B 同时出现时点击高」。
  • 稀疏与可解释:Wide 侧特征多稀疏、可解释;避免把高维稠密向量直接塞进 Wide(参数量爆炸),用离散交叉与 ID 即可。
  • 避免 Deep 重复:若某交叉已在 Deep 的嵌入与 MLP 中可表达,Wide 可不必重复;Wide 重点放「规则性强、需记忆」的少量核心交叉。

三、工程实践

  • 特征工程与交叉枚举需与业务强结合;常用 GBDT 或经验确定重要交叉后加入 Wide。
  • Wide 参数量 = 特征维度(若 one-hot 则等于总 bucket 数);需哈希或限制 bucket 数以控规模。
  • 联合训练时 Wide 与 Deep 的 loss 一致(如 CTR 交叉熵),无需分阶段;可对 Wide 加 L1 做稀疏。

面试要点

  • 能说明 Wide 侧为线性、输入为手工原始+交叉特征,负责记忆;Deep 负责泛化。
  • 能说清 Wide 特征设计原则:关键交叉显式加入、业务强共现信号、稀疏可解释、避免与 Deep 完全重复。
  • 能列举典型 Wide 交叉:user×item、position×item、device×category 等,以及参数量与哈希控制。

记忆要点

  • Wide=线性+手工特征与交叉,记忆;Deep=嵌入+MLP,泛化;输出两路相加再 sigmoid。
  • Wide 设计:关键交叉显式、共现即强信号、稀疏可解释、控参数量(哈希/bucket)。
  • 典型交叉:user×item、position×item、上下文×item;联合训练、可 Wide 加 L1。

返回模块 | 返回总览

14-深度排序模型/132.md

第 132 题:DeepFM的FM组件,隐向量维度的经验选择?

题目

DeepFM的FM组件,隐向量维度的经验选择?


完整讲解

一、DeepFM 的 FM 组件

FM(Factorization Machines) 部分建模二阶特征交互:对特征向量 (多由 one-hot 或嵌入展平),FM 输出

其中 为特征 隐向量 为二阶交互强度;隐向量维度。DeepFM 中 FM 与 DNN 共享嵌入,FM 用嵌入做二阶、DNN 用同一嵌入再经 MLP,无单独 Wide 的手工交叉。

二、隐向量维度 的作用

  • :交互矩阵 表达力强,可区分更多交互模式;但参数量为 为特征数),易过拟合、计算也略增。
  • :参数少、泛化好,但二阶容量不足,复杂交叉学不好。
  • 经验范围:推荐场景常用 ;早期 DeepFM 论文与工业实践多用 16、32、64。具体可做小网格搜索(如 16/32/64)在验证集上比 AUC;或与 embedding 维度一致(若 FM 与 Deep 共享嵌入,则 常等于 embedding dim)。

三、与其他超参的关系

  • 特征数多、样本量大时可适当增大 ;稀疏高维时 不宜过大,避免过拟合。
  • 与 DNN 的配合:FM 负责低阶、DNN 负责高阶; 主要影响二阶部分,DNN 的层宽与深度单独调。

四、工程建议

  • 默认可从 或 64 起试;按 AUC 与线上 AB 微调;与 embedding 维度统一可减少配置项。

面试要点

  • 能写出 FM 的二阶项 及隐向量 维的含义。
  • 能说清 大表达力强、参数多; 小泛化好、容量小;经验 8~128、常用 16/32/64。
  • 能提及与 embedding 维度统一、网格搜索或验证集调参。

记忆要点

  • FM 二阶: 为隐向量维; 大容量大、 小泛化好。
  • 经验 ,常用 16/32/64;可与 embedding 维一致。
  • 特征多样本多可略增 ;稀疏高维慎用大

返回模块 | 返回总览

14-深度排序模型/133.md

第 133 题:NFM的Bi-Interaction Pooling,特征交互的显式建模?

题目

NFM的Bi-Interaction Pooling,特征交互的显式建模?


完整讲解

一、NFM 与 Bi-Interaction Layer

NFM(Neural Factorization Machine) 在 FM 基础上加隐层,将二阶交互的向量表示再经 MLP 得到高阶非线性。核心是 Bi-Interaction Pooling:对嵌入矩阵 (每行一特征嵌入),先做逐元素二阶交互再池化,得到固定维向量,再送 MLP。

二、Bi-Interaction Pooling 的形式

设特征嵌入为 (非零特征对应的嵌入),Bi-Interaction 定义为

其中 为逐元素乘, 为逐元素平方。即先对「嵌入的和」平方、再减去「嵌入平方的和」,得到与 FM 二阶等价的向量(而非 FM 的标量),该向量维度与单嵌入相同,显式编码了所有二阶交互的向量表示。

三、显式建模与 FM 的区别

  • FM:二阶输出为标量 ,无逐维的交互向量。
  • NFM Bi-Interaction:输出为向量 ,再经 MLP 得到高阶与非线性,即显式把二阶交互做成向量表示、再由 DNN 学习高阶组合。这样二阶信息不被压成单标量,表达力更强。

四、复杂度与实现

  • 计算可用「和平方减平方和」公式,一次前向 为非零特征数、 为嵌入维),与 FM 同量级;实现时注意数值稳定。
  • 与 DeepFM 对比:DeepFM 的 FM 部分只出标量;NFM 用 Bi-Interaction 出向量再 MLP,二阶与高阶衔接更显式。

面试要点

  • 能写出 Bi-Interaction Pooling 的公式(和平方减平方和)及输出为向量的含义。
  • 能说明与 FM 的区别:FM 二阶为标量、NFM 二阶为向量再进 MLP,显式建模二阶再高阶。
  • 能说清复杂度 及与 DeepFM 的对比。

记忆要点

  • Bi-Interaction: 得到二阶交互的向量表示。
  • FM 二阶=标量;NFM 二阶=向量→MLP,显式二阶再高阶;复杂度

返回模块 | 返回总览

14-深度排序模型/134.md

第 134 题:AFM的注意力因子分解,交互权重的可解释性?

题目

AFM的注意力因子分解,交互权重的可解释性?


完整讲解

一、AFM 与注意力因子分解

AFM(Attentional Factorization Machine) 在 FM 的二阶项上引入注意力:不同特征对 对目标的重要性不同,用可学习的注意力权重 对二阶项加权,再求和,即注意力因子分解

二、注意力权重的形式

设嵌入 ,二阶交互向量为 (逐元素乘)。注意力分数为

即对每对 的交互向量经 MLP 得标量、再 softmax 归一化。AFM 输出为

或先加权求和交互向量再与 内积。 大表示该特征对更重要。

三、交互权重的可解释性

  • 可解释:学到的 可解释为「特征 的交互对预测的贡献权重」。上线后可对样本或群体统计哪些 高,用于特征重要性分析与业务解释。
  • 与 FM 对比:FM 中所有二阶项等权(或仅靠 隐式区分);AFM 显式学权重,重要交互被放大、噪声交互被抑制,且权重可导出做分析。
  • 代价:参数量与计算增加(每对 要算 attention);通常需限制为「同场不交互」或采样部分对以控制复杂度。

四、工程要点

  • 全量 对在特征多时不可行;可只对不同 field 间的对做 attention(场间二阶),或先 FM 式求和再在池化向量上做一层 attention,在可解释性与效率间折中。

面试要点

  • 能写出 AFM 的注意力加权二阶项及 的计算(交互向量→MLP→softmax)。
  • 能说明可解释性: 表示特征对 的贡献权重,可统计用于分析。
  • 能说清与 FM 的对比及复杂度控制(场间、采样等)。

记忆要点

  • AFM:二阶项加注意力 由交互向量经 MLP+softmax 得到。
  • 可解释: 即交互权重,可统计重要特征对;与 FM 比显式加权。
  • 复杂度 ,可用场间二阶或采样控制。

返回模块 | 返回总览

14-深度排序模型/135.md

第 135 题:Deep&Cross的交叉网络,高阶特征交互的显式控制?

题目

Deep&Cross的交叉网络,高阶特征交互的显式控制?


完整讲解

一、Deep&Cross 的交叉网络(Cross Network)

Deep & Cross Network(DCN) 包含 Cross 层Deep 层Cross 层 显式构造高阶特征交互,每层形式为

其中 为初始嵌入拼接, 为第 层输出, 为参数。 即「初始特征与当前特征的交叉」再投影,阶数随层数增加 层对应 阶交叉(与 的多次相乘)。

二、高阶交互的显式控制

  • 阶数可控:交叉网络的深度 直接对应最高交叉阶数(约 阶)。要多少阶就堆多少层,显式控制,不像纯 DNN 那样阶数隐式且难解释。
  • 参数效率:每层只增加 参数(),总参数量 ,比显式展开所有高阶项(指数级)省很多。
  • 与 Deep 并行:Cross 负责显式高阶、Deep 负责隐式非线性,最后拼接再输出,兼顾可解释性与容量。

三、与 FM / DNN 的对比

  • FM:只显式二阶;DNN:高阶隐式、阶数不可控。Cross 显式且可控地做高阶(3 阶、4 阶…),适合需要「可解释高阶交叉」的场景。
  • 实际层数 通常不大(如 2~6),过深可能过拟合与不稳定;可与 Deep 的层数一起调。

四、工程要点

  • 实现时 为标量,故 为向量,计算高效。
  • 输入 需为定长嵌入拼接;与 Deep 共享嵌入或分别嵌入再拼接均可。

面试要点

  • 能写出 Cross 层更新公式 并说明阶数随层数增加。
  • 能说清高阶显式可控、参数量 、与 Deep 并行的作用。
  • 能与 FM(仅二阶)、纯 DNN(隐式高阶)对比;能提及层数不宜过深。

记忆要点

  • Cross 层: 层≈ 阶交叉,显式可控。
  • 参数 ;与 Deep 并行,Cross=显式高阶、Deep=隐式非线性。
  • 层数通常 2~6;过深易过拟合。

返回模块 | 返回总览

14-深度排序模型/136.md

第 136 题:xDeepFM的CIN复杂度,特征维度与网络深度的权衡?

题目

xDeepFM的CIN复杂度,特征维度与网络深度的权衡?


完整讲解

一、xDeepFM 与 CIN

xDeepFM 在 Wide(线性)、DNN 之外增加 CIN(Compressed Interaction Network),用向量级的显式交叉逐层构造高阶特征。CIN 的每一层:对「当前层矩阵」与「初始嵌入矩阵」做外积得到三维张量,再沿某一维压缩成二维矩阵,作为下一层输入;层数对应交叉阶数,且阶数显式可控

二、CIN 的复杂度

  • 设 field 数 、嵌入维 ,CIN 第 层:上一层输出 外积(沿 field 维),得到 的中间张量,再经压缩(如多个 filter)得到 。参数量与 相关;层数 增加 累积、计算与显存随深度快速增长
  • 特征维度 大、 大则每层张量大,计算与内存都增加;需在表达力与资源间权衡。
  • 网络深度:CIN 深则高阶显式、但复杂度与过拟合风险上升;工业上 CIN 常取 2~4 层,与 DNN 并行后总深度不会过深。

三、特征维度与深度的权衡

  • 维度:嵌入维 、CIN 的 大则表达力强、计算与参数多;可先固定较小 ,按效果再增。
  • 深度:CIN 层数多则高阶交叉多,但复杂度近似逐层乘上 ,深度是主要成本来源之一;通常 2~4 层 CIN + 几层 DNN 即可,再深收益递减且易过拟合。
  • 与 DNN 分工:CIN 负责显式向量级交叉、DNN 负责隐式高阶;CIN 不必过深,剩余交给 DNN。

四、工程建议

  • 先小规模(、CIN 2 层、 较小)跑通与 baseline 对比,再按资源与 AUC 调大维度与深度;可监控 CIN 每层输出范数避免爆炸。

面试要点

  • 能说明 CIN 的向量级显式交叉、层数与阶数对应,以及外积与压缩的步骤。
  • 能分析复杂度:与 相关,深度与维度增大均导致计算与显存上升。
  • 能说清深度与维度的权衡:通常 CIN 2~4 层、 按资源调;与 DNN 分工。

记忆要点

  • CIN:向量级显式交叉、层数=阶数;外积+压缩,复杂度随 增。
  • 深度与维度权衡:CIN 常 2~4 层; 大则表达强、成本高。
  • 与 DNN 并行,CIN 不必过深;先小规模再按资源与效果调参。

返回模块 | 返回总览

14-深度排序模型/137.md

第 137 题:AutoFeature的自动特征选择,强化学习 vs 可微架构搜索?

题目

AutoFeature的自动特征选择,强化学习 vs 可微架构搜索?


完整讲解

一、自动特征选择的需求

特征众多时,人工筛选耗时且易遗漏;自动特征选择希望用算法从候选特征集中选出对目标最有利的子集或权重,提升效果与可维护性。常见方法有强化学习(RL)可微架构搜索(DARTS 类)

二、强化学习方式

  • 思路:将「选哪些特征」视为动作,状态为当前特征子集或模型状态,奖励为验证集指标(AUC、logloss)。用 RL 智能体(如 DQN、Policy Gradient)学习策略:每步决定加入/去掉某特征,多步后得到特征子集;或学习每个特征的连续权重(软选择)。
  • 优点:可处理离散选择、与下游模型联合优化;可探索大搜索空间。
  • 缺点:搜索慢、奖励稀疏、训练不稳定;需大量 trial,工程成本高。

三、可微架构搜索(Differentiable)

  • 思路:为每个特征引入可学习门控(如 Gumbel-Softmax、连续松弛),或对特征加可学习的标量权重,与主模型一起端到端梯度下降。优化后根据权重或门控值做剪枝(去掉权重接近 0 的特征)。即把「选特征」变成可微参数,用 SGD 一次训练得到选择结果。
  • 优点:单次训练、无需反复试特征子集;与主任务一致优化、实现相对简单。
  • 缺点:松弛后的离散性可能偏差(如 Gumbel 温度退火);大规模特征时参数量与计算仍不小。

四、对比与选型

  • RL:适合离散、组合爆炸大的空间,可结合 NAS;代价为搜索成本与稳定性。
  • 可微:适合连续软选择或门控、与主模型同训;工业上更易落地,如对特征加 L1/门控再剪枝、或简单可微权重。
  • 折中:先用可微/GBDT 重要性粗筛,再用 RL 或贪心在小候选集上细选;或只用可微权重 + 阈值做自动选择。

面试要点

  • 能说明自动特征选择的目标,以及 RL 方式(动作=选特征、奖励=指标)与可微方式(门控/权重+梯度)的区别。
  • 能说清 RL 的灵活与高成本、可微的端到端与易落地;能提及 Gumbel 松弛、L1/门控剪枝。
  • 能给出选型建议:大规模离散选 RL 或两阶段;快速落地用可微权重或重要性+阈值。

记忆要点

  • RL:动作=特征选择、奖励=验证指标;灵活但慢、不稳定。
  • 可微:门控/权重可学习、端到端训练、按权重剪枝;易落地。
  • 选型:大空间/离散可 RL;快速落地用可微或 GBDT 重要性+阈值。

返回模块 | 返回总览

14-深度排序模型/138.md

第 138 题:FwFM的场感知权重,二阶交互的场间差异建模?

题目

FwFM的场感知权重,二阶交互的场间差异建模?


完整讲解

一、FM 与场(Field)

Field 指特征所属的语义组(如 user_id、item_id、category、position 各为一 field)。标准 FM 的二阶项 不区分 来自哪两个 field,所有特征对共用同一套隐向量空间。实际上不同 field 对之间的交互强度与模式可能不同(如 user×item 与 position×category 应有不同权重),场感知即对「场对」建模差异。

二、FwFM 的场感知权重

FwFM(Field-weighted FM) 为每对 field 引入标量权重 ,二阶项写为

即先算 FM 的 ,再乘上场对权重 。不同 field 对(user-item、item-category、position-item 等)有不同的 ,可学到「哪类场间交互更重要」,实现场间差异建模

三、参数量与实现

  • 若有 个 field,场对数为 ,即 个标量,通常 不大(十到几十),参数量可接受。
  • 与 FM 对比:FM 仅靠 隐式区分;FwFM 显式给场对加权,可解释(可看哪对 field 权重大)、且对「场间重要性」建模更直接。
  • 与 FFM(Field-aware FM)区别:FFM 是每个特征在不同 field 下有不同隐向量),参数量 ;FwFM 仍是每特征一个 ,只加场对标量 ,更省参数、实现更简单。

四、工程要点

  • 实现时按 field 对索引 ,前向时根据 的 field 取对应 乘到 FM 二阶项上即可。
  • 可与 Deep 结合为 FwFM + DNN,共享嵌入; 可加 L2 或稀疏约束避免过拟合。

面试要点

  • 能写出 FwFM 的二阶形式 及场对权重的含义。
  • 能说明与 FM 的对比(FM 不区分场对、FwFM 显式场对权重);与 FFM 的对比(FFM 多套隐向量、FwFM 只加标量)。
  • 能说清参数量 、可解释性与实现要点。

记忆要点

  • FwFM:二阶项乘场对权重 ,场间差异显式建模;参数量
  • FM 不区分场对;FFM 每特征多套隐向量;FwFM 单隐向量+场对标量,更省参。
  • 可解释:看哪对 field 权重大;可与 DNN 结合。

返回模块 | 返回总览

14-深度排序模型/139.md

第 139 题:LorentzFM的双曲嵌入,层次化特征的曲率空间映射?

题目

LorentzFM的双曲嵌入,层次化特征的曲率空间映射?


完整讲解

一、层次化特征与欧氏空间的局限

类目、地域等层次化特征(树状:一级类目→二级→三级)具有层次与包含关系。在欧氏空间用扁平嵌入表示时,难以自然表达「父节点包含子节点」「层级深度」等结构;且层次多时扁平嵌入维数高、冗余大。双曲空间(如庞加莱球、洛伦兹模型)具有负曲率,可在低维下容纳树状结构且距离与层次一致(父近子、同层可区分),适合层次化表示。

二、Lorentz 模型与双曲嵌入

Lorentz 模型(双曲空间的一种实现)将向量放在 Minkowski 空间,满足 ,即落在双曲面上。距离用双曲距离(与 Minkowski 内积相关),满足:层次中父与子距离近、同层节点可通过距离区分。曲率由空间参数控制:曲率越负,同样维数下可容纳的层次越深、等效「容量」越大。

三、LorentzFM 的曲率空间映射

LorentzFM 将 FM 的嵌入从欧氏改为 Lorentz 双曲嵌入:每个特征对应 Lorentz 空间中的点,二阶交互用双曲距离或双曲内积形式建模。层次化特征(如类目 ID)映射到双曲空间后,父子、兄弟关系可由距离与曲率自然表达;曲率可作为超参或可学习参数,控制空间的「弯曲程度」,适配不同深度与宽度的层次。训练时用双曲距离的损失(如 BPR、交叉熵),梯度在 Lorentz 空间上更新(需指数映射、对数映射保持点在流形上)。

四、工程与适用

  • 实现需流形优化(指数/对数映射、在切空间更新再映回);曲率初值可设较小(如 -1),再按验证集调。
  • 适用:强层次结构(类目树、地域树、组织架构);扁平 ID 用双曲收益可能有限。

面试要点

  • 能说明层次化特征与欧氏空间的局限;双曲空间负曲率、低维容纳树结构的优势。
  • 能说清 Lorentz 模型(Minkowski 约束、双曲距离)及曲率对「容量」与层次深度的作用。
  • 能说明 LorentzFM 将 FM 嵌入改为双曲、层次特征映射到曲率空间;训练用流形优化。

记忆要点

  • 双曲空间:负曲率、低维可表树结构;Lorentz 为一种实现(Minkowski 约束)。
  • LorentzFM:FM 嵌入在 Lorentz 空间、二阶用双曲距离/内积;曲率可学习或调参。
  • 适合层次化特征(类目、地域);训练需指数/对数映射与流形优化。

返回模块 | 返回总览

14-深度排序模型/140.md

第 140 题:FinalMLP的并行MLP结构,显式交互与隐式表示的融合?

题目

FinalMLP的并行MLP结构,显式交互与隐式表示的融合?


完整讲解

一、FinalMLP 的并行 MLP 结构

FinalMLP 采用双路 MLP 并行:一路为显式交互(如 FM/Cross 式的二阶或可控高阶),一路为隐式表示(纯 DNN:嵌入→MLP)。两路输出(或中间表示)融合(拼接/相加后再 MLP,或分别得到分数再加权)后得到最终预测,兼顾「显式交叉」与「隐式高阶」两种归纳偏置。

二、显式交互一路

  • 形式:可为 FM 二阶、Cross 网络、CIN 等,输出为标量或低维向量,显式编码二阶或有限阶交叉,可解释、参数与阶数可控。
  • 作用:记忆强规则、关键交叉;对稀疏与冷启动更稳。

三、隐式表示一路

  • 形式:嵌入拼接后经多层 MLP,隐式学习任意阶与非线性组合,表达力强。
  • 作用:泛化、复杂模式与高阶;依赖数据量与正则避免过拟合。

四、融合方式与优势

  • 融合:两路输出向量拼接再经 MLP 得分数;或两路各得分数再线性加权。训练时联合优化,显式与隐式互补。
  • 优势:显式一路补 DNN 在稀疏与可解释上的不足;隐式一路补显式在高阶与复杂非线性上的不足;并行结构易于扩展(如多加一路图结构、序列等)。
  • 与 Wide&Deep / DeepFM 的延续:思想一致——显式(Wide/FM/Cross)+ 隐式(Deep);FinalMLP 强调双路均为 MLP 形式、融合方式更统一。

五、工程要点

  • 显式路可选 FM、Cross、CIN 等按资源与效果选;隐式路深度与宽度单独调。
  • 两路可共享嵌入以省参数,或部分共享;融合层不宜过深,避免淹没一路信号。

面试要点

  • 能说明 FinalMLP 双路并行:显式交互(FM/Cross 等)+ 隐式 DNN,两路融合得预测。
  • 能说清显式路负责记忆与可解释、隐式路负责泛化与高阶;融合为拼接再 MLP 或分数加权。
  • 能与 Wide&Deep、DeepFM 对比;能提及共享嵌入与融合层设计。

记忆要点

  • FinalMLP:显式交互路 + 隐式 MLP 路并行,融合后预测;显式=记忆/可解释,隐式=泛化/高阶。
  • 融合:拼接再 MLP 或两路分数加权;可共享嵌入。
  • 与 Wide&Deep/DeepFM 一脉相承;显式路可选 FM/Cross/CIN。

返回模块 | 返回总览

14-深度排序模型/README.md

14-深度排序模型(第 131–140 题)

题号 主题 文章
131 Wide&Deep的工程实践,Wide侧特征的手工设计原… 131.md
132 DeepFM的FM组件,隐向量维度的经验选择? 132.md
133 NFM的Bi-Interaction Pooling,特… 133.md
134 AFM的注意力因子分解,交互权重的可解释性? 134.md
135 Deep&Cross的交叉网络,高阶特征交互的显式控制? 135.md
136 xDeepFM的CIN复杂度,特征维度与网络深度的权衡? 136.md
137 AutoFeature的自动特征选择,强化学习 vs 可… 137.md
138 FwFM的场感知权重,二阶交互的场间差异建模? 138.md
139 LorentzFM的双曲嵌入,层次化特征的曲率空间映射? 139.md
140 FinalMLP的并行MLP结构,显式交互与隐式表示的融… 140.md

返回总览

15-上下文感知/141.md

第 141 题:位置偏置的建模,位置作为特征的暴露风险?

题目

位置偏置的建模,位置作为特征的暴露风险?


完整讲解

一、位置偏置与曝光

位置偏置:同一 item 在不同展示位置(如 1 位、10 位)被点击的概率不同,高位通常点击率更高,部分来自用户真实偏好,部分来自曝光与注意力(用户更易看到前几位)。若模型把「位置」当普通特征学,会学到「位置越前点击越高」,导致排序时倾向于把预测点击高的 item 放前面,而预测高可能来自「位置好」而非「内容好」,形成曝光与反馈的循环,评估与公平性失真。

二、位置作为特征的暴露风险

  • 风险:模型学到「位置→点击」的强相关后,线上排序会倾向于给「历史占高位」的 item 继续高位,马太效应;且离线评估时若用带位置的样本,高位置样本权重大,指标易虚高;A/B 时位置策略变化会干扰模型效果归因。
  • 本质:位置是混杂因素(confounder)——既影响曝光又影响点击,直接当特征会让模型混淆「因位置而点击」与「因偏好而点击」。

三、缓解思路

  • 不把位置当输入特征:排序阶段不用位置,仅用内容与用户特征;位置在展示层单独控制(如随机化、轮播),再通过无偏估计(IPW、PAL 等)从带偏的日志中学习。
  • 位置偏置建模与消偏:显式建模「位置→点击」的偏置项(如位置嵌入或标量),训练时用该偏置做纠偏(如 IPS 加权、或 PAL 联合训练偏置与主模型),推理时固定/去掉偏置项,使主模型学的是「去位置后的偏好」。
  • 评估:用随机位置数据或留出位置做无偏评估;或报告「按位置分层」的指标,避免位置主导结论。

面试要点

  • 能说明位置偏置的来源(曝光、注意力)及「位置当特征」会学到位置→点击、导致循环与评估失真。
  • 能说清暴露风险:马太效应、离线指标虚高、位置为混杂因素。
  • 能列举缓解:不用位置当排序特征、偏置建模与消偏(PAL/IPW)、无偏评估与分层指标。

记忆要点

  • 位置偏置:高位点击高部分来自曝光/注意力;位置当特征→模型学位置→曝光循环、评估失真。
  • 风险:马太效应、指标虚高、位置为混杂因素。
  • 缓解:排序不用位置、偏置建模与消偏(PAL/IPW)、无偏评估。

返回模块 | 返回总览

15-上下文感知/142.md

第 142 题:位置偏置的消除,PAL(Position Bias Aware Learning)的联合训练?

题目

位置偏置的消除,PAL(Position Bias Aware Learning)的联合训练?


完整讲解

一、位置偏置与消偏目标

点击受位置偏置影响: 可分解为「用户对 item 的偏好」与「位置 带来的曝光/注意力」。消偏目标是学得与位置无关的偏好模型,使排序依据真实偏好而非「占位好」。PAL(Position bias Aware Learning) 通过联合训练主模型与位置偏置项,在训练阶段显式建模偏置,推理时去掉偏置,得到无偏偏好估计。

二、PAL 的联合训练形式

  • 模型分解:假设

即点击 = 相关性(偏好)× 检验概率(位置导致的曝光/点击概率)。或采用加法/对数空间形式: 为主模型、 为位置偏置项。
- 联合训练:主模型 (user、item、上下文,不含位置)与位置项 一起用点击数据训练,损失为交叉熵等。数据中同一 item 出现在不同位置时, 会学到「位置效应」, 会学到「去位置后的偏好」。
- 推理:线上排序只用 ,不用 ,即消除位置偏置,排序完全基于学到的偏好。

三、实现要点

  • ** identifiability:需保证「偏好」与「位置」可区分。若所有样本同一位置则无法分离;需有同一 item 多位置随机化位置**的日志,才能从数据中识别
  • 正则与约束:可对 加单调约束(高位 exam 不低于低位)或先验,避免 抢走主模型信号。
  • 与 IPW 的关系:PAL 是模型内消偏;IPW 是样本加权(权重为 1/倾向分)从带偏数据中估计无偏损失。二者可结合:用 PAL 估计倾向分再做 IPW,或仅用 PAL 联合训练。

四、工程建议

  • 训练数据需含多位置曝光;若业务有随机化位置流量,优先用该部分训 PAL。
  • 评估时用无偏集(随机位置或留出位置)看主模型 的排序质量。

面试要点

  • 能说明 PAL 的分解:点击≈偏好×位置检验概率,联合训练 (主模型)+ (位置偏置)。
  • 能说清推理时只用 、不用 ,即消偏;需数据中同一 item 多位置或随机位置以识别
  • 能提及 identifiability、对 的约束、与 IPW 的关系。

记忆要点

  • PAL:点击=偏好×位置;联合训 (无位置)+ ;推理用 消偏。
  • 需多位置/随机位置数据才能识别 ;可对 加单调等约束。
  • 与 IPW 可结合;评估用无偏集。

返回模块 | 返回总览

15-上下文感知/143.md

第 143 题:上下文特征的实时性,用户实时状态的秒级更新?

题目

上下文特征的实时性,用户实时状态的秒级更新?


完整讲解

一、上下文特征的实时性需求

上下文特征包括当前时间、地点、设备、网络、用户实时行为等。实时性指这些特征应尽可能贴近当前时刻,否则用过期上下文会误导模型(如用户已换城市、仍用旧地理)。用户实时状态(如「刚看完某类目」「当前会话内点击序列」)若延迟更新,短期兴趣与会话意图会丢失,影响 CTR/转化与体验。

二、秒级更新的挑战

  • 数据链路:行为从端上发到日志、再进实时特征管道(Flink/Kafka→特征计算→写存储),存在端到端延迟(数百毫秒到秒级)。要「秒级」更新,需从采集、传输、计算到写入全链路优化。
  • 计算:实时特征多为聚合(如最近 10 次点击的类目分布、最近 1 分钟曝光次数),需流式窗口增量计算,在秒级窗口内完成聚合并写出。
  • 存储与读取:特征存储需支持高写吞吐低读延迟(如 Redis、自研 KV);排序服务在请求时按 user_id 拉取最新特征,若写慢或读不到则仍为旧状态。

三、实现策略

  • 端上实时:关键行为(点击、加购)即时上报;端上可维护本地会话状态(如最近 5 条行为)随请求带上,减少对特征服务的依赖。
  • 流式计算:用 Flink 等做秒级/分钟级窗口聚合,写出到特征库;关键特征设单独 pipeline 与 SLA,保证秒级可见。
  • 分层热数据(最近 1 分钟、当前会话)强实时、秒级;温数据(今日、本周)可分钟级;冷数据(长期画像)可小时/天级,降低对实时链路的压力。
  • 一致性:请求时若特征未到,可降级用上一版本或默认值,并打标监控「特征新鲜度」。

四、工程要点

  • 秒级更新成本高,只对强依赖实时的特征(位置、当前会话、实时计数)做秒级;其余用分钟/小时级即可。
  • 监控延迟与覆盖率,避免因实时链路抖动导致特征大面积过期。

面试要点

  • 能说明上下文与用户实时状态需贴近当前时刻,秒级更新的业务价值。
  • 能分析挑战:数据链路延迟、流式计算、存储读写与一致性。
  • 能说清实现:端上即时上报与本地状态、流式窗口与分层(热/温/冷)、降级与监控。

记忆要点

  • 实时性:上下文与用户状态贴近当前;秒级更新需全链路优化(采集→计算→写入→读取)。
  • 策略:端上即时上报与本地状态、Flink 秒级窗口、热/温/冷分层、降级与一致性。
  • 只对强依赖实时的特征做秒级;监控延迟与覆盖率。

返回模块 | 返回总览

15-上下文感知/144.md

第 144 题:设备与网络特征,端侧计算能力的自适应建模?

题目

设备与网络特征,端侧计算能力的自适应建模?


完整讲解

一、设备与网络作为上下文

设备(机型、OS、内存、分辨率)与网络(WiFi/4G/5G、带宽、延迟)影响用户体验与可展示内容:低端机或弱网下大图、复杂动画易卡顿,推荐可降级(少图、轻量样式、减少候选数);高端与 WiFi 下可推高清晰度、多模态。将设备与网络作为特征输入模型,使排序与展示策略自适应端侧能力,可提升留存与转化。

二、端侧计算能力的自适应建模

  • 特征输入:设备类(机型档位、OS 版本、内存/CPU 档位)、网络类(网络类型、信号强度或档位、预估 RTT)作为类别或数值特征,与 user、item 一起输入排序/策略模型。
  • 建模方式:(1)直接特征:设备与网络嵌入或分桶后进 DNN,模型学「弱网/低端机→倾向轻量 item 或降级策略」;(2)条件分支:按设备/网络档位分桶,不同桶用不同模型或不同权重(如低端机用简化模型、高端用完整模型);(3)多目标:在点击之外加「加载成功」「崩溃率」等目标,使模型在弱端侧自动降权「重」内容。
  • 自适应:模型输出可包含「是否降级」「候选数量」「是否用大图」等,或直接用分数在弱端侧对「重」item 降分,实现端侧能力自适应

三、工程要点

  • 设备与网络特征多为枚举或分桶(避免裸数值尺度差异);缺失时用默认桶或「未知」嵌入。
  • 端侧可上报设备能力标签(由端上检测),服务端据此查表或进模型;需与端上能力检测一致、定期更新档位定义。
  • A/B 时可按设备/网络分层看指标,验证自适应是否生效。

面试要点

  • 能说明设备与网络特征在推荐中的作用:适配端侧能力、降级与体验优化。
  • 能说清自适应建模方式:直接特征、按档位分支/不同模型、或多目标含加载/崩溃。
  • 能提及特征形式(枚举/分桶)、端上上报与档位定义、分层评估。

记忆要点

  • 设备/网络特征→自适应展示与排序;弱端侧可降级(轻量、少候选、少图)。
  • 建模:直接特征进 DNN、按档位分支、或多目标含体验目标。
  • 特征枚举/分桶、端上上报与档位一致、分层 A/B 验证。

返回模块 | 返回总览

15-上下文感知/145.md

第 145 题:时间上下文的多尺度,小时/天/周的周期性编码?

题目

时间上下文的多尺度,小时/天/周的周期性编码?


完整讲解

一、时间上下文的多尺度

时间包含多种尺度:小时(一天内时段)、(星期几、是否周末)、周/月(周期、节假日)。不同尺度刻画不同模式:小时反映「早晚高峰」、天反映「工作日 vs 周末」、周反映「周内节奏」。多尺度即同时使用这些尺度作为特征,使模型能学到时序与周期性。

二、周期性编码

  • 离散:将小时(0~23)、星期(0~6)、月内日(1~31)等作为类别特征,做嵌入或 one-hot。简单但周期不连续:23 与 0 在数值上差 23,语义上应相邻(都是夜间)。
  • 连续周期:用 编码,使周期首尾连续。例如小时

星期 ;可再加「是否周末」「是否节假日」等二值或嵌入。
- 多尺度拼接:同时用「小时 sin/cos」「星期 sin/cos」「月内日 sin/cos」或再加「月份」「年」等,组成时间特征向量输入模型,即多尺度周期性编码

三、作用与实现

  • 作用:模型可学到「晚上点击高」「周末浏览时长长」等模式;sin/cos 保证同一周期内平滑、跨周期连续。
  • 实现:离线与在线统一用同一时区与同一编码公式;节假日可用单独二值或列表匹配。
  • 扩展:可加「距某节日天数」「工作/休息日」等业务相关时间特征,与多尺度一起输入。

四、注意点

  • 若只用数值(如 hour=14),模型难以自然学到 23 与 0 的相邻性;sin/cos 或离散+嵌入可缓解。
  • 多尺度不必过多(小时+天+周常用),避免冗余与过拟合。

面试要点

  • 能说明时间多尺度:小时、天、周等,以及各自刻画的模式(时段、工作日、周期)。
  • 能写出 sin/cos 周期编码(如 )并说明连续性与首尾相接的好处。
  • 能说清多尺度拼接、与离散/二值(周末、节假日)的结合,以及实现一致性。

记忆要点

  • 时间多尺度:小时(时段)、天(星期)、周(周期);可加周末、节假日。
  • 周期编码:sin/cos 使首尾连续;小时 2πh/24、星期 2πd/7;多尺度拼接输入。
  • 离散数值难表周期相邻;sin/cos 或离散嵌入可缓解。

返回模块 | 返回总览

15-上下文感知/146.md

第 146 题:地理位置的层次化,GPS坐标的空间索引与聚合?

题目

地理位置的层次化,GPS坐标的空间索引与聚合?


完整讲解

一、地理位置与层次化

地理位置有层次:国家→省→市→区/县→商圈/网格,或经纬度→网格 ID。层次化表示既可保留精度(如网格、经纬度),又可做聚合(同城、同省统计),便于特征与索引。GPS 坐标(经度、纬度)为连续值,需转为离散或层次 ID 才能做嵌入与检索。

二、GPS 坐标的空间索引

  • 网格/Geohash:将经纬度映射到空间网格(如 Geohash、S2、H3),每个格子有唯一 ID,长度可调(越长越细)。同一格子内点视为同位置,可做聚合(同格内统计)与索引(按格查附近 POI)。
  • 层次索引:用多级网格(如 5 位 Geohash=省级、7 位=市级、9 位=街区级),同一坐标可得到多级 ID,形成层次;检索时可按层级查(先省再市再格)。
  • 距离与近邻:用空间索引(R-tree、网格)做「附近 N 公里」的过滤与排序;或预计算「用户格→候选格」距离/同格关系作为特征。

三、层次化聚合

  • 统计聚合:按层级(省、市、网格)聚合行为或统计量(点击率、转化率),作为地域特征输入模型;用户侧用「当前所在层级 ID」查表得到该层级的统计。
  • 多层级特征:用户位置可同时取「省 ID」「市 ID」「网格 ID」,分别嵌入或查统计,组成层次化地理特征,兼顾粗粒度(省)与细粒度(网格)。
  • 隐私与泛化:精确经纬度易泄露隐私;用网格或省/市级别可泛化且保护隐私;必要时只用到城市或区域级。

四、工程要点

  • Geohash/S2 等库可直接将 (lat, lon) 转 ID;层级由截断位数控制。
  • 特征表按地理 ID 建索引;实时请求用当前 GPS 或 IP 解析得到层级 ID 再查特征。

面试要点

  • 能说明地理位置层次化(国家→省→市→网格)及 GPS 需离散化/网格化的原因。
  • 能说清空间索引:Geohash/S2 等网格 ID、层次截断、距离与近邻查询。
  • 能说明层次化聚合:按层级统计、多层级 ID 作为特征、隐私与泛化。

记忆要点

  • 地理层次:GPS→网格/Geohash/S2→层级 ID;层次化便于聚合与索引。
  • 空间索引:网格 ID、多级截断、近邻与距离查询。
  • 层次聚合:按省/市/格统计、多层级特征、隐私用粗粒度。

返回模块 | 返回总览

15-上下文感知/147.md

第 147 题:天气与事件特征,外部信号的延迟影响建模?

题目

天气与事件特征,外部信号的延迟影响建模?


完整讲解

一、天气与事件作为外部信号

天气(温度、雨雪、阴晴)与事件(节假日、赛事、促销)是外部信号,会影响用户需求与行为(如雨天推外卖、赛事推相关商品)。这类特征通常来自外部 API 或运营配置,与行为日志存在时间与粒度上的差异,需考虑延迟与对齐

二、延迟的来源

  • 采集延迟:天气 API 有更新频率(如每小时);事件标签可能 T+1 或人工录入。行为发生时刻特征可用时刻不一致,即特征延迟
  • 影响延迟:天气/事件对行为的影响可能有滞后(如提前一天知道要下雨、当天才买伞);或提前(促销预告提前影响浏览)。即「信号时间」与「影响时间」不一定同步。
  • 粒度:天气按城市/网格、事件按天或小时;用户行为按秒,需将外部信号对齐到请求时间与用户位置。

三、延迟影响建模

  • 时间对齐:特征取「行为发生时刻」对应的天气与事件(或最近一次可用值),避免用未来或过旧信号。若只有 T+1 天气,则训练时用「当日天气」作为「次日行为」的上下文需明确定义(如预测次日则合理)。
  • 滞后与窗口:可显式加滞后特征(如过去 3 天的平均温度、昨日是否下雨),或滑动窗口聚合,让模型学到「过去天气→当前需求」的滞后效应。
  • 事件:节假日/促销用 0/1 或类型嵌入;事件开始/结束时间与请求时间做时间差特征(如「距促销开始已过 N 小时」),建模事件阶段对行为的影响。
  • 缺失与默认:外部信号缺失时用默认值或「未知」嵌入,避免空值影响训练与推理。

四、工程要点

  • 天气与事件特征表按时间+地理事件 ID 建索引;请求时按当前时间与用户位置/活动事件取最近一条。
  • 监控外部接口可用性与延迟,做降级与兜底;离线特征与在线取数逻辑一致。

面试要点

  • 能说明天气与事件为外部信号、以及采集延迟与影响滞后带来的对齐问题。
  • 能说清延迟建模:时间对齐到行为时刻、滞后特征与窗口、事件时间差特征、缺失处理。
  • 能提及粒度对齐(地理、时间)、监控与降级。

记忆要点

  • 天气/事件为外部信号;存在采集延迟与影响滞后,需时间与粒度对齐。
  • 建模:行为时刻对应信号、滞后/窗口特征、事件时间差、缺失默认。
  • 特征表按时间+地理/事件索引;监控与降级。

返回模块 | 返回总览

15-上下文感知/148.md

第 148 题:社交上下文的利用,好友行为的传染效应建模?

题目

社交上下文的利用,好友行为的传染效应建模?


完整讲解

一、社交上下文与传染效应

社交上下文指用户的好友、关注、群组等关系及其行为传染效应(或社会影响):好友的行为会影响用户自己的行为(如好友买了某品、用户也更可能点击/购买)。利用社交上下文即把「好友做了什么」作为信号,增强对当前用户意图的估计。

二、好友行为的利用方式

  • 聚合特征:对用户的好友集合,聚合其近期行为(如点击过的 item 集合、类目分布、平均点击率),得到好友行为统计(如「好友点击最多的类目」「好友中有多少人点击了该 item」),作为标量或向量特征输入排序/召回模型。
  • 协同:在协同过滤框架下,用「好友的评分/点击」作为该用户的间接反馈;或建用户-用户图,用 GNN 聚合邻居(好友)的表示,再与 item 匹配。
  • 序列/注意力:将好友行为当作序列或集合,用 attention 聚合「与当前 item 最相关的几位好友的行为」,得到社交增强的 user 表示。

三、传染效应建模

  • 显式权重:不同好友的权重可不同(亲密度、同好程度、活跃度);加权聚合好友行为,即对「传染强度」建模。权重可学习(如 attention)或启发式(共同好友数、互动频次)。
  • 时间衰减:好友越近期的行为权重越大,过期行为降权,符合传染的时效性
  • 负样本:训练时正样本为「用户点击/转化」;负样本可为「未点击」或「好友未点击但用户点击」(逆社交),避免过度依赖社交导致多样性下降。

四、工程与隐私

  • 好友关系与好友行为需实时或准实时更新;存储可按 user 存「好友 ID 列表」与「好友行为摘要」,请求时查表拼接。
  • 隐私:好友行为涉及他人数据,需合规与脱敏;可只使用聚合统计、不暴露个体行为。

面试要点

  • 能说明社交上下文(好友关系与行为)及传染效应(好友行为影响用户)。
  • 能说清利用方式:好友行为聚合特征、协同/GNN、attention 加权;传染建模用权重与时间衰减。
  • 能提及负样本设计、实时更新与隐私合规。

记忆要点

  • 社交上下文=好友关系+好友行为;传染效应=好友行为影响用户行为。
  • 利用:聚合特征、协同/GNN、attention;传染=权重(亲密度/同好)+ 时间衰减。
  • 负样本与多样性;实时/准实时更新;隐私用聚合、脱敏。

返回模块 | 返回总览

15-上下文感知/149.md

第 149 题:会话上下文的短周期,Session边界检测算法?

题目

会话上下文的短周期,Session边界检测算法?


完整讲解

一、会话与短周期上下文

会话(Session) 通常指用户在一段连续、有意图的浏览/操作,会话内行为相关性强、会话间可能意图切换。短周期强调会话时间较短(几分钟到几十分钟),与「长期兴趣」区分。Session 边界检测即从连续行为流中切分出「哪里是会话开始/结束」,便于做会话内序列建模、会话级统计与上下文特征。

二、Session 边界检测算法

  • 时间阈值:相邻两次行为间隔超过 (如 30 分钟)则视为新会话开始。优点:简单、可解释;缺点:固定阈值不适应所有场景(有的用户间隔长但仍同一意图)。
  • 混合规则:时间间隔 + 页面/场景(如从首页跳到搜索算新会话)+ referrer(从外链进入算新会话)。多条件组合,任一满足则切分。
  • 模型:用二分类模型预测「当前行为是否为新会话开始」:特征为间隔、行为类型、页面、时间等,标签为人工或启发式规则标注的边界。训练后对线上流式行为做边界预测。
  • 无监督:用行为序列的嵌入或表示做聚类或变点检测(change point),表示突变处视为边界;或用隐马尔可夫模型(状态=会话阶段)推断边界。

三、实现要点

  • 流式:在线检测时每来一条行为,用当前间隔、上一行为类型等判断是否为新会话;若为新会话则重置会话内状态(如清空会话序列、重置会话级计数)。
  • 一致性:训练(离线构造会话)与推理(在线边界)的规则或模型需一致,否则会话特征分布会 skew。
  • 超参:时间阈值 常用 30min~2h,按业务与 A/B 调;模型法可输出概率,按阈值或 top-1 决策。

四、用途

  • 会话内序列做 next-item、会话内 CTR;会话级统计(会话长度、会话内类目分布)作为特征;会话边界也用于「会话上下文」的起止定义。

面试要点

  • 能说明会话与短周期上下文的含义,以及边界检测对序列建模与特征的作用。
  • 能列举检测方法:时间阈值、混合规则、二分类模型、无监督变点/聚类,及各自优缺点。
  • 能说清流式实现、训练与推理一致、阈值与超参。

记忆要点

  • Session=连续有意图的短周期行为;边界检测=切分会话起止。
  • 方法:时间阈值、时间+页面/referrer、二分类模型、无监督变点/聚类。
  • 流式判断、训练与推理一致; 常用 30min~2h。

返回模块 | 返回总览

15-上下文感知/150.md

第 150 题:跨域上下文的迁移,用户在其他域行为的权重衰减?

题目

跨域上下文的迁移,用户在其他域行为的权重衰减?


完整讲解

一、跨域上下文与迁移

跨域指不同业务或场景(如视频与电商、搜索与推荐、App 与 H5)。跨域上下文即用户在一个域的行为(点击、购买)可作为另一域的辅助信号,通过迁移增强目标域模型。例如电商主站与短视频域:用户在短视频的观看可帮助估计其对某类商品的兴趣,但两域意图不完全一致,需控制迁移强度,常用权重衰减

二、用户在其他域行为的权重衰减

  • 动机:他域行为与当前域相关性随「域距离」与「时间」减弱。直接把他域行为与当前域等权融合会引入噪声(如短视频偏好与购物偏好有重叠但不一致);权重衰减即对他域信号降权,使主域信号主导、他域仅辅助。
  • 按域衰减:不同域赋不同权重 ,如主域 、强相关域 、弱相关域 。权重可人工设定或从验证集/多任务学习中得到。
  • 按时间衰减:他域行为越久远权重越低,如 为他域行为距今时间。
  • 按相似度衰减:他域 item 与当前候选的相似度(类目、内容)高则权重大,低则权重小,避免无关他域行为干扰。
  • 学习得到:将他域特征或行为嵌入与「域 ID」一起输入模型,让模型学习域权重或门控;或多任务中他域任务损失加权较小,等价于对他域梯度衰减。

三、实现方式

  • 特征层:他域行为聚合特征(如他域点击类目分布)乘以衰减系数后与主域特征拼接。
  • 表示层:他域行为序列经独立或共享 encoder 得到向量,再乘域权重或门控后与主域表示融合。
  • 多任务:主域任务 loss 权重大、他域任务权重小,反向传播时他域对共享参数的更新弱,形成隐式权重衰减。

四、注意点

  • 衰减过强则他域信息浪费;过弱则噪声大。可按 A/B 或验证集调衰减系数与域权重。
  • 他域数据可得性、延迟与合规需考虑;可只用可用的他域做有条件迁移。

面试要点

  • 能说明跨域上下文的迁移及他域行为需权重衰减的原因(域距离、噪声)。
  • 能说清衰减方式:按域、按时间、按相似度、或学习得到;特征层/表示层/多任务实现。
  • 能提及衰减过强/过弱的权衡、A/B 与数据可得性。

记忆要点

  • 跨域迁移:他域行为辅助目标域;需权重衰减控制噪声与域距离。
  • 衰减:按域权重、按时间 、按相似度、或学习门控/多任务权重。
  • 实现:特征乘系数、表示门控、多任务小权重;按效果调衰减强度。

返回模块 | 返回总览

15-上下文感知/README.md

15-上下文感知(第 141–150 题)

题号 主题 文章
141 位置偏置的建模,位置作为特征的暴露风险? 141.md
142 位置偏置的消除,PAL(Position Bias Aw… 142.md
143 上下文特征的实时性,用户实时状态的秒级更新? 143.md
144 设备与网络特征,端侧计算能力的自适应建模? 144.md
145 时间上下文的多尺度,小时/天/周的周期性编码? 145.md
146 地理位置的层次化,GPS坐标的空间索引与聚合? 146.md
147 天气与事件特征,外部信号的延迟影响建模? 147.md
148 社交上下文的利用,好友行为的传染效应建模? 148.md
149 会话上下文的短周期,Session边界检测算法? 149.md
150 跨域上下文的迁移,用户在其他域行为的权重衰减? 150.md

返回总览

16-多目标优化/151.md

第 151 题:点击与转化的联合建模,ESMM的样本空间一致性?

题目

点击与转化的联合建模,ESMM的样本空间一致性?


完整讲解

一、点击与转化的联合建模

点击(CTR)转化(CVR)是推荐/广告的两大目标。CVR 样本极少(只有点击后才可能转化),若单独训 CVR 模型会面临样本稀疏样本空间不一致:CVR 训练集是「点击样本」,而全量空间是「曝光样本」,即样本空间不一致ESMM(Entire Space Multi-task Model) 通过联合建模 CTR 与 CTCVR,在全曝光空间上训练,缓解上述问题。

二、ESMM 的样本空间一致性

  • 概率分解,即 CTCVR = CTR × CVR。因此可在全曝光样本上拟合 CTCVR、在点击样本上拟合 CVR,两者结合得到 CTR 与 CVR 的估计,且 CVR 的梯度会通过 CTCVR 反传到全空间
  • ESMM 结构:共享底层表示,两个塔:一个预测 CTR、一个预测 CVR(输入为同一样本,但 CVR 只在点击样本上有监督);主损失为 CTR 的 BCE + CTCVR 的 BCE。CTCVR 的标签 = click × conversion(曝光未点击为 0、点击未转化为 0、点击且转化为 1)。这样 CTCVR 的 loss 在全曝光样本上计算,CVR 塔的梯度来自 CTCVR 项,即在全空间上得到监督信号,样本空间与推理空间一致(都是曝光空间)。
  • 与单独 CVR 的对比:单独 CVR 只在点击样本上训练,分布是 ,而推理时用全曝光 ,存在选择偏差(selection bias)。ESMM 通过 CTCVR 在全空间训练,使 CVR 塔在全空间上被约束,缓解偏差。

三、实现要点

  • 损失:;CVR 不单独设 loss(或设辅助 loss 仅在点击样本上)。推理时用 或仅用 做 CVR 排序。
  • 需保证曝光日志中 a) 有点击与转化标签、b) 未点击样本也参与 CTCVR loss(标签为 0),这样全空间一致才成立。

面试要点

  • 能写出 CTCVR = CTR × CVR,并说明 ESMM 用 CTR + CTCVR 两路 loss、CTCVR 在全曝光上算。
  • 能说清样本空间一致性:CVR 梯度通过 CTCVR 传到全空间,缓解「只在点击样本训 CVR」的选择偏差。
  • 能对比单独 CVR(点击样本、分布偏差)与 ESMM(全空间、一致);能提及损失形式与推理时用 CTR×CVR。

记忆要点

  • ESMM:CTCVR = CTR × CVR;loss = CTR + CTCVR,CTCVR 在全曝光样本上算。
  • 样本空间一致:CVR 通过 CTCVR 在全空间得梯度,缓解选择偏差。
  • 单独 CVR 只在点击样本→分布偏差;ESMM 全空间训练,推理可用 CTR×CVR。

返回模块 | 返回总览

16-多目标优化/152.md

第 152 题:观看时长预测,加权Logistic回归 vs 分位数回归?

题目

观看时长预测,加权Logistic回归 vs 分位数回归?


完整讲解

一、观看时长预测的目标

观看时长(watch time、完播率)是视频与信息流的重要目标。可直接回归时长(如 MSE),但时长分布长尾、非负、偏态,回归易被极端值主导。常用两种替代方式:加权 Logistic 回归(将时长转为二分类或分段+权重)与分位数回归(预测时长的分位数而非均值)。

二、加权 Logistic 回归

  • 做法:将「是否观看超过某阈值 」视为二分类(如 ),用 Logistic 回归拟合 。为让预测概率与时长单调相关,可用时长作为样本权重:样本权重 (或 截断),loss 为 。这样「看更久」的样本对梯度贡献更大,学到的概率在期望意义下与时长正相关,可近似作为「期望观看时长」的代理。
  • 优点:实现简单、与 CTR 框架一致(二分类+权重);多阈值可得多档位概率。
  • 缺点:本质是分类、非直接回归时长;权重设计(截断、归一化)需调。

三、分位数回归

  • 做法:不预测均值 ,而预测分位数 (如中位数 、90 分位 )。损失为 pinball loss

最小化 得到 分位数的估计。可同时预测多个 (如 0.5, 0.7, 0.9)得到分布刻画。
- 优点:对长尾与异常值鲁棒;可得到分布而非仅均值,便于做风险或多样性决策。
- 缺点:多分位数则多输出、参数与计算略增;与「点击式」的排序框架需结合(如用某分位数或期望作为分数)。

四、选型与结合

  • 排序主用、需与点击融合:加权 Logistic 更易与 CTR 多任务或分数量纲统一(概率×时长权重)。
  • 需分布、抗长尾:分位数回归;或加权 Logistic 多阈值 + 拟合期望时长曲线。
  • 实践中可多任务:一路 CTR、一路加权时长分类或分位数回归,再融合分数。

面试要点

  • 能说明观看时长预测的难点(长尾、偏态)及加权 Logistic(时长作权重、二分类)与分位数回归(pinball loss、预测分位数)的做法。
  • 能说清加权 Logistic 的动机(概率与时长单调、梯度与时长正相关);分位数回归的鲁棒性与分布刻画。
  • 能对比选型:排序融合用加权 Logistic、要分布用分位数;可多任务结合。

记忆要点

  • 加权 Logistic:二分类(是否超阈值)+ 样本权重=时长,使概率与时长单调相关。
  • 分位数回归:pinball loss、预测 ;鲁棒、得分布;多 可得多分位。
  • 排序融合常用加权 Logistic;要分布/抗长尾用分位数;可多任务。

返回模块 | 返回总览

16-多目标优化/153.md

第 153 题:点赞与收藏的稀疏性,过采样与损失加权的比较?

题目

点赞与收藏的稀疏性,过采样与损失加权的比较?


完整讲解

一、点赞与收藏的稀疏性

点赞、收藏等正向反馈远少于点击与曝光,正样本极度稀疏。若与点击等权训练,模型会几乎只学点击、点赞/收藏信号被淹没,导致这两个目标的预测很弱。需要过采样损失加权(或二者结合)提升稀疏目标在总损失中的比重。

二、过采样(Over-sampling)

  • 做法:在每轮或每个 batch 中,增加点赞/收藏正样本的出现次数(如复制多份、或按正负比例采样使正样本被采到的概率提高)。等价于在期望意义下给正样本更大权重。
  • 优点:实现简单(重采样 dataloader);不改变 loss 形式,下游逻辑一致。
  • 缺点:同一正样本被重复看到,易过拟合;且负样本相对变少,可能影响决策边界;极端过采样会严重不平衡 batch 内分布。

三、损失加权(Loss Weighting)

  • 做法:对点赞/收藏的 loss 乘以大于 1 的权重 (如 或按业务设定),使稀疏目标的梯度在总梯度中占更大比例。
  • 优点:不复制样本、不过度改变 batch 分布;权重可精细调(不同目标不同权)。
  • 缺点:权过大可能让稀疏目标主导、损害主目标(如点击);需在验证集或线上 A/B 调权。

四、比较与结合

  • 过采样:简单、易过拟合、适合轻度不平衡;损失加权:不增样本、易调权、适合与多任务联合。
  • 结合:适度过采样(如 2~5 倍正样本)+ 损失加权,既增加稀疏目标曝光又控梯度比例;或仅用加权、避免过采样带来的过拟合。
  • 其他:Focal Loss 对易分样本降权、对难分(常为稀疏正样本)增权;或对点赞/收藏做辅助任务、主任务仍为点击,通过共享表示间接提升点赞/收藏。

面试要点

  • 能说明点赞/收藏稀疏导致梯度被点击淹没,需过采样或损失加权。
  • 能说清过采样(复制正样本、简单但易过拟合)与损失加权(乘权、不复制、可细调)的优缺点。
  • 能提及结合使用、Focal Loss、辅助任务,以及权重与过采样倍数的调参。

记忆要点

  • 稀疏目标:过采样=多采正样本,简单易过拟合;损失加权=loss 乘权,不复制样本。
  • 过采样易过拟合;加权需调权避免压过主目标;可结合或配合 Focal/辅助任务。

返回模块 | 返回总览

16-多目标优化/154.md

第 154 题:多目标的帕累托最优,标量化方法的权重搜索?

题目

多目标的帕累托最优,标量化方法的权重搜索?


完整讲解

一、多目标与帕累托最优

多目标优化中,各目标常冲突(如点击与时长、点击与多样性)。帕累托最优:若不存在其他解在所有目标上都不变差且至少一个严格更好,则该解为帕累托最优。帕累托前沿即所有帕累托最优解构成的曲面/曲线。我们希望在帕累托前沿上根据业务偏好选一个折中解

二、标量化方法(Scalarization)

将多目标标量化为单目标,再优化。常用加权和

在凸等多条件下,适当扫 可得到帕累托前沿上的点;非凸时加权和得到的是帕累托最优的充分解(即得到的解是帕累托最优,但未必覆盖全部前沿)。加权积Tchebycheff)等也是标量化方式,可得到不同前沿形状。

三、权重搜索

  • 网格/随机搜索:在 空间(如 simplex)上取多组 ,每组训一版模型或做一次评估,得到多组 ,选业务满意的或帕累托前沿上的点。成本为
  • 帕累托前沿搜索:用多目标进化算法(NSGA-II 等)或贝叶斯优化,直接搜索帕累托前沿;或先标量化扫 ,再在得到的解集中筛出非支配解作为近似前沿。
  • 在线调权:离线初定 后,线上 A/B 微调 (如只调主目标与某保护目标的权重),按业务指标选最终

四、工程要点

  • 标量化简单、可解释;权重 需与 loss 量纲或归一方式一致(如先对各 loss 做 scale 再加权)。
  • 多目标 DNN 中 常作为超参;也可学帕累托最优的 (如 Pareto MTL、梯度法调 ),但实现更复杂。

面试要点

  • 能说明帕累托最优与帕累托前沿的概念,以及标量化(加权和等)将多目标变单目标。
  • 能说清权重搜索:网格/随机、帕累托前沿搜索、在线 A/B 调权;标量化得到的解与前沿的关系。
  • 能提及 与 loss 量纲、多目标 DNN 中 为超参或可学习。

记忆要点

  • 帕累托最优=无其他解全不差且至少一更好;标量化=加权和等变单目标。
  • 权重搜索:网格/随机、进化/贝叶斯前沿搜索、在线 A/B; 与量纲一致。
  • 加权和在凸等条件下可覆盖前沿;非凸时得帕累托解、未必全前沿。

返回模块 | 返回总览

16-多目标优化/155.md

第 155 题:约束优化,预算消耗约束的拉格朗日松弛?

题目

约束优化,预算消耗约束的拉格朗日松弛?


完整讲解

一、约束优化问题

在推荐/广告中常有约束:如预算消耗不超过某上限、某类目曝光占比不低于某下限。形式为

例如 ,要求 。直接解带约束优化在 DNN 与在线场景下较难,常用拉格朗日松弛转为无约束或近似问题。

二、拉格朗日松弛

拉格朗日函数

原始问题 与原始约束问题在凸等条件下等价。对偶:先对 最小化、再对 最大化;或交替:固定 更新 (梯度下降主损失+约束惩罚)、固定 更新 (若 则增大 以加大惩罚)。

三、预算消耗约束的用法

  • 约束(总消耗不超预算)。将 写入拉格朗日项 ,则 可视为「预算影子价格」:预算紧时 常为正、 会增大,使 loss 更惩罚「高消耗」的决策,从而压低消耗。
  • 在线/迭代:每步或每天更新 (模型参数)与 (拉格朗日乘子)。 的更新可用梯度上升:(若 则增 ),或用 PID 等控制律使 趋近 0。这样无需显式解约束优化,通过迭代自动逼近可行解。
  • 与 pacing 的关系:广告中的 budget pacing 常等价于一个约束(消耗速率 目标);拉格朗日乘子 对应 pacing 的「价格」或调节因子。

四、注意点

  • 非凸时拉格朗日与原始问题不一定等价,但工程上仍常用作启发式:通过调 控制约束违反程度。
  • 的初值与步长影响收敛;可设 上下界避免爆炸。

面试要点

  • 能写出拉格朗日函数 ,并说明原始问题与 min-max 形式。
  • 能说清预算约束 为影子价格;交替更新 用梯度或 PID 更新。
  • 能提及与 pacing 的关系、非凸时的启发式用法。

记忆要点

  • 约束 ;拉格朗日
  • 预算约束: 增大则惩罚消耗;交替更
  • 更新: 时增 (梯度或 PID);与 pacing 对应。

返回模块 | 返回总览

16-多目标优化/156.md

第 156 题:多目标的层次化,主目标与保护目标的优先级?

题目

多目标的层次化,主目标与保护目标的优先级?


完整讲解

一、多目标的层次化

多目标中常有主目标(如点击、GMV)与保护目标(如多样性、用户体验、公平性)。层次化即明确「先优化什么、再在满足条件下优化什么」:通常主目标优先,保护目标作为约束次要目标,形成优先级层次。

二、主目标与保护目标的优先级

  • 主目标:业务核心 KPI(点击率、转化率、收入),优化时优先;损失或分数中主目标权重大、或单独一阶段只优化主目标。
  • 保护目标:不在主目标上牺牲过多为前提下的「底线」目标(如某类目曝光占比 ≥ 某值、多样性 ≥ 某值、延迟 ≤ 某值)。实现方式:(1)约束:保护目标写为 ,用拉格朗日或罚项加入;(2)层次优化:先求主目标最优解集,再在该解集中选保护目标最优(lexicographic);(3)加权但低权:主目标权重大、保护目标权重小,使梯度以主目标为主、保护目标微调。
  • 优先级:主 > 保护;即宁可主目标略降也要满足保护底线,或主目标与保护目标冲突时按优先级取舍。

三、实现方式

  • 两阶段:一阶段只训主目标;二阶段固定或微调主模型、加保护目标 loss 或约束再训。
  • 约束式:保护目标作为软/硬约束,拉格朗日或 penalty;调乘子/惩罚系数即调「保护强度」。
  • 多任务:主任务 loss 权重大、保护任务权重小;或主任务为主塔、保护任务为辅助塔,融合时主塔分数主导、保护塔做过滤或加分。
  • 在线策略:排序分数 = 主目标分数,但过滤不满足保护条件的 item(如多样性不足则插入);或 re-rank 阶段强制保护目标(如 MMR、配额)。

四、工程要点

  • 主与保护的权重或约束强度需 A/B 与业务对齐;过强保护会压主目标、过弱则保护形同虚设。
  • 可监控「主目标-保护目标」的帕累托曲线,看当前解在曲线上的位置。

面试要点

  • 能说明层次化即主目标优先、保护目标为约束或次要;主 > 保护。
  • 能说清实现:约束/拉格朗日、两阶段、多任务低权、在线过滤/re-rank。
  • 能提及权重与约束强度调参、帕累托曲线与业务对齐。

记忆要点

  • 层次化:主目标优先、保护目标为约束或次要;主 > 保护。
  • 实现:约束/罚项、两阶段、多任务小权、在线过滤或 re-rank。
  • 调保护强度与主目标平衡;可看主-保护帕累托曲线。

返回模块 | 返回总览

16-多目标优化/157.md

第 157 题:长期价值预测,强化学习的价值函数近似?

题目

长期价值预测,强化学习的价值函数近似?


完整讲解

一、长期价值预测

长期价值(LTV、用户生命周期价值、长期回报)不仅依赖当前点击/转化,还依赖未来的留存、复购、时长等。单步模型(如 CTR)只预测即时反馈;长期价值需对「未来多步累积回报」做预测,与强化学习(RL)中的价值函数概念一致。

二、强化学习中的价值函数

  • 状态价值 :从状态 出发、按策略 累积折扣回报动作价值 。长期价值即 的某种形式(如以「用户状态」为 、「推荐动作」为 为即时收益)。
  • 贝尔曼方程,即价值函数的递归形式,便于用函数近似(如 DNN)拟合。

三、价值函数近似

  • 表格式 在状态空间大时不可行,用函数近似 ,参数 由数据或与环境交互学习。拟合目标:最小化 TD 误差 或类似,使估计满足贝尔曼方程。
  • 在推荐中:状态 可为用户特征与上下文,动作 为推荐 item 或 slate;奖励 为点击、时长、转化等。学 即学「在该状态下推该 item 的长期价值」,用于排序或探索。长期通过 体现: 接近 1 则更重视远期回报。
  • 挑战:离线数据非策略、探索不足时 Q 估计有偏;状态与动作空间大,需泛化好的近似(DNN);奖励稀疏与延迟(转化滞后)需建模。

四、与短期模型的关系

  • 短期 CTR/CVR 可看作 或只取即时 的特例;长期价值 = 多步累积,RL 价值函数给出统一框架。
  • 实践可多任务:一路短期 CTR、一路价值近似 ,融合分数或约束(如选 Q 高且 CTR 不过低的 item)。

面试要点

  • 能说明长期价值=多步累积回报,与 RL 价值函数 一致;贝尔曼方程与折扣
  • 能说清价值函数近似:用 DNN 拟合 、TD 目标、在推荐中状态/动作/奖励的定义。
  • 能提及离线偏差、探索、奖励延迟与多任务结合短期模型。

记忆要点

  • 长期价值≈;贝尔曼方程递归、用 DNN 近似。
  • 推荐中 =用户/上下文,=item,=点击/转化;学 做长期排序。
  • 挑战:离线偏差、探索、奖励延迟;可与短期 CTR 多任务融合。

返回模块 | 返回总览

16-多目标优化/158.md

第 158 题:用户生命周期价值,生存分析与回归的联合建模?

题目

用户生命周期价值,生存分析与回归的联合建模?


完整讲解

一、用户生命周期价值(LTV)

LTV 为用户在生命周期内带来的总价值(收入、利润、 engagement 等)。预测 LTV 需同时考虑能产生价值的时长(留存、存活)与单位时间的价值(ARPU、转化率)。即既有是否还会来/是否流失(生存问题),又有来了之后价值多少(回归问题),故可生存分析与回归联合建模

二、生存分析(Survival Analysis)

  • 生存函数 :用户「存活」到 之后的概率(如未流失)。风险函数 累积风险 等刻画流失/事件发生强度。常用 Cox 比例风险参数模型(Weibull、指数)或离散时间生存模型估计
  • 作用:给定用户特征 ,预测其「未来仍活跃」的概率或预期存活时间,用于分层、资源分配或 LTV 中的「存活权重」。

三、回归部分(价值建模)

  • 条件价值:在「用户仍存活」或「在时段 内」的条件下,其产生的价值 (如收入)可建模为回归:。可用 GLM、DNN 等拟合。
  • 联合:LTV 可写为「存活概率 × 条件期望价值」的积分或求和(如按时间离散):

即各时段「存活到该时段的概率」×「该时段内期望价值」再累加。生存分析回归,二者联合得 LTV。

四、实现要点

  • 数据:需有「用户存活/流失」标签(如最后活跃时间、是否流失)与「各时段价值」;存在删失(观测结束时用户仍存活)时用生存分析处理。
  • 模型:可一模型双头(一头生存、一头回归),或分开训再组合;损失为生存损失(如负对数似然、Brier)+ 回归损失(MSE/MAE)。
  • 应用:LTV 预测用于用户分层、预算分配、长期 ROI 优化;与短期 CTR 等多目标可一起优化。

面试要点

  • 能说明 LTV 需同时考虑存活与价值;生存分析给 、回归给条件价值。
  • 能写出 LTV 的联合形式(存活概率×条件价值、按时间累加),并说明生存与回归如何联合。
  • 能提及删失、双头模型或分训再组合、与多目标结合。

记忆要点

  • LTV = 存活 × 价值;生存分析→,回归→
  • 联合:;可双头或分训再组合。
  • 数据有删失用生存分析;用于分层、预算、长期 ROI。

返回模块 | 返回总览

16-多目标优化/159.md

第 159 题:多目标的在线融合,A/B测试驱动的权重调整?

题目

多目标的在线融合,A/B测试驱动的权重调整?


完整讲解

一、多目标的在线融合

多目标(点击、转化、时长、留存等)在线上需融合成单一排序分决策在线融合即 serving 时对各目标分数做加权或组合,公式如

其中 为各目标模型输出,融合权重。权重若固定则可能不是当前业务最优;A/B 测试驱动的权重调整即在线上用实验找更好的

二、A/B 测试驱动的权重调整

  • 做法:将融合权重 作为实验变量,设多个实验组(如组 A:;组 B:),在流量上分桶 A/B 测试,按业务主指标(GMV、ROI、留存等)比较,选最优组对应的
  • 迭代:先粗调(如 0.5/1/1.5 三档),再在最优附近细调;或做多臂 bandit(如 Thompson Sampling)在线探索 ,逐步收敛到高指标区域。
  • 注意:主指标需与业务一致;实验周期要够、样本量要足;可分层(新老用户、场景)看 是否需分群。

三、与离线权重的关系

  • 离线:训练时多任务损失权重 影响各目标塔的梯度;离线调 可得到不同帕累托点。
  • 在线:融合权重 作用在推理分数上,与离线 可不同。通常先离线定各目标模型(或固定 ),再在线调 做融合,因在线调 成本低、可快速 A/B;若需大范围调目标相对重要性,可同时调离线 与在线
  • 一致性:离线优化目标与线上主指标应对齐;若线上主指标为 GMV,融合权重 应朝「GMV 最优」调,而非单纯点击或转化。

四、工程要点

  • 融合公式与 配置化,便于实验与回滚;可支持分场景/分人群(如新用户偏点击、老用户偏转化)。
  • 监控各目标分与融合分的分布,避免某路模型退化导致融合失真。

面试要点

  • 能说明多目标在线融合的形式(加权和或加权积)及融合权重 的作用。
  • 能说清 A/B 驱动调权:多组 分桶实验、按业务主指标选优、可迭代或 bandit 细调。
  • 能区分离线损失权重 与在线融合权重 ;能提及分群 与主指标对齐。

记忆要点

  • 在线融合:;A/B 测试不同 、按主指标选优。
  • 离线 训模型、在线 融合;可先定模型再在线调 ,或 bandit 细调。
  • 配置化、可分群;主指标与业务对齐。

返回模块 | 返回总览

16-多目标优化/160.md

第 160 题:目标间的因果关系,点击→转化的漏斗建模?

题目

目标间的因果关系,点击→转化的漏斗建模?


完整讲解

一、目标间的因果关系

点击转化存在因果顺序:用户先曝光→再点击→再转化。即「点击」是「转化」的前置事件,转化只在点击样本中发生。因果关系指:我们关心的是「推荐某 item 是否会导致用户转化」,而不仅是「点击与转化是否相关」;混淆因素(如位置、用户意图)会同时影响点击与转化,需在建模中区分因果效应与相关。

二、点击→转化的漏斗

  • 漏斗:曝光 → 点击 → 转化。样本空间逐级缩小:全量曝光、点击子集、转化子集。若单独建 CVR 模型,训练集=点击样本,但推理要对曝光样本预估 CVR,存在样本选择偏差(SSB)曝光偏差
  • 因果视角:转化率 = 。即 CTCVR = CTR × CVR;CVR 的条件是「已点击」,与「曝光」不同,故需在全空间(曝光)上联合建模 CTR 与 CVR,如 ESMM,使 CVR 的梯度来自曝光空间,与 141/151 题一致。
  • 因果效应:若要做「推荐 item A 相比不推荐能带来多少增量转化」,需因果推断(如 IPW、doubly robust、Uplift)估计 treatment 效应,而非仅预测 CVR;漏斗建模解决的是「预估」问题,因果推断解决的是「归因与决策」问题。

三、漏斗建模的实践

  • 分解建模:显式建 CTR 与 CVR 两阶段,CTCVR = CTR × CVR;训练时用 ESMM 等保证样本空间一致;推理时对曝光算 CTCVR 或单独 CVR(在点击后场景)。
  • 多任务:CTR、CVR、CTCVR 多任务共享表示,主损失为 CTCVR 或 CTR+CVR 联合;辅助点击序列、转化序列等可进一步刻画漏斗。
  • 纠偏:用 IPW、PAL 等对点击与转化阶段的偏差(位置、选择)做纠偏,使预估更接近因果效应或无偏指标。

四、与多目标的关系

  • 点击与转化作为多目标时,既要注意顺序(转化依赖点击)、也要注意样本空间一致;长期价值、留存等可视为漏斗更下游的目标,同样存在条件分布与样本空间问题,可类比建模。

面试要点

  • 能说明点击→转化的因果顺序与漏斗;样本选择偏差(CVR 在点击上训、在曝光上推)。
  • 能写出 CTCVR = CTR × CVR,并说明 ESMM 等在全空间建模、保证一致性的思路。
  • 能区分「漏斗预估」与「因果效应估计」;能提及多任务、IPW/PAL 纠偏。

记忆要点

  • 点击→转化有因果顺序;漏斗=曝光→点击→转化;CVR 训练在点击、推理在曝光→SSB。
  • CTCVR = CTR × CVR;ESMM 全空间训、CVR 梯度来自曝光,一致性。
  • 因果效应需 IPW/DR/Uplift;漏斗建模为预估、因果推断为归因与决策。

返回模块 | 返回总览

16-多目标优化/README.md

16-多目标优化(第 151–160 题)

题号 主题 文章
151 点击与转化的联合建模,ESMM的样本空间一致性? 151.md
152 观看时长预测,加权Logistic回归 vs 分位数回归… 152.md
153 点赞与收藏的稀疏性,过采样与损失加权的比较? 153.md
154 多目标的帕累托最优,标量化方法的权重搜索? 154.md
155 约束优化,预算消耗约束的拉格朗日松弛? 155.md
156 多目标的层次化,主目标与保护目标的优先级? 156.md
157 长期价值预测,强化学习的价值函数近似? 157.md
158 用户生命周期价值,生存分析与回归的联合建模? 158.md
159 多目标的在线融合,A/B测试驱动的权重调整? 159.md
160 目标间的因果关系,点击→转化的漏斗建模? 160.md

返回总览

17-拍卖理论/161.md

第 161 题:广义第二价格(GSP)的纳什均衡,广告主虚报出价的动机?

题目

广义第二价格(GSP)的纳什均衡,广告主虚报出价的动机?


完整讲解

一、GSP 机制简述

广义第二价格(GSP):多个广告位按点击率或质量从高到低排序,广告主按下一名出价(或按下一名出价×质量得分)付费,即「你付的单价 = 把你挤下去的那位的有效出价」。与 VCG 不同,GSP 不是激励相容的:真实出价不一定是占优策略。

二、纳什均衡与虚报动机

  • 均衡:在对称独立私有价值(SIPV)等简化假设下,GSP 存在对称纳什均衡,均衡出价与真实估价有关(如单调递增),但一般不等于真实估价。
  • 虚报动机:若对手出价或质量得分不确定,抬高出价可能抢到更好位置、带来更多点击,收益增加;压低出价可能少付、但失去曝光。因此广告主有动机根据对竞争格局的估计策略性出价(可高于或低于真实价值),即存在虚报(或「博弈式」出价)动机。
  • 与 VCG 对比:VCG 下真实出价是占优策略;GSP 下需通过出价策略/学习(如自动出价、均衡学习)逼近稳定,平台常用 GSP 因其实现简单、收入往往不逊于 VCG。

三、工程要点

  • 实际系统中用自动出价(如目标 CPA/ROAS)均衡感知的出价指导来缓解单广告主的策略博弈,并配合预算/频控与反欺诈。

面试要点

  • 能说清 GSP 规则:按有效出价排序,按下一名(或下一名有效出价)付费;与 VCG 的「付边际社会成本」区别。
  • 能说明 GSP 非激励相容:存在虚报动机,均衡出价 ≠ 真实估价;能简述对称纳什均衡存在性及虚报的收益/风险权衡。
  • 能对比 GSP 与 VCG 在激励相容与计算/实现复杂度上的取舍。

记忆要点

  • GSP:下一名付费;存在纳什均衡但非激励相容,广告主有策略性出价(虚报)动机。
  • VCG 真实出价占优;GSP 实现简单、收入常接近 VCG,工程上常用自动出价与均衡学习缓解博弈。

返回模块 | 返回总览

17-拍卖理论/162.md

第 162 题:VCG机制的激励相容性,计算复杂度的不可行性?

题目

VCG机制的激励相容性,计算复杂度的不可行性?


完整讲解

一、VCG 机制与激励相容

VCG(Vickrey-Clarke-Groves):每人付的款 = 因自己参与而给他人造成的社会成本(即其他人总福利的减少量)。在单物品/多物品分配中,真实报价是占优策略:无论他人如何出价,报真实估价都能使自己的效用最大化(激励相容);且有效分配使社会总福利最大(配置有效)。

二、计算复杂度的不可行性

  • 多物品/组合拍卖:求社会福利最大的分配是组合优化问题(如多槽广告分配、多物品组合),一般为 NP-hard。VCG 需要精确求解最优分配并计算每个参与者的支付,大规模下不可行。
  • 支付计算:每人支付 = 「无 i 时的最优社会福利」−「有 i 时除 i 外其余人在最优解中的福利」,需对每个参与者解一次「去掉该参与者」的最优子问题,计算量成倍增加。
  • 隐私与信息:VCG 需集中式收集所有报价并求解全局最优,对隐私、通信与中心算力要求高,在实时竞价(RTB)等场景难以满足延迟与规模。

三、工程取舍

  • 实际广告/推荐中多用 GSP 等近似机制:实现简单、单轮求解快,虽非激励相容但可通过自动出价与学习逼近稳定;或在小规模/离线场景用 VCG 做理论基准。

面试要点

  • 能说清 VCG 支付定义(边际社会成本)及为何真实出价是占优策略(激励相容)。
  • 能说明多物品/组合情形下最优分配为 NP-hard,VCG 需多次求解最优与支付,计算与工程上不可行。
  • 能简述为何工业界常用 GSP 而非 VCG:实现与延迟、规模、隐私的权衡。

记忆要点

  • VCG:付边际社会成本;真实出价占优,激励相容、配置有效。
  • 组合/多物品最优分配 NP-hard,VCG 支付需重复求解,大规模实时场景不可行;工程上多用 GSP 等近似机制。

返回模块 | 返回总览

17-拍卖理论/163.md

第 163 题:预算约束下的最优出价,pacing控制的反馈回路设计?

题目

预算约束下的最优出价,pacing控制的反馈回路设计?


完整讲解

一、预算约束与 pacing 目标

广告主有日/周预算上限,希望在整个周期内平滑消耗并尽量把预算花在高价值流量上。目标可形式化为:在预算约束下最大化转化/价值,或给定目标 CPA/ROAS 下尽量跑满预算。

二、Pacing 控制的反馈回路

  • 反馈量:通常用已消耗预算 / 总预算(或剩余预算、消耗速率)作为状态;目标为「消耗曲线」尽量平滑且不超支。
  • 控制律:根据当前消耗与目标曲线比较,调高出价(加速消耗)或调低出价/参与率(减速);常用 PID、比例控制或基于强化学习/在线学习的控制器。
  • 闭环:出价 → 赢得曝光与消耗 → 观测消耗与转化 → 更新状态 → 调整出价,形成负反馈:超速则降出价,欠速则升出价,使实际消耗跟踪目标。

三、工程要点

  • 需处理延迟(转化滞后)、噪声(转化稀疏)和多目标(CPA/ROAS/填充率);常用分层控制(账户级 pacing + 单元级出价)与安全边界(预算预留、硬上限)防止超支。

面试要点

  • 能说清预算约束下最优出价的目标:平滑消耗、高价值流量优先、不超支。
  • 能描述 pacing 反馈回路:状态(已耗/预算)、控制量(出价或参与率)、负反馈使消耗跟踪目标。
  • 能列举实现手段:PID/比例控制、RL、分层控制、延迟与噪声处理。

记忆要点

  • 预算约束下 pacing:目标为平滑消耗、不超支;状态=消耗/预算,控制=出价,负反馈闭环。
  • 控制律:PID、比例或 RL;工程上分层控制、处理延迟与转化噪声、设硬上限防超支。

返回模块 | 返回总览

17-拍卖理论/164.md

第 164 题:实时竞价(RTB)的决策延迟,100ms内的价值预估?

题目

实时竞价(RTB)的决策延迟,100ms内的价值预估?


完整讲解

一、RTB 与决策延迟

实时竞价(RTB):每次广告请求在极短时间窗口内(通常 几十到 100ms)完成出价、比价、竞价与返回创意。延迟来自:网络 RTT、预估服务(CTR/CVR、价值)、出价逻辑、日志与监控。

二、100ms 内的价值预估

  • 预估目标:在 100ms 内完成点击率(CTR)/ 转化率(CVR)或 eCPM/ 价值预估,供出价决策使用。常用离线训练模型 + 在线低延迟推理(预计算特征、模型量化、缓存、专用 serving)。
  • 延迟拆解:特征获取(用户、上下文、历史)→ 模型推理 → 出价计算。需压缩每一环:特征用缓存/预取、模型用小模型或蒸馏、批处理与异步要谨慎以免拉高尾延迟。
  • 精度与延迟权衡:更复杂模型/更多特征往往更准但更慢;工程上通过 A/B 测延迟与收入,确定可接受的简化(特征裁剪、模型剪枝、早停)。

三、工程要点

  • 预加载用户/上下文特征、本地或近端推理、超时与降级策略(超时则保守出价或放弃);监控 P99 延迟与超时率。

面试要点

  • 能说明 RTB 的端到端延迟约束(如 100ms)及主要耗时环节:特征、推理、出价。
  • 能说清 100ms 内价值预估的取舍:特征与模型简化、缓存、量化、预计算,以及精度与延迟的权衡。
  • 能列举降延迟手段:特征缓存/预取、小模型/蒸馏、超时与降级。

记忆要点

  • RTB 决策常在 100ms 内完成;价值预估 = 特征 + 模型推理 + 出价,每环都需压延迟。
  • 手段:特征缓存/预取、模型简化/量化、超时与降级;在延迟约束下做精度与延迟的 A/B 权衡。

返回模块 | 返回总览

17-拍卖理论/165.md

第 165 题:私有市场(PMP)的优先交易,保留价的最优设定?

题目

私有市场(PMP)的优先交易,保留价的最优设定?


完整讲解

一、PMP 与优先交易

私有市场(PMP,Private Marketplace):买卖双方预先约定价格、受众或库存,请求优先走 PMP 再进入开放 RTB。优先交易指优质/高价流量优先满足 PMP 合约,剩余再竞价;可提高填充率与收入可预测性。

二、保留价(Reserve Price)的作用

  • 定义:卖方设定的最低成交价,出价高于保留价才可成交。用于保障底价、过滤低质需求、引导均衡价格。
  • 最优设定:理论上存在使期望收入(或长期 GTV)最大的保留价:太高则流拍多、填充与收入降;太低则低价成交多、单价低。需根据需求分布、竞争程度与历史数据估计最优保留价(可建模为单参数优化或小规模实验)。
  • PMP 场景:PMP 通常已有协议价,保留价多用于非 PMP 的竞价部分(如 remnant);也可对 PMP 分层设置不同底价以区分优先级。

三、工程要点

  • 保留价可动态化:按流量质量、时段、地域等调参;需与 pacing、频控配合,避免过度限制填充。

面试要点

  • 能说清 PMP 与优先交易:预约定价/库存、优先满足合约再开放竞价。
  • 能解释保留价的含义及对填充与单价的影响;能简述最优保留价的思路(期望收入最大化、依需求分布与竞争调参)。
  • 能说明 PMP 与保留价在 remnant 流量上的配合使用。

记忆要点

  • PMP:优先交易、预约定价;保留价为最低成交价,用于保障底价与收入。
  • 最优保留价:权衡填充与单价,依需求分布与竞争估计;可动态化、与 PMP 分层配合。

返回模块 | 返回总览

17-拍卖理论/166.md

第 166 题:头部竞价(Header Bidding)的瀑布流优化,延迟与填充率的权衡?

题目

头部竞价(Header Bidding)的瀑布流优化,延迟与填充率的权衡?


完整讲解

一、Header Bidding 与瀑布流

Header Bidding:在页面头部同时向多家需求方发起请求,并行竞价,取高价成交,打破传统瀑布流「按顺序依次询价」的串行结构。瀑布流(Waterfall):按优先级依次请求各买方,接受第一个达标出价或依次 fallback;延迟低但可能卖贱。

二、延迟与填充率的权衡

  • 延迟:Header Bidding 并行请求,总延迟受最慢一家影响;若设置超时或放弃慢方,则可能损失部分出价,填充率或收入可能下降。瀑布流串行,单次请求快,但总轮次多时延迟累加。
  • 填充率:并行竞价能拿到更多有效出价,通常填充率与 eCPM 更高;瀑布流靠顺序 fallback,填充依赖各层出价与超时设置。
  • 优化:设置合理超时(如 200–500ms)、并行与瀑布混合(先并行一轮,未成交再瀑布)、分层与优先级(高价/品牌优先),在延迟 SLA 内尽量提升填充与收入。

三、工程要点

  • 监控各需求方延迟与超时率、填充率、eCPM;动态调整超时与请求顺序;前端/服务端 Header Bidding 的部署方式对延迟与隐私有不同影响。

面试要点

  • 能区分 Header Bidding(并行竞价)与瀑布流(串行 fallback)的流程与优劣。
  • 能说清延迟与填充的权衡:并行易受最慢方影响,超时会损填充;瀑布延迟可控但可能卖贱。
  • 能列举优化手段:超时设置、并行+瀑布混合、分层优先级与监控。

记忆要点

  • Header Bidding 并行竞价提升填充与 eCPM;瀑布流串行、延迟可控但易卖贱。
  • 权衡:并行延迟受最慢方影响,超时损填充;优化为超时、并行+瀑布混合、分层与监控。

返回模块 | 返回总览

17-拍卖理论/167.md

第 167 题:广告频控的凸优化,曝光次数与转化率的边际递减?

题目

广告频控的凸优化,曝光次数与转化率的边际递减?


完整讲解

一、频控目标与边际递减

频控:限制同一用户对同一广告的曝光次数(或时间窗口内曝光),避免过度打扰、疲劳与无效曝光。边际递减:随曝光次数增加,单次曝光带来的点击/转化增量逐渐下降(甚至为负),即曝光—效果曲线呈凹函数(边际效益递减)。

二、凸优化视角

  • 目标:在预算与频控约束下,最大化总转化(或点击、价值)。若将「曝光次数」视为决策变量、效果视为曝光次数的凹函数,则问题可形式化为凸优化(如约束为线性、目标为凹)。
  • 边际递减:数学上对应目标函数对曝光次数的二阶导为负(凹);最优解往往在「边际效益 = 边际成本」处,即不会无限制加频,而是按用户价值分配曝光上限。
  • 实现:可用梯度/对偶方法求解;工程上常用规则+上限(如 cap 3 次/天)或在线分配(按实时价值与剩余频次决策是否展示)。

三、工程要点

  • 频控与 pacing、出价联合优化;需区分「曝光—转化」的边际曲线在不同人群/场景的差异,必要时分群建模。

面试要点

  • 能说清频控目的(避免过度曝光、疲劳)与曝光—效果边际递减的含义。
  • 能将频控下的效果最大化表述为凸优化(目标凹、约束线性),并说明边际递减对应凹函数。
  • 能简述求解思路:规则 cap、在线分配或梯度/对偶;与出价、pacing 的联合考虑。

记忆要点

  • 频控限制曝光次数;效果随曝光边际递减(凹),最优在边际效益=边际成本处。
  • 可建模为凸优化;实现为规则 cap、在线分配或对偶方法,与出价/pacing 联合。

返回模块 | 返回总览

17-拍卖理论/168.md

第 168 题:品牌安全与可见度,viewability的测量与优化?

题目

品牌安全与可见度,viewability的测量与优化?


完整讲解

一、品牌安全与可见度(Viewability)

品牌安全:广告不出现在有害、违规或品牌不希望的内容/语境下,避免品牌形象受损。Viewability(可见度):广告是否被用户实际看到(如 50% 像素可见 ≥ 1 秒),行业常用 MRC 等标准度量;不可见曝光对品牌与效果价值低。

二、Viewability 的测量

  • 测量方式:前端埋点或 SDK 采集视口、可见比例、可见时长;或基于几何与曝光时间估算。需统一口径(如 50% 像素、1 秒)以便结算与优化。
  • 挑战:测量有延迟与噪声、作弊(伪造可见)、跨设备与隐私限制下的覆盖率;通常采用抽样或模型预估补全。

三、优化思路

  • 投放优化:优先采买高 viewability 库存、避开低可见位;或在出价/排序中引入 viewability 预估(如 eCPM × 可见概率),使预算向可被看见的曝光倾斜。
  • 产品与合约:与媒体约定「按可见曝光结算」、设置 viewability 保底;结合品牌安全名单(黑名单/白名单、内容分类)过滤风险流量。

面试要点

  • 能区分品牌安全(内容/语境适宜)与 viewability(广告是否被看见);能说清常见 viewability 标准(如 50%、1 秒)。
  • 能简述测量方式(前端埋点、几何与时长)及挑战(延迟、作弊、覆盖率)。
  • 能说明如何用 viewability 做投放优化与结算(按可见曝光、保底、出价加权)。

记忆要点

  • 品牌安全:内容/语境适宜;viewability:广告被实际看见(如 50% 像素 1 秒),MRC 等标准。
  • 测量:前端埋点/几何;优化:高可见库存优先、出价加权、按可见结算与品牌安全名单。

返回模块 | 返回总览

17-拍卖理论/169.md

第 169 题:广告欺诈检测,异常点击模式的实时识别?

题目

广告欺诈检测,异常点击模式的实时识别?


完整讲解

一、广告欺诈与异常点击

广告欺诈:通过虚假点击、展示或转化骗取分成或消耗广告主预算(如刷量、点击农场、僵尸流量)。异常点击:在时间、地域、设备、行为模式上明显偏离正常分布的点击,常作为欺诈的代理信号。

二、异常模式的实时识别

  • 特征:点击率异常高、重复 IP/设备、短时间密集点击、地域/时段与历史不符、无后续转化、与展示量不匹配等;可做规则引擎(阈值、黑名单)与模型(分类/异常检测)结合。
  • 实时性:在点击上报或计费前做实时过滤(毫秒级):规则匹配、轻量模型推理、设备/IP 画像与图关系;延迟高时可先放行再异步扣费或赔付。
  • 模型:用历史标注(已知作弊/正常)训练二分类或异常检测(如 Isolation Forest、自编码器);在线用特征拼接 + 模型打分,高于阈值则拦截或降权。

三、工程要点

  • 特征管道低延迟、模型定期更新;黑名单与图扩散(关联设备/IP)提高召回;需平衡误杀与漏杀(误杀损收入、漏杀损信任)。

面试要点

  • 能说清广告欺诈类型(虚假点击、刷量)及异常点击的典型特征(CTR、IP/设备、时序、转化)。
  • 能描述实时识别链路:规则 + 模型、特征、阈值与黑名单;延迟约束下的实时 vs 异步处理。
  • 能列举模型与工程手段:分类/异常检测、图扩散、误杀与漏杀权衡。

记忆要点

  • 欺诈:虚假点击/刷量;异常点击特征:CTR、IP/设备、时序、转化异常。
  • 实时识别:规则+模型、黑名单、图扩散;平衡误杀与漏杀,特征与模型低延迟。

返回模块 | 返回总览

17-拍卖理论/170.md

第 170 题:增量价值(Incrementality)衡量,PSM与双重差分方法?

题目

增量价值(Incrementality)衡量,PSM与双重差分方法?


完整讲解

一、增量价值(Incrementality)的含义

增量价值:因投放广告而带来的额外转化/价值(即「有广告 − 无广告」的因果效应),而非自然转化或本就会发生的转化。衡量增量可避免把自然转化归因给广告、正确评估投放 ROI。

二、PSM(倾向得分匹配)

  • 思路:将「看过广告」与「未看过广告」的用户按倾向得分(如观看广告的概率,由特征预测)匹配,使两组在可观测特征上近似平衡,再比较转化差异,估计平均处理效应(ATE)
  • 步骤:用逻辑回归等估计倾向得分 → 对每个处理组样本找对照组中得分相近的匹配 → 用匹配后的转化差估计增量。依赖「给定倾向得分后处理近似随机」的可忽略性假设。

三、双重差分(DID)

  • 思路:比较处理组对照组投放前后的转化变化之差:增量 ≈ (处理组后−处理组前) − (对照组后−对照组前),可消除不随时间变的组间差异与共同时间趋势。
  • 前提:平行趋势假设(若无干预,两组变化趋势一致);对照组选未曝光或自然对照组。
  • 与 PSM 结合:可先 PSM 构造可比对照组,再在匹配样本上做 DID,提高因果识别可信度。

面试要点

  • 能说清增量价值的定义(有广告 vs 无广告的因果效应)及为何要衡量增量。
  • 能简述 PSM:倾向得分、匹配、估计 ATE;依赖可忽略性。
  • 能写出 DID 公式并说明平行趋势假设;能说明 PSM+DID 的联合使用场景。

记忆要点

  • 增量 = 有广告 − 无广告的因果效应;PSM 用倾向得分匹配后比较转化差估计 ATE。
  • DID:(处理组后−前) − (对照组后−前),需平行趋势;可与 PSM 结合提高可比性。

返回模块 | 返回总览

17-拍卖理论/README.md

17-拍卖理论(第 161–170 题)

题号 主题 文章
161 广义第二价格(GSP)的纳什均衡,广告主虚报出价的动机? 161.md
162 VCG机制的激励相容性,计算复杂度的不可行性? 162.md
163 预算约束下的最优出价,pacing控制的反馈回路设计? 163.md
164 实时竞价(RTB)的决策延迟,100ms内的价值预估? 164.md
165 私有市场(PMP)的优先交易,保留价的最优设定? 165.md
166 头部竞价(Header Bidding)的瀑布流优化,延… 166.md
167 广告频控的凸优化,曝光次数与转化率的边际递减? 167.md
168 品牌安全与可见度,viewability的测量与优化? 168.md
169 广告欺诈检测,异常点击模式的实时识别? 169.md
170 增量价值(Incrementality)衡量,PSM与双… 170.md

返回总览

18-推荐策略/171.md

第 171 题:探索与利用的多臂老虎机,UCB与Thompson Sampling的收敛速度?

题目

探索与利用的多臂老虎机,UCB与Thompson Sampling的收敛速度?


完整讲解

一、多臂老虎机与探索—利用权衡

多臂老虎机(MAB):每轮选一个臂(动作)并得到随机奖励,目标在有限轮次内最大化累计奖励。探索:尝试信息不足的臂以获取更多信息;利用:选当前估计最优的臂以获取即时收益。二者需权衡。

二、UCB(Upper Confidence Bound)

  • 思想:选「估计收益 + 乐观上界」最大的臂,即 (或变体),其中 为总轮数、 为该臂被选次数。上界随尝试次数增加而缩小,自然平衡探索与利用。
  • 收敛:在随机 MAB 下,UCB 的遗憾(与最优臂的累计收益差)为 ,即渐近最优;常数依赖臂间差距。

三、Thompson Sampling(TS)

  • 思想:为每个臂维护奖励分布的后验(如 Beta),每轮从各臂后验抽样得到样本,选样本最大的臂执行;观测到奖励后更新该臂后验。贝叶斯方式自然实现探索—利用。
  • 收敛:在 Bernoulli 等常见设置下,TS 的遗憾也为 ,且常数常优于 UCB;对上下文 Bandit 扩展自然(如 LinTS)。

四、收敛速度对比

  • 二者均为对数遗憾,渐近等价;TS 在小样本时探索更平滑、工程上常更省调参;UCB 确定性、易分析。实际选型看场景(上下文、延迟反馈、可解释性)。

面试要点

  • 能说清 MAB 的探索—利用权衡及 UCB、Thompson Sampling 的基本思想。
  • 能写出 UCB 的选臂公式(估计+置信上界)及 TS 的「后验抽样→选最大」流程。
  • 能说明二者收敛速度均为 遗憾,以及 TS 与 UCB 的适用场景差异。

记忆要点

  • UCB:选估计+上界最大的臂,遗憾 ;TS:后验抽样选最大,同样
  • TS 贝叶斯、探索更平滑;UCB 确定性、易分析;二者渐近等价,按场景选型。

返回模块 | 返回总览

18-推荐策略/172.md

第 172 题:上下文老虎机(LinUCB),特征维度的探索效率?

题目

上下文老虎机(LinUCB),特征维度的探索效率?


完整讲解

一、上下文 Bandit 与 LinUCB

上下文 Bandit:每轮有一个上下文向量(用户/物品特征),奖励与 和所选臂相关。LinUCB:假设奖励关于上下文线性,即 ,用岭回归估计 并构造置信上界,选 为设计矩阵), 控制探索强度。

二、特征维度的探索效率

  • 高维:特征维数 大时,要估计 维参数,样本需求 才能得到可靠估计;探索空间大,收敛变慢。可做特征选择、降维或稀疏假设减少有效维度。
  • 探索项 体现当前上下文在该臂上的不确定性;高维下该范数易大,探索成本高。可通过正则、共享参数(如线性模型只区分臂的偏置)降低维度。
  • 工程:选与奖励相关的特征、控制 、用增量更新 (Sherman-Morrison)保证在线效率。

三、与 Thompson Sampling 对比

  • LinTS:对 用高斯后验,抽样后选 ;同样受特征维度影响,但实现简单、常与 LinUCB 效果相当。

面试要点

  • 能说清上下文 Bandit 与 LinUCB 的线性假设及选臂公式(估计+探索项)。
  • 能说明特征维度高时探索效率下降:样本需求 、不确定性范数大;可特征选择/降维/共享参数。
  • 能简述 LinUCB 与 LinTS 的工程实现要点(增量更新、正则)。

记忆要点

  • LinUCB:奖励线性于上下文,选臂=估计+;高维需 样本、探索成本高。
  • 提升效率:特征选择、降维、共享参数;LinTS 为贝叶斯替代,实现简单。

返回模块 | 返回总览

18-推荐策略/173.md

第 173 题:协同过滤的Bandit,用户-物品矩阵的在线更新?

题目

协同过滤的Bandit,用户-物品矩阵的在线更新?


完整讲解

一、协同过滤与 Bandit 的结合

协同过滤(CF):用用户—物品交互矩阵(显式/隐式)做矩阵分解或近邻,得到用户/物品向量,预测未观测评分或点击。Bandit:在推荐时加入探索,用反馈实时更新策略。协同过滤 + Bandit:用 CF 提供先验或初始排序,用 Bandit(如 UCB、TS)在线上去更新用户—物品偏好或不确定性,实现「利用 CF 结构 + 在线探索」。

二、用户—物品矩阵的在线更新

  • 挑战:传统 CF 多为离线训练、批量更新;在线场景需要增量更新用户/物品向量或置信区间,以反映最新点击/跳过。
  • 做法:(1)增量矩阵分解:新反馈到达后对相关用户/物品向量做梯度更新或 mini-batch 更新。(2)Bandit 层:在 CF 分数上加 UCB/TS 探索项,用实时反馈更新该探索项或局部参数。(3)混合:CF 作为特征或初排,Bandit 控制精排/探索;或用 LinUCB/LinTS 把用户/物品 embedding 当上下文,在线更新
  • 工程:流式更新 embedding、增量 SVD/BPR、缓存与异步更新,保证延迟与一致性。

三、效果与权衡

  • 在线更新使推荐更快适应用户当前兴趣与物品热度;需控制更新频率与稳定性,避免抖动与过拟合噪声。

面试要点

  • 能说清 CF 与 Bandit 结合的目的:利用 CF 结构、在线探索与实时反馈。
  • 能描述用户—物品矩阵(或向量)的在线更新方式:增量分解、Bandit 探索项、LinUCB/LinTS 以 embedding 为上下文。
  • 能列举工程要点:流式/增量更新、缓存、延迟与一致性。

记忆要点

  • CF+Bandit:CF 提供先验/排序,Bandit 在线探索与更新;矩阵/向量需增量更新。
  • 实现:增量分解、UCB/TS 探索项、LinUCB/LinTS;流式更新与缓存保证在线效率。

返回模块 | 返回总览

18-推荐策略/174.md

第 174 题:多样性重排序,MMR的参数调优与多样性度量?

题目

多样性重排序,MMR的参数调优与多样性度量?


完整讲解

一、多样性重排序的目标

初排往往按点击率/收益排序,易导致同质化(同一类物品扎堆)。多样性重排序:在保持相关性的前提下,增加结果在类别、主题、子类型上的分散度,提升体验与长期满意度。

二、MMR(Maximal Marginal Relevance)

  • 公式,其中 为物品 与查询的相关性, 为与已选集合 中物品的相似度。按 MMR 贪心选下一个物品:相关性高且与已选差异大的优先。
  • 参数 大更重相关性, 小更重多样性;需用 A/B 或离线指标(如多样性、覆盖率、用户满意度)调优
  • 多样性度量:可用的有列表内平均相似度、类别熵、基尼分散度、ILAD(intra-list average distance)等;与 MMR 目标一致时可作监控或自动调参依据。

三、工程要点

  • MMR 贪心为 为候选数),可近似:限制与已选集合的比较数量、用聚类/代表点近似、或 DPP 等替代;相似度可用 embedding 余弦或类别层级。

面试要点

  • 能写出 MMR 公式并说明 对相关性—多样性的调节作用。
  • 能说清 MMR 的贪心选序逻辑及复杂度;能列举多样性度量(熵、ILAD、平均相似度)。
  • 能简述 调优与工程近似(降复杂度、DPP 等)。

记忆要点

  • MMR:;贪心选相关性高且与已选差异大的物品。
  • 调参平衡相关与多样;多样性度量:熵、ILAD、平均相似度;工程可近似降复杂度。

返回模块 | 返回总览

18-推荐策略/175.md

第 175 题:新颖性提升,曝光惩罚与惊喜度的量化?

题目

新颖性提升,曝光惩罚与惊喜度的量化?


完整讲解

一、新颖性与惊喜度

新颖性:推荐用户未见过或较少接触的内容,避免重复与信息茧房。惊喜度:推荐既相关又出乎意料的物品,提升惊喜感与探索意愿。二者与准确性需权衡:过于新颖可能不相关,过于保守则无惊喜。

二、曝光惩罚(Exposure Penalty)

  • 思想:在排序或打分时对已曝光/已点击过的物品施加负向惩罚,降低其再次出现的概率,把流量让给未曝光或低曝光物品。
  • 实现:分数 可为曝光次数、最近曝光时间衰减等; 控制惩罚强度。或在损失中加入「曝光分布」的正则,鼓励更均匀曝光。

三、惊喜度的量化

  • 定义:惊喜度可形式化为「相关性 × 意外性」:意外性 = 与用户历史/预期的差异(如 1 − 与历史平均的相似度),或基于信息论(如推荐带来的信息增益)。
  • 度量:可用覆盖率(多少物品被曝光)、基尼(曝光分布均匀度)、惊喜率(用户反馈为「没想到但喜欢」的比例);离线或 A/B 调参。

四、工程要点

  • 曝光信号需实时或近实时可得;惩罚与惊喜度权重与主目标(点击、时长)联合调参,避免过度牺牲主指标。

面试要点

  • 能区分新颖性与惊喜度,并说明与准确性的权衡。
  • 能说清曝光惩罚:在分数上减项或正则,降低高曝光物品权重;能写出简单形式
  • 能简述惊喜度量化思路(意外性、信息增益)及常用指标(覆盖率、基尼、惊喜率)。

记忆要点

  • 新颖性:未见过;惊喜度:相关且意外。曝光惩罚:,压低已曝光物品。
  • 惊喜度=相关性×意外性;指标:覆盖率、基尼、惊喜率;与主目标联合调参。

返回模块 | 返回总览

18-推荐策略/176.md

第 176 题:覆盖率优化,长尾物品的流量分配机制?

题目

覆盖率优化,长尾物品的流量分配机制?


完整讲解

一、覆盖率与长尾问题

覆盖率:推荐结果中不同物品/类别被曝光或消费的比例;高覆盖率意味着更多物品获得流量。长尾物品:曝光或交互较少的物品,若仅按热度/CTR 排序会得不到曝光,形成「马太效应」。

二、长尾流量分配机制

  • 目标:在保证主指标(点击、GMV)的前提下,有意识地给长尾物品分配一定流量,提升覆盖率、新颖性与生态健康。
  • 手段:(1)曝光/流量配额:按物品或类别设最低曝光比例或 slot 预留。(2)探索:Bandit(UCB/TS)或随机插入,给未充分观测物品探索机会。(3)分数修正:对长尾物品加分(如基于曝光数的 boost)、或对热门降权(打压)。(4)分层排序:先按类别/池子分配 slot,再在每类内按相关性排序。(5)公平性约束:在优化目标中加入覆盖率或基尼正则。
  • 权衡:过度倾向长尾会损短期点击/GMV;需用 A/B 与长期指标(留存、多样性、供给侧满意度)调参。

三、工程要点

  • 长尾定义(按曝光/销量分桶)、配额与 boost 的更新频率、与主排序 pipeline 的融合方式(重排层、混排规则)。

面试要点

  • 能说清覆盖率与长尾的定义,以及纯 CTR/热度排序导致的马太效应。
  • 能列举长尾流量分配机制:配额、探索、分数 boost/打压、分层排序、公平性正则。
  • 能说明与主指标的权衡及调参思路(A/B、长期指标)。

记忆要点

  • 覆盖率=不同物品获流量比例;长尾=低曝光物品;需主动分配流量避免马太效应。
  • 机制:配额、探索、boost/打压、分层排序、公平正则;与主指标权衡调参。

返回模块 | 返回总览

18-推荐策略/177.md

第 177 题:公平性约束,人口统计均等 vs 机会均等?

题目

公平性约束,人口统计均等 vs 机会均等?


完整讲解

一、公平性的两种视角

人口统计均等(Demographic Parity):不同群体(如性别、种族)获得正结果的比例相同,即 。不关心个体是否「该得」正结果,只关心群体间比例一致。机会均等(Equalized Odds):在真实标签相同的前提下,不同群体的正例率、假阳率一致,即 ,既控误报也控漏报。

二、区别与取舍

  • 人口统计均等:实现简单、易审计,但可能牺牲效用:若某群体本身正例率低,强行拉齐正结果比例会带来大量误报或对另一群体不公平。机会均等:与真实表现挂钩,更符合「同能力同机会」的直觉,但要求有真实标签、约束更强,满足难度更大。
  • 推荐场景:可类比为「曝光/点击率」的群体均等(类似人口统计均等)与「在同样相关性下曝光/点击率」均等(类似机会均等);需结合业务定义「公平」并选指标。

三、实现思路

  • 在损失中加公平性正则(如群体间比例差的惩罚)、后处理(调阈值使各群体满足约束)、训练时约束(如对抗去偏、重加权);评估时报告各群体的指标与公平性指标。

面试要点

  • 能准确区分人口统计均等(群体正结果比例相同)与机会均等(同真实标签下预测表现相同)。
  • 能说明二者取舍:人口统计均等易实现但可能损效用;机会均等更合理但约束强、需标签。
  • 能简述实现方式:公平性正则、后处理调阈值、训练约束;推荐中可类比曝光/点击的群体均等。

记忆要点

  • 人口统计均等: 同;机会均等: 同。
  • 前者易实现可能损效用,后者更合理但需标签、约束强;实现:正则、后处理、训练约束。

返回模块 | 返回总览

18-推荐策略/178.md

第 178 题:泡泡效应的缓解,跨话题的强制插入策略?

题目

泡泡效应的缓解,跨话题的强制插入策略?


完整讲解

一、信息茧房与泡泡效应

泡泡效应(Filter Bubble):推荐系统过度迎合用户已有兴趣,导致接触的信息越来越单一、同质,形成「信息茧房」。长期会窄化视野、强化偏见、降低探索与满意度。

二、缓解思路:跨话题强制插入

  • 思想:在推荐列表中强制插入与当前主兴趣不同话题/类别的内容,打破同质流,增加多样性与偶然发现。
  • 实现:(1)Slot 预留:固定若干位置(如第 3、7 位)用于跨话题插入,按话题与主列表的差异度选品。(2)多样性重排:在 MMR、DPP 等重排中显式加入「话题/类别」维度,保证不同类都有代表。(3)探索策略:对低曝光话题或「与当前兴趣距离适中」的内容做 Bandit 探索或加权。
  • 强度控制:插入比例或多样性权重过大会损相关性与点击;需 A/B 调参,兼顾短期点击与长期多样性、留存。

三、工程要点

  • 话题/类别体系需稳定、可解释;插入逻辑与主排序解耦便于调参;监控各话题的曝光与消费分布。

面试要点

  • 能说清泡泡效应(过度迎合导致信息单一)及危害。
  • 能描述跨话题强制插入:slot 预留、多样性重排、探索;控制插入强度与主目标权衡。
  • 能简述话题体系与监控指标(各话题曝光/消费分布)。

记忆要点

  • 泡泡效应:过度迎合→信息单一;缓解=跨话题插入(slot 预留、MMR/DPP、探索)。
  • 插入强度需与主目标权衡;话题体系稳定、监控各话题分布。

返回模块 | 返回总览

18-推荐策略/179.md

第 179 题:实时热门与个性化,热度的时效性衰减?

题目

实时热门与个性化,热度的时效性衰减?


完整讲解

一、实时热门与个性化

实时热门:基于近期(分钟/小时级)的点击、播放、分享等行为统计出的热门内容,适合「大家都在看」场景。个性化:基于用户长期兴趣与上下文,推荐更贴合个人的内容。二者结合可既有时效热点又有个人偏好。

二、热度的时效性衰减

  • 问题:热门若仅用「历史累计」或长窗口统计,会滞后长尾难出头;新热内容需要快速抬升、旧热需要逐渐降温。
  • 衰减方式:(1)时间衰减:热度 = 增大而减小,如指数衰减 或滑窗只计最近 小时。(2)牛顿冷却:热度随时间指数衰减,新交互按权重加回,实现「越新越重要」。(3)分段窗口:近 1h / 24h / 7d 分别算热度再线性或加权融合,兼顾爆发与持续。
  • 与个性化融合:热门分数与个性化分数线性或模型融合;或热门作为一路召回、与个性化召回一起进入精排。

三、工程要点

  • 实时 pipeline(流式聚合、窗口计算)保证热度更新延迟低;衰减参数与窗口大小用 A/B 与留存/时长调优。

面试要点

  • 能区分实时热门与个性化,并说明结合方式(融合分数、双路召回)。
  • 能说清热度时效性衰减的必要性及实现:时间衰减、牛顿冷却、分段窗口。
  • 能简述实时热度 pipeline 与衰减参数调优。

记忆要点

  • 实时热门+个性化:热门用近期行为、衰减保证时效;与个性化分数或双路召回融合。
  • 衰减:指数/滑窗、牛顿冷却、分段窗口;实时 pipeline 低延迟更新。

返回模块 | 返回总览

18-推荐策略/180.md

第 180 题:负反馈处理,显式不喜欢与隐式跳过的联合建模?

题目

负反馈处理,显式不喜欢与隐式跳过的联合建模?


完整讲解

一、负反馈的类型

显式不喜欢:用户主动点「不感兴趣」「屏蔽」等。隐式跳过:用户看到但不点击、快速划过、短停留即离开。二者都表达「不想要」,但信号强度与噪声不同:显式更准、更稀疏;隐式更密、需与「未看到」区分。

二、联合建模的意义

  • 单独建模:仅用正反馈(点击、完播)易把「未点击」全当负样本,混淆「不喜欢」与「未曝光/未注意」;仅用显式不喜欢则数据稀疏。
  • 联合建模:同时利用显式不喜欢与隐式跳过,可更准确刻画用户不感兴趣:显式作为强负样本或约束,隐式作为弱负或降权正样本;或建多任务(点击、跳过、不喜欢)共享表示、分头预测。

三、常见做法

  • 样本构造:显式不喜欢→负样本;隐式跳过(如曝光无点击且短停留)→负样本或降权;未曝光/未注意→不参与或低权重。
  • 模型:双塔/序列模型在 loss 中对显式负、隐式负设不同权重;或增加「不喜欢」头、与 CTR 联合训练。
  • 排序与过滤:预测「不感兴趣」概率,在排序中惩罚或直接过滤高不感兴趣物品;显式不喜欢可进黑名单或约束 embedding 距离。

面试要点

  • 能区分显式不喜欢与隐式跳过,并说明联合建模的必要性(显式稀疏但准、隐式密但需区分未注意)。
  • 能描述样本构造:显式负、隐式负(含权重)与未曝光处理;能简述多任务或联合 loss 的做法。
  • 能说明在排序/过滤中如何使用「不感兴趣」预测与黑名单。

记忆要点

  • 显式不喜欢=强负、稀疏;隐式跳过=弱负、密;联合建模更准刻画不感兴趣。
  • 样本:显式负、隐式负加权;模型可多任务;排序中惩罚或过滤高不感兴趣、黑名单。

返回模块 | 返回总览

18-推荐策略/README.md

18-推荐策略(第 171–180 题)

题号 主题 文章
171 探索与利用的多臂老虎机,UCB与Thompson Sam… 171.md
172 上下文老虎机(LinUCB),特征维度的探索效率? 172.md
173 协同过滤的Bandit,用户-物品矩阵的在线更新? 173.md
174 多样性重排序,MMR的参数调优与多样性度量? 174.md
175 新颖性提升,曝光惩罚与惊喜度的量化? 175.md
176 覆盖率优化,长尾物品的流量分配机制? 176.md
177 公平性约束,人口统计均等 vs 机会均等? 177.md
178 泡泡效应的缓解,跨话题的强制插入策略? 178.md
179 实时热门与个性化,热度的时效性衰减? 179.md
180 负反馈处理,显式不喜欢与隐式跳过的联合建模? 180.md

返回总览

19-内容安全与治理/181.md

第 181 题:有害内容的识别,多模态融合的风险检测?

题目

有害内容的识别,多模态融合的风险检测?


完整讲解

一、有害内容的类型与识别

有害内容:暴力、色情、仇恨言论、自伤、虚假信息、侵权等。识别:多采用分类模型(文本/图像/视频)判定是否违规及类别,结合规则与名单(关键词、哈希、实体)做召回与兜底。

二、多模态融合

  • 动机:有害信息常跨模态(图文搭配、视频含语音与画面),单模态易漏检或误判;多模态融合可综合文本、图像、音频、行为等,提升鲁棒性与准确率。
  • 融合方式:(1)早期融合:多模态特征在底层拼接或对齐后进统一编码器。(2)晚期融合:各模态单独模型得到分数,再加权或学习融合。(3)跨模态注意力:文本与图像互做 attention,捕捉图文一致/矛盾(如图与文不符的虚假信息)。
  • 风险检测:除二分类「是否有害」外,可输出风险等级多标签(暴力/色情/仇恨…),供分级处置(删除、限流、人工复核)。

三、工程要点

  • 多模态模型计算与延迟更高,可分级:先单模态粗筛,可疑再多模态精判;持续收集边界 case 做标注与迭代。

面试要点

  • 能列举有害内容类型及识别手段(分类模型、规则、名单)。
  • 能说清多模态融合的动机与方式:早/晚融合、跨模态注意力;与风险等级/多标签输出。
  • 能简述分级策略与延迟权衡(粗筛→精判)。

记忆要点

  • 有害内容:暴力/色情/仇恨等;识别=模型+规则+名单;多模态融合提升鲁棒性。
  • 融合:早/晚融合、跨模态注意力;输出风险等级/多标签;分级处置与延迟权衡。

返回模块 | 返回总览

19-内容安全与治理/182.md

第 182 题:虚假信息检测,传播模式与内容特征的联合?

题目

虚假信息检测,传播模式与内容特征的联合?


完整讲解

一、虚假信息与检测难点

虚假信息:谣言、伪造新闻、深度伪造(Deepfake)等,意图误导或操纵。难点:形式多样(文本、图、视频)、传播快、常与真实信息混杂;单靠内容语义难以区分,需结合传播模式来源/行为

二、传播模式特征

  • 扩散结构:虚假信息往往传播更快、更集中(如大量转发来自少数节点、爆发式增长);真实信息扩散更分散、有更多独立验证路径。
  • 时序与图:用传播图(谁转谁、何时)建图神经网络或时序模型,学习「异常扩散」模式;或提取图统计量(深度、宽度、爆发度)作为特征。
  • 行为信号:机器人账号、新注册账号集中转发、评论情感异常等,可作为辅助特征。

三、内容特征与联合建模

  • 内容特征:文本语义(情感、夸张、来源引用)、图像一致性(篡改检测、Deepfake 检测)、多模态不一致(图文不符)。
  • 联合:将传播特征(图、时序、统计量)与内容特征(文本/图像 embedding、分类 logits)拼接或注意力融合,端到端训练「是否虚假」分类器;或两路模型分别打分再融合。联合建模能同时利用「说什么」和「怎么传」,提高泛化与鲁棒性。

四、工程要点

  • 传播图与时序需近实时构建;标注依赖事实核查与人工,可结合弱监督与主动学习。

面试要点

  • 能说明虚假信息检测为何需结合传播与内容:单内容易漏、传播模式有差异。
  • 能描述传播模式特征:扩散结构、图/时序、行为信号;内容特征:语义、多模态、一致性。
  • 能说清联合建模方式:传播+内容特征拼接或双路融合;工程上的实时性与标注。

记忆要点

  • 虚假信息:单靠内容难判,需传播模式+内容;传播=扩散结构、图/时序、行为。
  • 联合:传播特征+内容特征融合或双路;工程:近实时图构建、标注与弱监督。

返回模块 | 返回总览

19-内容安全与治理/183.md

第 183 题:版权内容的过滤,感知哈希的鲁棒性?

题目

版权内容的过滤,感知哈希的鲁棒性?


完整讲解

一、版权过滤与感知哈希

版权过滤:识别并拦截未授权使用的音乐、视频、图片等,避免侵权。感知哈希(pHash):对内容做感知相关的摘要(对缩放、压缩、轻微裁剪等不敏感),相同或相似内容得到相近哈希,便于快速比对与去重。

二、感知哈希的鲁棒性

  • 理想性质:对内容保持类变换鲁棒:缩放、压缩、亮度微调、小裁剪、水印等应仍能匹配;对不同内容敏感:哈希差异大。
  • 实现:DCT 域(如 pHash)、小波、特征点等;将图像/音频降采样到固定大小、做 DCT 等变换、取低频或符号化得到定长哈希。汉明距离衡量两哈希相似度,低于阈值视为同一或高度相似。
  • 局限:强裁剪、大变形、深度风格化可能改变感知哈希;需与鲁棒特征(如深度特征)多级索引结合,平衡鲁棒性与区分度。

三、工程要点

  • 大规模版权库用索引(如 LSH、倒排)加速检索;结合精确指纹(如 ACR)与感知哈希做多级过滤,降低误杀与漏杀。

面试要点

  • 能说清版权过滤的目的与感知哈希的概念(感知相关摘要、相似内容相近哈希)。
  • 能说明鲁棒性:对缩放/压缩/小裁剪不敏感;实现思路(DCT、汉明距离)与局限。
  • 能简述大规模检索(索引、LSH)与多级过滤(指纹+哈希)。

记忆要点

  • 感知哈希:感知相关摘要,相似内容哈希相近;对缩放/压缩/小裁剪鲁棒,汉明距离判相似。
  • 局限:大裁剪/变形可能失效;工程:索引、LSH、多级过滤(指纹+哈希)。

返回模块 | 返回总览

19-内容安全与治理/184.md

第 184 题:未成年人保护,年龄推断与内容分级?

题目

未成年人保护,年龄推断与内容分级?


完整讲解

一、未成年人保护的目标

保护未成年人免受不当内容(暴力、色情、过度消费引导等)影响,满足合规与伦理要求。手段包括年龄推断(识别未成年人)、内容分级(对内容打年龄标签)与访问控制(按年龄限制展示或功能)。

二、年龄推断

  • 输入:注册信息(生日、自报年龄)、行为(使用时长、内容偏好、社交模式)、生物特征(若合规可用人脸年龄估计)等。
  • 方法:规则(如未填生日按未成年处理)、分类模型(基于行为/特征预测是否未成年或年龄段)、多源融合(注册+行为+可选生物)提高置信度。
  • 隐私与合规:年龄推断涉及敏感信息,需最小必要、脱敏与合规;部分地区限制生物识别,需以行为与注册为主。

三、内容分级

  • 分级体系:按地域采用当地标准(如中国年龄提示、欧美 ESRB/PEGI),对内容打年龄标签(如 4+、12+、18+)。
  • 实现:规则(关键词、类别)、模型(多模态分类预测年龄等级)、人工抽检与申诉;新内容上线前分级,存量内容批量或抽样分级。
  • 与年龄推断联动:用户推断年龄/年龄段与内容分级比对,未达年龄则过滤、限流或提示,并可结合家长控制(密码、时间限制)。

面试要点

  • 能说清未成年人保护的目标与手段:年龄推断、内容分级、访问控制。
  • 能描述年龄推断的数据源(注册、行为、可选生物)与方法(规则、模型、融合);能说明内容分级体系与实现(规则、模型、人工)。
  • 能提及隐私合规与家长控制。

记忆要点

  • 未成年保护:年龄推断+内容分级+访问控制;年龄推断=注册/行为/可选生物,内容分级=年龄标签+过滤。
  • 隐私合规;家长控制与分级联动。

返回模块 | 返回总览

19-内容安全与治理/185.md

第 185 题:政治敏感内容,地缘政治差异的本地化策略?

题目

政治敏感内容,地缘政治差异的本地化策略?


完整讲解

一、政治敏感内容的复杂性

政治敏感:涉及政权、领土、民族、宗教、历史事件等易引发争议或合规风险的内容。地缘差异:不同国家/地区对「敏感」的定义与红线不同,同一内容在一地合规在另一地可能违规,需本地化策略

二、本地化策略要点

  • 策略分层:按地域/司法辖区维护策略与名单:黑名单、白名单、敏感词、实体库、分级规则等按国家/地区配置,请求时根据用户或内容属地选用对应策略。
  • 内容与受众:同一内容在不同地区可打不同标签(如「仅某国可见」或「某国不可见」);或按发布地/目标受众决定是否展示、限流或删除。
  • 合规与审核:与当地法务与审核团队对齐红线;敏感 case 可升级人工或本地审核团队;保留审计日志与申诉通道。

三、工程要点

  • 策略配置可配置化、版本化,支持按地域/产品线切换;灰度与回滚机制;避免硬编码敏感规则,便于迭代与合规审计。

面试要点

  • 能说明政治敏感内容为何需地缘本地化:不同地区红线不同。
  • 能描述本地化策略:按地域的策略与名单、内容按地区打标或限流、合规与审核流程。
  • 能简述工程实现:策略可配置、按地域选用、审计与灰度。

记忆要点

  • 政治敏感因地缘而异,需本地化:按地域的策略/名单、内容按地区可见性、合规审核。
  • 工程:策略可配置、版本化、按地域切换、审计与灰度。

返回模块 | 返回总览

19-内容安全与治理/186.md

第 186 题:垃圾信息的过滤,对抗性样本的防御?

题目

垃圾信息的过滤,对抗性样本的防御?


完整讲解

一、垃圾信息与过滤目标

垃圾信息:营销骚扰、诈骗、恶意推广、机器人刷屏等,损害体验与信任。过滤:用规则与模型在发布/展示前识别并拦截或降权,减少触达。

二、对抗性样本与攻击

  • 对抗性样本:攻击者针对模型刻意构造的输入(如轻微改字、同音替换、插入不可见字符),使模型误判为正常,从而绕过过滤。
  • 常见攻击:文本上同义词替换、错别字、插入空格/标点、对抗性扰动;图像上微小扰动导致分类翻转。攻击者可能利用模型梯度(白盒)或仅靠查询反馈(黑盒)迭代优化对抗样本。

三、防御思路

  • 数据与训练:加入对抗样本对抗训练(在 loss 中优化 worst-case 扰动),提升对扰动的鲁棒性;数据增强(同义替换、回译、噪声)扩大分布。
  • 模型与结构:集成多模型、多特征(规则+模型),单点被攻破不致命;输入规范化(去噪、标准化、长度限制)减少攻击面。
  • 行为与频率:结合行为与频率(发帖频率、账号年龄、历史违规)做二次判断,对抗样本多来自新号或机器;人机识别与限流。
  • 持续迭代:收集绕过 case、标注后重训;黑名单与规则快速止血,模型负责泛化。

面试要点

  • 能说清垃圾信息类型与过滤目标;能解释对抗性样本(刻意构造以绕过模型)。
  • 能列举防御:对抗训练/数据增强、多模型与规则、输入规范化、行为与频率、持续迭代。
  • 能简述攻击方式(文本同义/扰动、黑盒查询)与防御的权衡(鲁棒性 vs 误杀)。

记忆要点

  • 垃圾信息过滤易遭对抗样本攻击;防御=对抗训练与数据增强、规则+模型、行为/频率、持续迭代。
  • 攻击:同义/扰动/黑盒;防御需平衡鲁棒性与误杀。

返回模块 | 返回总览

19-内容安全与治理/187.md

第 187 题:用户举报的响应,主动检测与被动审核的结合?

题目

用户举报的响应,主动检测与被动审核的结合?


完整讲解

一、用户举报的价值

用户举报:用户主动标记违规或不适内容,是高价值信号(强负样本、覆盖长尾违规),可补充主动检测的漏检,并反映体验问题。需快速响应(处置、反馈用户)与闭环(用于模型与规则迭代)。

二、主动检测

  • 含义:系统在内容发布或展示前/后,自动用规则与模型做风险识别,无需用户举报即拦截或送审。
  • 优点:覆盖广、响应快、可拦截在曝光前;局限:模型与规则有漏检与误杀,尤其新颖违规与边界 case。

三、被动审核(举报驱动)

  • 含义:依赖用户举报触发审核;举报后人工或模型复核,再处置(删除、限流、封禁等)。
  • 优点:精准、用户感知好(「我举报了有结果」);局限:依赖用户主动、存在滞后与覆盖不全。

四、结合方式

  • 主被动结合:主动检测做首道防线(高置信直接处置、中置信送审、低置信放行);举报做补充与纠错(举报 case 优先复核、处置结果反馈用户、举报样本加入训练集)。
  • 优先级:举报内容可设更高优先级队列;对重复举报、批量举报或高危类型缩短 SLA。
  • 闭环:举报与主动检测的漏检/误杀进入分析,用于规则与模型迭代;对举报用户做适当反馈(已处理/不违规说明),提升信任。

面试要点

  • 能区分主动检测(系统自动)与被动审核(举报驱动),并说明二者优劣。
  • 能描述结合方式:主动首道防线+举报补充、举报优先队列与 SLA、闭环迭代与用户反馈。
  • 能简述举报样本在训练与规则更新中的作用。

记忆要点

  • 主动检测=自动首道防线;被动=举报驱动、高价值信号;结合=主动拦截+举报补充与优先复核。
  • 闭环:举报 case 用于模型/规则迭代、用户反馈,提升覆盖与信任。

返回模块 | 返回总览

19-内容安全与治理/188.md

第 188 题:算法偏见的审计,群体公平性的量化指标?

题目

算法偏见的审计,群体公平性的量化指标?


完整讲解

一、算法偏见与审计目标

算法偏见:模型或策略对不同群体(性别、种族、年龄、地域等)产生不公正的差异(如推荐机会、曝光、误判率)。审计:系统性地量化各群体上的表现差异,发现偏见并指导治理。

二、群体公平性的量化指标

  • 人口统计均等 在不同群体 上是否相同;差异可用比例差或比值衡量。
  • 机会均等 / 均衡化赔率(召回)、(假阳率)在群体间是否一致;可计算各群体召回/假阳率及差异。
  • 校准:预测概率与真实正例率是否一致,分群体看校准曲线或 ECE。
  • 个体公平:相似个体是否得到相似结果(需定义相似度与结果距离);可抽样或用代理指标。
  • 推荐/曝光:曝光率、点击率、消费率按群体统计;基尼、覆盖率按群体分解。

三、审计实践

  • 按群体分层:按敏感属性(需合规获取或推断)分层,报告每组的指标(准确率、召回、假阳、曝光、满意度等)及组间差。
  • 因果与混淆:差异可能来自历史偏差(训练数据)或模型放大;审计结果需结合业务解读,区分「需要纠正」与「合理差异」。
  • 持续监控:将公平性指标纳入常规监控与发布 gate,防止新版本引入或加剧偏见。

面试要点

  • 能说清算法偏见与审计目的;能写出人口统计均等、机会均等(召回/假阳)的数学形式。
  • 能列举其他指标:校准、个体公平、推荐场景的曝光/覆盖率按群体分解。
  • 能简述审计实践:分层报告、因果解读、持续监控与发布 gate。

记忆要点

  • 偏见=群体间不公正差异;审计=量化群体表现。指标:人口统计均等、机会均等(召回/假阳)、校准、曝光/覆盖按群体。
  • 实践:分层报告、因果解读、持续监控与发布 gate。

返回模块 | 返回总览

19-内容安全与治理/189.md

第 189 题:透明度与可解释性,推荐理由的生成与展示?

题目

透明度与可解释性,推荐理由的生成与展示?


完整讲解

一、透明度与可解释性的价值

透明度:用户与监管能理解「系统如何做决策」。可解释性:能给出推荐理由(为何推这条),提升信任、接受度与纠错能力(用户可据此反馈「不感兴趣」更精准)。

二、推荐理由的生成

  • 基于规则:用显式规则生成理由,如「因为你关注了 X」「同城热门」「你收藏过类似」。可解释性强、易控,但覆盖有限。
  • 基于特征/模板:从模型所用特征中选关键特征(如类别、作者、标签),填到模板中,如「因为你看过【类别】」。需特征可读且与排序一致。
  • 基于模型:用可解释模型(线性、决策树)或事后解释(LIME、SHAP、注意力权重)得到关键特征或片段,再转为自然语言;或训练理由生成模型(NLG),输入物品与用户上下文,输出一句话理由。后者更灵活但需保证理由与真实决策一致(忠实度)。

三、展示与体验

  • 展示形式:文案简短、可点击(如点击跳转相关标签/作者);避免冗长或重复。
  • 一致性:理由应与实际排序逻辑一致,否则会损信任;若用近似解释需标注「可能原因」等。
  • 隐私与安全:理由中不暴露他人隐私或敏感属性;敏感类别可泛化表述。

面试要点

  • 能说明透明度/可解释性对信任与体验的作用;能区分「生成理由」与「事后解释」。
  • 能描述理由生成方式:规则、特征/模板、可解释模型或 LIME/SHAP、理由 NLG;能提及忠实度与一致性。
  • 能简述展示要点:简短、可点击、一致、隐私安全。

记忆要点

  • 透明度/可解释性→推荐理由;生成=规则、特征模板、可解释模型/LIME/SHAP、理由 NLG。
  • 展示:简短、一致、隐私安全;理由需与决策一致(忠实度)。

返回模块 | 返回总览

19-内容安全与治理/190.md

第 190 题:用户控制与选择权,兴趣标签的编辑与重置?

题目

用户控制与选择权,兴趣标签的编辑与重置?


完整讲解

一、用户控制与选择权的意义

用户控制:用户能查看、编辑、重置影响推荐的数据(如兴趣标签、不感兴趣、历史),从而纠正错误、减少茧房、满足「我的数据我做主」的预期。合规(如 GDPR)也要求对自动化决策有异议与修正权。

二、兴趣标签的编辑

  • 展示:在设置或推荐页展示当前兴趣标签/类别(如「科技、美食、旅行」),允许用户增删改
  • 使用:编辑后的标签作为强信号参与召回或排序(提高相关标签权重、降低已删标签权重);或仅作展示与冷启动辅助,主模型仍用行为。
  • 实现:标签可来自模型推断(从历史行为聚类/分类)、用户历史选择、或混合;编辑结果持久化并参与下次请求。

三、兴趣重置

  • 场景:用户希望「重新开始」、换口味或清除错误积累;或账号转手、隐私需求。
  • 实现:提供一键重置:清空或禁用行为历史、兴趣标签、不感兴趣列表等;重置后按冷启动或仅保留显式偏好处理。可设冷却期或二次确认防误触。
  • 与推荐联动:重置后推荐分布应明显变化(更多探索、更少历史依赖);可结合「减少此类推荐」等细粒度控制。

四、工程与合规

  • 数据存储与权限:仅用户本人可编辑/重置;合规要求可解释、可导出、可删除。编辑/重置操作打点,便于分析使用率与体验。

面试要点

  • 能说明用户控制与选择权对信任与合规的价值;能区分「编辑兴趣」与「重置」。
  • 能描述兴趣标签的编辑:展示、增删改、如何参与推荐;能描述重置的范围(行为、标签、不感兴趣)与冷启动处理。
  • 能提及合规(可解释、可删除)与工程(持久化、打点)。

记忆要点

  • 用户控制=编辑/重置兴趣等;编辑=展示标签、增删改、参与召回/排序;重置=清空行为与标签、冷启动。
  • 合规:可解释、可删除;工程:持久化、打点。

返回模块 | 返回总览

19-内容安全与治理/README.md

19-内容安全与治理(第 181–190 题)

题号 主题 文章
181 有害内容的识别,多模态融合的风险检测? 181.md
182 虚假信息检测,传播模式与内容特征的联合? 182.md
183 版权内容的过滤,感知哈希的鲁棒性? 183.md
184 未成年人保护,年龄推断与内容分级? 184.md
185 政治敏感内容,地缘政治差异的本地化策略? 185.md
186 垃圾信息的过滤,对抗性样本的防御? 186.md
187 用户举报的响应,主动检测与被动审核的结合? 187.md
188 算法偏见的审计,群体公平性的量化指标? 188.md
189 透明度与可解释性,推荐理由的生成与展示? 189.md
190 用户控制与选择权,兴趣标签的编辑与重置? 190.md

返回总览

20-实时计算/191.md

第 191 题:Flink的Checkpoint机制,Exactly-Once语义的实现?

题目

Flink的Checkpoint机制,Exactly-Once语义的实现?


完整讲解

一、Checkpoint 机制的作用

Checkpoint:流处理引擎定期把算子状态(如 keyed state、窗口状态)持久化到外部存储,以便故障时从最近一次一致状态恢复,避免重算全量数据。Flink 的 Checkpoint 基于 Chandy-Lamport 分布式快照:通过 barrier 在流中传播,各算子收到 barrier 时把当前状态写出,形成全局一致快照。

二、Exactly-Once 语义

  • 含义:每条记录对结果只影响一次,故障重放不会导致重复写入或丢失。需要状态输出(sink) 都满足:状态从 checkpoint 恢复一致;sink 支持幂等写两阶段提交流
  • 状态:Flink 从 checkpoint 恢复后,算子状态与 checkpoint 时一致;重放从上次 checkpoint 之后的 source 偏移开始,保证状态 + 重放数据与故障前逻辑一致。
  • Sink 端:若 sink 非幂等,需 两阶段提交:算子先写预写(如 Kafka 事务、对象存储 multipart),收到 checkpoint 完成信号后提交;若 checkpoint 失败则中止并回滚。这样「checkpoint 成功」与「sink 提交」原子对齐,实现端到端 Exactly-Once。

三、实现要点

  • Barrier 对齐:多输入算子需等所有输入的 barrier 到齐再做 checkpoint,避免状态不一致。非对齐 checkpoint(Unaligned)可减少反压下的等待,但状态更大。
  • 存储:状态后端(RocksDB/Heap)与 checkpoint 存储(HDFS/S3)的选型影响吞吐与恢复时间;增量 checkpoint 可减小 IO。

面试要点

  • 能说清 Checkpoint 的目的(故障恢复)与基本原理(barrier、分布式快照)。
  • 能解释 Exactly-Once:状态从 checkpoint 恢复 + 重放;sink 幂等或两阶段提交。
  • 能简述 barrier 对齐、非对齐 checkpoint、增量 checkpoint 的取舍。

记忆要点

  • Checkpoint:barrier 传播、状态持久化、故障从最近快照恢复。Exactly-Once:状态一致恢复 + sink 幂等或两阶段提交。
  • Sink 两阶段:预写→checkpoint 完成→提交;barrier 对齐 vs 非对齐、增量 checkpoint。

返回模块 | 返回总览

20-实时计算/192.md

第 192 题:流处理的状态后端,RocksDB vs Heap的适用场景?

题目

流处理的状态后端,RocksDB vs Heap的适用场景?


完整讲解

一、状态后端的作用

状态后端:负责流处理中 keyed state(如 ValueState、MapState)与运行时状态的存储、访问与 checkpoint 持久化。选型影响吞吐、延迟、状态规模与恢复速度

二、RocksDB

  • 特点:状态存于本地磁盘(通过 RocksDB),单机可支撑大状态(GB~TB 级);checkpoint 时异步持久化到分布式存储。适用:状态量大、允许一定磁盘 IO 延迟、需要增量 checkpoint 以减小 IO 的场景。
  • 代价:读写经 RocksDB,延迟与吞吐不如纯内存;JNI 与序列化有额外开销;需预留本地磁盘与 IO 能力。

三、Heap(内存)

  • 特点:状态全在 JVM Heap,访问快、延迟低。适用状态量小(百 MB 级以内)、对延迟敏感、可接受 checkpoint 时全量快照(或不依赖大状态)的场景。
  • 限制:状态受 GC 与堆大小 限制,过大易 OOM;checkpoint 多为全量,状态大时 IO 与恢复慢。

四、选型小结

  • 状态小、要低延迟 → Heap;状态大、要可扩展 → RocksDB。生产常见用 RocksDB 兜底大状态,或按作业分:轻量作业 Heap、重状态作业 RocksDB。

面试要点

  • 能说清状态后端的职责:keyed state 存储与 checkpoint;能对比 RocksDB 与 Heap 的存储介质与特点。
  • 能说明 RocksDB 适用大状态、Heap 适用小状态与低延迟;能简述增量 checkpoint 与 RocksDB 的配合。
  • 能给出选型建议:状态规模、延迟、GC 与磁盘 IO 的权衡。

记忆要点

  • RocksDB:本地磁盘、大状态、增量 checkpoint;Heap:内存、小状态、低延迟。
  • 选型:状态小/低延迟→Heap;状态大/可扩展→RocksDB;注意 GC 与 OOM。

返回模块 | 返回总览

20-实时计算/193.md

第 193 题:窗口计算的触发策略,处理时间与事件时间的选择?

题目

窗口计算的触发策略,处理时间与事件时间的选择?


完整讲解

一、处理时间 vs 事件时间

处理时间(Processing Time):数据被算子处理的当前机器时间,简单、无延迟问题,但与事件真实发生顺序无关,重放或延迟会导致结果不一致。事件时间(Event Time):数据自带业务发生时间(如日志时间戳),窗口与乱序按事件时间计算,结果可复现、语义清晰,但需处理乱序与延迟

二、窗口触发的选择

  • 处理时间窗口:按「何时被处理」划分窗口,到达即触发,无需 watermark;适合对一致性要求低、只要实时性的场景(如监控大盘)。
  • 事件时间窗口:按「事件时间」划分窗口,需 Watermark 推进事件时间;触发条件通常为:watermark 超过窗口结束时间 + 允许的延迟(Allowed Lateness)策略。结果确定性、可重复,适合计费、对账、离线对比。

三、触发策略

  • 默认:Flink 事件时间窗口在 watermark ≥ 窗口 end 时触发一次;若设置 Allowed Lateness,在延迟数据到达时可能再次触发(late output)。
  • 自定义 Trigger:可基于计数、处理时间、或「watermark + 条件」做复杂触发(如会话窗口、早期触发 + 最终触发)。选择取决于业务:要早期近似结果用早期触发;要最终一致用 watermark 触发 + 可选 late 更新。

面试要点

  • 能区分处理时间与事件时间,及各自适用场景(实时性 vs 确定性)。
  • 能说清事件时间窗口的触发:watermark、Allowed Lateness、late 输出;能简述 Trigger 的作用。
  • 能说明何时选处理时间、何时选事件时间(一致性、乱序、延迟要求)。

记忆要点

  • 处理时间=处理时刻,简单但非确定性;事件时间=业务时间,需 watermark、可重复。
  • 事件时间触发:watermark ≥ 窗口 end + Allowed Lateness;可自定义 Trigger(早期/最终)。

返回模块 | 返回总览

20-实时计算/194.md

第 194 题:流处理的反压机制,背压的检测与缓解?

题目

流处理的反压机制,背压的检测与缓解?


完整讲解

一、反压(Backpressure)的含义

反压:下游消费速度 < 上游生产速度时,数据在链路中堆积;若不做控制,会导致内存涨、OOM 或延迟飙升。反压会从最慢的算子向上游传播(如从 sink 向 source),使上游减速,形成「背压」。

二、检测

  • 指标背压比例(Flink 的 backpressure 采样:算子 busy 比例)、缓冲队列堆积checkpoint 时长变长、延迟(event time 与 processing time 差)增大。监控与告警这些指标可发现反压。
  • 定位:反压通常来自瓶颈算子(慢算子的输入缓冲满,上游被阻塞)。通过 Flink UI 的 backpressure 视图或指标找到最先高背压的算子,再分析该算子:数据倾斜、外部 IO、状态访问、序列化/反序列化、GC 等。

三、缓解

  • 扩容:对瓶颈算子增加并行度或资源,提高吞吐。
  • 优化算子:减少外部调用延迟、优化状态访问(RocksDB 调参、缓存)、减少大对象与序列化成本、避免热点 key(加盐、本地 key 预处理)。
  • 限流与降级:在 source 或中间层做限流(如 Kafka 消费限速)、降级(丢弃低优先级流或采样),防止雪崩;需与业务协商 SLA。
  • Checkpoint 与状态:非对齐 checkpoint 或调大 buffer、异步 IO,减轻反压对 checkpoint 的放大;状态 TTL 与清理减少 RocksDB 压力。

面试要点

  • 能解释反压的成因(下游慢于上游)与传播方向(自下而上);能说清如何检测(背压比例、缓冲、延迟、checkpoint)。
  • 能描述定位瓶颈算子的方法;能列举缓解手段:扩容、算子优化、限流降级、checkpoint/状态优化。
  • 能简述数据倾斜、外部 IO、GC 等常见瓶颈及对应思路。

记忆要点

  • 反压=下游慢→上游被阻塞;检测=背压比例、缓冲、延迟;定位=找最先高背压的算子。
  • 缓解=扩容、算子优化、限流降级、状态/checkpoint 优化;注意数据倾斜与外部 IO。

返回模块 | 返回总览

20-实时计算/195.md

第 195 题:流批一体架构,统一SQL的语义差异处理?

题目

流批一体架构,统一SQL的语义差异处理?


完整讲解

一、流批一体的目标

流批一体:用同一套 API 与引擎(如 Flink)既跑流处理(无界流、实时)又跑批处理(有界数据集、离线),减少两套系统的维护与语义不一致,支持「同一 SQL/程序,批是流的特例」。

二、统一 SQL 的语义差异

  • 核心差异:批是有界、流是无界;批可全量扫描后输出、流需增量窗口/触发。统一 SQL 需在语义上兼容:同一 SELECT/聚合在批上一次性算完,在流上按窗口或持续输出。
  • 有界流:流式引擎把「有界数据」(如一次导入)当有界流处理,执行完即结束,语义上接近批;Flink 的 Batch 模式即此类。
  • 聚合与窗口:流上 GROUP BY 需配合窗口(Tumble/Session)或状态(当前全局聚合);批上 GROUP BY 可直接全量聚合。统一时:流上显式窗口或 Emit 策略,批上可隐式「全量窗口」。
  • 语义对齐:保证相同输入下批与流结果一致(如事件时间窗口 + 相同 watermark 策略);差异处(如流上 late 数据、处理时间)需文档化与可配置。

三、工程要点

  • 存储与元数据统一(如 Hive 表同时支持流读与批读);运行时选 Stream 或 Batch 执行模式;测试时用同一数据集对比批与流结果。

面试要点

  • 能说清流批一体的目标(一套 API、语义一致);能说明批有界、流无界的差异及「有界流」的处理方式。
  • 能解释统一 SQL 下聚合/窗口的差异:流需窗口或状态、批可全量;能简述如何保证批流结果一致。
  • 能提及存储与执行模式(Stream/Batch)、测试对比。

记忆要点

  • 流批一体=同一 API,批有界、流无界;有界流当批处理。统一 SQL:流需窗口/状态,批可全量;需保证结果一致。
  • 工程:存储与元数据统一、执行模式、批流结果对比测试。

返回模块 | 返回总览

20-实时计算/196.md

第 196 题:实时特征拼接,流表与维表的Join优化?

题目

实时特征拼接,流表与维表的Join优化?


完整讲解

一、流表与维表 Join 的场景

流表:无界事件流(如点击、订单),按事件时间或处理时间到达。维表:相对静态或缓慢变化的表(如用户属性、商品信息),用于补全流中 key 对应的属性(如 user_id → 年龄、地域)。实时特征拼接即「流 + 维表」的 Join,在每条流记录上带上维表字段。

二、Join 方式与挑战

  • 同步 Lookup:流中每来一条,按 key 查一次维表(如 MySQL、Redis、HBase)。实现简单,但维表 QPS 与延迟易成瓶颈;需维表支持高并发、低延迟。
  • 异步 Lookup:流经异步 IO 查维表,不阻塞主链路,吞吐高;需管理异步回调与乱序(若需事件时间一致则要小心)。
  • 预加载/广播:若维表小,可全量加载到内存并定时或变更时更新,流侧本地 lookup,延迟低、无外部依赖;维表大时用 Broadcast State 或外部存储。

三、优化

  • 缓存:对维表做本地或分布式缓存(TTL、LRU),减少重复查询与维表压力;注意缓存一致性(延迟更新、失效策略)。
  • 维表更新:维表变化时(如 CDC),流侧需及时更新缓存或广播状态;可接 Kafka 等 CDC 流与维表 state 做 join。
  • 数据倾斜:若流中 key 倾斜,维表 lookup 热点明显;可 key 加盐或本地缓存分散压力。

面试要点

  • 能说清流表与维表 Join 的目的(实时特征拼接);能对比同步 lookup、异步 lookup、预加载/广播的优缺点。
  • 能描述优化:缓存、维表更新(CDC)、数据倾斜处理;能说明延迟与吞吐的权衡。
  • 能简述 Flink 维表 Join 的常见实现(Async I/O、Broadcast State、Temporal Join)。

记忆要点

  • 流表+维表=实时补全属性;方式=同步/异步 lookup、预加载/广播。异步与广播利于吞吐与延迟。
  • 优化=缓存、维表 CDC 更新、防倾斜;Flink 用 Async I/O、Broadcast、Temporal Join。

返回模块 | 返回总览

20-实时计算/197.md

第 197 题:延迟数据的处理,Side Output与Allowed Lateness?

题目

延迟数据的处理,Side Output与Allowed Lateness?


完整讲解

一、延迟数据的问题

事件时间下,数据可能晚于其事件时间到达(网络、乱序、重试),即延迟数据(Late Data)。若窗口已按 watermark 触发并输出,延迟数据若直接丢弃会漏算;若重新触发会重复输出或需更新已有结果,需明确策略。

二、Allowed Lateness

  • 含义:在 watermark 超过窗口 end 后,仍允许一段时间内到达的、属于该窗口的延迟数据参与计算。在这段「允许延迟」内,每来一条延迟数据可再次触发窗口输出(即 late output / 延迟输出),或更新侧输出。
  • 实现:窗口状态在「允许延迟」期内保留,延迟数据到达时重新聚合或触发;超过允许延迟的数据可进 Side Output 或丢弃。允许延迟越长,状态保留越久、资源占用越大,需与业务 SLA 权衡。

三、Side Output

  • 含义:将不符合主输出路径的数据(如超过 Allowed Lateness 的延迟数据、异常数据)单独输出到一条或多条侧流,便于后续补算、监控或人工处理。
  • 用法:在 ProcessFunction 或 WindowFunction 中,对「过晚」或异常记录 ctx.output(sideOutputTag, record);主流继续正常输出,侧流可接单独 sink 或下游作业做补偿。

四、小结

  • Allowed Lateness:在窗口结束后仍接受延迟数据并产生 late 输出,平衡完整性与状态成本。Side Output:把无法纳入主流的数据导出,用于补偿或审计。二者常配合:超过允许延迟的进 Side Output。

面试要点

  • 能说明延迟数据的来源与影响(漏算、重复);能解释 Allowed Lateness 的含义与 late 输出。
  • 能说清 Side Output 的用途(延迟/异常数据单独输出)及与主流的配合。
  • 能简述状态保留时间与允许延迟的权衡;能写出 Flink 中 Side Output 的用法。

记忆要点

  • 延迟数据:晚于 watermark 到达;Allowed Lateness=窗口结束后仍接受延迟并产生 late 输出。
  • Side Output=非主路径数据单独输出(过晚数据、异常);二者配合,超允许延迟进 Side Output。

返回模块 | 返回总览

20-实时计算/198.md

第 198 题:状态过期清理,TTL与增量Checkpoint的权衡?

题目

状态过期清理,TTL与增量Checkpoint的权衡?


完整讲解

一、状态过期的需求

流处理中 keyed state(如 MapState、ValueState)会随 key 长期存在;若 key 对应会话、用户等有时效性,不清理会导致状态无限增长、 checkpoint 与恢复变慢、甚至 OOM。状态过期清理:对超过一定时间未更新的 key 做淘汰(TTL)压缩

二、TTL(Time-To-Live)

  • 含义:为 state 配置 TTL,每条 entry 或每个 key 在最后写入后经过 TTL 时间即视为过期,访问时清理或不可见。Flink 的 MapState/ValueState 等可配置 TTL(如 1 天),由状态后端在读写时检查并清理。
  • 策略:通常按 last accesslast update 计时;可选 OnCreateAndWrite / OnReadAndWrite。TTL 缩短可减小状态与 checkpoint,但可能把仍会到来的 key 提前清掉(如会话未结束),需按业务设定。

三、增量 Checkpoint 的权衡

  • 全量 Checkpoint:每次把完整状态写出;状态大时 IO 与时长都大。增量 Checkpoint(RocksDB):只写出相对上一次的增量,减小 IO、缩短 checkpoint 时间。
  • 与 TTL 的关系:TTL 清理后状态变小,全量 checkpoint 也变小;增量 checkpoint 依赖 RocksDB 的 SST 增量,过期数据在 compaction 时被物理删除,增量文件会逐步变小。若 TTL 很短、状态轮转快,增量收益明显;若状态几乎只增不减,增量仍能减少单次 IO。
  • 权衡:TTL 设太短可能误删、设太长状态大;增量 checkpoint 恢复时需合并多代增量,恢复可能略慢,但通常可接受。生产常见:开 TTL + RocksDB 增量 checkpoint,按业务调 TTL 与 checkpoint 间隔。

面试要点

  • 能说明状态过期清理的必要性(防状态无限增长、OOM);能解释 TTL 的含义与配置(按 last access/update)。
  • 能对比全量与增量 Checkpoint;能说明 TTL 与增量 Checkpoint 的配合(状态变小、compaction 清理)。
  • 能简述 TTL 与 checkpoint 间隔的调参权衡。

记忆要点

  • 状态过期=TTL,超时未更新则清理;配置 last access/update。TTL 缩短减小状态与 checkpoint。
  • 增量 Checkpoint(RocksDB)=只写增量,与 TTL 配合减小 IO;恢复需合并增量。

返回模块 | 返回总览

20-实时计算/199.md

第 199 题:流处理的资源调度,Task Slot的负载均衡?

题目

流处理的资源调度,Task Slot的负载均衡?


完整讲解

一、流处理的资源模型

Flink 中作业由 Task 组成,每个 Task 运行在 Task Slot 上;Slot 是 TaskManager 上的资源单元(通常 1 slot = 1 个并行子任务)。资源调度:将 Task 分配到 Slot,并尽量均衡负载,避免单 Slot 过载导致反压、延迟高。

二、Task Slot 与并行度

  • 并行度:一个算子的并行度决定其有多少个并行子任务(subtask),每个 subtask 占 1 个 slot。同一 Job 内,不同算子可设不同并行度(需满足链与资源);总 slot 数 ≥ 各算子并行度之和(若 slot sharing 则可共享同一 slot 内多算子)。
  • Slot Sharing:默认同 Job 的多个算子可共享同一 slot(一个 slot 内可跑多个 subtask),提高资源利用率;可禁用以实现隔离。

三、负载均衡

  • 数据倾斜:若上游分区导致某 subtask 收到远多于其他的数据,该 subtask 所在 slot 负载高,成为瓶颈。缓解:重新分区(rebalance、rescale)、加盐打散热点 key、本地聚合减轻下游压力。
  • 调度:Flink 将 subtask 分配到可用 slot 时,考虑共址(同一 TM 减少网络)、分散(同一算子分散到多 TM 提高容错);资源不足时等待 slot 或扩容。
  • 监控:通过 busy/time backpressure各 subtask 的吞吐与缓冲 发现不均衡;调并行度、分区策略或资源(slot 数、TM 数)使负载更均匀。

面试要点

  • 能说清 Task、Slot、并行度的关系;能解释 Slot Sharing 及对资源利用的影响。
  • 能说明负载不均衡的成因(数据倾斜、分区)与缓解:重分区、加盐、本地聚合。
  • 能简述调度考虑(共址、分散)与监控指标(backpressure、吞吐、缓冲)。

记忆要点

  • Slot=资源单元,1 subtask 占 1 slot;Slot Sharing=多算子共享 slot。负载均衡=防数据倾斜(重分区、加盐)。
  • 调度=共址与分散;监控=backpressure、吞吐、缓冲,调并行度与分区。

返回模块 | 返回总览

20-实时计算/200.md

第 200 题:端到端延迟优化,网络缓冲与序列化开销?

题目

端到端延迟优化,网络缓冲与序列化开销?


完整讲解

一、端到端延迟的组成

端到端延迟:从事件产生结果输出/写入 sink 的时间。包括:网络(跨节点传输)、序列化/反序列化计算(算子逻辑、状态访问)、缓冲排队checkpoint/Barrier 等。优化目标是在保证正确性与吞吐的前提下降低 P99 延迟

二、网络缓冲

  • 缓冲:网络发送前数据先入缓冲,满或超时后批量发送。缓冲大:减少发送次数、提高吞吐,但单条等待时间变长、延迟增加。缓冲小:延迟低,但小包多、吞吐与 CPU 可能下降。
  • 调优:根据场景设 netty/网络 buffer 大小超时;高吞吐场景可适当增大,低延迟场景减小并配合异步或 pipeline。

三、序列化开销

  • 问题:Java 默认序列化慢、体积大;大对象或复杂结构序列化/反序列化占 CPU 与时间,成为延迟与反压来源。
  • 优化:用 Flink 类型序列化(TypeInformation)、Kryo/Flink 注册类型Avro/Protobuf 等高效格式;减少跨节点传输的大对象(如只传 key、本地查状态);二进制状态避免重复序列化。

四、其他

  • 反压:反压会拉高排队延迟,需先缓解反压(见反压题)。Checkpoint:对齐 checkpoint 会引入 barrier 等待,可考虑非对齐或调间隔。异步 IO:对维表等外部依赖用异步减少阻塞。监控:分阶段打点(各算子延迟、网络、序列化)定位瓶颈。

面试要点

  • 能拆解端到端延迟的组成:网络、序列化、计算、缓冲、checkpoint;能说明网络缓冲大小对延迟与吞吐的影响。
  • 能说清序列化开销及优化:高效序列化、减少大对象传输、二进制状态。
  • 能列举其他手段:反压缓解、checkpoint 调参、异步 IO、延迟分解监控。

记忆要点

  • 端到端延迟=网络+序列化+计算+缓冲+checkpoint。网络缓冲大→吞吐高、延迟大;序列化用高效格式、减大对象。
  • 优化=缓冲与序列化调参、反压与 checkpoint、异步 IO、分阶段监控定位瓶颈。

返回模块 | 返回总览

20-实时计算/README.md

20-实时计算(第 191–200 题)

题号 主题 文章
191 Flink的Checkpoint机制,Exactly-O… 191.md
192 流处理的状态后端,RocksDB vs Heap的适用场… 192.md
193 窗口计算的触发策略,处理时间与事件时间的选择? 193.md
194 流处理的反压机制,背压的检测与缓解? 194.md
195 流批一体架构,统一SQL的语义差异处理? 195.md
196 实时特征拼接,流表与维表的Join优化? 196.md
197 延迟数据的处理,Side Output与Allowed … 197.md
198 状态过期清理,TTL与增量Checkpoint的权衡? 198.md
199 流处理的资源调度,Task Slot的负载均衡? 199.md
200 端到端延迟优化,网络缓冲与序列化开销? 200.md

返回总览

21-存储与检索/201.md

第 201 题:特征存储的选型,Redis vs Cassandra vs 自研KV?

题目

特征存储的选型,Redis vs Cassandra vs 自研KV?


完整讲解

一、特征存储的诉求

特征存储:为推荐/广告/风控等提供低延迟、高并发的特征读写,支持在线推理(实时查 user/item 特征)与离线/近线更新。选型需考虑:延迟、QPS、数据规模、更新模式(全量/增量)、一致性、运维成本。

二、Redis

  • 特点内存存储,延迟极低(亚 ms~几 ms)、单机 QPS 高;支持多种结构(String、Hash、Sorted Set)。适用:特征量在单机/集群内存可承载、读多写少、对延迟极度敏感。
  • 局限:容量受内存限制、持久化与主从有额外开销;大 key、大 value 影响性能;多 key 批量读需 pipeline,复杂查询能力弱。

三、Cassandra

  • 特点分布式、可水平扩展,无单点;写优化、适合高写入(如特征实时更新);最终一致性、可调一致性级别。适用:特征量大、多机房、写多或读写都多、可接受 ms 级延迟。
  • 局限:读路径比 Redis 复杂、延迟通常更高;不支持复杂查询,多为 key-value 或简单范围;运维与调参成本较高。

四、自研 KV

  • 特点:针对特征场景定制:固定 schema、列式或分层存储、冷热分离、与训练/批处理 pipeline 打通;可做分层存储(热数据内存/SSD、冷数据盘)、批量导入版本管理
  • 适用:特征规模与 QPS 极大、对延迟与成本有极致要求、有足够人力;代价是开发与运维成本高。

五、选型小结

  • 小规模、极低延迟 → Redis;大规模、高写、多机房 → Cassandra;超大规模、强定制 → 自研 KV。也可混合:热特征 Redis、全量或冷数据 Cassandra/自研。

面试要点

  • 能说清特征存储的典型需求:延迟、QPS、规模、更新模式;能对比 Redis、Cassandra、自研 KV 的存储与访问特点。
  • 能说明 Redis 适用小规模极低延迟、Cassandra 适用大规模与高写、自研适用极致定制;能简述混合架构。
  • 能列举各方案局限:Redis 容量与持久化、Cassandra 延迟与运维、自研成本。

记忆要点

  • Redis=内存、极低延迟、适合小规模/热数据;Cassandra=分布式、高写、可扩展、ms 级;自研=定制、成本高。
  • 选型看规模、延迟、写比例、运维;可热数据 Redis+全量 Cassandra/自研。

返回模块 | 返回总览

21-存储与检索/202.md

第 202 题:Embedding的向量数据库,Milvus vs Faiss的架构差异?

题目

Embedding的向量数据库,Milvus vs Faiss的架构差异?


完整讲解

一、Embedding 向量库的诉求

推荐/检索中 Embedding 向量 规模大(百万~十亿级),需要近似最近邻(ANN) 的快速检索。MilvusFaiss 是常用方案,定位与架构不同。

二、Faiss

  • 特点:Facebook 开源的,以单机/多机内存为主,无持久化与分布式协调,由业务层做分片与高可用。支持多种索引(IVF、HNSW、PQ 等)、GPU 加速、批量查询;集成简单、性能高。
  • 适用:离线或单机/小集群、可接受自建分片与持久化(如定期从存储加载)、对延迟与 QPS 要求高。

三、Milvus

  • 特点分布式向量数据库,具备存储、索引、服务与协调一体:持久化、水平扩展、多副本、多种索引、支持标量过滤与混合检索。架构上计算与存储可分离,支持对象存储与本地盘。
  • 适用生产级、大规模、需持久化与高可用、多租户与运维友好的场景;延迟通常略高于纯内存 Faiss,但功能与可运维性更强。

四、架构差异小结

  • Faiss:库、无状态、无内置持久化与分布式,需业务做集群与容错;Milvus:完整数据库、有状态、持久化与分布式内置,开箱即用。选型:快速验证或离线用 Faiss;大规模在线、要持久化与运维用 Milvus。

面试要点

  • 能说清 Embedding 向量检索的典型需求(ANN、规模、延迟);能对比 Faiss 与 Milvus 的定位:库 vs 数据库。
  • 能描述 Faiss 特点:无持久化与协调、多种索引、GPU、需自建集群;Milvus:分布式、持久化、多副本、计算存储分离。
  • 能给出选型建议:离线/小规模用 Faiss,生产/大规模用 Milvus。

记忆要点

  • Faiss=库、无持久化与协调、高性能、需自建分片;Milvus=分布式向量库、持久化、高可用、开箱即用。
  • 选型:验证/离线→Faiss;生产/大规模/要持久化→Milvus。

返回模块 | 返回总览

21-存储与检索/203.md

第 203 题:倒排索引的压缩,PForDelta与SIMD优化?

题目

倒排索引的压缩,PForDelta与SIMD优化?


完整讲解

一、倒排索引与压缩需求

倒排索引:词项 → 文档 ID 列表(posting list);便于关键词检索,但 posting 列表 可能很长,存储与内存占用大、缓存不友好压缩:在保证可解码的前提下减小 posting 的存储与传输量,并尽量不牺牲解码速度

二、PForDelta

  • 思想:将 posting 中的 doc ID 转为差值(delta)序列,再用 PFor(Patched Frame of Reference):选一个基准位数 b,多数 delta 用 b 位存,超出 b 位的异常值单独存到「补丁」区。解码时先按 b 位批量解,再填异常值。
  • 优点:压缩比高、解码可 SIMD 化(按块处理);适合 delta 分布集中、长列表。实现:选 b(如 90% 的 delta 用 b 位可表示)、块大小与补丁区组织。

三、SIMD 优化

  • SIMD(单指令多数据):CPU 一条指令处理多个数据(如 128/256 bit 一次处理多个整数),适合批量解码整数序列。
  • 应用:PForDelta、VByte 等解码时,按块(如 128 个整数)用 SIMD 做并行解码,显著提高吞吐;也可用于比较、合并有序列表(如合并多词 posting 做 AND)。需注意对齐与边界、不同 CPU 指令集(SSE/AVX/NEON)的适配。

四、其他

  • VByte:变长整数编码,简单但解码分支多,SIMD 化不如 PFor 直接。SIMD 压缩常与 cache 友好 的块组织结合,减少内存访问延迟。

面试要点

  • 能说明倒排索引为何需要压缩(posting 大、存储与缓存);能简述 PForDelta 思想:delta + 基准位数 + 异常补丁。
  • 能解释 SIMD 在解码中的作用:批量整数解码、提高吞吐;能提及与 PForDelta 的配合。
  • 能列举其他编码(如 VByte)及 SIMD 在合并 posting 上的应用。

记忆要点

  • 倒排压缩=减小 posting 存储;PForDelta=delta+基准位+异常补丁,解码可 SIMD。
  • SIMD=批量解码、合并列表;与块组织结合提高 cache 友好与吞吐。

返回模块 | 返回总览

21-存储与检索/204.md

第 204 题:日志存储的列式格式,Parquet vs ORC的推荐场景?

题目

日志存储的列式格式,Parquet vs ORC的推荐场景?


完整讲解

一、列式存储与日志场景

列式格式:按组织数据(同一列连续存储),适合分析型查询(按列扫描、聚合、压缩友好)。日志存储:行为日志、事件流等,通常写多、按时间或 key 扫描、需压缩与分区,列式可提高压缩比与扫描效率。

二、Parquet

  • 特点通用列式格式,支持嵌套结构(如 JSON)、丰富类型、 predicate pushdown(谓词下推过滤)、多种编码与压缩(如 Snappy、Zstd)。生态好(Spark、Flink、Hive 等原生支持),兼容性强
  • 适用通用分析、多引擎读写、复杂 schema、与 Hadoop/对象存储结合;日志分析、数仓分层(ODS/DWD/DWS)常用。

三、ORC

  • 特点Hive 生态的列式格式,针对 Hive 优化:索引(row group 级 min/max、bloom filter)、谓词下推、高压缩;读写路径与 Hive 深度集成,Hive 上往往比 Parquet 更快。
  • 适用以 Hive 为核心的离线数仓、大批量扫描与聚合;非 Hive 生态(如 Spark 仅读、Flink 不写 ORC)时 Parquet 更通用。

四、推荐场景小结

  • 多引擎、通用日志/数仓、对象存储ParquetHive 为主、强分析、追求压缩与扫描性能ORC。实时写入+批分析混合时,常见「实时写 Kafka/表 → 批同步为 Parquet/ORC」;选型时考虑引擎支持与团队技术栈。

面试要点

  • 能说清列式存储对日志/分析的价值(压缩、扫描、谓词下推);能对比 Parquet 与 ORC 的格式与生态。
  • 能说明 Parquet 通用、多引擎、嵌套与兼容;ORC 偏 Hive、索引与压缩强;能给出推荐场景。
  • 能简述谓词下推、压缩、与对象存储的配合。

记忆要点

  • Parquet=通用列式、多引擎、嵌套、对象存储;ORC=Hive 优化、索引与压缩强。
  • 推荐:多引擎/通用→Parquet;Hive 为主→ORC;考虑引擎支持与栈。

返回模块 | 返回总览

21-存储与检索/205.md

第 205 题:冷热数据分层,SSD与磁盘的自动迁移?

题目

冷热数据分层,SSD与磁盘的自动迁移?


完整讲解

一、冷热分层的目标

热数据:近期、高频访问,对延迟敏感,适合放 SSD/内存冷数据:较旧、访问少,对成本敏感,适合放大容量磁盘或对象存储冷热分层:按访问频率或时间自动将数据在不同存储介质间迁移,在成本与性能间取得平衡。

二、分层策略

  • 按时间:如近 7 天热、7~30 天温、30 天以上冷;或按最后访问时间(LRU 类)。
  • 按访问频率:统计 key 或分区的 QPS/访问量,高则保留在热层、低则下沉。
  • 自动迁移:后台任务或存储引擎内置策略,定期扫描元数据(时间、访问统计),将满足「冷」条件的数据从 SSD 迁到 HDD/对象存储,或反之在访问时提升到热层。

三、SSD 与磁盘的协同

  • 热层:SSD(或 NVMe),低延迟、高 IOPS;存热数据与元数据
  • 冷层:HDD 或对象存储(S3/OSS),大容量、低成本;存冷数据,按需读取或批量扫描。
  • 迁移下沉:异步将冷数据写出到对象存储并删除热层副本,或标记为冷;提升:访问冷数据时读回热层(如缓存)、或直接读冷层(延迟较高)。需一致性:迁移期间读写语义(强一致或最终一致)与生命周期策略(保留时间、删除策略)明确。

四、工程要点

  • 元数据记录「热/冷」与位置;迁移与 compaction 避免影响在线 QPS;对象存储的成本与请求定价影响迁移粒度与频率。

面试要点

  • 能说清冷热分层的目的(性能与成本平衡);能描述分层策略:按时间、按访问频率、自动迁移。
  • 能说明 SSD 与磁盘/对象存储的角色(热层 vs 冷层)及迁移方向(下沉、提升);能提及一致性。
  • 能简述实现要点:元数据、迁移任务、对在线影响与成本考虑。

记忆要点

  • 冷热分层=热数据 SSD/内存、冷数据 HDD/对象存储;策略=按时间或访问频率、自动迁移。
  • 迁移=下沉(写冷删热)、提升(读冷到热或直接读冷);注意一致性与对在线影响。

返回模块 | 返回总览

21-存储与检索/206.md

第 206 题:缓存一致性,Cache-Aside vs Write-Through的取舍?

题目

缓存一致性,Cache-Aside vs Write-Through的取舍?


完整讲解

一、缓存与一致性

缓存:在数据库/存储前加一层高速存储(如 Redis、本地缓存),减轻 DB 压力、降低读延迟。一致性:缓存与 DB 的数据何时一致;若写 DB 后缓存未更新或未失效,会读到脏数据。常见模式有 Cache-AsideWrite-Through

二、Cache-Aside(旁路缓存)

  • :先查缓存,命中则返回;未命中则查 DB,写入缓存后返回。
  • 只写 DB,然后删除(invalidate)缓存,不直接写缓存;下次读时未命中再从 DB 加载并回填缓存。
  • 优点:实现简单、缓存只存热点、DB 为唯一真实源。缺点:删除缓存与写 DB 非原子,并发下可能出现:写 DB 后、删缓存前,另一请求读了旧缓存并回填,导致一段时间脏读;可通过「先删缓存再写 DB」、延迟双删或分布式锁缓解。

三、Write-Through(写穿)

  • :先写缓存,再由缓存同步写 DB(或先写 DB 再更新缓存);读只走缓存,缓存命中即一致。
  • 优点:读总从缓存、写路径一致性好。缺点:写必经缓存,写放大会(写少的数据也占缓存);若缓存与 DB 写非原子,仍有一致性窗口;实现与故障处理更复杂(缓存挂了如何与 DB 对齐)。

四、取舍小结

  • 读多写少、可接受短暂不一致Cache-Aside 更常见、简单。写多或要求写后读必一致 可考虑 Write-Through,但需接受写放大与实现复杂度。也可混合:热点读 Cache-Aside,关键路径 Write-Through 或加分布式锁/版本号。

面试要点

  • 能说清缓存一致性的问题(脏读、失效时机);能描述 Cache-Aside 的读写流程(读先缓存后 DB、写只写 DB 再删缓存)。
  • 能描述 Write-Through:写经缓存并同步 DB;能对比二者优缺点(简单性、一致性与写放大)。
  • 能简述 Cache-Aside 的并发脏读与缓解(延迟双删、先删后写、锁);能给出选型建议。

记忆要点

  • Cache-Aside:读先缓存后 DB、写只写 DB 再删缓存;简单但并发可能脏读,可延迟双删/先删后写。
  • Write-Through:写经缓存同步 DB;一致性好但写放大、实现复杂;选型看读多写少与一致性要求。

返回模块 | 返回总览

21-存储与检索/207.md

第 207 题:分片策略的一致性哈希,虚拟节点与负载均衡?

题目

分片策略的一致性哈希,虚拟节点与负载均衡?


完整讲解

一、分片与一致性哈希

分片:将数据按 key 分布到多个节点,实现水平扩展。普通取模node = hash(key) % N节点数 N 变化时大量 key 会迁移,抖动大。一致性哈希:将 hash 空间组织成,key 与节点都映射到环上,key 归属「顺时针最近节点」;增删节点时仅影响相邻一段,迁移量小。

二、虚拟节点(Virtual Node / VNode)

  • 问题:一致性哈希在节点少时,各节点在环上区间可能不均匀,负载倾斜。
  • 虚拟节点:每个物理节点对应多个虚拟节点(如 100~200 个),虚拟节点均匀分布在环上;key 先映射到虚拟节点再落到物理节点。物理节点数不变时,虚拟节点数越多,负载越均匀;扩缩容时按虚拟节点迁移,仍保持一致性哈希的迁移局部性。
  • 实现hash(key) 找环上位置 → 找下一个虚拟节点 → 查虚拟节点到物理节点映射;扩缩容时只调整虚拟节点与物理节点的对应关系。

三、负载均衡

  • 目标:各节点数据量与 QPS 尽量均衡。虚拟节点可缓解数据均衡;QPS 可能仍因热点 key 不均,可结合副本与路由(热点多副本、读分散)、监控与 rebalance(定期按负载迁移虚拟节点或 key 范围)进一步均衡。
  • 热点:单 key 过热时,单节点无法扛;需本地缓存、多副本、或业务层拆分 key(如 key 加后缀打散)。

面试要点

  • 能说清分片与一致性哈希的目的;能解释一致性哈希环与「顺时针最近节点」、为何扩缩容迁移小。
  • 能说明虚拟节点的作用(负载均匀)、实现思路(多 vnode 映射到物理节点);能简述负载均衡与热点处理。
  • 能对比与取模的差异(迁移量);能提及 rebalance 与监控。

记忆要点

  • 一致性哈希=环+顺时针最近节点,扩缩容迁移小;虚拟节点=多 vnode 均匀环上,负载更均衡。
  • 负载均衡=虚拟节点+副本/路由;热点=多副本、缓存、key 打散。

返回模块 | 返回总览

21-存储与检索/208.md

第 208 题:主从复制的延迟,读写分离的数据新鲜度保证?

题目

主从复制的延迟,读写分离的数据新鲜度保证?


完整讲解

一、主从复制与读写分离

主从复制:主库,从库异步复制主库的变更(binlog/log 同步),从库提供以分担主库压力,即读写分离延迟:从库相对主库存在复制延迟(秒级甚至更长),读从库可能读到旧数据,即数据新鲜度问题。

二、复制延迟的成因

  • 异步复制:主库提交后即返回,从库异步拉取或接收日志并重放,存在时间差;网络、从库负载、大事务会拉长延迟。
  • 半同步/同步:可配置为「至少一个从库确认后才返回」,延迟会转嫁到写延迟,换取读从库的更新鲜;全同步成本高,生产常用异步或半同步。

三、数据新鲜度保证

  • 强一致读读主或「写后关键读走主」,保证写后读必见最新;牺牲读扩展性。
  • 会话/路由级同一会话内写后一段时间内读走主,之后走从;或按用户/请求路由到主或从,写后短时路由到主。
  • 时间戳/GTID:写时记录位置或时间戳,读从库时等到从库复制超过该位置再返回,或若从库未追上则降级读主;需客户端或中间件配合等待或重试。
  • 监控与降级:监控主从延迟,超过阈值时读请求降级到主或告警;从库故障时自动走主。

四、工程要点

  • 业务需明确可接受的陈旧度(如 1s 内可接受);路由策略(主/从、等待从库追上)与监控、降级配合,在一致性与读扩展间权衡。

面试要点

  • 能说明主从复制与读写分离;能解释复制延迟的成因及对「读从库」新鲜度的影响。
  • 能列举保证新鲜度的方式:读主、会话内写后读主、等从库追上、监控降级;能说明各自取舍。
  • 能简述半同步与异步的差异;能给出业务选型建议(可接受陈旧度、路由策略)。

记忆要点

  • 主从复制=主写从读;延迟=从库落后主库,读从可能旧。保证新鲜度=读主、写后读主、等从库追上、监控降级。
  • 半同步可减小延迟但写变慢;业务需明确可接受陈旧度与路由策略。

返回模块 | 返回总览

21-存储与检索/209.md

第 209 题:分布式事务,2PC与TCC在推荐场景的应用?

题目

分布式事务,2PC与TCC在推荐场景的应用?


完整讲解

一、分布式事务的需求

分布式事务:跨多个服务/库的多步操作,要么全成功要么全回滚,保证一致性。推荐场景如:扣库存 + 写订单 + 发消息 跨多库/服务,需协调一致。

二、2PC(两阶段提交)

  • 流程协调者向各参与者发 prepare;参与者执行本地事务、写 undo/redo,不提交,返回成功/失败。若全成功,协调者发 commit,参与者提交;若有失败,协调者发 abort,参与者回滚。
  • 特点强一致、阻塞式(prepare 后参与者等待 commit/abort)。缺点:协调者单点、参与者阻塞期间占资源;协调者宕机可能导致参与者一直等待,需超时与恢复协议(如 3PC 或人工介入)。
  • 适用:数据库内部(如 XA)、对一致性强要求、可接受阻塞与复杂度;推荐业务中若强一致写多库可用 XA,但通常不推荐跨多服务 2PC(耦合与可用性差)。

三、TCC(Try-Confirm-Cancel)

  • 流程Try:各参与者做预留(如冻结库存、占位);Confirm:全部 Try 成功则执行确认(扣减、落单);Cancel:任一 Try 失败则执行取消(解冻、释放)。
  • 特点业务层实现两阶段,无全局锁;各阶段需幂等可补偿优点:灵活、可跨服务、不长期锁库。缺点:业务侵入大、需实现 Try/Confirm/Cancel 与幂等、空回滚与悬挂等边界要处理。
  • 适用:推荐/订单等跨服务场景,可接受最终一致或业务层补偿时,TCC 比 2PC 更常用;配合重试与幂等保证最终一致。

四、推荐场景选型

  • 单库多表:本地事务即可。跨库/服务、要强一致:可考虑 2PC/XA,代价高。跨服务、可接受最终一致TCCSaga(补偿链)、本地消息表/事务消息(先写本地+发消息,消费端幂等),推荐系统常用后两者。

面试要点

  • 能说清分布式事务的目标;能描述 2PC 的 prepare/commit-abort 流程及优缺点(强一致、阻塞、单点)。
  • 能描述 TCC 的 Try-Confirm-Cancel 及幂等与补偿;能对比 2PC 与 TCC 的适用场景。
  • 能给出推荐场景建议:单库本地事务、跨服务 TCC/Saga/消息表;能提及最终一致与幂等。

记忆要点

  • 2PC=协调者 prepare→commit/abort,强一致、阻塞、单点;TCC=Try→Confirm/Cancel,业务层两阶段、需幂等与补偿。
  • 推荐场景:跨服务常用 TCC、Saga、事务消息;强一致用 2PC 代价高。

返回模块 | 返回总览

21-存储与检索/210.md

第 210 题:存储计算分离,对象存储与本地缓存的协同?

题目

存储计算分离,对象存储与本地缓存的协同?


完整讲解

一、存储计算分离的含义

存储计算分离存储(数据)与计算(CPU/内存)解耦,存储层独立扩展(如对象存储 S3/OSS),计算层无状态、按需扩缩,二者通过网络访问。优点:计算与存储独立弹性、存储成本低(对象存储)、便于多引擎共享数据;代价:网络 IO 与延迟、需缓存减轻重复读。

二、对象存储的角色

  • 对象存储:S3/OSS 等,持久化、大容量、低成本;适合冷数据、备份、批处理输入输出特点:高吞吐顺序读、随机读与延迟不如本地盘;请求有成本(按请求与流量计费)。
  • 用法:作为唯一或主存储,计算节点无本地盘或仅做临时空间;批处理(Spark/Flink)直接读对象存储;数仓表、日志长期存对象存储。

三、本地缓存的协同

  • 问题:计算多次读同一数据时,若每次都读对象存储,延迟与成本高。本地缓存:在计算节点(或就近节点)用本地盘/内存缓存热数据,命中则本地读,未命中再读对象存储并回填缓存。
  • 策略LRU/LFU/TTL 等淘汰;预取(预加载即将用到的分区);分层:热数据本地 SSD、温数据对象存储,冷数据对象存储+按需加载。一致性:缓存与对象存储的更新策略(写穿、写回、失效)需明确;多节点缓存需考虑一致性(如版本号、短 TTL)。

四、工程要点

  • 元数据:数据位置(对象存储 path、分区)与缓存索引;任务调度:尽量将任务调度到有缓存的节点(data locality)。成本:缓存命中率、对象存储请求量与流量需监控与调优。

面试要点

  • 能说清存储计算分离的目标与优缺点;能说明对象存储的角色(持久化、低成本、高延迟/请求成本)。
  • 能描述本地缓存的协同:减轻重复读、命中率与淘汰策略、预取与分层;能提及缓存与对象存储的一致性。
  • 能简述元数据、任务调度与 data locality、成本监控。

记忆要点

  • 存储计算分离=存储与计算解耦、对象存储为主存储;本地缓存=热数据本地、减延迟与请求成本。
  • 协同=缓存策略(LRU/TTL)、预取、分层;一致性、元数据与调度(data locality)、成本监控。

返回模块 | 返回总览

21-存储与检索/README.md

21-存储与检索(第 201–210 题)

题号 主题 文章
201 特征存储的选型,Redis vs Cassandra v… 201.md
202 Embedding的向量数据库,Milvus vs Fa… 202.md
203 倒排索引的压缩,PForDelta与SIMD优化? 203.md
204 日志存储的列式格式,Parquet vs ORC的推荐场… 204.md
205 冷热数据分层,SSD与磁盘的自动迁移? 205.md
206 缓存一致性,Cache-Aside vs Write-T… 206.md
207 分片策略的一致性哈希,虚拟节点与负载均衡? 207.md
208 主从复制的延迟,读写分离的数据新鲜度保证? 208.md
209 分布式事务,2PC与TCC在推荐场景的应用? 209.md
210 存储计算分离,对象存储与本地缓存的协同? 210.md

返回总览

22-模型Serving/211.md

第 211 题:TensorFlow Serving的模型版本管理,金丝雀发布策略?

题目

TensorFlow Serving的模型版本管理,金丝雀发布策略?


完整讲解

一、TensorFlow Serving 与模型版本

TensorFlow Serving:TF 官方推理服务,支持多模型、多版本的加载与请求路由。模型版本:同一模型名可挂载多个版本目录(如 model/1/model/2/),每个目录含 SavedModel 或导出格式;请求可指定版本或使用默认最新

二、版本管理机制

  • 目录约定:按版本号或时间戳组织目录,Serving 扫描配置路径下的子目录并加载为版本;版本号可用于路由与回滚。
  • 加载与卸载:新版本加载后可用于推理;旧版本可配置保留数(如保留最近 N 个),超出则卸载以释放资源。热更新:新版本就绪后切换默认版本或按策略路由,无需重启服务。
  • 配置:通过 ModelServerConfig 指定模型名、路径、版本策略(最新、按版本号、按标签);可文件或 API 动态更新。

三、金丝雀发布(Canary)

  • 含义:新模型版本先对一小部分流量开放,观察指标(延迟、错误率、业务指标)无异常后再全量切换,降低坏版本影响面。
  • 实现:(1)流量比例:在负载均衡或网关层按比例(如 5% 新版本、95% 旧版本)将请求路由到不同版本对应的实例或 endpoint。(2)版本路由:Serving 支持按请求头或参数指定版本;上游根据金丝雀比例决定发往 version=新 或默认版本。(3)观察与回滚:监控新版本延迟与错误率,异常则回滚(调回 0% 或切回旧默认);无异常则逐步放大比例直至全量。
  • 与版本管理配合:新版本加载后先不设默认,仅金丝雀流量带版本号访问;通过后设为默认并下线旧版本。

面试要点

  • 能说清 TF Serving 的模型与版本组织(多版本目录、加载/卸载);能说明热更新与版本策略。
  • 能解释金丝雀发布:小流量新版本、观察指标、逐步放量或回滚;能描述流量比例与版本路由的实现方式。
  • 能简述与负载均衡、监控、回滚的配合;能提及配置与动态更新。

记忆要点

  • TF Serving:多版本目录、加载/卸载、热更新;版本策略=最新/指定版本/标签。
  • 金丝雀=小流量新版本→观察→放量或回滚;实现=流量比例路由、版本参数、监控与回滚。

返回模块 | 返回总览

22-模型Serving/212.md

第 212 题:Triton Inference Server的动态批处理,延迟与吞吐的权衡?

题目

Triton Inference Server的动态批处理,延迟与吞吐的权衡?


完整讲解

一、动态批处理的目的

批处理(Batching):将多个请求拼成一批再送 GPU 推理,提高吞吐(GPU 利用率);单条推理延迟高时批处理可摊薄。动态:请求到达时间不定,批大小不固定,需在等待更多请求(凑批、提高吞吐)与尽快返回(降低延迟)间权衡。

二、Triton 的动态批处理

  • 机制:Triton 支持动态 Batching:在配置的最大批大小内,收集一段时间内到达的请求组成 batch;若在 max_queue_delay 内未凑满,也可提前发送当前队列,避免首条等待过久。
  • 参数max_batch_size(最大批大小)、preferred_batch_size(偏好大小)、max_queue_delay_microseconds(最大等待时间)。延迟:队列中首条需等后续请求或超时,尾延迟可能升高;吞吐:批越大、GPU 利用率越高,吞吐上升。

三、延迟与吞吐的权衡

  • 大 batch、长等待:吞吐高、延迟大(尤其低 QPS 时首条等很久)。小 batch、短等待:延迟低、吞吐可能不足。调参:根据业务 SLA(如 P99 延迟 < 50ms)与目标 QPS 设 max_queue_delaymax_batch_size;高 QPS 时易凑批、可适当增大 batch;低 QPS 时缩短等待、控制尾延迟。
  • 其他:模型是否支持变长 batch(padding 与 mask)、内存与显存上限也会限制最大 batch。

面试要点

  • 能说清动态批处理的目的(提高吞吐、摊薄延迟);能描述 Triton 的动态 batching 机制与关键参数。
  • 能解释延迟与吞吐的权衡:等待时间与批大小的关系;能给出调参思路(SLA、QPS)。
  • 能简述 max_queue_delay、max_batch_size 对首条延迟与吞吐的影响。

记忆要点

  • 动态批处理=请求凑批再推理;Triton 参数=max_batch_size、max_queue_delay。等待长→吞吐高、延迟大;等待短→延迟低、吞吐可能低。
  • 调参看 SLA 与 QPS;高 QPS 可大 batch,低 QPS 短等待控延迟。

返回模块 | 返回总览

22-模型Serving/213.md

第 213 题:模型量化部署,INT8的校准数据集选择?

题目

模型量化部署,INT8的校准数据集选择?


完整讲解

一、模型量化与 INT8

量化:将权与激活从 FP32/FP16 映射到 INT8 等低比特,减小模型体积与显存、提高推理速度(硬件对 INT8 算力高)。INT8:8 比特整数,需确定缩放因子(scale)与零点(zero point),使浮点范围映射到 [-128,127] 或 [0,255];常用 per-tensor 或 per-channel 量化。

二、校准(Calibration)的作用

  • 问题:权重量化可直接用 min/max 或分布估计 scale;激活的分布依赖真实输入,若用固定范围可能溢出或精度损失大校准:用一批代表性输入(校准数据集)跑一遍模型,收集各层激活的分布(min/max、直方图等),据此计算每层/每 channel 的 scale 与 zero point。
  • 校准数据集:应贴近线上分布(同域、同分辨率、同预处理),规模通常几百到几千条即可;过大浪费时间、过小或偏会导致分布估计不准、量化后精度差。常用训练集子集无标注真实数据(仅需输入、不需标签)。

三、选择要点

  • 代表性:覆盖主要场景与边界(不同分辨率、不同长度);避免只用单一类型(如全正样本)导致分布偏。
  • 规模:经验上 100~1000 条常见;可做敏感性分析:逐步增加校准集大小,看验证集精度变化,选稳定且够用的规模。
  • 与训练一致:预处理、输入格式与训练时一致;若训练用数据增强,校准可只用原图或固定增强,避免随机性导致分布不稳。

面试要点

  • 能说清量化的目的与 INT8 的 scale/zero point;能解释校准的作用(确定激活的量化参数)。
  • 能说明校准数据集应贴近线上分布、规模适中;能列举选择要点:代表性、规模、与训练一致。
  • 能简述校准集过小或偏置导致精度下降;能提及 per-tensor vs per-channel。

记忆要点

  • 量化=权与激活映射到 INT8;校准=用代表输入跑模型、收集分布、算 scale/zero point。
  • 校准集=贴近线上、规模适中(百~千条)、与训练预处理一致;过小或偏→精度差。

返回模块 | 返回总览

22-模型Serving/214.md

第 214 题:GPU显存优化,模型并行与流水线并行?

题目

GPU显存优化,模型并行与流水线并行?


完整讲解

一、GPU 显存瓶颈

大模型(如 LLM、大视觉模型)的参数量与激活超出单卡显存,无法单卡加载或 batch 很小。优化思路:模型并行(把模型拆到多卡)、流水线并行(按层或 stage 分到多卡、流水执行)、数据并行(多卡同模型、分数据)可组合使用。

二、模型并行(Tensor Parallelism)

  • 思想:将单层的矩阵切分到多张卡上,单次前向/反向在同一层内多卡协同计算。例如线性层 按行或列切分, 广播或切分,各卡算局部结果再 all-reduce 或 concat。
  • 特点单层跨卡,通信频繁(每层都需同步);适合单层很大(如大 FFN、大 attention head)且卡间带宽高的场景。显存:每卡只存一部分参数与激活,单卡显存需求下降。

三、流水线并行(Pipeline Parallelism)

  • 思想:将模型按层或 stage 切到多卡,如卡 1 负责 layer 0~3、卡 2 负责 4~7…。流水:多个 micro-batch 依次进入,卡 1 算完传给卡 2,卡 2 算时卡 1 可算下一个 micro-batch,提高设备利用率。
  • 特点通信主要在 stage 之间、次数少于模型并行;但存在气泡(前几个 micro-batch 填满流水线时、后几个排空时,部分卡空闲)。显存:每卡只存若干层,单卡显存需求下降;需缓存多个 micro-batch 的激活做反向,显存与 stage 数、micro-batch 数相关。
  • 组合:大模型常用 数据并行 + 流水线并行(如 4 卡流水、再 2 组数据并行);或 流水线 + 张量并行(stage 内再张量并行)。

面试要点

  • 能说明 GPU 显存瓶颈及模型并行、流水线并行的目标;能区分二者:模型并行=单层切分多卡协同,流水线=按层/stage 分卡、流水执行。
  • 能描述模型并行的通信特点(每层同步);能描述流水线的气泡问题与 micro-batch;能简述显存占用与组合使用。
  • 能列举实际组合:数据+流水线、流水线+张量并行。

记忆要点

  • 模型并行=单层切分多卡、通信密;流水线并行=按 stage 分卡、流水、有气泡。
  • 显存优化=每卡存部分参数与激活;常组合=数据+流水线、流水线+张量并行。

返回模块 | 返回总览

22-模型Serving/215.md

第 215 题:边缘计算部署,模型压缩与端侧推理?

题目

边缘计算部署,模型压缩与端侧推理?


完整讲解

一、边缘计算部署的场景

边缘:靠近数据源或用户的终端、网关、边缘机房,延迟低、带宽省、数据可本地处理,但算力与内存有限边缘推理:在边缘设备上直接跑模型,避免回传云端,满足低延迟与隐私需求。

二、模型压缩

  • 剪枝:去掉部分权重或结构(如通道、头),减小计算与体积;需微调或重训恢复精度。
  • 量化:INT8/INT4 降低权与激活精度,减小体积与算力;端侧 GPU/NPU 常支持 INT8 加速。
  • 蒸馏:用大模型教小模型,小模型在边缘部署;在精度与体积间折中。
  • 轻量结构:MobileNet、EfficientNet、小 Transformer 等,专为端侧设计,参数量与 FLOPs 小。

三、端侧推理

  • 框架TensorFlow LiteONNX RuntimeMNN/NCNN 等,支持量化与多种硬件(CPU、GPU、NPU、DSP);模型需导出为对应格式(如 TFLite、ONNX)并做转换与优化。
  • 资源约束:内存与功耗限制 batch 与模型大小;需在延迟、精度、功耗间权衡;可选分级:简单请求端侧、复杂请求上云。
  • 更新:模型可通过 OTA 或按需下载更新;版本与兼容性需管理。

面试要点

  • 能说清边缘部署的价值(低延迟、省带宽、隐私);能列举模型压缩手段:剪枝、量化、蒸馏、轻量结构。
  • 能描述端侧推理框架(TFLite、ONNX Runtime 等)与导出流程;能说明资源约束与分级策略。
  • 能简述端侧与云端的协同(简单端侧、复杂云端)、模型更新与版本管理。

记忆要点

  • 边缘推理=端侧跑模型;压缩=剪枝、量化、蒸馏、轻量结构;框架=TFLite、ONNX Runtime 等。
  • 约束=内存与功耗;可选分级=简单端侧、复杂云端;模型更新与版本管理。

返回模块 | 返回总览

22-模型Serving/216.md

第 216 题:模型热更新,零停机部署的技术方案?

题目

模型热更新,零停机部署的技术方案?


完整讲解

一、模型热更新与零停机目标

热更新不重启进程、不中断在线流量,将推理服务从旧模型切换到新模型零停机:用户无感知、无 5xx、无连接断开;对高可用场景必需。

二、常见技术方案

  • 多版本并存:服务加载多版本模型(如 TF Serving、Triton 多版本),默认版本路由策略决定当前使用版本。发布新模型时:先加载新版本(新目录/新 endpoint),再切换默认或路由到新版本;旧版本可保留一段时间便于回滚,再卸载。流量切换:通过配置或控制面将流量从旧版本切到新版本,无进程重启
  • 蓝绿 / 金丝雀:新模型部署在新实例组(蓝),与旧实例组(绿)并存;负载均衡先切少量流量到蓝(金丝雀),观察无异常后全量切到蓝,再缩绿。滚动更新:逐批替换实例(新实例拉新模型、老实例排空后下线),实现零停机;需保证新实例就绪后再接流量老实例优雅退出
  • 共享内存 / 动态加载:部分框架支持同一进程内替换模型文件或句柄(如共享内存映射新权重),减少重启;实现复杂且依赖框架能力。

三、关键点

  • 版本管理:模型路径、版本号与配置的原子更新;回滚:保留旧版本、一键切回。流量与健康检查:新实例通过健康检查后再加流量;优雅退出:老实例等当前请求完成再退出。一致性:请求级或会话级路由到同一版本,避免同一请求前后端用不同版本(若需)。

面试要点

  • 能说清热更新与零停机的目标;能描述多版本并存与默认/路由切换、蓝绿与金丝雀、滚动更新的思路。
  • 能说明如何避免重启与中断:多版本加载后切流量、新实例就绪后接流量、老实例优雅退出。
  • 能简述回滚、健康检查与流量切换的配合;能提及 TF Serving/Triton 的版本能力。

记忆要点

  • 热更新=不重启切换模型;方案=多版本并存+切默认/路由、蓝绿/金丝雀、滚动更新。
  • 零停机=新版本先加载再切流量、老实例优雅退出;回滚=保留旧版本、一键切回。

返回模块 | 返回总览

22-模型Serving/217.md

第 217 题:A/B测试框架,流量分割与实验正交性?

题目

A/B测试框架,流量分割与实验正交性?


完整讲解

一、A/B 测试框架的目标

A/B 测试:将流量分割为多组(如对照组 A、实验组 B),各组使用不同策略/模型/参数,通过指标对比评估策略效果。框架需支持:流量分割(稳定、可配置)、实验正交(多实验不互相干扰)、指标统计与显著性

二、流量分割

  • 分割方式:按 用户 ID请求 ID稳定哈希(如 hash(uid) % 100),再按桶映射到实验组(如 0~49 为 A、50~99 为 B),保证同一用户/请求始终进同一组比例:可配置 A:B = 50:50 或 90:10 等。
  • 稳定性:哈希与分组逻辑固定,避免同一用户在不同时间或不同层进不同组;分层:若多实验,可用正交分层(见下)避免互抢流量。

三、实验正交性

  • 含义:多个独立实验(如实验 1 测模型、实验 2 测 UI)同时进行时,希望各实验的组别独立:用户是否在实验 1 的 B 组与是否在实验 2 的 B 组无关,这样两实验的效果可分别估计、不混淆。
  • 实现分层:对流量先按「实验层」分(如层 1 做 hash(uid) 分 2 桶、层 2 用另一 hash 分 2 桶),每层内再分实验组;或正交表:多因子(实验 1 的组、实验 2 的组)组合成多个正交桶,每用户落一个桶。这样「实验 1 的 A/B」与「实验 2 的 A/B」近似独立。
  • 若不正交:同一批用户既在实验 1 的 B 又在实验 2 的 B,则无法区分效果来自哪个实验;正交后各实验可单独分析。

四、工程要点

  • 配置化:实验 ID、分组比例、 targeting(如仅新用户)可配置;埋点:请求带实验组 ID,日志与指标按组聚合。统计:做显著性检验(如 t 检验、贝叶斯)与置信区间,避免把噪声当效果。

面试要点

  • 能说清 A/B 测试的目的与流量分割方式(稳定哈希、按用户/请求、比例可配);能解释实验正交性的含义与必要性。
  • 能描述正交实现:分层哈希、正交表;能说明不正交时多实验效果混淆的问题。
  • 能简述配置、埋点与指标、显著性检验;能提及 targeting 与多实验并行。

记忆要点

  • 流量分割=稳定哈希(uid)到桶、按桶分 A/B;同一用户固定组。正交=多实验组别独立,实现=分层哈希或正交表。
  • 不正交→效果混淆;工程=配置、埋点、按组指标、显著性检验。

返回模块 | 返回总览

22-模型Serving/218.md

第 218 题:影子流量验证,线上数据的无风险测试?

题目

影子流量验证,线上数据的无风险测试?


完整讲解

一、影子流量的目的

影子流量(Shadow Traffic):将线上真实请求复制一份(或按比例采样)发送给新版本服务,但不把新版本的响应返回给用户;用户仍只收到旧版本的结果。用于在无风险前提下,用真实线上数据验证新版本的延迟、错误率、兼容性等。

二、无风险的含义

  • 不影响线上:用户请求仅由当前线上版本处理并返回;影子请求异步旁路发给新版本,新版本结果不参与响应或计费。因此即便新版本有 bug、慢或崩溃,不影响用户体验与收入。
  • 真实数据:影子请求使用与线上一致的输入(相同特征、相同 payload),比离线测试更贴近真实分布与边界 case,能发现线上特有问题(如某些 user 的请求、长尾特征)。

三、实现要点

  • 流量复制:在网关或服务层复制请求(双写、镜像)并打上「影子」标记,路由到新版本集群;或采样部分请求以控制新版本负载。响应:新版本处理完后丢弃或仅打点,不写回用户。
  • 对比与监控:对比旧版本与新版本的输出(如推理结果、错误码)、延迟分布,发现差异与异常;监控新版本的错误率、超时、资源使用,作为上线前的 gate。
  • 成本:新版本需独立资源承载影子流量;可采样或限速控制成本;影子与正式可共用部分依赖(如特征服务),但新版本故障不应影响正式。

面试要点

  • 能说清影子流量的目的:用线上真实请求验证新版本、且不影响用户。能解释「无风险」:用户只收旧版本结果、新版本结果不返回。
  • 能描述实现:流量复制/镜像、打影子标记、新版本独立集群、结果丢弃或仅打点;能说明对比与监控(输出差异、延迟、错误率)。
  • 能简述采样与成本控制、与正式资源的隔离。

记忆要点

  • 影子流量=复制线上请求发给新版本、新版本结果不返回用户,无风险验证新版本。
  • 实现=复制/镜像、影子标记、新版本集群、结果丢弃;对比与监控=输出差异、延迟、错误率;可采样控成本。

返回模块 | 返回总览

22-模型Serving/219.md

第 219 题:服务降级策略,熔断与限流的触发条件?

题目

服务降级策略,熔断与限流的触发条件?


完整讲解

一、服务降级与高可用

降级:当系统过载或依赖故障时,主动关闭部分功能返回简化结果,保证核心路径可用、避免雪崩。熔断限流是常用手段,需明确触发条件恢复策略

二、限流(Rate Limiting)

  • 目的:限制请求速率(QPS、并发数),防止下游或自身过载。触发条件:通常按阈值触发,如 QPS > 1000 或当前并发 > 500 时,对超出部分拒绝(返回 429)或排队;也可按用户/租户分别限流。
  • 算法令牌桶漏桶滑动窗口等;限流粒度可为全局限流、单机限流、按 key(如 user_id)限流。恢复:请求量低于阈值后,自动恢复接受;可设预热(冷启动时逐步放量)。

三、熔断(Circuit Breaker)

  • 目的:当依赖下游持续失败或延迟过高时,快速失败、不再请求下游,避免拖垮本服务与下游。状态关闭(正常请求)→ 打开(失败率/错误数超阈值,直接返回错误或降级)→ 半开(间歇放行少量请求试探下游是否恢复)→ 恢复则关闭
  • 触发条件错误率超过阈值(如 50%)、连续失败次数超过 N、慢调用比例超过阈值、或超时比例高。可组合:如 5 秒内错误率 > 50% 且请求数 > 10 则打开。恢复:半开状态下若干次成功则关闭、仍有失败则再打开;可设冷却时间避免频繁开关。

四、与降级策略配合

  • 限流:超限时返回「系统繁忙」或默认/缓存结果(降级内容)。熔断:打开时返回默认结果简化逻辑(如推荐走缓存、不调模型)。优先级:先限流保护自身与下游,再熔断隔离故障依赖;两者可同时存在,配合监控与告警。

面试要点

  • 能区分限流与熔断:限流=控速率/并发、熔断=依赖故障时快速失败;能说明各自目的与典型触发条件。
  • 能描述限流触发(QPS/并发超阈值)与恢复;能描述熔断三态(关闭、打开、半开)及触发(错误率、连续失败、慢调用)与恢复。
  • 能简述与降级策略的配合(超限/熔断时返回默认或缓存);能提及按 key 限流与熔断粒度。

记忆要点

  • 限流=控 QPS/并发,超阈值拒绝或排队;熔断=依赖故障时打开、快速失败,半开试探恢复。
  • 触发:限流看 QPS/并发;熔断看错误率、连续失败、慢调用。降级=超限/熔断时返回默认或缓存。

返回模块 | 返回总览

22-模型Serving/220.md

第 220 题:全链路监控,延迟分解与异常定位?

题目

全链路监控,延迟分解与异常定位?


完整讲解

一、全链路监控的目标

全链路:从请求入口(网关、LB)经各中间服务(特征、模型、存储)到响应出口,整条路径可追踪、计时、定位瓶颈与异常。目标:延迟分解(各阶段耗时)、异常定位(哪一环节出错或变慢)、 SLA 与容量管理

二、延迟分解

  • Trace:为每个请求分配唯一 trace_id,在各服务间传递;各服务打点记录「开始、结束、服务名、span_id、父 span」等,上报到分布式追踪系统(如 Jaeger、Zipkin、SkyWalking)。Span:代表一段逻辑(如一次 RPC、一次 DB 查询),有开始/结束时间;多 span 按父子关系组成调用树,即可得到各阶段耗时
  • 分解:从调用树可读出:网关 → 特征服务 → 模型服务 → 存储 等各段耗时与占比P50/P99 按 span 聚合可发现慢环节(如某下游 P99 高、某 DB 查询慢)。端到端延迟 = 根 span 的 duration;子 span 之和应接近根(扣除并行与时钟误差)。

三、异常定位

  • 错误与状态码:各 span 记录错误码、异常信息;某 span 失败可向上追溯根因(如模型服务超时、某依赖 5xx)。关联:同一 trace_id 下日志、指标、事件可关联,便于一次请求的完整排查。
  • 指标与告警:按服务/接口聚合延迟、错误率、QPS;设告警(如 P99 > 200ms、错误率 > 1%),触发时结合 trace 与日志定位。根因:通过慢 trace 抽样查看调用树,找到共同慢的 span 或依赖,再查该服务/依赖的日志与资源。

四、工程要点

  • 采样:全量 trace 成本高,可按比例或按延迟/错误采样;保证异常与慢请求优先采样。低侵入:通过中间件、Agent 自动打点与传递 trace_id,减少业务代码侵入。存储与查询:trace 数据量大,需索引(trace_id、时间、服务名)与保留策略(如热数据 7 天、冷数据聚合)。

面试要点

  • 能说清全链路监控的目的:延迟分解、异常定位、SLA;能描述 trace_id、span、调用树与延迟分解的关系。
  • 能说明如何做异常定位:span 错误信息、trace 与日志关联、慢 trace 抽样找共同慢 span;能提及指标与告警。
  • 能简述采样、低侵入、存储与保留策略;能列举常见追踪系统(Jaeger、Zipkin 等)。

记忆要点

  • 全链路=trace_id+各服务 span、调用树;延迟分解=各 span 耗时与 P50/P99。
  • 异常定位=span 错误、trace 与日志关联、慢 trace 抽样找根因;指标告警配合。工程=采样、低侵入、存储与保留。

返回模块 | 返回总览

22-模型Serving/README.md

22-模型Serving(第 211–220 题)

题号 主题 文章
211 TensorFlow Serving的模型版本管理,金丝… 211.md
212 Triton Inference Server的动态批处… 212.md
213 模型量化部署,INT8的校准数据集选择? 213.md
214 GPU显存优化,模型并行与流水线并行? 214.md
215 边缘计算部署,模型压缩与端侧推理? 215.md
216 模型热更新,零停机部署的技术方案? 216.md
217 A/B测试框架,流量分割与实验正交性? 217.md
218 影子流量验证,线上数据的无风险测试? 218.md
219 服务降级策略,熔断与限流的触发条件? 219.md
220 全链路监控,延迟分解与异常定位? 220.md

返回总览

23-大模型与推荐/221.md

第 221 题:LLM作为推荐器的Prompt设计,任务指令与上下文示例?

题目

LLM作为推荐器的Prompt设计,任务指令与上下文示例?


完整讲解

一、任务指令设计

  • 角色与任务:明确指令如「你是一个个性化推荐助手,根据用户历史与当前需求生成推荐列表」,限定输出格式(JSON/编号列表)。
  • 约束:条数上限、必须/禁止类型、时效性(如仅推荐近期内容),避免开放生成导致格式混乱。

二、上下文组织

  • 用户画像:兴趣标签、 demographics、近期行为摘要,以键值或短句注入,控制 token 用量。
  • 历史交互:最近 N 条点击/播放/购买,可做序列或统计摘要;过长时截断或分层(近期详细 + 早期摘要)。
  • 候选/场景:若做重排,传入候选 ID 与简要属性,让 LLM 做理由生成或排序;若做生成,可给候选池描述供挑选。

三、示例(Few-shot)

  • 1~3 条「输入(用户+上下文)→ 输出(推荐列表+理由)」示例,统一格式,提升输出稳定性和格式对齐。
  • 示例需覆盖典型场景(冷启动、多兴趣、明确 query),便于模型泛化。

面试要点

  • 能说清 Prompt 三要素:任务指令(角色+格式+约束)、上下文(画像+历史+候选)、Few-shot 示例。
  • 能解释为何要控制上下文长度、如何做历史截断与摘要,以及示例对格式一致性的作用。

记忆要点

  • LLM 推荐 Prompt:指令定角色与输出格式,上下文给画像+历史+候选,Few-shot 稳格式与泛化。
  • 控制 token:画像与历史做摘要/截断,避免超长导致截断或噪声。

返回模块 | 返回总览

23-大模型与推荐/222.md

第 222 题:生成式推荐(Item Generation),自回归解码的候选生成?

题目

生成式推荐(Item Generation),自回归解码的候选生成?


完整讲解

一、生成式推荐的含义

  • 不限于从固定候选集中排序,而是用 LLM 自回归解码生成 item 标识(ID、标题、属性)或直接生成可检索的表示,再与库中 item 匹配。
  • 适合长尾、新品、组合推荐(如「套餐」「歌单」),候选空间大或动态变化时比纯检索+排序更灵活。

二、自回归解码与候选生成

  • 解码方式:按 token 逐步生成,可 beam search 或 sampling;输出为 item 名、ID 或结构化描述,后接检索/匹配层把生成结果映射到真实 item。
  • 约束解码:在词表或候选列表上做 constrained decoding,保证输出必为合法 item,避免幻觉 ID。
  • 多路生成:可并行生成多条序列或多个 slot,再做去重、排序、多样性过滤,得到最终列表。

三、与检索/排序的配合

  • 常见形态:LLM 生成「描述/意图」→ 用向量或关键词检索候选 → 精排;或 LLM 直接生成 item 列表 → 用知识库/图谱校验与补全。
  • 工程上需平衡生成长度、延迟与多样性,常用截断、早停、缓存前缀以控制延迟。

面试要点

  • 能区分生成式推荐与检索+排序:生成式用自回归产出 item 或描述,再匹配/校验。
  • 能说清约束解码、多路生成、与检索/精排的衔接,以及延迟与多样性权衡。

记忆要点

  • 生成式推荐:自回归解码生成 item 或描述,约束解码保证合法,多路生成后去重排序。
  • 常与检索/精排串联:生成→检索→精排,或生成→知识库校验。

返回模块 | 返回总览

23-大模型与推荐/223.md

第 223 题:LLM的序列建模能力,长上下文与推荐历史的适配?

题目

LLM的序列建模能力,长上下文与推荐历史的适配?


完整讲解

一、LLM 的序列建模本质

  • 基于 Transformer 的因果语言模型本质是序列到下一个 token 的建模,天然支持变长序列;位置编码与注意力机制可处理长依赖。
  • 推荐历史可视为「token 序列」:把 user 行为序列、item 序列或交互序列编码成 token id 或文本,与自然语言混合输入,让 LLM 在统一序列上做预测。

二、长上下文与推荐历史的适配

  • 长度限制:上下文窗口有限(如 4k/8k/128k),需对长行为序列截断、采样或摘要。常用策略:最近 N 条完整保留 + 更早的做聚合(统计、聚类、摘要)。
  • 位置与格式:把历史放在 system/context 段,或与当前 query 拼接;可显式加时间或类型标记(点击/播放/购买)便于模型区分。
  • 压缩表示:用小型编码器把长序列压成固定长度向量再以「摘要 token」形式注入,或分层:近期 raw token + 远期摘要,兼顾细节与范围。

三、工程要点

  • 序列编码要与预训练/微调时的格式一致;超长时优先保留近期与高信号行为,避免均匀截断丢失关键信息。

面试要点

  • 能说清 LLM 序列建模与推荐历史的对应关系,以及长上下文下的截断、摘要、分层策略。
  • 能说明为何要控制序列长度、如何保留高信号行为与时间信息。

记忆要点

  • LLM 序列建模:推荐历史当 token 序列输入,因果 LM 预测下一 token/行为。
  • 长上下文适配:截断+摘要、近期详细+远期聚合、压缩表示或分层,与窗口限制和延迟权衡。

返回模块 | 返回总览

23-大模型与推荐/224.md

第 224 题:大模型的知识注入,RAG与推荐知识库的构建?

题目

大模型的知识注入,RAG与推荐知识库的构建?


完整讲解

一、知识注入的必要性

  • 推荐依赖领域知识:物品属性、关系、规则、时效(如上新、下架)。纯参数模型易遗忘或幻觉,外部知识库 + 检索可提供事实性约束与可更新知识。

二、RAG 在推荐中的形态

  • 检索:根据当前 query/用户状态从知识库检索相关片段。知识库可包含:item 描述、属性表、规则、FAQ、图谱三元组等;检索可用向量、关键词或混合。
  • 增强:将检索到的片段与用户历史、当前问题一起拼成 Prompt,让 LLM 在「知识+上下文」基础上生成推荐或理由。
  • 推荐知识库构建:结构化(表、图谱)+ 非结构化(文档、评论);需做实体对齐、去噪、更新流程,保证与线上 item 一致。

三、与排序/生成的配合

  • RAG 输出可作为特征输入精排模型,或直接约束 LLM 的生成(只从检索到的 item 中选);可显著降低幻觉、提升可解释性。

面试要点

  • 能说清 RAG 在推荐中的流程:知识库构建 → 检索 → 拼入 Prompt → 生成/排序,以及知识库内容与更新策略。
  • 能说明 RAG 如何缓解幻觉、提升事实性,以及与精排/生成的结合方式。

记忆要点

  • 知识注入:RAG = 推荐知识库检索 + 片段拼入 Prompt,为 LLM 提供事实与规则约束。
  • 知识库:item 属性、关系、规则、图谱;需对齐、去噪与更新;可与精排/生成结合降幻觉。

返回模块 | 返回总览

23-大模型与推荐/225.md

第 225 题:LLM的幻觉问题,推荐场景的事实性约束?

题目

LLM的幻觉问题,推荐场景的事实性约束?


完整讲解

一、LLM 幻觉在推荐中的表现

  • 事实性错误:推荐不存在的 item、错误属性、错误关系(如把未合作艺人说成合作)。
  • 过度泛化:根据模糊语义「捏造」符合描述但实际不存在的物品或评分,影响信任与转化。

二、推荐场景的事实性约束

  • 输入约束:只把真实存在且可推荐的 item 列表/知识库片段注入上下文,让 LLM 仅在给定集合内做选择或排序,避免凭空生成 ID/名称。
  • 输出约束:Constrained decoding 或后处理校验,保证输出 ID 均来自候选集;对属性、数值做规则校验或与知识库比对。
  • 检索增强:用 RAG 提供当前 query 下的权威片段,模型以「检索结果为主、生成为辅」,减少自由发挥。
  • 评估与监控:人工抽检 + 自动指标(如生成 ID 的命中率、属性一致性),持续发现幻觉并迭代 Prompt/数据。

三、与安全、合规的结合

  • 拒绝生成违禁、过期、下架内容,可在 Prompt 或系统层做黑名单与策略校验。

面试要点

  • 能说清推荐场景下幻觉的表现(假 item、假属性)及危害。
  • 能列举事实性约束:输入限定候选、输出校验、RAG、constrained decoding,以及评估与迭代方式。

记忆要点

  • 幻觉:推荐不存在的 item、错误属性;约束手段:限定候选输入、输出校验、RAG、constrained decoding。
  • 评估:ID 命中率、属性一致性、人工抽检;与安全/下架策略结合。

返回模块 | 返回总览

23-大模型与推荐/226.md

第 226 题:多模态大模型,图文视频的联合理解与推荐?

题目

多模态大模型,图文视频的联合理解与推荐?


完整讲解

一、多模态在推荐中的价值

  • 图文、视频等物料需联合理解:标题、封面、音频、弹幕、时长等共同决定用户兴趣;多模态大模型可统一编码不同模态,做跨模态检索与生成理由。

二、联合理解与表示

  • 编码:用多模态预训练模型(如 VLMo、BLIP、Video-LLaMA)将图/视频编码为向量,与文本 embedding 对齐到同一空间,或生成结构化描述再交给 LLM。
  • 融合:早期融合(特征拼接/注意力)或晚期融合(各模态单独打分再融合);推荐场景常用「多模态特征 + 序列行为」一起输入排序或 LLM。
  • 推荐应用:以图搜图、以文搜视频、图文/视频与用户历史的匹配;生成式可做封面摘要、亮点截取、推荐理由生成。

三、工程要点

  • 模态对齐质量与数据规模强相关;推理时需平衡多模态编码成本与延迟,可做缓存、蒸馏或轻量编码器。

面试要点

  • 能说清多模态大模型在推荐中的作用:联合理解图文/视频、跨模态检索、理由生成。
  • 能说明编码与融合方式(早期/晚期)、与序列推荐的结合,以及成本与延迟的权衡。

记忆要点

  • 多模态推荐:图文/视频联合编码与对齐,多模态特征+行为序列输入排序或 LLM。
  • 应用:以图搜图、以文搜视频、理由生成;注意模态对齐与推理成本。

返回模块 | 返回总览

23-大模型与推荐/227.md

第 227 题:大模型的微调策略,LoRA的秩选择与训练效率?

题目

大模型的微调策略,LoRA的秩选择与训练效率?


完整讲解

一、LoRA 简述

  • 低秩适应:在原有权重旁路加 ,只训 ,冻结原权重,大幅减少可训练参数与显存。

二、秩(rank)选择

  • :越大表达能力越强、过拟合风险与显存越高。常用 8、16、32;推荐任务可从小秩(8)起步,效果不足再试 16/32。
  • 秩与模块:可对不同层设不同秩(如 attention 用 16、FFN 用 8),或仅对部分层加 LoRA,在效果与效率间折中。
  • 经验:同参数量下,多模块低秩有时优于少模块高秩;需在目标数据上做小规模验证。

三、训练效率

  • 显存:只存 LoRA 参数与激活梯度,比全量微调省很多;可用梯度检查点进一步省显存。
  • 吞吐:小参数量便于加大 batch、用混合精度;多卡时 LoRA 参数通信量小,扩展友好。
  • 合并:推理前可将 合并为单矩阵,无额外推理开销;不同任务可保留多套 LoRA 做动态加载。

面试要点

  • 能写出 LoRA 形式 并说明秩 对参数量与表达能力的影响。
  • 能说清秩选择经验(8/16/32、按层分配)、训练效率(显存、合并推理)及多任务 LoRA 切换。

记忆要点

  • LoRA:,低秩 ,只训 ;秩常用 8/16/32,可按层分配。
  • 效率:省显存、易并行、推理可合并;多任务多套 LoRA 动态加载。

返回模块 | 返回总览

23-大模型与推荐/228.md

第 228 题:大模型的推理加速,投机解码与量化压缩?

题目

大模型的推理加速,投机解码与量化压缩?


完整讲解

一、推理延迟与吞吐的瓶颈

  • 自回归解码 step 间强依赖,单请求延迟高;大模型参数量大,单 token 计算与显存占用高。推理加速是落地关键。

二、投机解码(Speculative Decoding)

  • 思路:用小模型或同一模型浅层快速生成若干「草稿」token,大模型一次前向对整段草稿做验证,接受连续正确前缀,从第一个错误处重写草稿,重复上述过程。
  • 效果:在保持输出分布近似不变的前提下,用少量大模型步数完成更多 token,降低每 token 的 wall-clock 时间。
  • 实现:草稿模型与主模型需 tokenizer 一致;batch 验证时对不同样本可能接受长度不同,需做 padding 或分桶。

三、量化与压缩

  • 量化:权重量化到 int8/int4(如 GPTQ、AWQ),减少显存与带宽,推理加速;需校准或小样本补偿精度损失。
  • 压缩:剪枝、知识蒸馏得到小模型,用 LoRA 等微调恢复部分能力;推荐场景可「大模型生成训练信号、小模型上线」做蒸馏。
  • 工程:量化与投机可叠加;部署时用 vLLM、TensorRT-LLM 等做 kernel 优化与批处理。

面试要点

  • 能说清投机解码的流程:小模型/草稿生成 → 大模型批量验证 → 接受前缀、从错误处重写。
  • 能说明量化(int8/int4)、蒸馏、剪枝在推理加速中的作用,以及与投机解码的配合。

记忆要点

  • 投机解码:草稿模型生成 → 大模型验证整段 → 接受连续正确前缀,减少大模型步数。
  • 量化/压缩:int8/int4 降显存与带宽;蒸馏/剪枝得小模型;可与投机叠加,配合推理引擎优化。

返回模块 | 返回总览

23-大模型与推荐/229.md

第 229 题:LLM与传统模型的级联,粗排过滤与精排生成?

题目

LLM与传统模型的级联,粗排过滤与精排生成?


完整讲解

一、级联的动机

  • 成本与延迟:LLM 单次调用贵、慢,不适合对海量候选逐一打分。用传统模型(双塔、精排)做粗排/过滤,将候选从百万级压到百级,再用 LLM 做重排、生成理由或对话,兼顾效果与成本。

二、粗排过滤

  • 粗排:双塔、内积检索、或轻量精排模型,用向量或简单特征快速筛出 top-K(如 500~2k),保证召回与多样性。
  • 过滤规则:业务规则(下架、风控、已读)在粗排前或后统一过滤,减少无效候选进入 LLM。

三、精排与生成

  • 精排:对粗排 top-K 用 LLM 做上下文感知的排序或打分,或只对 top-100 做 LLM 重排;输入为「用户上下文 + 候选列表」,输出排序或分数。
  • 生成:在重排后的短列表上做理由生成、摘要、对话回复,此时候选少、可控性强。
  • 级联设计要点:粗排召回率要足,否则 LLM 无法补救;LLM 层可设超时与降级,失败时回退到传统精排结果。

面试要点

  • 能说清级联结构:传统粗排/检索压候选量 → LLM 精排或生成,以及为何这样设计(成本、延迟、效果)。
  • 能说明粗排召回率的重要性、LLM 超时降级与回退策略。

记忆要点

  • 级联:粗排(双塔/精排)把候选压到百级 → LLM 精排/理由生成;控成本与延迟。
  • 要点:粗排保证召回,LLM 层超时降级回退传统精排。

返回模块 | 返回总览

23-大模型与推荐/230.md

第 230 题:大模型的评估,人工评估与自动指标的对齐?

题目

大模型的评估,人工评估与自动指标的对齐?


完整讲解

一、大模型评估的难点

  • 推荐输出多样(排序、列表、理由、对话),单一自动指标难以全面衡量;人类对「相关性、有用性、安全」的判断与自动指标未必一致,需人工评估与自动指标对齐

二、人工评估

  • 维度:相关性、多样性、新颖性、理由质量、事实性、无害性等;可设计打分表与示例,做校准与一致性培训。
  • 流程:抽样 → 多人标注 → 一致性检验(如 Kappa);可做 A/B 与基线对比,或 pairwise 偏好标注供 RLHF/DPO。
  • 成本:人工贵且慢,通常用于关键场景、上线前验收与定期抽检,并用于构造自动指标的标注集。

三、自动指标与对齐

  • 自动指标:NDCG、MRR、多样性指标、理由的 BLEU/ROUGE、事实性(与知识库匹配)、安全分类器分数等。
  • 对齐:用人工标注数据训练/调参,使自动指标与人工偏好相关(如学习 to rank、偏好模型);定期用人工抽检校验自动指标是否漂移。
  • 推荐专用:可定义「推荐满意度」「转化相关性」等业务指标,与人工标签回归或分层评估。

面试要点

  • 能说清大模型推荐评估为何需要人工+自动:人工多维度、自动可规模化,二者需对齐与校验。
  • 能列举常用自动指标(NDCG、理由质量、事实性)及与人工对齐的方法(标注、偏好学习、抽检)。

记忆要点

  • 评估:人工多维度(相关、多样、理由、事实、安全),自动指标可规模化;二者需对齐与定期校验。
  • 对齐:用人工标注训/调自动指标或偏好模型;业务指标与人工分层评估。

返回模块 | 返回总览

23-大模型与推荐/231.md

第 231 题:指令微调的数据构造,推荐任务的指令多样性?

题目

指令微调的数据构造,推荐任务的指令多样性?


完整讲解

一、指令微调在推荐中的作用

  • 让基座模型学会按「指令」完成推荐相关任务:生成列表、排序、解释理由、多轮澄清等。指令多样性决定模型能否泛化到不同表述与场景。

二、数据构造方式

  • 任务类型:单轮列表推荐、多轮对话推荐、比较与解释、澄清问题生成、拒绝与边界(无法推荐时怎么说)等,每类需足量高质量样本。
  • 指令表述:同一任务用多种说法(正式/口语、长短、中英),避免过拟合到固定模板;可包含约束(数量、类型、排除已读)。
  • 输入输出:输入 = 用户画像/历史 + 指令 + 可选候选;输出 = 列表/排序/理由/对话,格式统一(如 JSON),便于解析与评估。
  • 数据来源:人工撰写、从日志/点击构造(行为→偏好)、模型生成后筛选或改写,注意去偏与多样性采样。

三、质量与规模

  • 指令多样性比单纯堆量更重要;可做课程学习(先简单指令后复杂)、难例挖掘与主动学习扩充薄弱类型。

面试要点

  • 能说清指令微调数据构造的要素:任务类型、指令表述多样性、输入输出格式、数据来源与质量把控。
  • 能说明为何要强调指令多样性,以及如何做课程学习与难例扩充。

记忆要点

  • 指令微调数据:多任务类型、多表述指令、统一格式的输入输出;来源包括人工、日志、模型生成+筛选。
  • 指令多样性决定泛化;可课程学习、难例挖掘扩充薄弱类型。

返回模块 | 返回总览

23-大模型与推荐/232.md

第 232 题:大模型的对齐训练,RLHF在推荐偏好中的应用?

题目

大模型的对齐训练,RLHF在推荐偏好中的应用?


完整讲解

一、对齐与 RLHF 简述

  • 对齐:使模型输出符合人类偏好(有用、无害、诚实等)。RLHF:用人类偏好标注训练奖励模型(RM),再用强化学习(如 PPO)最大化 RM 分,使策略模型与人类偏好一致。

二、在推荐偏好中的应用

  • 偏好定义:推荐场景的偏好 = 用户更愿意点击/停留/转化的列表、更认可的理由、更自然的对话等;可用 A/B 或显式反馈得到 pairwise 偏好数据。
  • 奖励建模:用 (query, 候选输出 A, 候选输出 B, 偏好 A>B) 训练 RM,对单条输出也可用标量反馈(点击、评分)构造隐式偏好。
  • 策略优化:在推荐策略(生成列表/理由)上做 RL,以 RM 或业务指标(如 CTR 预估)为 reward,注意 reward hacking 与分布偏移,常用 KL 惩罚约束策略不要偏离初始模型太远。
  • 替代方法:DPO 等无需显式 RM 的偏好优化也可用于推荐,数据格式仍为偏好对。

面试要点

  • 能说清 RLHF 流程:偏好数据 → 奖励模型 → RL 优化策略,以及 KL 惩罚与分布偏移的注意点。
  • 能说明推荐场景下偏好如何定义与采集(点击、转化、人工比较),以及 DPO 等替代方案。

记忆要点

  • RLHF:偏好数据训 RM → RL 最大化 RM,策略加 KL 惩罚防偏移。
  • 推荐偏好:点击/转化/人工比较定义偏好;RM 与策略可针对列表、理由、对话;可用 DPO 等无 RM 方法。

返回模块 | 返回总览

23-大模型与推荐/233.md

第 233 题:世界模型与推荐,环境模拟与策略学习?

题目

世界模型与推荐,环境模拟与策略学习?


完整讲解

一、世界模型的概念

  • 世界模型:对环境状态转移与奖励的建模,即 。在推荐中可把「用户状态、曝光与反馈」视为环境,推荐动作导致状态与奖励变化。

二、环境模拟与策略学习

  • 环境模拟:用历史数据或学到的用户模型模拟「若给用户推荐 A,其是否点击/停留/转化」,用于离线评估或生成仿真轨迹;可基于因果图、序列模型或小型 LLM 做用户模拟器。
  • 策略学习:在模拟环境或真实环境中用 RL(DQN、PPO、MBRL 等)优化推荐策略,目标为长期累积奖励(如 LTV、留存);世界模型可提供 model-based 的想象轨迹,减少真实交互次数。
  • 与 LLM 结合:LLM 可作为用户模拟器(给定历史与推荐,生成用户反应文本或偏好),或作为策略的表达层,与环境模型配合做 planning/rollout。

三、实践注意

  • 模拟器与真实分布存在 gap,需做校准与离线/在线验证;长期奖励稀疏,需设计中间 reward 与 credit assignment。

面试要点

  • 能说清世界模型在推荐中的含义:环境=用户状态与反馈,用于模拟与策略学习。
  • 能说明环境模拟(用户模拟器)、策略学习(RL)、与 LLM 的结合方式,以及 sim-to-real gap 的应对。

记忆要点

  • 世界模型:建模状态转移与奖励;推荐中环境=用户状态与反馈,可模拟用户反应。
  • 用途:环境模拟→离线评估/仿真;RL 策略学习;LLM 可做用户模拟器或策略;注意 sim-to-real gap。

返回模块 | 返回总览

23-大模型与推荐/234.md

第 234 题:多智能体推荐,LLM作为用户模拟器?

题目

多智能体推荐,LLM作为用户模拟器?


完整讲解

一、多智能体与用户模拟

  • 多智能体:多个 LLM 或模型分别扮演不同角色(用户、推荐系统、评论者等),通过多轮交互完成评估、辩论或数据生成。
  • 用户模拟器:用 LLM 扮演「用户」,根据画像与历史,对给定推荐列表或追问做出拟人反应(点击、跳过、追问、负反馈),用于离线评估、对话数据生成或对抗训练。

二、在推荐中的应用

  • 评估:用户智能体对推荐结果做拟真反馈,可算满意度、追问率等,弥补无真实用户的离线评估。
  • 数据生成:用户与推荐系统多轮对话,生成 (state, action, response) 数据,用于训对话推荐或 RL。
  • 对抗/鲁棒:用户智能体模拟难缠或边界行为,提升推荐系统在澄清、拒绝、多兴趣切换上的鲁棒性。
  • 设计要点:用户模拟器需有明确的状态与偏好设定,避免过于随机;多智能体需约定协议与格式,便于解析与评估。

面试要点

  • 能说清多智能体推荐中「LLM 作为用户模拟器」的用途:评估、数据生成、对抗训练。
  • 能说明用户模拟器的状态与偏好设定、多轮协议,以及如何保证拟真与可控。

记忆要点

  • 多智能体推荐:多 LLM 扮演用户/系统等;用户模拟器拟人反应,用于评估、数据生成、鲁棒训练。
  • 要点:明确用户状态与偏好、约定协议与格式,平衡拟真与可控。

返回模块 | 返回总览

23-大模型与推荐/235.md

第 235 题:大模型的可解释性,思维链与推荐理由生成?

题目

大模型的可解释性,思维链与推荐理由生成?


完整讲解

一、可解释性的需求

  • 推荐可解释性能提升信任、辅助决策与合规。思维链(Chain-of-Thought)推荐理由生成 是 LLM 天然擅长的能力。

二、思维链在推荐中的用法

  • 推理过程外显:让 LLM 先输出「因为用户最近看了 A、B,与当前候选 C 在风格上相似,所以推荐 C」再输出列表,使决策过程可读可审。
  • 分步推理:对复杂 query(多兴趣、澄清后)可要求模型先总结需求、再匹配、再排序,便于发现错误环节。
  • 注意:思维链增加 token 与延迟,可仅在需要解释的请求或抽样评估时开启;需约束格式避免冗长。

三、推荐理由生成

  • 内容:基于用户历史与 item 属性生成简短理由(如「与你常看的悬疑类一致」「新品上架」);可结合 RAG 注入事实避免幻觉。
  • 评估:理由相关性、事实性、多样性;可与点击/满意度做联合优化(多目标或 RLHF)。
  • 工程:理由可异步生成、缓存或与排序解耦,平衡体验与成本。

面试要点

  • 能说清思维链如何用于推荐可解释(分步推理、过程外显),以及理由生成的内容、评估与工程权衡。
  • 能说明 CoT 与理由生成对延迟与成本的影响及应对(抽样、异步、缓存)。

记忆要点

  • 可解释性:思维链外显推理过程;理由生成基于历史与属性,需事实性约束与评估。
  • 工程:CoT/理由增加 token 与延迟,可抽样、异步或缓存。

返回模块 | 返回总览

23-大模型与推荐/236.md

第 236 题:跨语言推荐,多语言LLM的零迁移能力?

题目

跨语言推荐,多语言LLM的零迁移能力?


完整讲解

一、跨语言推荐的需求

  • 用户与内容常跨语言(如英文用户看中文内容、多语言商品);多语言 LLM 在统一语义空间表示不同语言,可支持零样本或少样本的跨语言迁移。

二、多语言 LLM 的零迁移能力

  • 统一表示:多语言预训练使模型在共享空间编码各语言,同一语义的翻译对距离近,便于跨语言检索与匹配。
  • 零迁移:在源语言(如中文)上做推荐微调或 prompt 设计后,对目标语言(如英文)用户/内容可直接推理,无需或仅需少量目标语数据;依赖模型的多语言泛化。
  • 应用:跨语言检索(query 一种语言、库另一种)、多语言混排与去重、冷启动语言用高资源语言知识迁移。

三、局限与增强

  • 低资源语言可能仍弱;可加少量目标语数据做适配或检索时做翻译增强(query 翻译、双语索引)。

面试要点

  • 能说清多语言 LLM 如何支持跨语言推荐:统一表示、零迁移推理、跨语言检索与混排。
  • 能说明零迁移的依赖(多语言预训练质量)及低资源语言的增强手段(少样本、翻译)。

记忆要点

  • 跨语言推荐:多语言 LLM 统一表示,零迁移或少样本迁移到新语言。
  • 应用:跨语言检索、多语言混排;低资源语可少样本或翻译增强。

返回模块 | 返回总览

23-大模型与推荐/237.md

第 237 题:大模型的个性化,用户特定的LoRA适配器?

题目

大模型的个性化,用户特定的LoRA适配器?


完整讲解

一、个性化的需求

  • 不同用户偏好、敏感度、上下文差异大;用户特定的适配可提升推荐效果与满意度,大模型时代常用 LoRA 等轻量适配器 做 per-user 或 per-group 参数。

二、用户特定的 LoRA 适配器

  • 思路:为每个用户(或用户簇)维护一套 LoRA 参数,推理时加载对应用户的 LoRA 与基座组合,实现个性化前向。
  • 存储与加载:LoRA 参数量小(几 MB 级),可存于参数服务器或 KV;请求时按 user_id 取 LoRA,与基座合并或动态注入,需注意延迟与缓存策略。
  • 训练:用该用户(或簇)的数据微调 LoRA,或从通用 LoRA 做少量步数的个性化微调;需防过拟合与冷启动(新用户用通用或聚类 LoRA)。
  • 扩展:用户数极大时可采用「基座 + 少量共享 LoRA + 稀疏用户 LoRA」或聚类后每类一个 LoRA,平衡个性化与存储。

面试要点

  • 能说清 per-user LoRA 的思路:每用户一套 LoRA、推理时加载、训练用用户数据或从通用微调。
  • 能说明存储与加载、冷启动、以及用户数极大时的聚类或稀疏 LoRA 策略。

记忆要点

  • 大模型个性化:用户特定 LoRA,推理时按 user 加载;训练用用户数据或从通用微调。
  • 规模大时:聚类 LoRA、稀疏用户 LoRA、冷启动用通用/聚类 LoRA。

返回模块 | 返回总览

23-大模型与推荐/238.md

第 238 题:实时大模型推荐,流式上下文更新机制?

题目

实时大模型推荐,流式上下文更新机制?


完整讲解

一、实时大模型推荐的挑战

  • 用户兴趣随最近行为快速变化;若上下文在请求时才固定,流式行为(正在看的、刚点赞的)需能及时进入上下文,否则推荐滞后。

二、流式上下文更新机制

  • 事件流:用户行为(点击、播放、搜索)以事件流写入消息队列或流存储,推荐服务消费流并维护「用户最新上下文」的缓存或状态。
  • 上下文组装:每次推荐请求时,从缓存/状态中取最近 N 条最近 T 秒的行为,与画像、长期兴趣拼接成 Prompt 或特征;可设滑动窗口或基于时间的衰减。
  • 与 LLM 的衔接:上下文更新后重新构造 Prompt 或重算与候选的匹配;若用向量检索,可对最近行为做实时 embedding 并更新用户向量,再与候选检索。
  • 一致性:多实例部署时需保证同一用户的上下文在路由到的实例上一致,可通过集中式状态或 sticky 路由解决。

面试要点

  • 能说清流式上下文更新:行为事件流 → 实时聚合/缓存 → 请求时取最近窗口拼入 Prompt 或特征。
  • 能说明与 LLM/检索的衔接、多实例下上下文一致性与延迟权衡。

记忆要点

  • 实时大模型推荐:行为流式写入,服务端维护最新上下文缓存,请求时取最近窗口拼入输入。
  • 衔接:Prompt 或向量实时更新;多实例需集中状态或 sticky 保证一致。

返回模块 | 返回总览

23-大模型与推荐/239.md

第 239 题:大模型的安全对齐,有害推荐的拒绝生成?

题目

大模型的安全对齐,有害推荐的拒绝生成?


完整讲解

一、安全对齐与有害推荐

  • 对齐目标:模型不生成违法、违规、歧视、诱导成瘾等有害内容。在推荐场景即拒绝生成或推荐有害 item、理由或对话,并在边界情况下明确拒绝而非迎合。

二、拒绝生成的实现

  • 训练阶段:在指令数据中加入「不应推荐」的示例(违禁、不适龄、虚假宣传等),教模型输出拒绝话术或空列表;结合 RLHF/DPO 对「正确拒绝」给予正向偏好。
  • 推理阶段:系统 Prompt 中明确禁止类别与拒绝格式;对模型输出做安全分类器或规则校验,若检测到有害则替换为拒绝话术或降级到安全兜底。
  • 推荐侧:候选在入库与召回阶段做安全过滤,LLM 仅对已过审候选做排序/理由生成;若用户 query 敏感,可拒绝推荐并提示修改意图。
  • 持续迭代:收集边界与对抗样本,更新规则与模型,做红队测试与审计。

面试要点

  • 能说清安全对齐在推荐中的体现:拒绝有害推荐与有害生成,训练与推理双端约束。
  • 能说明拒绝生成的实现(指令数据、RLHF、安全分类器、候选过滤)与迭代方式。

记忆要点

  • 安全对齐:拒绝生成/推荐有害内容;训练加拒绝示例与偏好,推理加规则与安全分类器。
  • 推荐侧:候选先过审再进 LLM;敏感 query 可拒绝并提示。

返回模块 | 返回总览

23-大模型与推荐/240.md

第 240 题:大模型的成本优化,蒸馏与小模型的能力迁移?

题目

大模型的成本优化,蒸馏与小模型的能力迁移?


完整讲解

一、成本优化的动机

  • 大模型推理与训练成本高;蒸馏与小模型能力迁移可在保持大部分效果的前提下显著降本、降延迟。

二、蒸馏

  • 逻辑蒸馏:用大模型在无标签或弱标签数据上生成软标签(概率分布)或排序信号,小模型(同构或异构)在相同输入上拟合大模型输出,损失常用 KL 或 listwise ranking loss。
  • 特征蒸馏:小模型中间层或输出层对齐大模型对应层的表示,增强小模型表示能力。
  • 推荐场景:大模型做重排/理由生成的 logits 或排序对作为教师,小模型(双塔、精排、小 LLM)学习模仿,上线时仅部署小模型。

三、能力迁移与小模型

  • 迁移内容:排序偏好、理由风格、对话策略等;通过蒸馏、数据复用(大模型标注的数据训小模型)或课程学习迁移。
  • 小模型选择:小尺寸 LLM、传统精排/双塔 + 文本编码器,按延迟与效果做权衡;可多阶段(小模型粗排 + 大模型仅对 top 精排)进一步控成本。
  • 持续更新:大模型迭代后重新蒸馏或增量蒸馏,使小模型跟踪大模型能力。

面试要点

  • 能说清蒸馏流程:大模型生成软标签/排序 → 小模型拟合;特征蒸馏与逻辑蒸馏的区别。
  • 能说明推荐场景下如何用蒸馏做重排/理由迁移、小模型选型与多阶段部署。

记忆要点

  • 成本优化:蒸馏(逻辑/特征)把大模型能力迁到小模型;推荐上可迁排序、理由、对话。
  • 小模型上线、大模型作教师;可多阶段(小模型粗排+大模型精排)与持续再蒸馏。

返回模块 | 返回总览

23-大模型与推荐/241.md

第 241 题:推荐Agent的设计,工具使用与多轮交互?

题目

推荐Agent的设计,工具使用与多轮交互?


完整讲解

一、推荐 Agent 的定义

  • Agent:能根据当前状态决定动作(调用工具、生成回复)、观察反馈并多轮迭代的系统。推荐 Agent 即把推荐动作(检索、排序、澄清、解释)与工具调用、多轮交互结合,主动完成用户目标。

二、工具使用

  • 工具:检索(向量/关键词)、排序模型、知识库查询、用户画像查询、下单/加购等;Agent 在每轮根据意图选择工具、构造参数、解析结果并决定下一步。
  • 与 LLM 结合:LLM 输出结构化决策(如 call_tool("retrieve", query)),执行器调用工具后把结果回填 Prompt,LLM 再生成回复或下一动作;可用 ReAct、Function Calling 等范式。
  • 推荐场景:先检索候选 → 精排/过滤 → 生成理由或追问澄清;缺信息时主动问用户偏好,再调用推荐工具。

三、多轮交互

  • 状态跟踪:维护对话历史、已推荐集合、用户显式偏好与拒绝,避免重复推荐与冲突。
  • 策略:何时推荐、何时澄清、何时结束;可规则或小模型做意图分类,LLM 做生成与工具编排。
  • 评估:多轮任务完成率、轮次与用户满意度;需仿真或人工评估多轮轨迹。

面试要点

  • 能说清推荐 Agent 的组成:状态、工具(检索/排序/知识库)、LLM 决策与多轮交互。
  • 能说明工具调用的流程(LLM 出参→执行→回填)、状态跟踪与多轮策略设计。

记忆要点

  • 推荐 Agent:LLM + 工具(检索、排序、知识库)+ 多轮状态;工具调用后结果回填再决策。
  • 多轮:状态跟踪(历史、已推荐、偏好);策略决定推荐/澄清/结束。

返回模块 | 返回总览

23-大模型与推荐/242.md

第 242 题:对话式推荐,多轮对话的状态跟踪?

题目

对话式推荐,多轮对话的状态跟踪?


完整讲解

一、对话式推荐的特点

  • 推荐通过多轮对话完成:用户表达需求、系统推荐或追问、用户反馈(喜欢/不喜欢/细化),系统更新理解并再推荐。状态跟踪是核心,否则无法利用历史轮次信息。

二、状态跟踪的内容

  • 用户状态:当前意图(探索/精确查找/比较)、已表达偏好(类型、属性、显式拒绝)、历史推荐与反馈(已展示、已点击、已拒绝)。
  • 对话状态:当前轮话题、待澄清项(如「想要什么价位」)、已澄清项;槽位填充式或自由形式均可。
  • 更新时机:每轮用户回复后,用 NLU 或 LLM 做意图与实体抽取,更新状态;再根据状态调用推荐逻辑(检索/排序)并生成回复。

三、实现方式

  • 规则 + 状态机:预定义槽位与转移,适合简单流程。
  • LLM 状态摘要:每轮将「历史对话 + 当前回复」输入 LLM,输出结构化状态(JSON)或摘要,下游推荐与生成基于该状态;可结合 RAG 注入产品知识。
  • 联合模型:端到端对话模型同时做状态预测与回复生成,或状态与推荐模块分离、通过状态接口耦合。评估需看状态准确率与任务完成率。

面试要点

  • 能说清对话式推荐中状态跟踪包含什么:用户意图、偏好、历史推荐与反馈、对话槽位。
  • 能说明状态如何更新(每轮 NLU/LLM)、与推荐与生成的衔接,以及规则与 LLM 两种实现思路。

记忆要点

  • 对话式推荐:多轮交互,状态跟踪=意图+偏好+历史推荐与反馈+槽位。
  • 实现:每轮更新状态(规则或 LLM),再推荐+生成;可状态机或 LLM 摘要。

返回模块 | 返回总览

23-大模型与推荐/243.md

第 243 题:大模型的长期记忆,外部记忆模块的检索增强?

题目

大模型的长期记忆,外部记忆模块的检索增强?


完整讲解

一、长期记忆的需求

  • 模型上下文有限,无法容纳用户全部历史;外部记忆模块 将长程信息存于可检索存储,按需取回并注入当前上下文,实现「长期记忆」。

二、外部记忆与检索增强

  • 存储内容:用户长期偏好、重要交互摘要、跨会话的关键事件(购买、订阅)、产品知识等;可向量化存于向量库或结构化存于 DB。
  • 检索:根据当前 query/对话状态检索相关记忆片段(top-k 向量检索或规则触发),与当前轮输入一起拼成 Prompt。
  • 更新:新交互发生后,用模型或规则生成摘要或 embedding,写入记忆库;可设容量与遗忘策略(如按时间衰减、重要度采样)。
  • 与 LLM 的配合:检索到的记忆作为 context 注入,LLM 在「当前输入 + 长期记忆」基础上生成推荐或回复,避免遗忘与重复推荐。

三、设计要点

  • 记忆表示要紧凑且可检索;更新需平衡新鲜度与噪声;隐私与合规要求高时需脱敏与访问控制。

面试要点

  • 能说清长期记忆的架构:外部存储 + 按需检索 + 注入 Prompt;存储内容与更新策略。
  • 能说明检索方式(向量/规则)、更新时机与遗忘策略,以及与 LLM 的衔接。

记忆要点

  • 长期记忆:外部记忆库存储长程信息,检索后注入上下文;内容可为偏好、摘要、关键事件。
  • 更新与检索:新交互写摘要/embedding;按 query 或状态检索;可设容量与遗忘策略。

返回模块 | 返回总览

23-大模型与推荐/244.md

第 244 题:推荐场景的涌现能力,规模效应的实验观察?

题目

推荐场景的涌现能力,规模效应的实验观察?


完整讲解

一、涌现能力与规模效应

  • 涌现能力:模型规模达到一定量级后,某些能力(如少样本、推理、指令遵循)显著跃升,表现为 scaling law。推荐场景可观察:更大模型在零样本推荐、多轮推理、理由质量上的提升是否随规模涌现。

二、推荐场景的实验观察

  • 指标:在固定推荐 benchmark 上比较不同规模模型(同族或不同族)的 NDCG、理由相关性、人工偏好等;可做 zero-shot vs few-shot vs 微调对比。
  • 常见现象:较大模型在复杂指令、多步推理、跨域泛化上往往更好;小模型在简单排序任务上可能接近,但复杂任务差距明显。也存在「规模不是唯一因素」:数据质量、对齐、任务形式同样重要。
  • 实验设计:控制数据与评估协议一致;区分「能力涌现」与「评估敏感度」;可做消融(加长上下文、加示例)看是否部分复现大模型效果。

三、对落地的启示

  • 资源有限时可优先用中等规模+高质量数据与对齐;对关键复杂子任务可单独用大模型(如级联精排),整体仍控成本。

面试要点

  • 能说清涌现能力与规模效应的含义,以及在推荐场景如何做实验观察(指标、规模对比、控制变量)。
  • 能说明实验中的常见现象与对选型、级联设计的启示。

记忆要点

  • 涌现:规模增大后能力跃升;推荐上可观察不同规模在 NDCG、理由、泛化上的差异。
  • 实验要控制数据与评估一致;落地可中等规模+高质量数据,或关键环节用大模型级联。

返回模块 | 返回总览

23-大模型与推荐/245.md

第 245 题:大模型的偏见放大,训练数据的代表性问题?

题目

大模型的偏见放大,训练数据的代表性问题?


完整讲解

一、偏见放大的含义

  • 偏见:训练数据中存在的统计偏差(如某群体/品类过表征、历史歧视性策略导致的反馈偏差)。大模型会记忆并放大这些模式,推荐时可能加剧不公平或刻板印象。

二、训练数据的代表性问题

  • 代表不足:少数群体、长尾品类、新用户/新 item 在数据中样本少,模型学到的分布偏多数,推荐时对少数不利(准确率低、曝光少)。
  • 反馈偏差:点击/转化受历史曝光与位置影响,并非真实偏好;若直接当标签训练,会强化「马太效应」与流行偏差,放大已有偏见。
  • 文本与行为:若用含偏见表述的文本(如刻板化描述)做预训练或指令数据,模型可能生成或推荐带偏见的理由与结果。

三、缓解方向

  • 数据:平衡采样、去偏重加权、合成少数样本;清洗偏见表述、多样化指令与示例。
  • 目标与评估:加入公平性约束或正则、多目标优化;评估时按群体/品类分层,监控曝光与满意度差异。
  • 推理与策略:配额、探索、公平性约束排序;拒绝生成歧视性理由,结合安全对齐。

面试要点

  • 能说清偏见放大的原因:数据代表不足、反馈偏差、文本偏见被模型学习并放大。
  • 能列举缓解手段:数据平衡与去偏、公平性目标与评估、推理侧配额与约束。

记忆要点

  • 偏见放大:数据代表不足与反馈偏差被模型学习并放大;少数群体与长尾易受损。
  • 缓解:数据平衡与去偏、公平性目标与分层评估、推理配额与安全约束。

返回模块 | 返回总览

23-大模型与推荐/246.md

第 246 题:联邦大模型,隐私保护的分布式微调?

题目

联邦大模型,隐私保护的分布式微调?


完整讲解

一、联邦学习与隐私

  • 联邦学习:数据保留在各参与方本地,仅交换梯度或模型更新,聚合后得到全局模型,减少原始数据集中带来的隐私与合规风险。联邦大模型即在联邦设定下做大模型的微调或协同训练。

二、隐私保护的分布式微调

  • 设定:多方(如多区域、多业务)各有本地数据,希望联合微调大模型而不共享原始数据。可交换 LoRA 等增量参数、梯度或中间表示,在中心或安全多方计算(MPC)下聚合。
  • 隐私保护:梯度/参数可加差分隐私(DP)噪声或做安全聚合(Secure Aggregation),防止从更新反推单方数据;可选同态加密或可信执行环境做更重保护。
  • 效率:大模型参数量大,全量梯度联邦通信与计算成本高;LoRA/Adapter 联邦只传少量参数,更可行;可做压缩与稀疏化进一步降通信。
  • 挑战:异构数据导致收敛与公平性;DP 噪声可能影响效果;需在隐私预算与效用间权衡。

面试要点

  • 能说清联邦大模型的动机:数据不出域、联合微调,以及隐私保护手段(梯度/参数聚合、DP、安全聚合)。
  • 能说明 LoRA 联邦、通信与效率权衡、以及数据异构与 DP 对效果的影响。

记忆要点

  • 联邦大模型:数据留本地,交换梯度或 LoRA 等增量,中心或安全聚合;加 DP 或安全聚合护隐私。
  • 效率:LoRA 联邦降通信;异构与 DP 影响收敛与效果,需权衡。

返回模块 | 返回总览

23-大模型与推荐/247.md

第 247 题:大模型的持续学习,灾难性遗忘的缓解?

题目

大模型的持续学习,灾难性遗忘的缓解?


完整讲解

一、持续学习与灾难性遗忘

  • 持续学习:模型在新增任务或新数据上不断学习,希望保留旧能力。灾难性遗忘指在新数据上更新后,在旧任务/旧数据上性能大幅下降,因梯度更新覆盖了原有表示。

二、缓解思路

  • 正则:EWC、L2 等对重要参数(依旧任务 Fisher 或梯度)加惩罚,更新时尽量少动这些参数,保留旧知识。
  • 回放:保留少量旧数据或生成伪样本,与新数据混合训练,让模型持续见到旧分布;存储或生成质量影响效果与成本。
  • 参数隔离:为不同任务/阶段分配独立参数(如 Adapter、LoRA),推理时按任务选择子网,旧参数冻结,避免互相覆盖;需管理子网数量与路由。
  • 动态架构:渐进式扩展网络或 mask,为新任务增加容量,旧部分尽量冻结;复杂度与工程成本较高。
  • 推荐场景:新品类、新区域、新时段数据可视为新任务;可用 LoRA 按任务/时段扩展、加回放缓冲或正则,并做旧场景的定期评估与回放采样策略。

面试要点

  • 能说清灾难性遗忘的原因(梯度覆盖旧表示)及持续学习的目标。
  • 能列举缓解方法:正则(EWC)、回放、参数隔离(Adapter/LoRA)、动态架构,以及推荐场景的适用方式。

记忆要点

  • 持续学习防遗忘:正则(EWC)、回放旧数据、参数隔离(LoRA/Adapter)、动态扩展。
  • 推荐:新品类/区域可视为新任务,用 LoRA 扩展+回放或正则,并评估旧场景。

返回模块 | 返回总览

23-大模型与推荐/248.md

第 248 题:推荐预训练任务,MLM与对比学习的联合?

题目

推荐预训练任务,MLM与对比学习的联合?


完整讲解

一、推荐预训练任务

  • 预训练:在大量无标注或弱标注数据上学习通用表示,再在下游推荐任务上微调。推荐场景可用的自监督任务包括 MLM(掩码语言模型)对比学习,二者可联合以兼顾语义与序列/行为表示。

二、MLM 在推荐中的形式

  • 文本 MLM:对 item 标题、描述、标签等做随机 mask,模型预测被 mask 的 token,学习文本表示与实体语义,便于后续文本匹配与理解。
  • 行为/序列 MLM:将行为序列视为「句子」,随机 mask 部分 item 或位置,预测被 mask 的 item 或下一行为,学习序列与协同信号;可与 BERT4Rec、SASRec 等思路结合。

三、对比学习

  • 目标:拉近正对(如同一 user 的两次增强视图、同 session 内共现 item)、推远负对,学习区分性表示。常用 InfoNCE 或 NT-Xent。
  • 推荐应用:user-item 对、序列增强(crop、mask、reorder)后对比;多模态时图文对齐也是对比;可得到 user/item 向量用于检索与排序。
  • 联合:同一模型可同时做 MLM 损失与对比损失(多任务),MLM 强语义、对比强区分与对齐;需平衡损失权重与负样本构造。

面试要点

  • 能说清推荐预训练中 MLM 的两种形态:文本 MLM 与行为/序列 MLM。
  • 能说明对比学习的目标与在推荐中的应用(user-item、序列增强、多模态),以及 MLM+对比联合训练的意义与权重平衡。

记忆要点

  • 推荐预训练:MLM(文本+行为序列)+ 对比学习;MLM 强语义,对比强区分与对齐。
  • 联合训练时平衡两损失与负样本构造;预训练表示用于下游微调。

返回模块 | 返回总览

23-大模型与推荐/249.md

第 249 题:大模型的多目标输出,自然语言生成与评分预测?

题目

大模型的多目标输出,自然语言生成与评分预测?


完整讲解

一、多目标输出的需求

  • 推荐既要排序/打分(哪个更可能点击、转化),也要自然语言生成(理由、摘要、对话)。大模型可在一个框架下同时产出数值预测文本生成,即多目标输出。

二、自然语言生成与评分预测的结合

  • 形式:输入用户与候选上下文,输出可包含(1)排序或分数(如各候选的 0~1 分),(2)推荐理由或解释文本。可要求模型先输出分数再输出理由,或并行两路 head。
  • 训练:多任务学习,损失 = 排序/回归损失(如 listwise、MSE)+ 生成损失(如 CE);可共享 backbone、分叉输出层;需平衡两目标权重。
  • 推理:若只关心排序可只取分数;若需可解释则取生成;也可用分数做粗筛、用生成做精排或展示。
  • 注意:数值输出需约束范围与校准;生成与分数的一致性可加正则或联合评估(高分组理由质量也应高)。

面试要点

  • 能说清多目标输出的含义:同一模型同时输出排序/分数与自然语言(理由等),以及训练与推理的配合。
  • 能说明多任务损失设计、权重平衡、数值校准与一致性约束。

记忆要点

  • 多目标:大模型同时输出评分/排序与文本(理由);多任务损失(排序+生成),共享 backbone、分叉输出。
  • 推理可按需取分数或文本;注意数值校准与分数-理由一致性。

返回模块 | 返回总览

23-大模型与推荐/250.md

第 250 题:大模型的评估基准,推荐专用benchmark的构建?

题目

大模型的评估基准,推荐专用benchmark的构建?


完整讲解

一、大模型评估基准

  • 通用基准:MMLU、HumanEval、BBH 等测能力,但与推荐任务不直接对齐。推荐专用 benchmark 需包含:标准数据集、任务定义、评估协议与排行榜,便于比较不同模型与方法。

二、推荐专用 Benchmark 的构建

  • 任务:候选排序、列表生成、理由生成、对话推荐、跨域/冷启动等;可多任务覆盖检索、排序、生成与多轮。
  • 数据:公开或脱敏的用户行为、item 元数据、对话日志;需划分 train/val/test、按时间或用户分割防泄漏;可提供多语言、多领域子集。
  • 评估指标:NDCG/MRR/Recall(排序)、Diversity/Novelty、理由的 BLEU/ROUGE/事实性、人工偏好或满意度;需统一评估脚本与提交格式。
  • 模型与基线:包含传统推荐模型、不同规模 LLM、zero-shot vs 微调,便于做规模与方法对比。可设 hidden test 防过拟合。
  • 构建流程:定义 scope → 数据采集与清洗 → 任务与协议设计 → 指标与脚本 → 基线跑通 → 开放提交与迭代。

面试要点

  • 能说清推荐专用 benchmark 的要素:任务类型、数据划分、评估指标与协议、基线与提交方式。
  • 能说明与通用基准的区别、以及构建流程(数据、任务、指标、防泄漏与过拟合)。

记忆要点

  • 推荐 benchmark:标准任务(排序/生成/对话)、数据划分、统一指标与协议、基线比较。
  • 构建:任务定义→数据清洗与划分→指标与脚本→基线→开放提交;可 hidden test 防过拟合。

返回模块 | 返回总览

23-大模型与推荐/README.md

23-大模型与推荐(第 221–250 题)

题号 主题 文章
221 LLM作为推荐器的Prompt设计,任务指令与上下文示例… 221.md
222 生成式推荐(Item Generation),自回归解码… 222.md
223 LLM的序列建模能力,长上下文与推荐历史的适配? 223.md
224 大模型的知识注入,RAG与推荐知识库的构建? 224.md
225 LLM的幻觉问题,推荐场景的事实性约束? 225.md
226 多模态大模型,图文视频的联合理解与推荐? 226.md
227 大模型的微调策略,LoRA的秩选择与训练效率? 227.md
228 大模型的推理加速,投机解码与量化压缩? 228.md
229 LLM与传统模型的级联,粗排过滤与精排生成? 229.md
230 大模型的评估,人工评估与自动指标的对齐? 230.md
231 指令微调的数据构造,推荐任务的指令多样性? 231.md
232 大模型的对齐训练,RLHF在推荐偏好中的应用? 232.md
233 世界模型与推荐,环境模拟与策略学习? 233.md
234 多智能体推荐,LLM作为用户模拟器? 234.md
235 大模型的可解释性,思维链与推荐理由生成? 235.md
236 跨语言推荐,多语言LLM的零迁移能力? 236.md
237 大模型的个性化,用户特定的LoRA适配器? 237.md
238 实时大模型推荐,流式上下文更新机制? 238.md
239 大模型的安全对齐,有害推荐的拒绝生成? 239.md
240 大模型的成本优化,蒸馏与小模型的能力迁移? 240.md
241 推荐Agent的设计,工具使用与多轮交互? 241.md
242 对话式推荐,多轮对话的状态跟踪? 242.md
243 大模型的长期记忆,外部记忆模块的检索增强? 243.md
244 推荐场景的涌现能力,规模效应的实验观察? 244.md
245 大模型的偏见放大,训练数据的代表性问题? 245.md
246 联邦大模型,隐私保护的分布式微调? 246.md
247 大模型的持续学习,灾难性遗忘的缓解? 247.md
248 推荐预训练任务,MLM与对比学习的联合? 248.md
249 大模型的多目标输出,自然语言生成与评分预测? 249.md
250 大模型的评估基准,推荐专用benchmark的构建? 250.md

返回总览

24-开放设计与实战/251.md

第 251 题:设计TikTok的推荐系统,重点讲实时兴趣与多样性平衡。

题目

设计TikTok的推荐系统,重点讲实时兴趣与多样性平衡。


完整讲解

一、TikTok 推荐的特点

  • 短视频:单条消费时长短、翻页快,行为密度高;实时兴趣变化快,需强实时信号与流式更新。同时需多样性避免同质化与疲劳。

二、实时兴趣

  • 信号:最近 N 条完播、点赞、划走、停留时长、重复播放;可按秒级/条数滑动窗口聚合,或做序列建模(Transformer/GRU)对近期加权更大。
  • 更新:行为事件流式写入,用户向量或上下文在请求前增量更新(如实时 embedding、实时特征);请求时取最新窗口作为主信号。
  • 与长期兴趣融合:长期兴趣(画像、历史统计)做基座,实时兴趣做调制或单独一路打分,再融合(加权、门控)决定排序。

三、多样性平衡

  • 类别/主题:同 session 内控制同一类目或主题的连续出现次数,插入探索或跨类目 item;可用 MMR、DPP 或规则打散。
  • 新鲜度:新创作者、新内容在排序中给探索加成,避免头部集中;可 bandit 或探索项注入。
  • 目标:在保持点击/时长等主目标的前提下,约束多样性指标(类目熵、覆盖率)或做多目标 Pareto,A/B 调权重。

面试要点

  • 能说清 TikTok 类推荐的实时兴趣建模:近期行为、流式更新、与长期兴趣融合。
  • 能说明多样性如何做:类目打散、新鲜度探索、多目标或约束,以及与主目标的平衡。

记忆要点

  • TikTok 推荐:实时兴趣(近期行为、流式更新)+ 长期兴趣融合;多样性打散类目、探索新内容。
  • 实时信号滑动窗口或序列建模;多样性用 MMR/DPP/规则或多目标。

返回模块 | 返回总览

24-开放设计与实战/252.md

第 252 题:设计YouTube的视频推荐,处理长视频与短视频的混排。

题目

设计YouTube的视频推荐,处理长视频与短视频的混排。


完整讲解

一、YouTube 推荐的场景

  • 长视频与短视频混合:既有数十分钟的 VOD,也有 Shorts;消费模式与用户意图不同,需统一排序与混排策略。

二、长视频 vs 短视频的差异

  • 长视频:观看时长、完成率、是否拖拽、重播段落;意图多为「深度消费」,可单条占时久。特征与模型需显式区分时长、完成度。
  • 短视频:快速滑动、短时停留、连续消费条数;意图偏「浏览与发现」。可单独一路召回与粗排,再与长视频混排。
  • 混排:同一 feed 中按 slot 或序列插入长/短;可规则(如每 N 条插入一条 Shorts)或模型预测「当前 slot 更适合长还是短」再各自取 top,兼顾主目标与多样性。

三、排序与多样性

  • 主目标:观看时长、满意度(点赞、完播);长视频可侧重完成率与时长,短视频侧重连续消费与探索。
  • 混排策略:多路召回(长/短/趋势/订阅)→ 统一精排或分路精排 → 混排层做类型与多样性约束;可 DPP 或 MMR 控制长短期比例与类目分布。

面试要点

  • 能说清长视频与短视频在行为与意图上的差异,以及如何分别建模与召回。
  • 能说明混排策略:多路召回、统一或分路精排、混排层做类型与多样性约束。

记忆要点

  • YouTube:长视频重时长与完成率,短视频重连续消费与发现;可分路召回再混排。
  • 混排:规则或模型决定 slot 类型,长/短各自 top + 多样性约束(DPP/MMR)。

返回模块 | 返回总览

24-开放设计与实战/253.md

第 253 题:设计淘宝的商品推荐,解决爆款与长尾的流量分配。

题目

设计淘宝的商品推荐,解决爆款与长尾的流量分配。


完整讲解

一、爆款与长尾问题

  • 爆款:少数 item 占据大部分曝光与转化,马太效应强;长尾 item 曝光少、数据稀疏,模型难以学好,导致生态不健康、发现性差。设计需在流量分配上兼顾头部与长尾。

二、流量分配思路

  • 探索与利用:对长尾或不确定 item 做探索(如 bandit、探索项注入、新 item 保量),对头部做利用(按预估 CTR/CVR 排序);可用 UCB、Thompson 采样或探索率调度。
  • 配额与约束:按类目/创作者设曝光上下限或占比,避免单一类目垄断;长尾池单独一路召回,在精排或混排层给加权或保底 slot。
  • 公平性目标:在目标函数中加入基尼系数、长尾覆盖率、创作者侧公平等,做多目标或约束优化;可离线调参、在线 A/B 验证。
  • 冷启动:新 item 用内容特征、类目先验、小流量探索快速收敛;新用户用热门+多样探索平衡。

三、与主目标的平衡

  • 探索与公平会短期牺牲部分主目标(如 CTR);需设定探索预算与约束强度,通过 A/B 与长期留存/生态指标评估 ROI。

面试要点

  • 能说清爆款与长尾矛盾的成因,以及流量分配的几种手段:探索、配额、公平性目标、冷启动。
  • 能说明与主目标的权衡、探索预算与长期生态指标的评估。

记忆要点

  • 爆款与长尾:探索(bandit/探索项)、配额与约束、公平性多目标、冷启动保量。
  • 流量分配要在主目标与探索/公平间平衡,用 A/B 与长期指标评估。

返回模块 | 返回总览

24-开放设计与实战/254.md

第 254 题:设计Google搜索广告,Query-Ad匹配的实时性优化。

题目

设计Google搜索广告,Query-Ad匹配的实时性优化。


完整讲解

一、搜索广告与 Query-Ad 匹配

  • 场景:用户输入 query,系统返回广告与自然结果。Query-Ad 匹配即用 query 与候选广告(标题、描述、关键词)做相关性匹配与排序,决定展示与出价。实时性影响捕捉热点与竞价效果。

二、实时性需求

  • Query 侧:搜索 query 有时效(热点事件、节日),需实时或近实时的 query 理解、扩展与趋势信号;索引与模型需支持快速更新。
  • Ad 侧:新广告上线、预算与出价变更、创意 A/B 需尽快生效;投放系统需近实时同步状态与特征。
  • 匹配与排序:大规模候选下,检索与粗排需低延迟;精排与出价策略可引入实时特征(当前 query 热度、竞争程度),要求特征管线与模型服务具备实时能力。

三、实时性优化

  • 索引:增量索引、分层索引(热 query/广告优先),缩短从更新到可检索的延迟。
  • 特征:实时特征管线(流式计算)、在线特征存储与低延迟读取;query 意图、trend 等可做短 TTL 缓存。
  • 模型:模型更新频率(小时/天级)与实时特征的衔接;可分离「实时特征层」与「日更模型」,或做在线学习/增量更新。
  • 系统:低延迟检索(ANN、倒排)、精排与竞价服务 SLA;监控延迟与一致性。

面试要点

  • 能说清搜索广告中 Query-Ad 匹配的含义,以及为何需要实时性(query 时效、广告更新、竞价)。
  • 能说明实时性在索引、特征、模型与系统层面的优化手段。

记忆要点

  • Query-Ad 匹配:query 与广告的相关性匹配与排序;实时性影响热点与竞价。
  • 优化:增量/分层索引、实时特征与缓存、模型与实时特征衔接、低延迟检索与 SLA。

返回模块 | 返回总览

24-开放设计与实战/255.md

第 255 题:设计Facebook的信息流,社交关系与兴趣的融合。

题目

设计Facebook的信息流,社交关系与兴趣的融合。


完整讲解

一、信息流与双信号

  • 信息流:动态的、按序展示的内容流(帖子、视频、新闻)。排序需同时考虑社交关系(关注、好友、群组)与兴趣(历史行为、内容匹配),即「谁发的」与「喜不喜欢」的融合。

二、社交关系

  • 信号:关注关系、互动关系(点赞、评论、转发)、强 tie 与弱 tie;关系强度与活跃度可建模为权重。
  • 应用:优先展示关注人/好友的内容、或给「关系内容」单独一路召回;关系链传播也可用于冷启动(好友在做什么)。
  • 挑战:关系多时需筛选与排序;避免「仅关系」导致信息茧房,需注入兴趣与探索。

三、兴趣与融合

  • 兴趣:用户对内容主题、形式、创作者的偏好,用行为序列与画像表示;双塔、精排等做兴趣匹配。
  • 融合方式:多路召回(关系流 + 兴趣流 + 热门)→ 精排时特征同时包含关系强度与兴趣分;或门控/加权融合两路得分;可学习「当前用户更偏关系还是兴趣」的动态权重。
  • 多样性:在关系与兴趣基础上做类目、新鲜度打散,控制同质化。

面试要点

  • 能说清信息流中社交关系与兴趣各自的作用,以及多路召回与融合方式。
  • 能说明关系筛选、避免纯关系导致茧房、以及多样性控制。

记忆要点

  • 信息流:社交关系(关注、互动)+ 兴趣(行为、匹配);多路召回后精排融合。
  • 融合:关系与兴趣双路特征或得分加权/门控;需多样性打散与探索。

返回模块 | 返回总览

24-开放设计与实战/256.md

第 256 题:设计Uber的司机-乘客匹配,双边市场的优化目标。

题目

设计Uber的司机-乘客匹配,双边市场的优化目标。


完整讲解

一、双边市场

  • 双边:司机(供给)与乘客(需求);匹配质量同时影响两侧体验与平台效率。优化目标需兼顾乘客等待时间、司机空驶、平台 GMV/抽成与公平性。

二、优化目标

  • 乘客侧:接驾时间短、价格可接受、体验稳定;可建模为 ETA、预估价格、取消率等。
  • 司机侧:订单密度、收入、空驶与疲劳;可建模为接单率、收入预估、供需比。
  • 平台:匹配成功率、GMV、供需平衡(避免一侧溢出);长期可考虑司机留存与乘客复购。
  • 多目标:多目标优化或约束(如乘客 ETA 在阈值内前提下最大化司机收入);可 Pareto 或加权,需业务定优先级。

三、匹配机制

  • 定价与派单:派单策略决定「谁接谁」;可基于 ETA、价格、司机偏好与平台目标做排序或匹配模型;动态定价调节供需。
  • 实时性:请求与供给实时变化,需实时匹配与调度;可分区域、分时段建模供需与 ETA。
  • 公平:司机侧派单公平(避免头部垄断)、乘客侧不同区域可获得性,可在目标中加公平约束或配额。

面试要点

  • 能说清双边市场(司机-乘客)的优化目标:乘客体验、司机收入、平台效率与公平。
  • 能说明派单与定价如何服务多目标、实时匹配与公平性考虑。

记忆要点

  • 双边匹配:乘客(ETA、价格)、司机(订单、收入)、平台(成功率、GMV);多目标或约束优化。
  • 派单+定价调节供需;实时匹配;可加公平约束。

返回模块 | 返回总览

24-开放设计与实战/257.md

第 257 题:设计Netflix的内容推荐,冷启动与探索的专项方案。

题目

设计Netflix的内容推荐,冷启动与探索的专项方案。


完整讲解

一、Netflix 场景与挑战

  • 内容推荐:电影、剧集、短视频;冷启动(新用户、新内容)与探索(发现新兴趣、避免重复)是核心问题,需专项方案。

二、冷启动

  • 新用户:无行为时用注册信息(地区、语言、设备)、问卷或首屏选择偏好做初筛;用热门+多样、或内容特征相似度做初始推荐;尽快用前几次行为更新画像(即时反馈、小样本模型)。
  • 新内容:无播放数据时用元数据(类型、演员、描述)、内容 embedding(视频帧、音频)、与已有内容的相似度做分发;小流量探索快速积累信号,再接入主排序。
  • 冷启动模型:可单独一路「冷启动召回/排序」或冷启动专用特征与样本加权;与主模型融合或切换逻辑。

三、探索的专项方案

  • 探索目标:发现新类型、新剧、长尾内容;缓解过滤泡与疲劳。
  • 手段:Bandit(UCB、Thompson)、探索 slot(每 N 条插入探索)、多样性约束(DPP、类目熵);新内容保量、未曝光内容探索。
  • 评估:除主指标外看发现性、长尾曝光、留存与多样性指标;A/B 调探索强度。

面试要点

  • 能说清 Netflix 类内容推荐的冷启动(新用户、新内容)与探索的专项设计。
  • 能说明冷启动信号来源、探索手段(bandit、slot、多样性)与评估方式。

记忆要点

  • 冷启动:新用户用注册/问卷+热门多样;新内容用元数据+内容特征+小流量探索。
  • 探索:bandit、探索 slot、多样性约束;评估发现性与长尾曝光。

返回模块 | 返回总览

24-开放设计与实战/258.md

第 258 题:设计Spotify的音乐推荐,连续消费与播放列表生成。

题目

设计Spotify的音乐推荐,连续消费与播放列表生成。


完整讲解

一、音乐推荐的特点

  • 连续消费:单曲、专辑、播放列表;用户常连续听多首,序列与上下文强;播放列表既是消费单元也是推荐载体(歌单推荐、列表内下一首)。

二、连续消费建模

  • 序列:当前 session 或播放列表内已播放序列作为输入,预测下一首或后续多首;可用 RNN/Transformer、考虑顺序与共现。
  • 上下文:时段、场景(运动、工作)、设备;可作特征或多场景模型,影响风格与节奏偏好。
  • 重复与跳过:重复播放、跳过率可作为正负反馈与序列信号;跳过多可降权或换风格。

三、播放列表生成

  • 歌单推荐:按主题/ mood/ 场景推荐现成歌单;可基于当前偏好、歌单内容 embedding 与多样性生成列表。
  • 列表内下一首:给定已播列表,生成下一首;序列模型或 session-based 推荐;可约束与已播的连贯性(风格、节奏过渡)与适度新颖。
  • 生成方式:检索+排序(从候选池取)、或生成式(自回归生成 track id/embedding 再检索);需与曲库、版权与实时性配合。

面试要点

  • 能说清音乐推荐的连续消费与序列建模,以及播放列表在推荐中的作用。
  • 能说明「下一首」与「歌单推荐」的生成方式、连贯性与多样性权衡。

记忆要点

  • 音乐推荐:连续消费+序列建模;播放列表为消费与推荐单元。
  • 播放列表生成:歌单推荐(主题/场景)+ 列表内下一首(序列/连贯性与新颖);检索+排序或生成式。

返回模块 | 返回总览

24-开放设计与实战/259.md

第 259 题:设计Airbnb的房源推荐,信任与偏好的联合建模。

题目

设计Airbnb的房源推荐,信任与偏好的联合建模。


完整讲解

一、房源推荐的特殊性

  • 非标品:每套房源唯一,位置、设施、房东、评价差异大;信任(安全、真实、房东靠谱)与偏好(价格、位置、风格)共同决定选择,需联合建模。

二、信任建模

  • 房源侧:真实照片、描述一致、评价与评分、房东回复率、超赞房东等;可做信任分或维度特征。
  • 房东侧:历史订单、纠纷率、认证信息;信任特征进入排序或单独过滤(低于阈值不推)。
  • 平台机制:评价体系、保障与赔付、客服;信任相关特征可从平台规则与历史纠纷中抽取。
  • 冷启动:新房源/新房东无历史时,用内容与认证信息做先验,小流量探索积累信任信号。

三、偏好与联合建模

  • 偏好:价格区间、位置、入住人数、设施、风格;用户画像与历史预订/搜索/收藏。
  • 联合:精排特征同时包含偏好匹配分与信任相关特征;可设硬约束(如评分低于某值不展示)或软加权;多目标可包含「偏好满意度」与「信任风险」。
  • 解释:推荐理由可同时呈现偏好匹配(「符合你的预算与位置」)与信任信号(「高评分、超赞房东」),提升转化与信任。

面试要点

  • 能说清房源推荐中信任与偏好的含义,以及信任相关的信号与冷启动。
  • 能说明信任与偏好的联合建模方式(特征、约束、多目标)与可解释呈现。

记忆要点

  • 房源推荐:信任(真实、评价、房东)+ 偏好(价格、位置、设施);联合建模,可硬约束或软加权。
  • 信任信号:照片、评价、房东历史;冷启动用内容与认证;理由可同时呈现信任与偏好。

返回模块 | 返回总览

24-开放设计与实战/260.md

第 260 题:设计LinkedIn的职位推荐,用户主动与被动意图识别。

题目

设计LinkedIn的职位推荐,用户主动与被动意图识别。


完整讲解

一、职位推荐与意图

  • 用户:求职者或招聘方;职位推荐主要面向求职者。用户意图分主动(明确搜索、投递目标)与被动(浏览、发现机会),推荐策略需区分并融合。

二、主动意图识别

  • 信号:搜索 query、筛选条件(职位、地点、薪资)、主动投递、收藏、订阅提醒;显式表达「想要什么」。
  • 用法:query 与职位 JD 做语义匹配;筛选条件作为强约束(硬过滤或高权特征);主动意图下可偏「精确匹配」与相关性,减少过度探索。

三、被动意图识别

  • 信号:浏览时长、简历更新、历史投递与行业;无明确 query 时依赖画像与行为推断兴趣与求职阶段。
  • 用法:用画像+行为序列做召回与排序;可推荐「可能感兴趣」「同行业在招」「基于你简历的匹配」;被动场景可加大探索与多样性,帮助发现。
  • 融合:同一用户可能交替主动/被动;可做意图分类(主动/被动/混合)或实时意图特征,排序时动态加权;主动强时提高 query 与约束权重,被动时提高画像与探索权重。

面试要点

  • 能说清职位推荐中主动意图(搜索、筛选、投递)与被动意图(浏览、画像)的识别与用法。
  • 能说明二者融合方式:意图分类或特征、排序时的动态加权。

记忆要点

  • 主动意图:query、筛选、投递→精确匹配与约束;被动意图:浏览、画像→发现与探索。
  • 融合:意图分类或特征,排序时动态加权;主动偏相关,被动偏多样与发现。

返回模块 | 返回总览

24-开放设计与实战/261.md

第 261 题:推荐系统从0到1的搭建,MVP阶段的关键决策。

题目

推荐系统从0到1的搭建,MVP阶段的关键决策。


完整讲解

一、从 0 到 1 的定位

  • MVP:最小可行产品,快速验证「推荐能否带来价值」;关键决策集中在:做什么不做什么、用什么数据与模型、如何评估与迭代。

二、关键决策

  • 目标:先定主指标(点击、转化、留存、时长等)与可接受的冷启动周期;MVP 常选 1~2 个核心指标。
  • 数据:有哪些可用的行为与物料数据;若无点击可先用曝光与内容特征做协同或内容相似度,再尽快接入真实反馈。
  • 模型:规则/协同过滤/双塔/简单精排即可起步;先打通链路(召回→排序→展示→日志)再优化模型;是否上深度学习、实时特征可放在第二阶段。
  • 评估:离线指标(AUC、NDCG)+ 小流量 A/B;定义「成功」阈值与迭代节奏。
  • 范围:先单场景、单入口;冷启动与探索策略先简单(热门+随机或简单多样性),再细化。

三、避免的坑

  • 不要一开始追求复杂模型与全量特征;先保证数据闭环与稳定性;明确 MVP 的「最小」边界,避免 scope 蔓延。

面试要点

  • 能说清推荐系统从 0 到 1 的 MVP 阶段关键决策:目标、数据、模型选型、评估与范围。
  • 能说明为何先简单模型与闭环、再迭代复杂化。

记忆要点

  • MVP:定主指标、数据可用性、简单模型(规则/协同/双塔)、离线+A/B 评估、单场景先跑通。
  • 关键:数据闭环、稳定链路;避免一开始过度复杂与 scope 蔓延。

返回模块 | 返回总览

24-开放设计与实战/262.md

第 262 题:推荐效果停滞的破局,第二增长曲线的寻找。

题目

推荐效果停滞的破局,第二增长曲线的寻找。


完整讲解

一、效果停滞的典型表现

  • 主指标(CTR、时长、转化等)随迭代提升变缓或波动,单模型、单目标、单场景的优化边际递减;破局需从新信号、新目标、新场景找第二增长曲线。

二、破局方向

  • 新信号:多模态、跨域行为、实时流、外部知识;引入此前未用的数据与特征,扩展模型输入。
  • 新目标:多目标(留存、LTV、多样性、公平性);长期目标与短期点击的联合;重新定义「好推荐」并做多目标或约束优化。
  • 新场景:新入口、新形态(短视频/直播/搜索)、新用户群;把成熟能力复制到新场景或做场景专属模型。
  • 新形态:生成式、对话式、Agent;用 LLM 做重排、理由、对话推荐,从「排序」扩展到「生成与交互」。
  • 系统与体验:延迟、稳定性、可解释性、控制感(用户可调偏好);体验提升有时比单点模型更有效。

三、第二增长曲线的寻找

  • 实验:对新方向做小流量验证与归因;区分「真增长」与「劫持」;关注长期与生态指标。
  • 组织:预留探索资源、允许试错;把「破局实验」纳入 roadmap 与考核,避免只做增量优化。

面试要点

  • 能说清推荐效果停滞的常见原因与破局方向:新信号、新目标、新场景、新形态、体验。
  • 能说明如何寻找与验证第二增长曲线、以及组织与资源上的支持。

记忆要点

  • 停滞破局:新信号、新目标、新场景、新形态(生成/对话)、系统体验。
  • 第二曲线:小流量验证、长期与生态指标、预留探索资源与试错空间。

返回模块 | 返回总览

24-开放设计与实战/263.md

第 263 题:多团队协同的推荐优化,目标冲突的协调机制。

题目

多团队协同的推荐优化,目标冲突的协调机制。


完整讲解

一、多团队协同的挑战

  • 推荐涉及算法、工程、产品、运营等多团队;各团队有局部目标(如算法要指标、工程要稳定、产品要体验),可能冲突;需协调机制使目标对齐、优先级清晰、冲突可裁决。

二、目标冲突的典型

  • 指标 vs 体验:强推点击可能伤害长期留存或引起反感;需约定主指标与护栏指标(如满意度、投诉)。
  • 迭代 vs 稳定:算法频繁上线 vs 工程稳定性与回滚成本;需发布节奏、灰度与回滚协议。
  • 资源:算力、人力、数据权限;需跨团队排期与资源分配规则。
  • 归属:同一指标多团队贡献时的归因与考核;需明确 owner 与协作界面。

三、协调机制

  • 共同目标与分层:公司/业务级北极星指标拆解到各团队;推荐团队内部再拆到召回、排序、策略;冲突时按层级裁决(如业务优先于单团队)。
  • 流程:需求评审、技术方案评审、AB 实验与上线标准、事故复盘;明确谁有权拍板、谁执行。
  • 沟通:定期同步指标与 roadmap、共享看板与文档;建立「推荐效果-体验-稳定性」的联合看板。
  • 激励:考核与激励与共同目标挂钩(如部分算法考核含稳定性、产品考核含主指标),减少零和博弈。

面试要点

  • 能说清多团队协同下常见目标冲突(指标 vs 体验、迭代 vs 稳定、资源、归属)。
  • 能说明协调机制:共同目标与层级、流程与评审、沟通与激励设计。

记忆要点

  • 多团队:目标冲突(指标/体验、迭代/稳定、资源);协调=共同目标分层+流程评审+沟通+激励对齐。
  • 明确 owner、发布与回滚协议、联合看板与考核挂钩。

返回模块 | 返回总览

24-开放设计与实战/264.md

第 264 题:推荐算法的伦理审查,公平性评估的流程设计。

题目

推荐算法的伦理审查,公平性评估的流程设计。


完整讲解

一、推荐算法的伦理风险

  • 公平性:不同群体(性别、地域、年龄等)在曝光、满意度、机会上的差异;算法可能放大历史偏见。伦理审查即在设计、上线与迭代中系统评估与约束这些风险。

二、公平性评估

  • 维度:按敏感属性(或代理变量)分层,看各组的曝光率、点击率、转化率、满意度等是否合理;可定义公平性指标(如 demographic parity、equalized odds、基尼系数)。
  • 数据:敏感属性可能不可用或受限,需合规获取或用代理;评估时注意样本量与统计显著性。
  • 权衡:公平与主指标可能冲突(如绝对公平可能牺牲整体效率);需业务定义「可接受」的公平边界与优先级。

三、伦理审查流程设计

  • 设计阶段:需求与模型设计时纳入公平性与伦理 checklist;明确敏感维度与约束。
  • 开发阶段:训练数据与特征审查(是否引入歧视性变量);离线公平性评估与消融。
  • 上线与迭代:上线前公平性报告与审批;上线后持续监控分层指标与用户反馈;建立投诉与复议通道。
  • 组织:明确伦理审查的负责人(如算法、法务、产品);可设伦理委员会或定期评审会;文档化标准与决策依据。

面试要点

  • 能说清推荐算法伦理审查的必要性,以及公平性评估的维度与指标。
  • 能说明伦理审查流程:设计阶段 checklist、开发阶段数据与评估、上线审批与持续监控、组织与文档化。

记忆要点

  • 伦理审查:公平性等伦理风险的系统评估与约束;公平性按群体分层评估曝光与满意度。
  • 流程:设计 checklist→开发数据与评估→上线审批与监控→组织与文档;明确公平与主指标权衡。

返回模块 | 返回总览

24-开放设计与实战/265.md

第 265 题:推荐系统的国际化,文化差异的本地化策略。

题目

推荐系统的国际化,文化差异的本地化策略。


完整讲解

一、国际化的挑战

  • 文化差异:内容偏好、敏感点、表达方式、节日与热点不同;单一模型或策略难以泛化。本地化即针对不同地区/语言做适配。

二、文化差异与本地化策略

  • 内容与审核:各地合规与敏感内容不同;需本地化审核规则、黑名单与安全策略;内容运营与版权也按地区区分。
  • 偏好与特征:不同地区对类型、风格、价格敏感度不同;可分地区/语言训练或适配模型(多区域模型、区域专属特征、区域加权);冷启动时用当地热门与多样性。
  • 产品与交互:语言、排版、推荐理由的表述方式;多语言与本地化文案;可做本地化 A/B 与产品形态(如某些地区更偏搜索)。
  • 数据与评估:分地区评估主指标与公平性;避免「大区」指标掩盖小地区问题;可设地区专属护栏与目标。
  • 组织:本地化团队或区域 owner,负责需求、数据与策略的本地输入;中心算法提供平台能力与通用模型,区域做适配与调参。

面试要点

  • 能说清推荐国际化的挑战:文化、合规、偏好、产品差异。
  • 能说明本地化策略:内容审核、分区域模型/特征、产品与文案、分地区评估与组织分工。

记忆要点

  • 国际化:文化、合规、偏好差异;本地化=内容审核+分区域模型/特征+产品文案+分地区评估。
  • 组织:区域 owner 与中心算法配合;避免大区指标掩盖小地区问题。

返回模块 | 返回总览

24-开放设计与实战/266.md

第 266 题:推荐与增长的结合,裂变传播与算法优化。

题目

推荐与增长的结合,裂变传播与算法优化。


完整讲解

一、推荐与增长的关系

  • 增长:拉新、激活、留存、变现、传播。推荐既服务「内容消费」也服务裂变传播(分享、邀请、UGC 扩散);算法优化与增长策略可结合,形成闭环。

二、裂变传播

  • 信号:分享、邀请、被分享内容的二次消费;可建模「分享意愿」「邀请转化」等,作为目标或特征。
  • 推荐侧:优先推荐易分享、易引发讨论的内容;在 feed 中插入邀请/分享引导(如「分享给好友」卡片);推荐「可能愿意邀请的人」或「邀请后可能激活的内容」。
  • 算法优化:多目标中加入传播相关目标(分享率、邀请转化);或把传播作为长期收益做 bandit/RL;冷启动用户可推荐「高传播」内容拉活。

三、结合方式

  • 数据:传播链、邀请关系、分享后转化纳入特征与样本。
  • 目标:主目标(时长、留存)+ 传播目标(分享、邀请);多目标或序列决策(先留存再传播)。
  • 策略:推荐与运营活动联动(邀请有奖、分享解锁);A/B 验证「推荐优化」与「裂变活动」的协同效果。

面试要点

  • 能说清推荐如何与增长结合:裂变传播的信号、推荐侧对传播的促进、多目标与策略联动。
  • 能说明传播目标与主目标的平衡、数据与 A/B 验证。

记忆要点

  • 推荐+增长:裂变传播(分享、邀请)作目标或特征;推荐易传播内容、插入分享引导。
  • 多目标含传播;数据含传播链与邀请转化;与运营活动联动并 A/B 验证。

返回模块 | 返回总览

24-开放设计与实战/267.md

第 267 题:推荐系统的成本控制,算力预算的ROI评估。

题目

推荐系统的成本控制,算力预算的ROI评估。


完整讲解

一、推荐系统的成本构成

  • 算力:训练(GPU/TPU)、推理(QPS×单次成本)、特征与索引构建;大模型与实时推理成本尤其高。
  • 存储与带宽:特征库、模型、日志与样本;多副本与跨区同步。
  • 人力与运维:算法、工程、数据、SRE;迭代与故障成本。
  • 成本控制即在不明显牺牲效果的前提下,优化上述各项的ROI

二、算力预算与 ROI 评估

  • 预算:给定总算力或预算上限,在训练、推理、实验之间分配;可设「推理预算」与「训练预算」的占比或绝对值。
  • ROI 定义:单位算力带来的指标提升或收入提升;可近似为 (\Delta \text{指标} / \Delta \text{成本}),或 LTV 增量与算力成本的比值。
  • 评估方式:新模型/特征上线时,同时看指标增益与成本增量;做「成本敏感」的 AB(如同效果下降本、同成本提效);长期看算力弹性与扩容节奏。
  • 优化手段:模型压缩(蒸馏、量化、剪枝)、推理优化(批处理、缓存、降频)、样本与特征裁剪、多阶段架构(粗排省算力);按 ROI 排序投入。

面试要点

  • 能说清推荐系统成本的主要构成(算力、存储、人力)及算力预算的分配思路。
  • 能说明 ROI 的含义与评估方式(指标增益 vs 成本)、以及常见降本手段。

记忆要点

  • 成本:算力(训练+推理)、存储与带宽、人力运维;控制=预算分配+ROI 评估。
  • ROI:单位成本带来的指标/收入提升;优化=压缩、推理优化、样本裁剪、多阶段架构。

返回模块 | 返回总览

24-开放设计与实战/268.md

第 268 题:推荐算法的专利布局,核心技术的知识产权保护。

题目

推荐算法的专利布局,核心技术的知识产权保护。


完整讲解

一、专利与知识产权

  • 专利:保护技术方案(方法、系统、装置),公开换独占;推荐算法、系统架构、交互方法可申请发明专利专利布局即有计划地申请与维护专利,形成保护网与谈判筹码。

二、推荐算法的专利布局

  • 核心算法:排序模型、多目标优化、冷启动、探索策略、序列建模等的方法创新;强调「技术问题+技术手段+技术效果」的可专利性。
  • 系统与工程:大规模检索、实时特征、分布式训练与推理、AB 实验平台等;软硬件结合与工程方案也可专利。
  • 业务结合:与具体业务场景结合的推荐方法(如电商、信息流、广告);可做系列申请覆盖主流程与变体。
  • 布局策略:围绕核心产品与 roadmap 提前申请;核心+外围(核心算法+应用场景+系统);关注竞品与行业专利,做规避与交叉许可准备;国际申请(PCT、主要市场国家)按需布局。

三、实务要点

  • 申请前做好技术交底与检索,避免重复与泄露;发明人、申请主体与保密管理要规范;与法务、IP 团队协同推进。

面试要点

  • 能说清推荐算法专利布局的意义:保护核心技术、谈判与竞争。
  • 能说明布局范围(算法、系统、业务结合)与策略(核心+外围、国际、检索与保密)。

记忆要点

  • 专利布局:核心算法+系统+业务场景的专利申请,形成保护与筹码。
  • 策略:核心+外围、提前申请、国际按需;注意检索、保密与发明人规范。

返回模块 | 返回总览

24-开放设计与实战/269.md

第 269 题:推荐团队的组织建设,算法与工程的协作模式。

题目

推荐团队的组织建设,算法与工程的协作模式。


完整讲解

一、推荐团队的角色

  • 算法:模型、特征、策略、实验与效果优化。
  • 工程:系统架构、服务、数据管线、稳定性与性能。
  • 产品/运营:需求、指标定义、AB 与上线决策、内容与运营策略。
  • 推荐效果依赖算法与工程的紧密协作,以及产品对目标的清晰定义。

二、算法与工程的协作模式

  • 需求与方案:产品定目标与优先级;算法出模型与策略方案;工程评估实现成本、延迟与可维护性;联合评审确定方案与排期。
  • 数据与特征:工程提供特征管线、存储与实时能力;算法定义特征与样本格式;共同保证数据质量、口径与 SLA。
  • 上线与迭代:算法交付模型与配置;工程负责部署、灰度、回滚与监控;约定接口(特征、模型格式、AB 分流);事故时联合排查与复盘。
  • 长期:共建「推荐中台」(特征、模型、实验、服务);减少重复建设与沟通成本;可设「推荐全栈」角色或小团队负责 E2E 闭环。

三、组织形态

  • 按职能:算法组、工程组、产品组,通过项目与需求协作;适合大厂与多业务。
  • 按业务/全栈:小团队包干某业务的算法+工程+产品;迭代快、归属清晰;适合单业务或创业团队。可混合:平台能力职能化、业务全栈化。

面试要点

  • 能说清推荐团队中算法与工程的职责划分及协作点:方案评审、数据与特征、上线与监控。
  • 能说明常见组织形态(职能 vs 全栈)及推荐中台的意义。

记忆要点

  • 推荐团队:算法(模型与效果)+ 工程(系统与数据)+ 产品(目标与需求);协作=方案+数据+上线+监控。
  • 组织:职能分工或业务全栈;可共建推荐中台减少重复。

返回模块 | 返回总览

24-开放设计与实战/270.md

第 270 题:推荐技术的趋势判断,下一代推荐系统的形态预测。

题目

推荐技术的趋势判断,下一代推荐系统的形态预测。


完整讲解

一、趋势判断的维度

  • 技术:大模型与生成式推荐、多模态、Agent 与对话式、因果与长期价值、隐私与联邦。
  • 产品形态:从「列表排序」到「生成、解释、对话、跨端」;从单次请求到多轮与持续学习。
  • 评估与治理:公平性、可解释性、用户控制、伦理审查成为标配;监管与行业标准演进。
  • 系统:实时化、端云协同、成本与能效;推理与数据管线的进一步自动化。

二、下一代推荐系统的形态预测

  • 生成与交互:LLM 参与召回、重排、理由与对话;推荐与生成边界模糊;多模态与多轮成为常态。
  • 个性化与可控:更强个性化(per-user 模型、长期记忆)与用户可控(显式偏好、拒绝、解释);隐私与透明要求提升。
  • 多目标与长期:从短期点击到长期留存、LTV、生态与公平;多目标与约束优化、RL 与 bandit 更普及。
  • 平台化与中台:推荐能力中台化、可配置与可复用;支持多业务、多场景的快速复制与迭代。
  • 不确定性与应对:技术路线与监管存在不确定性;保持架构可扩展与数据闭环,便于接入新模型与新约束。

面试要点

  • 能从技术、产品、治理、系统等维度谈推荐技术的趋势。
  • 能描述下一代推荐系统的可能形态:生成与交互、个性化与可控、多目标与长期、平台化,以及应对不确定性的思路。

记忆要点

  • 趋势:大模型与生成式、多模态与 Agent、公平与可解释、实时与成本。
  • 下一代:生成与交互、个性化与可控、多目标与长期、平台化;架构可扩展与数据闭环以应对不确定性。

返回模块 | 返回总览

24-开放设计与实战/README.md

24-开放设计与实战(第 251–270 题)

题号 主题 文章
251 设计TikTok的推荐系统,重点讲实时兴趣与多样性平衡。 251.md
252 设计YouTube的视频推荐,处理长视频与短视频的混排。 252.md
253 设计淘宝的商品推荐,解决爆款与长尾的流量分配。 253.md
254 设计Google搜索广告,Query-Ad匹配的实时性优… 254.md
255 设计Facebook的信息流,社交关系与兴趣的融合。 255.md
256 设计Uber的司机-乘客匹配,双边市场的优化目标。 256.md
257 设计Netflix的内容推荐,冷启动与探索的专项方案。 257.md
258 设计Spotify的音乐推荐,连续消费与播放列表生成。 258.md
259 设计Airbnb的房源推荐,信任与偏好的联合建模。 259.md
260 设计LinkedIn的职位推荐,用户主动与被动意图识别。 260.md
261 推荐系统从0到1的搭建,MVP阶段的关键决策。 261.md
262 推荐效果停滞的破局,第二增长曲线的寻找。 262.md
263 多团队协同的推荐优化,目标冲突的协调机制。 263.md
264 推荐算法的伦理审查,公平性评估的流程设计。 264.md
265 推荐系统的国际化,文化差异的本地化策略。 265.md
266 推荐与增长的结合,裂变传播与算法优化。 266.md
267 推荐系统的成本控制,算力预算的ROI评估。 267.md
268 推荐算法的专利布局,核心技术的知识产权保护。 268.md
269 推荐团队的组织建设,算法与工程的协作模式。 269.md
270 推荐技术的趋势判断,下一代推荐系统的形态预测。 270.md

返回总览

25-编程与算法/271.md

第 271 题:实现AUC计算,支持大规模数据的流式更新。

题目

实现AUC计算,支持大规模数据的流式更新。


完整讲解

一、AUC 的定义与等价形式

  • 定义:ROC 曲线下面积,等价于随机取一正样本与一负样本,正样本得分大于负样本的概率。若正负样本数分别为 ,则

二、流式更新与大规模

  • 难点:数据无法一次性加载;需增量维护足以计算 AUC 的统计量,且控制内存与扫描次数。
  • 等价计算:对得分排序后,AUC = (正样本的秩和 - P(P+1)/2) / (P·N);秩和可拆成「每个正样本的秩」之和。流式中维护「当前已见样本中,得分低于某值的正/负个数」,新样本到来时更新这些计数并累加贡献。
  • 近似与分桶:得分分桶(如 100 桶),每桶内维护正负计数;用桶中心或桶内线性插值估计秩,得到近似 AUC,误差与桶数相关;适合超大规模与流式。
  • 分布式:按 key(如日期、实验)分片,每片局部算「正负对」或秩和,再汇总;注意跨片正负对的合并(若允许全局排序则需全局秩,否则可近似或分段合并)。

三、实现要点

  • 单机流式:维护有序结构(如平衡树)或分桶计数,每来一批更新并累加 AUC 分子;或使用在线公式(如 Welford 式扩展)。注意数值稳定性与边界(全正/全负)。

面试要点

  • 能写出 AUC 的等价形式(正负对比较、秩和公式),并说明流式下的难点。
  • 能说清流式/大规模的实现思路:增量秩和、分桶近似、分布式分片汇总。

记忆要点

  • AUC = 随机正样本得分>随机负样本的概率;等价于秩和公式 (秩和 - P(P+1)/2)/(P·N)。
  • 流式:增量维护秩或正负对计数;分桶近似降内存;分布式按片算再汇总。

返回模块 | 返回总览

25-编程与算法/272.md

第 272 题:实现TopK推荐,基于堆与快速选择的比较。

题目

实现TopK推荐,基于堆与快速选择的比较。


完整讲解

一、TopK 问题

  • 个数中取最大的 K 个(或最小的 K 个)。推荐中常对候选打分后取 TopK 展示。

二、基于堆

  • 思路:维护大小为 K 的最小堆(求最大 K 个)。遍历时若当前值大于堆顶则弹出堆顶、加入当前值;最终堆内即为最大 K 个。时间复杂度 ,空间
  • 特点:不需一次读入全部数据,适合流式; 时很省空间与时间。

三、基于快速选择(QuickSelect)

  • 思路:借鉴快排的 partition,选 pivot 将数组分为「大于 pivot」与「小于 pivot」;若「大于」一侧个数 则在该侧递归找 TopK,否则在另一侧找 TopK - 多出的个数。期望时间 ,最坏 ,可随机 pivot 优化期望。
  • 特点:原地、期望线性;但需随机访问且不适合流式。若 K 很小,堆更实用;K 接近 n 时快速选择有优势。

四、比较与选用

  • 流式/大数据:用堆,
  • 小 K、内存紧:堆。
  • 中等 n、可随机访问、要严格 期望:快速选择。实际推荐服务中多为「打分后取 TopK」,若候选已在一台机内存,两种均可;分布式时每分片取局部 TopK 再多路归并(堆)得到全局 TopK。

面试要点

  • 能写出堆维护 TopK 的流程与复杂度 ;能说明快速选择思路与期望
  • 能根据场景(流式、K 大小、是否可随机访问)选择实现方式。

记忆要点

  • TopK:堆=大小为 K 的最小堆,,适合流式;快速选择=partition 递归,期望 ,适合可随机访问。
  • 分布式:分片局部 TopK + 多路归并。

返回模块 | 返回总览

25-编程与算法/273.md

第 273 题:实现协同过滤的矩阵分解,SGD与ALS的并行化。

题目

实现协同过滤的矩阵分解,SGD与ALS的并行化。


完整讲解

一、矩阵分解形式

  • 协同过滤的矩阵分解:评分矩阵 (用户隐向量),(物品隐向量), 为隐因子数。目标最小化 为已观测位置。

二、SGD(随机梯度下降)

  • 对每个观测 采样,更新 :梯度为 ,对应
  • 并行化:按样本或按用户/物品分片;异步 SGD(各 worker 独立更新,定期同步或延迟同步)或同步 SGD(每轮汇总梯度);注意冲突与收敛性,可加锁或用 Hogwild! 风格无锁更新不同维度。

三、ALS(交替最小二乘)

  • 固定 时,对每个用户 的目标为关于 的二次型,有闭式解:,其中 评过分的物品对应的 行。同理固定 更新 。交替迭代直至收敛。
  • 并行化:每轮固定一侧,另一侧各用户(或各物品)的更新互不依赖,可完全并行;仅需广播当前 ,适合分布式(如 Spark ALS)。每子问题为小规模线性方程组,可 Cholesky 或 CG 求解。

四、对比

  • SGD:实现简单、适合在线与稀疏更新;并行时需处理冲突。ALS:每轮可大规模并行、适合批处理;实现稍复杂、需解线性系统。

面试要点

  • 能写出矩阵分解的目标与 SGD 对单样本的更新公式;能写出 ALS 单步闭式解()及交替流程。
  • 能说明 SGD 与 ALS 的并行方式(按样本/按用户物品、同步/异步;ALS 按用户/物品并行)。

记忆要点

  • 矩阵分解:;SGD 逐样本更新 ;ALS 固定一侧解二次型,闭式解,交替更新。
  • 并行:SGD 按样本分片或异步;ALS 按用户/物品并行解小线性系统。

返回模块 | 返回总览

25-编程与算法/274.md

第 274 题:实现DIN的注意力机制,Mask与变长序列处理。

题目

实现DIN的注意力机制,Mask与变长序列处理。


完整讲解

一、DIN 的注意力机制

  • DIN(Deep Interest Network):用户历史行为序列与候选 item 做注意力,得到与候选相关的兴趣表示。设用户行为序列 embedding 为 ,候选 embedding 为 ,则 attention 权重 (如 为 MLP 或内积),加权和 作为用户表示,再与 等拼接进 MLP 预测点击率。

二、Mask 与变长序列处理

  • 变长:用户行为长度不一,需变长序列输入。做法:按 batch 内最大长度 padding(如补 0),同时维护 mask(0 表示 padding 位置,1 表示真实行为)。
  • Mask 在 attention 中:计算 attention 权重后,对 padding 位置置为 再 softmax,则这些位置权重为 0,不参与加权和;等价于「只对有效位置做 attention」。实现上为 scores.masked_fill(mask == 0, -1e9) 再 softmax。
  • 其他用法:序列建模(如 LSTM/Transformer)中,mask 可防止看到未来(因果 mask)或忽略 padding;DIN 中主要用 mask 屏蔽 padding,保证变长序列下 attention 只作用在有效行为上。

三、实现要点

  • 输入:行为 id 序列 → embedding → 与候选算 attention 权重 → mask 掉 padding → 加权和 → 与候选等 concat → MLP。Batch 内变长用 mask 统一处理,避免无效位置参与计算与梯度。

面试要点

  • 能说清 DIN 的 attention:历史行为与候选算权重、加权和得到用户兴趣向量;能写出 attention 权重与加权和公式。
  • 能说明变长序列的 padding + mask,以及 mask 在 attention 中的用法(padding 位置置 再 softmax)。

记忆要点

  • DIN:行为序列与候选做 attention,加权和为用户表示;mask 屏蔽 padding 处理变长。
  • 实现:padding + mask;attention 前 scores 对 mask=0 置 -inf,再 softmax。

返回模块 | 返回总览

25-编程与算法/275.md

第 275 题:实现负采样,基于流行度的有偏采样与修正。

题目

实现负采样,基于流行度的有偏采样与修正。


完整讲解

一、负采样的目的

  • 在推荐/embedding 学习中,正样本(点击、共现)远少于负样本(未点击、未共现);若对全部负样本做 softmax 或 pairwise 损失,计算量巨大。负采样即从负样本中采样一小部分参与损失,近似全量 softmax 或 NCE 目标,并常做修正以保持无偏或低偏。

二、基于流行度的有偏采样

  • 流行度:物品出现/曝光次数多则流行度高。有偏采样即按流行度分布采样负样本(如 常取 0.75),使热门物品更常被采为负样本,与真实「未点击」中热门占比高一致,训练更稳定、区分度更好。
  • 实现:预计算每个物品的采样概率或 alias table,每步采样 个负样本与正样本组成 batch;或按 batch 内正样本的负例采样(每个正样本配若干负样本)。

三、修正(Debiasing)

  • 目标:原始 softmax 或 NCE 的期望梯度在「负样本=全体」时有一形式;负采样后只有采到的负样本有梯度,需对负样本损失做权重修正,使期望与全量一致或偏差可控。
  • 常见修正:对负样本 的损失项乘以 (或归一化因子),其中 为采样概率;或使用 NCE/负采样损失的理论形式(如 Word2Vec 的负采样公式)本身已含修正。不修正时,模型会过度压低高 物品的分数,需在评估或推理时注意。
  • 实践 的流行度采样 + 损失中的 修正(或采用已含修正的 loss 形式);大规模时可用近似修正或忽略修正但监控偏差。

面试要点

  • 能说清负采样的动机(降低计算)、有偏采样(按流行度)的做法与原因。
  • 能说明修正的含义(期望梯度一致)及常见方式( 或 NCE 公式);能写出采样概率

记忆要点

  • 负采样:按流行度有偏采样(),减少计算;修正用 或 NCE 形式保持无偏/低偏。

返回模块 | 返回总览

25-编程与算法/276.md

第 276 题:实现向量检索的LSH,哈希函数族的设计。

题目

实现向量检索的LSH,哈希函数族的设计。


完整讲解

一、LSH 与向量检索

  • 近似最近邻:高维向量中找与 query 最近的 top-k,精确解代价高。LSH(局部敏感哈希) 用一族哈希函数,使相似向量以高概率落入同一桶,检索时只查 query 所在桶(及邻近桶),实现亚线性时间与空间。

二、哈希函数族的设计

  • 目标:若 小则 大;若 大则 小。对欧氏距离常用 p-stable LSH(如用随机投影 + 桶宽为 的量化);对余弦相似度可用随机超平面 为随机单位向量,两向量同侧则同桶。
  • 多表与多哈希:单次哈希碰撞率可能不够,取 个表,每表用 个哈希函数串联(),向量落入 对应的桶。增大 可调节 recall 与 bucket 大小;通常 大则桶更细、 大则 recall 提高。
  • 实现:预计算每表每桶的向量 id 列表;query 时算 取对应桶,在桶内做精确距离或二次哈希;可结合多 probe(查相邻桶)提 recall。

三、推荐中的应用

  • 双塔或 embedding 产出 user/item 向量后,用 LSH 做大规模候选检索;需调参 与数据规模,平衡延迟、recall 与内存。

面试要点

  • 能说清 LSH 的目的(相似向量高概率同桶、近似最近邻),以及哈希函数族需满足的性质。
  • 能说明一种函数族(如随机超平面求余弦、p-stable 求欧氏)及多表多哈希、多 probe 的作用。

记忆要点

  • LSH:相似向量高概率同桶;函数族如随机超平面(余弦)、p-stable(欧氏);多表多哈希调 recall。
  • 检索:query 哈希取桶,桶内精确算或二次哈希;可多 probe 邻桶。

返回模块 | 返回总览

25-编程与算法/277.md

第 277 题:实现GBDT的特征重要性,Permutation与Split增益。

题目

实现GBDT的特征重要性,Permutation与Split增益。


完整讲解

一、特征重要性的用途

  • 解释模型决策、特征选择、监控与调试。GBDT 中常用特征重要性:基于分裂带来的增益或基于置换(Permutation) 的指标下降。

二、Split 增益(基于树结构)

  • 思路:对每个特征,累加其在所有树中作为分裂点时的增益(分裂后损失减少量)。增益越大,该特征越重要。可再按树数或样本数归一化(如除以总增益或总分裂数)。
  • 实现:建树时每步记录 (feature_id, gain),训练结束后按 feature_id 聚合 sum(gain);XGBoost/LightGBM 等均提供 feature_importances_,多为基于 gain 或 split count。
  • 特点:计算简单、与训练过程一致;偏向高基数、易分裂的特征,且是「模型内」重要性,不一定代表因果或预测力独立贡献。

三、Permutation 重要性

  • 思路:在验证集上先算 baseline 指标(如 AUC);对特征 ,将其取值打乱(破坏与标签的对应),再算指标;指标下降越多,特征 越重要。打乱等价于「去掉该特征信息」,下降量即其贡献。
  • 实现:对每个特征 ,复制验证集,打乱第 列,预测并算指标;importance_j = baseline_metric - metric_after_permute。可多次打乱取平均降方差。
  • 特点:与模型无关、可跨模型比较;计算量 O(特征数 × 验证预测次数);更能反映「该特征对当前指标的边际贡献」,且能发现相关特征中谁在给定模型下更被依赖。

四、对比

  • Split 增益:快、与树结构直接对应;Permutation:更贴近「预测贡献」、可用于非树模型,但更贵。推荐中两者可结合使用。

面试要点

  • 能说清 GBDT 特征重要性的两种方式:基于分裂增益的累加、基于置换的指标下降。
  • 能写出 Permutation 的流程(打乱特征→重算指标→下降即重要性)及实现注意(多次打乱、验证集)。

记忆要点

  • 特征重要性:Split 增益=按特征累加分裂增益;Permutation=打乱该特征后指标下降量。
  • Split 快、与树一致;Permutation 反映预测贡献、可跨模型,计算更贵。

返回模块 | 返回总览

25-编程与算法/278.md

第 278 题:实现多臂老虎机的UCB,探索参数的自动调整。

题目

实现多臂老虎机的UCB,探索参数的自动调整。


完整讲解

一、多臂老虎机与 UCB

  • 多臂老虎机:每轮选一个臂(动作),获得随机奖励;目标在探索(尝试未知臂)与利用(选当前估计最好的臂)间平衡,最大化累积奖励。UCB(Upper Confidence Bound) 给每个臂一个「乐观上界」,选上界最大的臂,实现探索-利用平衡。

二、UCB 公式

  • 设臂 当前被选了 次、平均奖励为 UCB1,其中 为总轮数。选 。根号项随 增大而减小,未充分选的臂上界高,自然被探索。
  • 探索参数 大则更倾向探索。可固定(如 2),或随 变化;也可用 UCB-tuned 等变体,用方差估计替代固定

三、探索参数的自动调整

  • 自适应 :根据当前 regret 或置信区间宽度动态调 ;若估计已稳定可减小 偏向利用。
  • Thompson 采样:不直接调 UCB 的 ,而是为每个臂维护奖励分布的后验(如 Beta),每轮采样后选最大采样值;等价于概率性探索,无需显式 ,也可视为「自动」探索。
  • 上下文 bandit:若带特征 ,可用 LinUCB、Thompson 与线性模型结合,探索参数可设为与 uncertainty(如 )成比例,实现基于不确定性的自动探索。
  • 实践:先设 UCB 的 为 1~2,观察探索程度;再结合 A/B 或 regret 曲线调参或切到 Thompson/上下文方法。

面试要点

  • 能写出 UCB1 公式 并解释各项含义;能说明为何能平衡探索与利用。
  • 能说清探索参数 的作用及自动调整思路(自适应 、Thompson、上下文 uncertainty)。

记忆要点

  • UCB:;选上界最大, 控探索。
  • 自动调整:自适应 、Thompson 采样、上下文 bandit 的 uncertainty;实践先固定 再调或换方法。

返回模块 | 返回总览

25-编程与算法/279.md

第 279 题:实现图神经网络的邻居采样,Inductive的minibatch。

题目

实现图神经网络的邻居采样,Inductive的minibatch。


完整讲解

一、图神经网络与邻居采样

  • GNN:节点表示由其邻居信息聚合更新;。全图训练时每个节点依赖多跳邻居,邻居爆炸导致无法整图 batch 训练,需采样形成 minibatch。

二、Inductive 与 Minibatch

  • Inductive:泛化到新节点/新图(训练时未见),需用节点特征与局部结构,不能依赖全图 embedding。Minibatch:每 batch 只取一部分节点及其依赖的子图,前向与反向仅在该子图上计算,控制显存与时间。
  • 邻居采样:对当前 batch 中的每个节点,不取全部邻居,而是随机采样若干邻居(如每层采样 个),用采样子图做 层 GNN;下一层再对刚采到的节点采样其邻居,形成多跳采样子图。这样每层节点数受控(约 batch_size × ),可训练大图。

三、实现要点

  • 采样策略:均匀采样、按边权采样、或重要性采样(补偿未采到的邻居)。GraphSAGE 即「每层固定采样数」的典型。
  • 反向:采样子图上的反向传播与全图一致,只需在构建计算图时只包含采样到的边与节点;框架(如 PyG、DGL)支持 minibatch + 采样。
  • 归纳:聚合函数与权重在训练时学习,推理时对新节点只需其邻居(可再采样),无需全图重训,即 Inductive。

面试要点

  • 能说清 GNN 为何需要邻居采样(邻居爆炸)、以及 Inductive 的含义。
  • 能说明 minibatch 下多跳采样的流程(每层采样若干邻居、形成采样子图)、以及采样策略与实现注意。

记忆要点

  • GNN minibatch:每层对当前节点采样固定数量邻居,形成采样子图,控制规模;Inductive=泛化到新节点。
  • 采样可均匀/按权/重要性;反向在子图上进行,框架支持。

返回模块 | 返回总览

25-编程与算法/280.md

第 280 题:实现序列模型的Beam Search,长度惩罚与重复抑制。

题目

实现序列模型的Beam Search,长度惩罚与重复抑制。


完整讲解

一、Beam Search

  • 自回归生成中,每步在词表上选 token;贪心只保留当前最优 1 个序列,易陷入局部最优。Beam Search 每步保留得分最高的 K 个序列(beam),下一步对每个扩展词表得到 K×V 个候选,再从中选全局 top-K 个序列,重复直至结束或达到最大长度。

二、长度惩罚(Length Penalty)

  • 未加长度惩罚时,短序列总概率(乘积)往往大于长序列,Beam Search 会偏向短输出。长度惩罚:对长度为 的序列,将得分改为 (如 ), 通常 0.6~1.0。惩罚后长序列不会被不公平压低,生成长度更合理。
  • 实现:每步扩展时,新序列的得分 = 原得分 + log P(token) 再除以长度惩罚因子;比较与排序时用带惩罚的得分。

三、重复抑制(Repetition Suppression)

  • 生成易出现重复 n-gram 或整句。重复抑制:对已出现过的 n-gram,在下一步的 logits 上对对应 token 减一个大常数(或置为 ),降低再生成的概率;可只禁 2-gram/3-gram 或按阈值禁。
  • 其他:no_repeat_ngram_size(Hugging Face)、temperature 与 top-p 也可减轻重复;可组合使用。
  • 实现:维护已生成 n-gram 集合,每步在 logits 上 mask 或减去 penalty;注意不要过度抑制导致无法生成合理重复(如「非常非常」)。

面试要点

  • 能说清 Beam Search 的流程(每步保留 top-K 序列、扩展、再选 top-K)及与贪心的区别。
  • 能说明长度惩罚的动机与常见形式(除以 或 lp(l));能说明重复抑制的做法(n-gram mask 或 logits 惩罚)。

记忆要点

  • Beam Search:每步保留 K 个最优序列并扩展,再选 top-K;长度惩罚=得分/长度因子,避免过短。
  • 重复抑制:对已出现 n-gram 在 logits 上减权或 mask;可结合 no_repeat_ngram、temperature。

返回模块 | 返回总览

25-编程与算法/281.md

第 281 题:设计特征存储的数据结构,支持高效CRUD与范围查询。

题目

设计特征存储的数据结构,支持高效CRUD与范围查询。


完整讲解

一、特征存储的需求

  • 推荐与模型服务需要高效读写特征:按 key(user_id、item_id 等)查多列特征、支持范围查询(如某时间段、某类目)、支持CRUD 与 TTL。数据结构需在内存/存储与查询延迟间权衡。

二、高效 CRUD

  • KV 存储:每 key 对应一个 value(可序列化多列);点查 O(1) 或 O(log n)。Redis、RocksDB 等适合高 QPS 点查;可做分层(热数据内存、冷数据盘)。
  • 列式:按特征列存储,适合「按 key 取多列」的批量读;可做列压缩。若需按 key 更新单列,需支持列内索引或行式混合。
  • CRUD:Put/Get 为基本;Update 可读-改-写或引擎原生 patch;Delete 可软删(标记)或 compaction 时真删。版本与 TTL 可由 key 设计(如 key=entity_id:version)或引擎支持。

三、范围查询

  • 有序存储:key 按字典序或数值序排列,则范围查询 [key_start, key_end] 可顺序扫描或 B+树等索引区间查。RocksDB、LevelDB 支持 range scan。
  • 二级索引:若需按「非主 key」范围查(如按时间、类目),可建二级索引(LSM/B+树),或维护 (时间, key) 等复合 key,范围查后回表取特征。
  • 倒排+正排:按类目等维度建倒排(类目→key 列表),范围查转化为多 key 取;正排存 key→特征,供 CRUD。适合「按维度筛+按 key 取特征」的推荐场景。

四、推荐场景选型

  • 在线推理:高 QPS 点查为主,Redis/自研 KV + 冷热分离;离线或批处理可 HBase/RocksDB 支持大范围 scan。特征版本与回溯可用 (key, version) 或时间分区。

面试要点

  • 能说清特征存储对 CRUD 与范围查询的需求,以及 KV、列式、有序存储的适用场景。
  • 能说明如何支持范围查询(有序 key、二级索引、倒排+正排)及推荐场景的典型选型。

记忆要点

  • 特征存储:高效 CRUD(KV/列式)+ 范围查询(有序、二级索引、倒排正排)。
  • 在线高 QPS 用 Redis/KV;离线/批处理用 RocksDB/HBase;版本可用 key 设计或分区。

返回模块 | 返回总览

25-编程与算法/282.md

第 282 题:实现模型服务的负载均衡,一致性哈希与故障转移。

题目

实现模型服务的负载均衡,一致性哈希与故障转移。


完整讲解

一、模型服务的负载均衡

  • 多实例部署时,请求需均衡分配到各实例,避免单点过载;同时希望同一用户/请求尽量落同一实例(局部性、缓存友好)。常用一致性哈希做有状态路由,并配合故障转移保证可用性。

二、一致性哈希

  • 思路:将 hash 空间(如 0~2^32-1)视为环,每个节点(实例)映射到环上若干点(虚拟节点);每个请求的 key(如 user_id)哈希到环上一点,顺时针找到第一个节点即为目标。增删节点时仅影响相邻区间,迁移量小。
  • 实现:维护有序的节点列表(按 hash 值),对 key 的 hash 做二分查找「第一个 ≥ hash 的节点」;虚拟节点(每物理节点多个 token)可提高均衡度。可选带权(按实例能力分配虚拟节点数)。
  • 局部性:同一 key 始终落同一节点,便于该 key 的缓存与状态;适合「按 user_id 路由」的推荐推理。

三、故障转移

  • 健康检查:定期探测实例存活与延迟,标记不健康节点并从哈希环中临时摘除(或降权),流量不再打到该节点。
  • 重试与降级:请求失败时重试其他节点或返回降级结果(如默认排序、缓存结果);超时也视为失败并转移。
  • 会话与状态:若实例有本地状态,故障时需将流量与状态迁移到其他节点,或使用外部存储(Redis/DB)存状态,故障后由新节点加载。推荐模型服务多为无状态,故障转移主要做摘除与重试即可。

面试要点

  • 能说清一致性哈希的原理(环、虚拟节点、key 顺时针找节点)及为何适合负载均衡与局部性。
  • 能说明故障转移:健康检查、摘除、重试与降级;无状态 vs 有状态时的差异。

记忆要点

  • 负载均衡:一致性哈希(环+虚拟节点),同一 key 落同节点,利于缓存与局部性。
  • 故障转移:健康检查、摘除故障节点、重试/降级;无状态只需摘除+重试。

返回模块 | 返回总览

25-编程与算法/283.md

第 283 题:实现实时指标的流式计算,滑动窗口的增量更新。

题目

实现实时指标的流式计算,滑动窗口的增量更新。


完整讲解

一、实时指标与流式计算

  • 实时指标:PV、UV、CTR、分桶统计等需在事件流上持续更新,延迟要求秒级或亚秒级。流式计算即对每条或每批事件做增量更新,而非离线批处理。

二、滑动窗口

  • 窗口:按时间或条数划定范围,如「最近 5 分钟」「最近 1 万条」。滑动即窗口随时间/事件推进而移动,每个时刻只统计窗口内数据。
  • 类型:滚动窗口(不重叠)、滑动窗口(可重叠,如每 1 分钟输出过去 5 分钟)、会话窗口(按 gap 切分)。实时指标常用滑动窗口(如最近 1 小时 CTR)。

三、增量更新

  • 计数:窗口内 count、sum 可增量维护:新事件进窗则 +1 或 +value,事件出窗则 -1 或 -value。需能识别「出窗」:按事件时间则需按时间戳排序或用水印;按处理时间则可用环形缓冲区按 slot 计数。
  • 去重:UV 等需去重时,可用 HyperLogLog 或 Bloom filter 做近似;窗口滑动时需支持「减去过期桶」的 HLL 或分层 HLL。
  • 复杂聚合:CTR = click_count / show_count,分别维护分子分母的滑动窗口计数即可增量;分桶统计可每桶一个滑动计数器。
  • 实现:Flink/Spark Streaming 等提供窗口 API;自研可用「时间分段 + 段内计数 + 段过期删除」或 Roaring Bitmap 等做精确/近似 UV。

四、背压与一致性

  • 流式需处理背压(下游慢时反压上游);语义上区分 at-least-once 与 exactly-once,按需选幂等与状态持久化。

面试要点

  • 能说清实时指标的流式计算、滑动窗口的类型与含义。
  • 能说明增量更新:计数与 sum 的进窗/出窗、UV 的近似结构、CTR 等比率的维护;能简述实现(分段、HLL、Flink 等)。

记忆要点

  • 实时指标:流式计算+滑动窗口;增量=进窗加、出窗减;UV 用 HLL 等近似。
  • CTR 等=分子分母分别滑动计数;实现可用分段或流式引擎(Flink)窗口 API。

返回模块 | 返回总览

25-编程与算法/284.md

第 284 题:设计AB测试的分流算法,正交分层与互斥实验。

题目

设计AB测试的分流算法,正交分层与互斥实验。


完整讲解

一、AB 测试与分流

  • AB 测试:将流量按一定规则分流到不同实验组(如策略 A/B),比较各组的指标,推断策略效果。分流算法需保证:同一用户/请求尽量稳定在同一组(一致性)、各实验正交互斥可配置、支持多实验并行。

二、正交分层

  • 分层:将流量按划分(如层1=召回策略、层2=排序模型、层3=UI);每层内再分桶(如 100 个桶)。正交即不同层使用独立的 hash 或随机种子,这样「层1 的桶 i」与「层2 的桶 j」独立,层1 实验与层2 实验可同时进行、结论不互相干扰。
  • 实现:user_id(或 request_id)→ hash( user_id, layer_id ) % 100 得到该层桶号;每层内再按桶号划分实验组(如桶 0~49 为 A,50~99 为 B)。分层内可再划分子域(如按地域)做互斥。

三、互斥实验

  • 互斥:同一业务域或同一入口下,某些实验不能同时生效(如两个排序模型不能同时改同一位置)。做法:同层内一个桶只能属于一个实验;或设「实验组」为互斥集合,分流时先选互斥组再选组内策略。
  • 分流算法:user_id → hash → 桶号;桶号 → 查配置表 → 实验 id 或策略 id。配置表记录「桶区间 → 实验」的映射;互斥实验占用不重叠的桶区间。可支持按比例扩缩(如某实验从 10% 扩到 20% 则桶区间扩大)。

四、实现要点

  • 稳定性:同一 user 同一层同一桶,避免频繁切换组;白名单与强制命中可覆盖 hash;记录分流结果用于日志与分析。

面试要点

  • 能说清 AB 分流中正交分层的目的(多实验并行、结论不互相干扰)及实现(每层独立 hash 得桶号)。
  • 能说明互斥实验的含义与实现(同层桶不重叠、或互斥组内选一);能简述分流算法流程(hash→桶→配置→实验)。

记忆要点

  • AB 分流:正交=分层+每层独立 hash 得桶,多实验并行;互斥=同层/同域桶不重叠。
  • 分流:user_id → hash(layer) → 桶号 → 配置表 → 实验;需稳定、可白名单。

返回模块 | 返回总览

25-编程与算法/285.md

第 285 题:实现推荐结果的缓存策略,LRU与LFU的混合。

题目

实现推荐结果的缓存策略,LRU与LFU的混合。


完整讲解

一、推荐结果缓存的需求

  • 同一用户短时间内的推荐请求可能重复(如刷新、多端);缓存可降低延迟与算力。缓存策略需在命中率、新鲜度与存储成本间权衡;LRULFU 各有优劣,混合可兼顾。

二、LRU(Least Recently Used)

  • 规则:淘汰最久未访问的项。实现:双向链表 + 哈希表,访问时移到头,满时删尾。特点:对「最近用过」友好,适合有明显时间局部性的请求;但对突发流量或扫描会挤出热点。
  • 复杂度:读写 O(1);实现简单,生产常用。

三、LFU(Least Frequently Used)

  • 规则:淘汰访问次数最少的项。实现:按频次分桶(如 1次、2次…),每桶内可再 LRU;或小堆 + 哈希。特点:保护热点、抗扫描;但新项易被淘汰(冷启动差),历史热点会长期占位。
  • 复杂度:更新频次与淘汰需谨慎实现,可 O(1) 或 O(log n) 取决于结构。

四、混合策略

  • LRU + LFU 混合:如两级缓存,L1 用 LRU(小、热)、L2 用 LFU 或 LRU;或单 cache 用「加权分」:score = α·recency + β·frequency,按 score 淘汰。也可 TinyLFU:用 Count-Min Sketch 近似频次,定期衰减,再结合 LRU 窗口避免新项立刻被淘汰。
  • 推荐场景:key 常为 (user_id, 场景, 版本);TTL 可设较短(如分钟级)保证一定新鲜度;大 key(列表)可压缩或只缓存 top 部分。混合策略可提高命中率并减轻缓存污染。

面试要点

  • 能说清 LRU 与 LFU 的规则、实现要点与优缺点(LRU 重时间局部性,LFU 重频次、冷启动差)。
  • 能说明混合思路:两级 LRU+LFU、加权分、TinyLFU;以及推荐场景的 key 设计与 TTL。

记忆要点

  • LRU:淘汰最久未用,O(1);LFU:淘汰频次最低,护热点但冷启动差。
  • 混合:两级、加权 score、TinyLFU;推荐可 key=user+场景、短 TTL。

返回模块 | 返回总览

25-编程与算法/286.md

第 286 题:设计日志采集的压缩算法,列式存储与编码优化。

题目

设计日志采集的压缩算法,列式存储与编码优化。


完整讲解

一、日志采集与压缩需求

  • 推荐与行为日志量大(点击、曝光、特征等),采集、传输与存储需压缩以省带宽与存储;同时要支持高效查询与解析。列式存储编码优化是常用手段。

二、列式存储

  • 行式 vs 列式:行式按「一条记录」连续存;列式按「一列」连续存。日志若按列存,同一列类型一致、取值往往有重复与局部性,便于列级压缩只读部分列的查询。
  • 应用:行为日志的 user_id、item_id、timestamp、feature_1, feature_2… 各为一列;分析时常按列聚合或过滤,列式可只读相关列,IO 与解压更省。
  • 格式:Parquet、ORC 等为列式+编码;自研日志管线可先按行写 buffer,再按列批量编码与落盘。

三、编码优化

  • 字典编码:高基数 id(如 item_id)建字典,存整数码代替长字符串,可再对整数做 delta、RLE 或 bit-packing。
  • Delta / RLE:排序列(如时间戳、递增 id)存差值或游程,大幅降低熵;适合列式下按列编码。
  • 通用压缩:列块或块内再用 Snappy、Zstd 等做通用压缩;先编码再压缩效果更好。
  • 分层:热数据保留更多细节或不解压;冷数据高压缩、按需解压,平衡查询性能与成本。

四、设计要点

  • 日志 schema 稳定、列类型明确便于选编码;采集端可做轻量预处理(去重、采样、预聚合)再压缩传输;存储与查询引擎(如 ClickHouse、Hive)与格式匹配。

面试要点

  • 能说清列式存储对日志压缩与查询的好处(列级压缩、只读部分列)。
  • 能列举编码方式:字典、delta、RLE、通用压缩;以及分层与采集端预处理。

记忆要点

  • 日志压缩:列式存储+列级编码(字典、delta、RLE)+ 通用压缩;列式利于分析与省 IO。
  • 编码选型依列类型与分布;冷热分层可进一步降成本。

返回模块 | 返回总览

25-编程与算法/287.md

第 287 题:实现Embedding的增量训练,新ID的冷启动初始化。

题目

实现Embedding的增量训练,新ID的冷启动初始化。


完整讲解

一、Embedding 增量训练

  • 新用户、新物品不断出现(新 ID),全量重训成本高、延迟大。增量训练即在已有 embedding 与模型基础上,只对新样本或新 ID 相关参数进行更新,或扩展 embedding 表并训练新行,使新 ID 快速得到可用表示。

二、新 ID 的冷启动初始化

  • 未登录 ID:训练时未见过的 user_id/item_id,推理时需给一个默认向量。常见做法:(1)零向量或随机小向量;(2)平均向量(全表或同侧 ID 的均值);(3)根据侧信息(如类目、注册时间)用一个小网络或查表得到初始向量;(4)从相似 ID(同属性)复制或插值
  • 增量扩展:新 ID 加入 embedding 表时,先赋上述初始向量;再用包含该 ID 的新样本做几轮更新(只更新该 ID 的 embedding 或加上相关层),避免破坏已有 ID 的表示。可设隔离:仅新 ID 或新样本参与本次更新,或对新 ID 用更大学习率。
  • 双塔场景:user 侧新 user_id、item 侧新 item_id;item 可用内容特征或类目 embedding 做初始化并参与训练;user 可用行为聚合或默认向量,尽快用首次行为更新。

三、实现要点

  • 存储:embedding 表支持动态扩展(新 key 写入);训练管线支持「仅新 ID / 新样本」或全量+新样本混合。评估时关注新 ID 的 CTR/覆盖率与稳定性。

面试要点

  • 能说清 Embedding 增量训练的目的(新 ID 快速可用、避免全量重训)及新 ID 初始化的几种方式(零/平均/侧信息/复制)。
  • 能说明增量扩展时如何训练(仅更新新 ID、大学习率、隔离更新)及双塔下 user/item 侧的差异。

记忆要点

  • 增量训练:新 ID 扩展 embedding 表并训练;初始化=零/平均/侧信息/复制。
  • 新 ID 可隔离更新或更大学习率;双塔侧信息可辅助 item、行为辅助 user。

返回模块 | 返回总览

25-编程与算法/288.md

第 288 题:设计模型压缩的剪枝算法,结构化与非结构化的选择。

题目

设计模型压缩的剪枝算法,结构化与非结构化的选择。


完整讲解

一、模型压缩与剪枝

  • 剪枝:去掉部分参数(置零或移除),得到更小、更快的模型。结构化剪枝移除整块结构(如整通道、整头、整层);非结构化剪枝移除单个权重,稀疏度高但需稀疏计算支持才能加速。

二、结构化剪枝

  • 单位:以通道(channel)、注意力头(head)、层(layer)为单位。例如卷积中剪掉某输出通道,则对应卷积核整列与下一层整行可删;Transformer 中剪掉某 head 或某 FFN 维度。
  • 优点:剪枝后仍是稠密矩阵,现有框架与硬件可直接加速;实现简单、压缩与加速比稳定。
  • 选择:按重要性排序(如通道的 L1 范数、梯度、BN 缩放因子),删掉重要性低的;可逐层或全局排序,需配合微调恢复精度。

三、非结构化剪枝

  • 单位:单个权重。按权重大小或重要性置零,得到稀疏权重矩阵;稀疏度可很高(如 90%)。
  • 优点:理论压缩比高;实际加速依赖稀疏算子(稀疏矩阵乘、稀疏卷积)与硬件支持,否则仅省存储不省算。
  • 选择:按绝对值或梯度敏感度;可逐层定比例或全局定总稀疏度;常需微调与重训。

四、选型与流程

  • 若目标为推理加速且无强稀疏支持:优先结构化(通道/头/层)。若存储为主、有稀疏库:可非结构化。流程一般为:预训练 → 剪枝(按重要性)→ 微调/校准 → 导出与部署;可迭代多轮剪枝+微调。

面试要点

  • 能说清结构化与非结构化剪枝的区别(单位、是否需稀疏支持、加速效果)。
  • 能说明重要性度量(范数、梯度、BN)与剪枝流程(剪枝→微调→部署);能根据目标选型。

记忆要点

  • 结构化:按通道/头/层删,稠密可直接加速;非结构化:按权重稀疏,需稀疏算子才加速。
  • 重要性:L1、梯度、BN 等;流程:剪枝→微调;选型看加速与硬件支持。

返回模块 | 返回总览

25-编程与算法/289.md

第 289 题:实现分布式训练的参数同步,BSP与ASP的收敛性。

题目

实现分布式训练的参数同步,BSP与ASP的收敛性。


完整讲解

一、分布式训练与参数同步

  • 多机多卡时,每 worker 有局部参数与梯度;参数同步即把各 worker 的梯度或参数聚合成全局一致,再进入下一轮。BSP(Bulk Synchronous Parallel)ASP(Asynchronous Parallel) 是两种典型范式,收敛性不同。

二、BSP(同步并行)

  • 做法:每步所有 worker 算完梯度后同步(AllReduce 或 PS 聚合),得到全局梯度再更新参数;下一步所有 worker 用同一份参数。同步点保证每步更新基于同一轮数据/参数的梯度。
  • 收敛性:与单机 SGD 等价(在聚合为平均梯度、相同学习率下),收敛性有理论保证;通信与等待慢的 worker 会拖慢整体(木桶效应)。
  • 实现:AllReduce(Ring、Tree)、或 Parameter Server 的同步模式(pull 最新参数、push 梯度、server 聚合后 broadcast)。

三、ASP(异步并行)

  • 做法:Worker 算完梯度即异步 push 到 server 或 peer,不等待其他 worker;可 pull 当前(可能已被他机更新过的)参数继续算下一轮。无全局同步点。
  • 收敛性:存在延迟与陈旧梯度(stale gradient),等价于带噪声的 SGD;学习率需调小或做延迟补偿,收敛性分析更复杂,可能震荡或收敛慢。实践中需调参与监控。
  • 实现:PS 异步模式、或异步 AllReduce 变体;需处理冲突(如用 delay 补偿、或梯度累积与合并策略)。

四、对比与选用

  • BSP:收敛稳定、实现与调参简单,适合通信不极端差的集群;ASP:吞吐高、延迟敏感时可考虑,但需谨慎调参与验证收敛。推荐训练常用 BSP(如 Horovod、PyTorch DDP);超大模型或通信瓶颈时可探索 ASP 或混合。

面试要点

  • 能说清 BSP 与 ASP 的同步方式(每步全同步 vs 异步 push/pull)及对收敛的影响。
  • 能说明 BSP 收敛与单机等价、ASP 的陈旧梯度与延迟补偿;能简述 AllReduce 与 PS 在两种模式下的角色。

记忆要点

  • BSP:每步全同步梯度再更新,收敛与单机等价;ASP:异步更新,存在陈旧梯度,需调学习率与补偿。
  • 推荐常用 BSP;ASP 吞吐高但收敛需验证。

返回模块 | 返回总览

25-编程与算法/290.md

第 290 题:设计推荐系统的压测方案,流量模拟与瓶颈定位。

题目

设计推荐系统的压测方案,流量模拟与瓶颈定位。


完整讲解

一、压测的目的

  • 验证推荐服务在高流量下的延迟、吞吐、错误率与稳定性;定位瓶颈(CPU、内存、网络、依赖、数据库)以便扩容与优化。流量模拟瓶颈定位是压测方案的核心。

二、流量模拟

  • 数据:用历史请求日志或合成请求(user_id、场景、特征等),保证与线上分布接近(如热门 user、长尾 item 比例);可按 QPS 曲线回放或按目标 QPS 发压。
  • 工具:wrk、JMeter、Locust、自研发压器;可控制 QPS、并发、持续时间、爬坡策略;支持多接口与混合场景(推荐、详情、相关等)。
  • 维度:单接口压测与混合场景压测(多接口按比例);可区分读多写少、峰值与平峰。
  • 注意:压测流量与线上隔离(阴影表、只读、或专用集群);避免压测污染线上数据与缓存。

三、瓶颈定位

  • 指标:各层 P99/P95 延迟、QPS、CPU/内存/网络利用率、依赖调用耗时与错误率;推荐链路从网关→召回→排序→依赖服务逐层看。
  • 方法:在压测过程中采集 trace、日志与监控;对比「压测前基线」与「压测中」各组件指标,找出最先饱和或延迟跳变的组件(如某 RPC、某 DB、某模型推理)。
  • 优化:针对瓶颈做扩容、缓存、批处理、降级或限流;再压测验证。可设目标(如 P99<100ms、错误率<0.1%)与容量基线(单机/集群最大可支撑 QPS)。

四、方案设计要点

  • 明确压测目标(容量、稳定性、回归);设计流量与场景;选定工具与环境;定义指标与采集方式;执行与分析;形成报告与容量规划。

面试要点

  • 能说清推荐系统压测的目的,以及流量模拟的方式(数据来源、分布、工具、隔离)。
  • 能说明瓶颈定位:看哪些指标、如何逐层分析、如何与优化闭环;能给出目标与容量基线概念。

记忆要点

  • 压测:流量模拟(历史/合成、分布接近、工具控制)+ 瓶颈定位(延迟/利用率/依赖逐层看)。
  • 流量与线上隔离;定位后扩容/缓存/降级再验证;设目标与容量基线。

返回模块 | 返回总览

25-编程与算法/291.md

第 291 题:实现一个简化版TensorFlow的自动微分。

题目

实现一个简化版TensorFlow的自动微分。


完整讲解

一、自动微分的含义

  • 自动微分(Autodiff):给定计算图与目标对某变量的导数,自动求出图中所有节点对该变量的梯度;用于训练神经网络。反向模式即从输出反向传播梯度,一次反向得到所有参数梯度,与 TensorFlow/PyTorch 类似。

二、计算图与反向传播

  • 计算图:将计算表示为有向图,节点为张量或操作(加减乘、激活等),边为依赖。前向执行时记录依赖与中间结果;反向时按拓扑逆序,对每个节点用链式法则把「输出对当前节点的梯度」传给输入,并累加多出边时的梯度。
  • 链式法则:若 ,则 。对每个 op 定义反向规则:已知输出梯度,求输入梯度。例如 multiply(a,b) 的反向为 grad_a = grad_output * b,grad_b = grad_output * a。

三、简化版实现要点

  • 数据结构:节点存 value、op 类型、输入节点指针;边即输入输出关系。前向时递归或拓扑执行,并建反向边(或记录依赖)。
  • 反向:从 loss 节点开始,队列或栈按拓扑逆序访问;对每个节点根据 op 类型计算输入梯度并累加到输入节点的 grad;需处理多路使用同一节点时的梯度累加。
  • 典型 op:matmul、add、relu、softmax 等各有标准反向公式;可先实现标量/小规模再扩展为张量(按元素或广播)。
  • 与 TensorFlow 的简化:不需完整 API,只需「建图→前向→反向→取梯度」的闭环;可固定 dtype 与 shape 简化实现。

面试要点

  • 能说清自动微分(反向模式)的目的与计算图、链式法则的关系。
  • 能写出若干 op 的反向规则(如 multiply、matmul、relu);能说明简化版实现的数据结构与反向遍历顺序、梯度累加。

记忆要点

  • 自动微分:计算图+反向传播;每 op 定义反向规则(输出梯度→输入梯度);反向按拓扑逆序、多路累加。
  • 简化版:节点存 value/op/输入;前向建图,反向从 loss 遍历并累加 grad。

返回模块 | 返回总览

25-编程与算法/292.md

第 292 题:实现Transformer的稀疏注意力,Longformer的滑动窗口。

题目

实现Transformer的稀疏注意力,Longformer的滑动窗口。


完整讲解

一、Transformer 的注意力与稀疏化

  • 标准 self-attention 的复杂度为序列长度 平方),长序列时显存与算力压力大。稀疏注意力只计算部分 query-key 对,使复杂度降为 等。Longformer 是代表性方案之一,采用滑动窗口等局部+全局稀疏模式。

二、Longformer 的滑动窗口

  • 局部滑动窗口:每个 query 只 attend 到左右各 token(窗口大小 ),复杂度 。适合局部依赖强的文本;窗口可重叠,信息可间接传递多跳。
  • 全局 token:指定少量 token(如 [CLS]、句首)为全局,所有位置 attend 到它们、它们 attend 到全部,用于汇总信息;数量少,不改变主导复杂度。
  • 实现:attention 矩阵为带状+少量全行/列;可用 banded mask 或稀疏矩阵格式只算非零块;或分块计算(每 query 块只与对应 key 块及全局做 attention)。

三、与推荐的关系

  • 长序列行为、长文本用 Transformer 时,滑动窗口可限制长度、降低延迟;推荐序列可「近期全量+远期采样」或直接滑动窗口,兼顾效果与成本。

四、实现要点

  • 注意力 mask:仅允许 (i, j) 在 |i-j| ≤ w 或 j 为全局时为 1;softmax 前对禁止位置置 。高效实现可用块状 kernel 或稀疏库。

面试要点

  • 能说清 Longformer 滑动窗口:每 query 只 attend 窗口内+全局 token;复杂度
  • 能说明全局 token 的作用、以及 mask 与实现思路(带状、分块、稀疏)。

记忆要点

  • Longformer:局部滑动窗口(每 query 左右各 w)+ 少量全局 token;复杂度 O(L·w)。
  • 实现:banded mask 或稀疏;推荐长序列可滑动窗口降成本。

返回模块 | 返回总览

25-编程与算法/293.md

第 293 题:实现知识图谱的TransE训练,负采样的破坏策略。

题目

实现知识图谱的TransE训练,负采样的破坏策略。


完整讲解

一、TransE 与知识图谱

  • TransE:将关系视为头实体到尾实体的平移,即 为向量)。损失为 margin-based:正例 要小,负例要大; 为负样本。

二、训练与负采样

  • 训练:对每个正三元组 ,采样若干负样本。负样本通常由破坏正样本得到:替换头 替换尾 从实体集中采样,保证 不在正例集中(否则为假负)。
  • 破坏策略:随机替换(uniform)、按类型约束替换(同类型实体)、或按流行度采样(热门实体更常被采为负);可 1:1 头尾各采若干。避免假负(破坏后仍在知识库中)可过滤或降低权重。
  • 实现:每 batch 取正例,对每条生成 K 个负例(替换头或尾),算正负 margin loss 并反向;实体与关系 embedding 可初始化随机或预训练。

三、扩展

  • 可结合类型信息、多跳路径做改进(TransH、TransR、RotatE 等);负采样质量对 TransE 效果影响大,破坏策略可做均匀/类型感知/对抗采样等。

面试要点

  • 能写出 TransE 的目标 与 margin 损失形式;能说明负采样由「替换头或尾」得到。
  • 能说清破坏策略(随机、类型、过滤假负)及实现流程(batch 正例+生成负例+margin loss)。

记忆要点

  • TransE:,margin 损失;负样本=替换头或尾,过滤假负。
  • 破坏策略:随机/类型/流行度;实现 batch 正例+K 负例算 loss。

返回模块 | 返回总览

25-编程与算法/294.md

第 294 题:实现强化学习的REINFORCE,基线减小的方差降低。

题目

实现强化学习的REINFORCE,基线减小的方差降低。


完整讲解

一、REINFORCE 与策略梯度

  • REINFORCE:策略梯度的一种,用轨迹的回报 作为权,对策略 的 log 概率求梯度并上升:。无偏但方差大,因 整条轨迹的回报波动大。

二、基线减小方差

  • 基线(baseline):引入与动作无关的 ,用 代替 作为权重,即 。只要 不依赖当前动作,期望不变仍无偏;若 近似 ,则 方差更小。
  • 常见基线:(1)常数(如回报均值);(2)状态价值估计 ,用另一网络或 TD 学习;(3)优势估计 或 GAE。实现时 可用蒙特卡洛回报或 TD() 回报。
  • 实现:采轨迹,算每步 (或 ),loss = ,最小化即梯度上升;若用 为基线需同时训 (如 MSE 拟合 )。

三、方差与偏差权衡

  • 作基线降方差;若 用 bootstrapping(TD)则引入偏差,GAE 在偏差与方差间折中。REINFORCE+基线是 A2C/PPO 等的基础。

面试要点

  • 能写出 REINFORCE 的梯度形式 并说明方差大的原因。
  • 能说明基线的作用(无偏、降方差)、常见取法(常数、、优势)及实现时 loss 与 的训练方式。

记忆要点

  • REINFORCE:策略梯度,权为 ;加基线 保持无偏且降方差, 常用。
  • 实现:采轨迹算 ,loss=-;可同时训

返回模块 | 返回总览

25-编程与算法/295.md

第 295 题:实现因果推断的PSM,倾向得分的逻辑回归估计。

题目

实现因果推断的PSM,倾向得分的逻辑回归估计。


完整讲解

一、因果推断与 PSM

  • 因果推断:在观察数据下估计干预效果(如推荐策略 A vs B 对转化的因果效应)。混淆因素会导致相关不等于因果;PSM(倾向得分匹配) 用「接受处理的概率」做匹配,使匹配后处理组与对照组在混淆因素上可比,从而估计因果效应。

二、倾向得分

  • 倾向得分,即给定协变量 下接受处理 的概率。在 上匹配等价于在 上匹配(一维);若可忽略性成立(给定 后处理与潜在结果独立),则匹配后组间差异可归因于处理。
  • 逻辑回归估计:用逻辑回归 建模,得到 。即用观测到的 (X, Z) 数据拟合逻辑回归,预测值作为倾向得分。
  • 实现:对每个处理组样本,在对照组中找倾向得分最近的若干样本(或卡尺内)做匹配;对匹配后的样本算结果变量 的组间差作为平均处理效应(ATE)的估计。也可用倾向得分加权(IPW)代替匹配。

三、注意事项

  • 共同支持域:处理组与对照组在倾向得分上需有重叠,否则外推。逻辑回归需指定 (包含主要混淆变量);模型 misspec 会影响估计。推荐中可用于估计策略、位置、曝光等对点击/转化的因果效应。

面试要点

  • 能说清 PSM 的目的(控制混淆、估计因果效应)与倾向得分的定义
  • 能说明用逻辑回归估计倾向得分的步骤,以及匹配或加权后如何估计效应;能提及共同支持域与混淆变量选择。

记忆要点

  • PSM:倾向得分 ,用逻辑回归估计 ,再匹配或加权估计效应。
  • 匹配=找倾向得分相近的对照;注意共同支持域与混淆变量 的选择。

返回模块 | 返回总览

25-编程与算法/296.md

第 296 题:实现图算法的PageRank,分布式幂迭代优化。

题目

实现图算法的PageRank,分布式幂迭代优化。


完整讲解

一、PageRank

  • PageRank:将网页(或节点)的重要性定义为「被重要节点指向则自己重要」的均衡。设 为节点 的 rank,,其中 为行随机转移矩阵(出链均匀), 为阻尼系数;或等价地 的主特征向量(最大特征值 1)的平稳分布。

二、幂迭代

  • 幂迭代:求主特征向量时,迭代 (或带阻尼与 teleport),直至收敛。即 不断被 左乘,收敛到主特征向量。每步复杂度 (边数),稀疏图可行。
  • 实现:用邻接表或稀疏矩阵存图;每轮对每个节点 ;归一化 或保持 。迭代直到

三、分布式与优化

  • 分布式:图按节点分片,每片存该片节点的出边与 ;每轮各片算本片节点的 (需收集入边来自哪些片、对应 ),再同步 或用 AllGather;多轮迭代直至收敛。可 Pregel、Spark GraphX 等。
  • 优化:稀疏矩阵向量乘;早停(变化小于阈值);阻尼与 teleport 避免悬挂节点与死胡同;大图可分区与 checkpoint。

面试要点

  • 能写出 PageRank 的方程()与幂迭代形式。
  • 能说明幂迭代每步做什么、复杂度;能简述分布式思路(图分片、每轮同步 )。

记忆要点

  • PageRank: 为转移矩阵主特征向量;幂迭代 (带阻尼)直至收敛。
  • 分布式:图分片、每轮局部算新 再同步;复杂度 O(E) 每轮。

返回模块 | 返回总览

25-编程与算法/297.md

第 297 题:实现近似算法的Count-Min Sketch,频率估计的误差界。

题目

实现近似算法的Count-Min Sketch,频率估计的误差界。


完整讲解

一、Count-Min Sketch(CMS)

  • 用途:用亚线性空间估计流中元素的频率(或计数),允许一定误差。多用于大流量的近似计数(如 item 曝光、关键词频)。

二、结构与更新

  • 结构 的二维计数器表, 个哈希函数 ,每个把 key 映射到 。对每个 (key, count) 的更新:对每行 。即每个 key 在每行贡献一个桶。
  • 查询。取 行中对应桶的最小值作为频率估计。因其他 key 会碰撞进同一桶,单行会高估;取 min 可减小高估(在无负更新时)。

三、误差界

  • 理论:设真实频率为 ,流总计数为 ,则 以高概率(每行);取 min 后期望误差与 相关,通常 量级。增大 降误差,增大 降方差。
  • 参数 可得到 保证。实现时 取 2 的幂便于取模;哈希函数需两两独立或实用哈希族。

四、扩展

  • 支持负更新需 Count-Min Sketch 的变体(如 Count-Mean-Min);中位数代替 min 可减小偏差。推荐中可用于曝光/点击的近似计数、热点检测等。

面试要点

  • 能说清 CMS 的结构( 表、 个 hash)、更新与查询(取 min)的流程。
  • 能给出误差的直观或形式化界(与 的关系);能说明 的选取与空间权衡。

记忆要点

  • Count-Min Sketch: 计数器,每 key 每行 hash 到一个桶并累加;查询取 个桶的 min。
  • 误差:,误差量级约 大降误差, 大降方差。

返回模块 | 返回总览

25-编程与算法/298.md

第 298 题:实现一致性协议Raft,Leader选举与日志复制。

题目

实现一致性协议Raft,Leader选举与日志复制。


完整讲解

一、Raft 简述

  • Raft:一种一致性协议,使多副本在部分节点故障、网络分区下仍就「同一份日志」达成一致,用于复制状态机。核心包括Leader 选举日志复制两大部分。

二、Leader 选举

  • 角色:Leader(处理写、复制日志)、Follower(被动接收)、Candidate(参与选举)。任期(term)递增。
  • 触发:Follower 在选举超时内未收到 Leader 心跳则转为 Candidate,term+1,向其他节点请求投票;若获多数票则成为新 Leader,向所有节点发心跳。
  • 投票规则:每个节点每 term 最多投一票;通常投给「日志至少不比自己旧」的 Candidate(比较 lastLogIndex、lastLogTerm),保证已提交的日志不会被覆盖。
  • 分裂与重选:若无人获多数,超时后重新选举;随机化超时减少同时竞选。

三、日志复制

  • 流程:Client 写请求到 Leader;Leader 将条目追加到本地日志,并并行复制到多数 Follower;Follower 持久化后回复;Leader 收到多数 ack 后提交该条目并应用状态机,再回复 Client。
  • 一致性:Leader 不删除或覆盖自己的日志;若某条在某一 term 被某 Leader 提交,则更大 term 的 Leader 一定包含该条(由选举的「日志不更旧」保证)。Follower 与 Leader 冲突的日志可被 Leader 的后续条目覆盖(通过 nextIndex 与一致性检查)。
  • 实现要点:持久化 currentTerm、votedFor、log[];选举与复制时的 RPC;安全性与 liveness 的证明依赖「选举约束」与「提交规则」。

面试要点

  • 能说清 Raft 的两种核心机制:Leader 选举(超时、投票、多数、日志不更旧)与日志复制(Leader 追加、复制多数、提交)。
  • 能说明投票规则为何能保证已提交日志不丢;能简述冲突时 Leader 如何覆盖 Follower 日志(nextIndex 回退)。

记忆要点

  • Raft:Leader 选举(超时→Candidate→请求投票→多数成 Leader);日志复制(Leader 追加→复制多数→提交)。
  • 投票投给日志不更旧的;已提交的日志不会被覆盖;冲突时 Leader 用 nextIndex 覆盖 Follower。

返回模块 | 返回总览

25-编程与算法/299.md

第 299 题:实现数据库的B+树索引,范围查询与并发控制。

题目

实现数据库的B+树索引,范围查询与并发控制。


完整讲解

一、B+ 树与索引

  • B+ 树:多路平衡搜索树,所有键在叶节点有序排列,且叶节点串成链表;非叶节点仅作索引(key 与子指针)。适合范围查询磁盘:扇出大、高度低、顺序扫描叶链即可做 range query。
  • 数据库索引:以 (key → 记录指针或主键) 建 B+ 树;按 key 查、范围查、排序都高效。

二、范围查询

  • 点查:从根按 key 比较下行至叶,在叶中二分或扫描得 key 对应记录。
  • 范围查询:在叶中找到起始 key 所在叶节点,沿叶链表顺序扫描直至结束 key;只需一次根到叶的下降 + 顺序 IO,适合「WHERE key BETWEEN a AND b」。
  • 实现:节点内 key 有序;叶节点存 (key, value) 或 (key, record_id);叶链指针维护顺序。

三、并发控制

  • 读多写少:读不阻塞读;写(插入/删除/分裂/合并)需保证不破坏结构一致性。常用多版本
  • ** latch(页锁):访问节点前加 latch,可读锁(共享)或写锁(互斥);父节点与子节点的加锁顺序一致(如从上到下、先父后子),避免死锁。Crabbing**:向下遍历时先锁子再可释放父(或保留到安全点)。
  • 分裂与合并:插入导致溢出则分裂节点,新节点插入父;删除导致 underflow 可合并或借兄弟。分裂时需短暂独占父与子;可设「安全」节点(插入不分裂、删除不合并)提前释放祖先锁。
  • 简单实现:每节点一把锁;搜索时读锁、修改时写锁;分裂/合并时锁路径上相关节点。可再引入意向锁或 B-link 树减少锁范围。

面试要点

  • 能说清 B+ 树结构(叶节点有序+链表、非叶索引)与范围查询如何做(根到叶+顺扫叶链)。
  • 能说明并发控制:latch、读锁/写锁、分裂合并时的锁顺序与 Crabbing;能简述安全节点与提前释放。

记忆要点

  • B+ 树:多路平衡、叶有序+链表;范围查询=根到叶+顺扫叶链。
  • 并发:节点 latch、读/写锁、分裂合并锁路径;Crabbing 或安全节点提前释放父锁。

返回模块 | 返回总览

25-编程与算法/300.md

第 300 题:实现一个简化版Spark的RDD,懒计算与血缘追踪。

题目

实现一个简化版Spark的RDD,懒计算与血缘追踪。


完整讲解

一、RDD 与 Spark 核心抽象

  • RDD(Resilient Distributed Dataset):不可变、分区的分布式集合,支持 transformations(map、filter、groupBy 等,懒执行)与 actions(count、collect、save,触发计算)。懒计算即 transformation 只记录依赖与算子,不立即算,直到 action 触发;血缘(lineage) 即 RDD 的依赖图,用于故障时重算而无需持久化全部中间结果。

二、懒计算(Lazy Evaluation)

  • 实现:每个 RDD 记录其 parent(s)transformation 函数(如 map 的 f);调用 transformation 时只 new 一个 RDD 并保存 parent 与 f,不调用 f。Action 被调用时,从该 RDD 反向沿依赖递归到无依赖(或已有缓存),再正向按依赖顺序执行各 stage,得到结果。
  • 好处:可做全局优化(如合并连续 map、推断分区)、按需计算、管道化与流水线。

三、血缘追踪(Lineage)

  • 血缘:RDD 的依赖关系形成 DAG。窄依赖(父分区与子分区一对一或多对一)与宽依赖(shuffle,一对多)。记录方式:每个 RDD 存 dependencies: List[Dependency],如 OneToOneDependency、ShuffleDependency;每个 Dependency 指向父 RDD。
  • 用途:(1)调度:按宽依赖划分 stage,stage 内 pipeline,stage 间 shuffle;(2)容错:某分区丢失时,从血缘追溯到源或缓存,只重算丢失分区及其依赖链;(3)持久化:用户可 persist 某 RDD,则重算时不必再溯到最前。
  • 简化实现:RDD 基类含 dependencies()compute(partition);子类如 MappedRDD 存 parent 与 f,compute 时对 parent 的该分区调 f。Action 如 count() 触发 sc.runJob(this, countPartition),调度器按血缘 DAG 提交 stage 并执行。

四、简化版要点

  • 可不实现完整集群与 shuffle,只实现单机或伪分布;核心是「RDD = 依赖 + 算子」「transformation 懒、action 触发」「血缘 DAG 用于调度与重算」。可做 MapPartitionsRDD、FilterRDD、UnionRDD 等,以及 getDependencies、compute 的递归触发。

面试要点

  • 能说清 RDD 的懒计算:transformation 只记依赖与函数,action 触发时才沿依赖计算。
  • 能说明血缘的作用:记录依赖 DAG、用于调度(stage 划分)与容错(重算);能区分窄依赖与宽依赖。

记忆要点

  • RDD:懒计算= transformation 不立刻算、action 触发;血缘=依赖 DAG,用于调度与故障重算。
  • 实现:RDD 存 parent(s)+transformation;compute(partition) 递归父分区再算;stage 按宽依赖划分。

返回模块 | 返回总览

25-编程与算法/README.md

25-编程与算法(第 271–300 题)

题号 主题 文章
271 实现AUC计算,支持大规模数据的流式更新。 271.md
272 实现TopK推荐,基于堆与快速选择的比较。 272.md
273 实现协同过滤的矩阵分解,SGD与ALS的并行化。 273.md
274 实现DIN的注意力机制,Mask与变长序列处理。 274.md
275 实现负采样,基于流行度的有偏采样与修正。 275.md
276 实现向量检索的LSH,哈希函数族的设计。 276.md
277 实现GBDT的特征重要性,Permutation与Spl… 277.md
278 实现多臂老虎机的UCB,探索参数的自动调整。 278.md
279 实现图神经网络的邻居采样,Inductive的minib… 279.md
280 实现序列模型的Beam Search,长度惩罚与重复抑制… 280.md
281 设计特征存储的数据结构,支持高效CRUD与范围查询。 281.md
282 实现模型服务的负载均衡,一致性哈希与故障转移。 282.md
283 实现实时指标的流式计算,滑动窗口的增量更新。 283.md
284 设计AB测试的分流算法,正交分层与互斥实验。 284.md
285 实现推荐结果的缓存策略,LRU与LFU的混合。 285.md
286 设计日志采集的压缩算法,列式存储与编码优化。 286.md
287 实现Embedding的增量训练,新ID的冷启动初始化。 287.md
288 设计模型压缩的剪枝算法,结构化与非结构化的选择。 288.md
289 实现分布式训练的参数同步,BSP与ASP的收敛性。 289.md
290 设计推荐系统的压测方案,流量模拟与瓶颈定位。 290.md
291 实现一个简化版TensorFlow的自动微分。 291.md
292 实现Transformer的稀疏注意力,Longform… 292.md
293 实现知识图谱的TransE训练,负采样的破坏策略。 293.md
294 实现强化学习的REINFORCE,基线减小的方差降低。 294.md
295 实现因果推断的PSM,倾向得分的逻辑回归估计。 295.md
296 实现图算法的PageRank,分布式幂迭代优化。 296.md
297 实现近似算法的Count-Min Sketch,频率估计… 297.md
298 实现一致性协议Raft,Leader选举与日志复制。 298.md
299 实现数据库的B+树索引,范围查询与并发控制。 299.md
300 实现一个简化版Spark的RDD,懒计算与血缘追踪。 300.md

返回总览