搜广推算法工程师 面试题库大全
1. 基础架构篇:推荐系统的主流架构是什么?召回与排序的区别?¶
问题:请简述推荐系统的经典Pipeline(漏斗型架构),并说明召回层和排序层在目标、算法、特征上的核心区别。
答案要点:
- 架构:经典的三级架构。
- 召回(Candidate Generation):从海量(百万/亿级)物品库中快速筛选出几百个候选集。核心目标是高召回率(Recall)和低延迟。
- 粗排(Pre-ranking)(可选):为了缓解排序压力,使用轻量级模型对召回结果进行初步过滤。
- 精排(Ranking):对候选集进行精准打分。核心目标是高准确率(Precision)和预估精度(AUC)。
-
重排(Re-ranking):考虑多样性、上下文、业务规则(如去重、打散、强插)。
-
区别:
- 目标:召回侧重“广”(别漏掉用户喜欢的),排序侧重“准”(把最喜欢的排最前)。
- 算法:召回常用双塔(DSSM)、向量检索(FAISS)、协同过滤(CF)、Item2vec、图神经网络(GNN)等;排序常用Wide & Deep、DeepFM、MMoE(多门控混合专家模型,用于多目标)、多任务学习等。
- 特征:召回通常只用用户基础画像 + 物品基础画像 + 简单交互特征(轻量级);排序可以使用全量特征(交叉特征、行为序列、上下文特征、统计特征)。
2. 召回篇:如何解决双塔模型(DSSM)在召回中的“字面匹配”局限?¶
问题:双塔模型由于用户塔和物品塔分离,无法进行特征交叉,导致模型对“字面匹配”敏感而语义理解不足。你有什么改进方案?
答案要点:
-
问题本质:双塔模型最后仅通过点积计算相似度,用户侧特征和物品侧特征在最终交互前是相互独立的,丢失了低阶交叉信息(如“男性”与“篮球”的关联)。
-
改进方案:
- 引入交叉层:在双塔顶部增加浅层交叉网络(如FM层、PNN层)进行有限交互,但这会牺牲一部分向量检索的在线速度。
- 模型结构优化:使用多塔或多兴趣提取。例如,MIND(多兴趣网络) 通过胶囊网络(Capsule Network)提取用户多个兴趣向量,一个用户对应多个塔,缓解单一向量表达力不足的问题。
- 特征工程:在用户塔中预置交叉统计特征(如用户对“某品类”的点击率),将交叉信息提前压缩进用户塔。
- 训练方式改进:使用自监督学习(SimCLR风格) 或对比学习增强模型的语义表征能力,让相似的物品在向量空间中更接近,而不依赖字面ID重合。
- 模型融合:召回阶段混合向量召回(双塔)与协同召回(如ItemCF)、倒排索引召回,利用多种方式互补。
3. 排序篇:DeepFM 与 Wide & Deep 的核心区别是什么?为什么要引入FM?¶
问题:请对比 Wide & Deep 和 DeepFM 的结构,说明 DeepFM 的优势在哪?
答案要点:
- 结构回顾:
- Wide & Deep:Wide侧(线性模型)负责记忆(Memorization,处理共现性强的稀疏特征),Deep侧(DNN)负责泛化(Generalization)。但Wide侧仍需人工特征工程(如交叉积变换,即
AND(user_installed_app=QQ, impression_app=WeChat))。 -
DeepFM:用FM(因子分解机)层替代了Wide & Deep中的Wide侧。
-
优势:
- 端到端训练:DeepFM不需要人工构造交叉特征。FM层能自动学习所有特征(包括离散特征)的一阶权重和二阶隐向量交叉。
- 特征交叉更全面:FM能泛化到未出现过的特征组合(因为通过隐向量点积),而Wide & Deep的Wide侧无法泛化到训练样本中未出现的交叉组合。
- 共享Embedding:FM层和Deep层共享相同的Embedding向量,既保留了低阶特征交互,又保留了高阶非线性交互,且避免了特征工程。
4. 多目标篇:如何解决多目标排序中的跷跷板现象?¶
问题:在多目标优化(如点击率CTR、转化率CVR、收藏率、时长)中,常出现一个指标提升、另一个指标下降的“跷跷板”现象。请简述MMoE(多门控混合专家模型)或PLE(渐进式分层提取模型)的原理以及解决方案。
答案要点:
-
现象原因:不同任务之间存在相关性冲突(例如:点击诱导性内容可能提高CTR,但会降低后续的CVR;短视频中点击率与完播率可能负相关)。
-
传统模型局限:Shared-Bottom(硬共享底层参数)在任务差异大时,底层网络难以捕捉到所有任务的有效表征,导致梯度冲突。
-
MMoE原理:
- 底层有多个“专家网络”(Experts)。
- 每个任务有一个独立的“门控网络”(Gate),门控输出权重(Softmax)用于组合多个专家的输出。
-
核心思想:“软共享”,让不同任务学习如何从底层专家中选取对自己有用的特征组合,实现参数的差异化利用。
-
PLE(升级版):
- 针对MMoE中专家被所有任务“共享”可能导致相互干扰的问题,PLE引入了多层级结构,将专家分为“任务共享专家”和“任务独享专家”,通过渐进式分离路由,进一步减少负迁移(Negative Transfer)。
5. 序列建模篇:用户行为序列建模,为什么从 Attention 发展到 Transformer (如BST) 再到 超长序列 (SIM/ETA)?¶
问题:如何利用用户的历史行为序列(如点击序列)来捕捉用户的动态兴趣?如果要处理长达千级别的序列,现有的DIN(深度兴趣网络)或DIEN(深度兴趣进化网络)有什么问题?工业界如何解决百万级别的超长序列?
答案要点:
- 演进路线:
- DIN(深度兴趣网络):引入Attention机制,根据目标物品(Candidate Ad)对用户历史行为中的每个物品计算激活权重(局部激活),解决了用户兴趣多样化的问题。但DIN无法捕捉行为序列中的时序关系(顺序依赖)。
- DIEN(深度兴趣进化网络):引入GRU(门控循环单元) 结合Attention,建模兴趣的演化过程(兴趣从“浏览”到“比较”再到“购买”的进化)。
-
BST(行为序列Transformer):利用Transformer结构,通过Self-Attention捕捉序列中任意两个物品之间的交互关系,并行计算能力强,表达能力优于RNN。
-
超长序列问题:传统Attention(O(n)复杂度)无法处理百万级(用户历史几年)的行为序列,计算资源和延迟都无法接受。
-
工业界方案(SIM/ETA):
- SIM(搜索兴趣模型):分两阶段。GSE(通用搜索单元) 阶段通过“硬搜索”(根据类目或属性哈希)或“软搜索”(向量检索)从海量历史中筛选出Top-K个与当前目标物品最相关的行为;SE(精准搜索单元) 阶段再对筛选出的几百个行为进行精细的Attention建模。
- ETA(端到端的目标注意力):SIM的升级版。利用SimHash(局部敏感哈希) 技术,将行为序列和候选物品映射到汉明空间,通过位运算快速计算相似度,省去了GSE阶段的检索耗时,实现了端到端的超长序列建模。
6. 冷启动篇:新用户或新物品(新品)如何冷启动?¶
问题:当系统没有足够的历史交互数据时(冷启动),如何解决推荐效果差的问题?请给出至少三种不同维度的策略。
答案要点:
-
- 基于内容的方法(Content-based):
- 利用用户注册信息(年龄、性别、职业)或物品的元数据(标题、图片、类目、品牌)。
-
通过预训练模型(如BERT、ResNet)提取内容Embedding。对于新品,即使没有点击,也可以通过内容向量进行“以物推物”或向量召回。
-
- 探索与利用(Exploration & Exploitation, E&E):
-
Bandit算法(如汤普森采样Thompson Sampling, 置信区间上界UCB):给新物品一定的曝光机会(Exploration),根据实时反馈动态调整探索概率。对于新用户,可以设计“热门榜”+“随机探索”的流量分配策略。
-
- 元学习(Meta-learning)/ 少样本学习:
-
训练一个元模型,利用大量老用户的“学习过程”来学习“如何学习”。对于新用户,只需少量交互,模型就能快速拟合其兴趣。
-
- 流量扶持与分发策略:
- 保量策略:新内容上线强制分配固定曝光池(如占整体流量的5%)。
-
热门兜底:新用户初期推荐全局热门或地域热门内容,保证留存率,待数据积累后再切换至个性化模型。
-
- 多模态冷启动:
- 对于电商新品,利用视觉相似度(图片颜色、款式)关联老品。对于新闻,利用标题语义关联热点。
7. 负样本篇:推荐系统中的负样本如何构造?尤其是召回阶段?¶
问题:在训练召回模型(如双塔)时,我们通常只拥有用户点击(正样本)。在千亿级的物品库中,未点击的物品绝大多数是“未曝光”而非“不感兴趣”。如何构造有效的负样本?
答案要点:
-
问题:如果只拿“曝光未点击”作为负样本,会导致 SSB(样本选择偏差),即模型只学会了区分曝光池内的物品,但对从未曝光过的优质物品无法区分。如果随机从全库采样负样本,负样本太“简单”,模型学不到细粒度语义。
-
常见策略:
- 全局随机负采样:从全量物品库中随机采样。通常需要负采样率调整(如每1个正样本配100个随机负样本),并配合 Q值估计(纠偏)(如
logits - log(q))进行校准。 - Batch内负采样:在同一个Batch中,将其他用户的正样本作为当前用户的负样本。优点是计算效率高,负样本数量随Batch Size线性增长。
- Hard Negative Mining(困难负样本挖掘):
- 曝光未点击:最直接的Hard Negative。
- 相似但未交互:通过聚类或向量检索,找到与正样本相似(同品类、同品牌)但用户未点击的物品。
- 模型筛选:用上一版模型预测,选取分数高(说明模型觉得像正样本)但实际未交互的样本作为Hard Negative。
- 混合采样:通常工业界采用 “随机负样本(60%) + 曝光未点击(20%) + 困难负样本(20%)” 的比例混合,以保证模型的辨别能力和泛化能力。
8. 广告篇:在广告竞价系统中,为什么预估 pCTR 还不够?什么是 eCPM?¶
问题:请解释广告系统排序公式 eCPM = bid * pCTR 的含义。在OCPM(目标成本出价)模式下,如何解决出价与预估的平衡?
答案要点:
- eCPM(千次展示期望收入):
- 广告系统排序通常不以CTR(点击率)排序,而是以eCPM(期望千次展示收入) 排序。
- 公式:
eCPM = pCTR (预估点击率) * Bid (广告主出价)。 -
目的:最大化平台收益(GMV),同时兼顾广告主ROI(投资回报率)。高CTR但低出价的广告,可能排在低CTR但高出价的广告后面。
-
OCPM(目标成本出价):
- 广告主表达“我愿意为一次转化付10元”,平台负责在成本波动范围内自动出价。
- 核心公式:
实际排序分 = pCTR * pCVR (预估转化率) * 目标转化出价 (Target CPA)。 - 问题:平台为了花掉预算,可能会高估pCVR;为了控制成本,可能会低估。
- 校准(Calibration):通常需要对
pCTR和pCVR进行校准(Calibration),使预估值的期望等于真实分布的期望(如使用Isotonic Regression(保序回归)或Binning),确保出价工具计算出的成本是准确的。
9. 特征工程篇:如何处理高维稀疏的ID类特征(如用户ID、物品ID)?¶
问题:ID类特征(User ID、Item ID)维度极高(亿级),且遵循长尾分布(Head+Tail)。直接Embedding会导致参数量过大和长尾ID学习不充分。有什么优化策略?
答案要点:
- 问题:
- 参数爆炸:Embedding矩阵占据大量内存(参数量 = 类别数 * Embedding维度)。
-
冷启动/长尾:低频ID样本极少,Embedding向量训练不充分,效果差甚至随机。
-
优化策略:
- Hash Trick(特征哈希):将高维ID映射到固定大小的低维空间(通过哈希函数)。存在哈希冲突风险,但工业界常用。
- 动态Embedding:
- 只在训练过程中出现过的ID才创建Embedding向量。
- 使用 Frequency-based Embedding:对高频ID分配较大维度(如128维),对低频ID分配较小维度(如8维),甚至共享一个“未知”向量。
- 特征降维/筛选:
- 特征选择:过滤掉出现频次低于阈值的ID。
- ID聚合:对于长尾Item,退化成类目ID或品牌ID。
- 知识蒸馏/预训练:
- 用独立的模型(如Item2vec、图神经网络Graph Embedding)预训练出高质量的Item Embedding,作为静态特征输入排序模型,而非作为可训练的随机初始化参数。
问题:离线实验AUC(曲线下面积)提升了0.5个百分点,但上线AB测试后,核心业务指标(如点击率CTR、人均时长)没有显著提升甚至下降。请分析可能的原因。
答案要点:
-
- 离线与在线特征不一致(特征穿越):
-
离线训练时不小心使用了未来信息(例如在预测
t时刻的点击时,使用了t+1时刻的特征)。离线指标虚高,线上无法复现。 -
- 样本选择偏差:
-
离线训练的数据是基于旧策略筛选出来的“曝光”样本(Selection Bias)。新模型上线后,改变了流量分发,面临的数据分布与训练集不一致(Generalization Gap)。
-
- 评估指标与业务指标不对齐:
- AUC衡量的是排序能力(正样本排在负样本前面的概率),不衡量预估值的准确性(Calibration)。
-
情况:新模型AUC涨了,但pCTR普遍偏高(Over-estimate)。在广告系统(OCPM)中,pCTR偏高会导致出价变高,获取到更多低质流量,最终导致真实CTR反而下降。
-
- 系统延迟与工程实现差异:
- 离线训练可以使用全部特征(如长达30天的统计特征)。
-
线上推理有延迟限制(通常<30ms),可能被迫丢弃了部分复杂特征(如长序列特征、图特征),导致模型精度下降(特征穿越/缺失)。
-
- 探索-利用困境:
- 新模型倾向于推荐模型“确信”用户喜欢的物品(利用),减少了探索。
-
短期内CTR可能微涨,但长期来看用户信息茧房加重,或者新品成长受阻,导致人均时长等深层指标下降。
-
- 全局影响与链路联动:
-
排序模型改变后,召回层的候选集分布发生变化。如果新模型偏好某类内容,导致召回头部流量过于集中,多样性下降,整体指标可能下跌。
-
除了双塔,还有哪些常用的召回方案?请简述其优缺点。
答案要点:
-
协同过滤(ItemCF/UserCF):原理简单,可解释性强;但泛化能力弱,无法处理冷启动。
-
图召回(GNN,如PinSage):利用高阶邻居信息,表达能力强;但训练复杂,在线服务延迟高。
-
序列召回(如SR-GNN,SASRec):基于用户行为序列生成下一物品,适合兴趣演化场景;对长序列计算开销大。
-
多通道召回:结合多种策略(热门、兴趣标签、地域等),取并集,保证召回多样性和覆盖率。
-
如何评估召回模型的好坏?除了离线Hit Rate、Recall,还有哪些指标?
答案要点:
-
离线指标:Recall@K、Precision@K、Hit Rate、MRR(平均倒数排名)、NDCG(归一化折损累计增益)。
-
在线指标:召回贡献占比(各通道最终进入精排的比例)、最终业务指标(CTR、时长)、召回的多样性(类目覆盖度)。
-
效率指标:召回延迟、QPS(每秒查询率)、索引构建耗时。
-
向量召回中的“近似最近邻检索”(ANN)常用哪些算法?工业界如何选型?
答案要点:
- 常用算法:
- HNSW(分层可导航小世界图):召回率高,查询快,但内存占用大。
- IVF(倒排索引):内存可控,支持分布式,适合超大规模。
-
PQ(乘积量化):压缩向量,大幅降低内存。
-
选型考量:数据量级、内存限制、召回率要求、QPS、是否支持实时更新。
-
工业界组合:多采用 IVF+PQ 或 HNSW,部分自研(如淘宝的TDM、亚马逊的ANN服务)。
-
如何实现“多兴趣召回”?简述MIND(多兴趣网络)的核心思想。
答案要点:
-
问题:单一用户向量难以表征用户多种兴趣(如一位用户同时喜欢游戏和美妆)。
-
MIND方案:
- 利用胶囊网络(Capsule Network) 将用户历史行为动态路由到多个兴趣胶囊,每个胶囊代表一个兴趣向量。
-
在召回时,每个用户拥有多个向量,分别检索出与每个兴趣最相似的物品,合并后去重。
-
训练:使用标签平滑的负采样,保证多兴趣向量的区分度。
-
召回阶段如何做在线实时更新?用户行为实时变化,索引如何动态生效?
答案要点:
-
双缓冲机制:构建两份索引,一份在线服务,一份离线/近线构建;构建完成后切换。
-
实时流更新:对于高活用户,使用实时向量更新(如将最近N次点击的Embedding聚合后实时更新用户向量)。
-
物品侧:新物品通过内容向量即时注入索引;对于已存在的物品,Embedding更新周期通常为小时级或天级。
- DeepFM 的 FM 部分与单独训练一个 FM 模型有什么区别?
答案要点:
-
DeepFM中FM与Deep共享Embedding,联合训练,使得Embedding既学习低阶交互又学习高阶非线性,避免了分别训练导致的特征表征不一致。
-
单独FM只能学习二阶交叉,而DeepFM可以同时学习高阶交叉,且无需人工特征工程。
-
xDeepFM(极深因子分解机)相比DeepFM有什么改进?
答案要点:
-
CIN(压缩交互网络):显式地学习向量级的高阶特征交互(按元素级乘积),而非像DeepFM的隐式高阶交互。
-
能够以显式、可控的方式生成高阶交叉特征,且每一层的交互结果可解释性更强。
-
解决了DeepFM中DNN部分虽然能捕捉高阶交互但无法显式指定交叉阶数的问题。
-
在排序模型中,如何建模用户行为序列中的“时序”与“位置”信息?
答案要点:
-
时序信息:在输入中加入时间间隔特征(如距离当前时刻的秒数),或使用GRU/LSTM/Transformer 中的位置编码。
-
位置信息:
- 显式位置特征:将点击时的展示位置作为特征输入。
-
位置偏置校正:在训练时使用位置作为辅助特征,预测时置为统一值(如0)或使用Shuffle方法去除位置偏置。
-
什么是“用户长短期兴趣分离”?如何实现?
答案要点:
-
目的:用户兴趣既有长期稳定偏好(如品牌忠诚度),也有短期动态兴趣(如最近浏览)。
-
实现方式:
- 使用两个独立的编码器:长期兴趣通过用户画像、长期行为统计(如过去30天)得到;短期兴趣通过最近N次点击序列建模(如Transformer)。
-
最终拼接或门控融合。
-
代表模型:DIN + DIEN 中其实隐含了短期兴趣的进化,SIM(搜索兴趣模型)中的超长序列代表长期兴趣,短序列代表短期兴趣。
-
特征交叉中的“FM”与“PNN”有什么区别?
答案要点:
-
FM:二阶隐向量点积(内积),计算复杂度O(kn),适合稀疏特征,表达所有二阶组合。
-
PNN(基于乘积的神经网络):引入内积层或外积层,将特征Embedding两两交互后送入DNN。外积计算量大,通常用内积。PNN能捕捉更高阶(通过DNN)的交互,但参数更多。
-
工业界更常用FM或其变体,因其计算效率高且效果好。
-
多目标排序中,如何解决目标之间的“任务冲突”?除了MMoE,还有哪些方法?
答案要点:
-
PLE(渐进式分层提取模型):分离共享专家与独享专家,减少负迁移。
-
CGC(自定义门控控制):PLE的前身,提出任务独享专家+共享专家结构。
-
MTL(多任务学习)中的梯度操纵:
- PCGrad(投影冲突梯度):当一个任务的梯度与另一任务梯度方向冲突时,将其投影到另一梯度的法平面。
-
GradNorm:动态调整各任务的梯度尺度,使训练速度均衡。
-
不确定性加权(Uncertainty Weighting):根据各任务噪声方差自动调节损失权重。
- 在oCPM(目标成本出价)中,如何校准pCVR(预估转化率)?
答案要点:
-
校准必要性:pCVR通常存在整体高估或低估,导致广告主成本波动。
-
常用方法:
- 保序回归(Isotonic Regression):在验证集上,将预测分数分桶,计算桶内真实CVR,拟合单调函数进行映射。
- Binning + 平滑:将预测值分桶,对桶内真实CVR与预测CVR进行线性缩放。
-
贝叶斯校准:结合先验分布进行调整。
-
什么是“频控”(Frequency Capping)?在广告系统中如何实现?
答案要点:
-
定义:限制单个用户在一定时间内看到同一广告的次数,以避免过度曝光和用户厌烦。
-
实现:
- 在召回/排序阶段,对用户已曝光过N次的广告进行降权或过滤。
- 使用Redis等缓存记录用户-广告的曝光次数,支持实时读写。
-
结合分时段频控(如一天3次,一周5次)。
-
广告系统中,“冷启动”广告如何获取流量?
答案要点:
-
流量探索:将新广告以一定比例(如5%)随机插入到符合条件的流量中。
-
基于内容的冷启动:利用广告的素材、文案、类目等信息,通过内容相似度匹配历史相似广告的投放人群。
-
多臂老虎机(MAB):对新广告设置更高的探索系数,快速学习其转化能力。
-
预算优先:新广告主可能给予少量预算扶持,系统为其探索优质流量。
-
如何防止广告系统中的“点击欺诈”(Click Fraud)?
答案要点:
- 规则策略:
- 同一IP/设备短时间内大量点击同一广告 -> 风控拦截。
-
点击率(CTR)异常高(如超过阈值)的流量来源进行屏蔽。
-
模型识别:
- 训练反欺诈模型,特征包括用户历史行为、设备指纹、点击模式(如点击时间间隔、鼠标轨迹等)。
-
使用图神经网络识别异常聚集的团伙欺诈。
-
业务层:不计费或按转化结算,对可疑流量进行扣量或赔付。
-
在广告排序中,如何平衡“用户体验”与“商业收入”?
答案要点:
-
多目标优化:在排序分中加入用户体验指标(如负反馈率、停留时长)作为惩罚项。
-
联合优化:
- 公式
score = λ * eCPM + (1-λ) * 用户体验分,λ可动态调整(如用户敏感度分层)。 -
使用强化学习在长期收益与短期广告收入之间进行权衡。
-
广告位/样式优化:减少干扰性广告,增加原生广告,允许用户跳过。
- 如何处理连续特征(如年龄、点击率)?有哪些常用的归一化方法?
答案要点:
-
分桶离散化:等频分桶、等距分桶,将连续值转为ID,再Embedding,适合非线性关系。
-
归一化:
- Z-score:适用于正态分布特征。
- Min-Max:缩放到[0,1]。
-
Power变换(Box-Cox):改善偏态分布。
-
模型自适应:如GBDT(梯度提升决策树)可以直接处理连续值,或使用神经网络中可学习的
特征缩放参数。 -
统计特征(如过去7天点击率)在离线训练与在线推理时可能面临什么问题?如何解决?
答案要点:
-
特征穿越:离线训练时,如果用全量数据计算统计特征(包含未来信息),会导致过拟合,线上效果差。
-
解决方案:
- 离线特征计算时严格按时间切分,只使用历史数据(如
t时刻的特征只用<t的数据)。 - 在线采用实时流计算,更新统计值(如Flink维护滑动窗口)。
-
对于长周期统计,采用增量更新,每天离线重刷,避免全量重跑。
-
在深度学习模型中,如何处理高基数的类别特征(如Item ID)?
答案要点:
-
哈希分桶:将ID哈希到固定大小的Embedding表,允许冲突。
-
动态Embedding:仅对出现次数超过阈值的ID分配Embedding,低频ID共享一个“
”向量。 -
分层Embedding:先对ID进行聚类(如基于品牌、类目),聚类向量+残差向量表示。
-
使用预训练Embedding:如通过图神经网络(GNN)预训练物品向量,作为静态特征输入。
-
如何构造“交叉特征”?有哪些自动化方法?
答案要点:
-
手工交叉:基于业务理解,如“性别 & 类目”、“年龄 & 价格区间”。
-
FM/DCN(深度交叉网络)等自动交叉:
- DCN(深度交叉网络):显式学习特征交叉,每一层交叉结果为
x_{l+1} = x_0 * (W_l * x_l) + x_l + b_l。 -
AutoInt:使用多头自注意力自动学习特征交互。
-
GBDT+LR:利用GBDT生成特征组合,作为LR的输入,实现自动交叉。
-
样本选择偏差(SSB)在排序模型中如何缓解?
答案要点:
-
IPS(逆倾向分数):对每个曝光样本根据其被选中的倾向性加权,使训练集分布更接近全量分布。
-
数据增强:加入随机负采样样本,模拟未曝光分布。
-
Two-stage模型:先用模型预测曝光概率,再在排序模型中引入曝光倾向特征。
-
Domain Adaptation:将曝光样本视为source domain,全量样本视为target domain,采用对抗学习对齐分布。
- 推荐系统在线推理的延迟通常要求多少?如何优化?
答案要点:
-
延迟要求:通常排序层<50ms,召回层<30ms,整体<100ms。
-
优化手段:
- 模型量化:FP16/INT8量化,减少计算量。
- 算子融合:将LayerNorm、ReLU等与矩阵运算融合。
- 特征并行:将特征分为多个分组,并行计算Embedding lookup。
- 使用轻量模型:召回使用双塔,排序使用剪枝后的模型。
-
缓存:热点用户/物品的Embedding或排序分数预计算。
-
什么是“特征快照”?离线训练和在线推理如何保证特征一致性?
答案要点:
-
特征快照:在离线训练时,将每个样本对应的所有特征(包括实时特征)按照特定时间点保存下来,避免在线特征随时间变化导致的偏差。
-
一致性措施:
- 离线使用相同的特征计算逻辑(如SQL/UDF),与在线特征生产代码保持一致。
- 使用特征仓库(Feature Store)统一管理和版本化特征。
-
在线推理时,特征生成逻辑必须与离线特征逻辑完全一致(包括窗口定义、缺失值处理等)。
-
推荐系统中,如何实现“实时训练”(Online Learning)?
答案要点:
-
实时流处理:通过Kafka收集实时曝光、点击、转化日志,使用Flink/Spark Streaming进行特征工程。
-
模型更新:
- 全量更新:每隔几小时用最新数据重训模型。
- 增量更新:使用SGD(随机梯度下降)对模型参数进行小批量在线更新,适合LR/FM等模型。
-
embedding热更新:用户/物品的Embedding通过实时流更新,模型网络参数离线更新。
-
挑战:特征一致性、样本延迟、版本控制。
-
大规模Embedding如何存储和部署?
答案要点:
- 存储:
- PS(参数服务器)架构:将Embedding参数分布在多台机器上,支持超大规模。
-
KV存储:如Redis、RocksDB,支持高并发读取。
-
部署:
- TensorFlow Serving + TFRA(推荐库) 支持动态Embedding。
- 自研C++推理引擎,使用内存映射(mmap)加载Embedding表,避免内存爆炸。
-
混合存储:高频Embedding放入内存,低频放入SSD。
-
AB测试中,如何保证流量切分的正交性与均匀性?
答案要点:
-
正交性:使用Hash分层(如根据用户ID hash),不同实验层使用不同hash种子,保证各实验独立。
-
均匀性:确保每个实验组的用户数量、流量分布(如活跃度)基本一致。
-
互斥实验:对于互斥的实验(如两个排序模型同时测试),使用流量域划分,避免相互干扰。
-
分层+域:Google的Overlap架构,通过多层正交和互斥域实现灵活实验。
- 图神经网络(GNN)在推荐系统中有什么应用?
答案要点:
-
召回:通过GNN学习用户-物品二部图上的节点Embedding,利用高阶邻居信息增强表征(如PinSage)。
-
排序:将用户-物品交互图作为输入,利用GNN提取结构化特征。
-
社交推荐:利用用户社交关系图进行传播。
-
场景:视频推荐、电商好友推荐、内容关联推荐。
-
请简述PinSage的工作原理及其工业落地中的优化。
答案要点:
- 原理:
- 基于GraphSAGE,使用随机游走采样邻居,通过聚合函数(如mean、max pooling)更新节点Embedding。
-
利用负采样训练,最大化相似节点(共现)的余弦相似度。
-
工业优化:
- MapReduce式分布式训练:支持十亿节点。
- 硬负样本挖掘:在随机游走中采样与正样本相似但未交互的物品。
-
在线推理:预计算节点Embedding,通过向量检索进行召回。
-
如何将知识图谱(KG)引入推荐系统?
答案要点:
-
辅助信息:将KG中的实体(如电影的类型、导演、演员)作为物品的侧信息,丰富物品表征。
-
路径表示:利用用户-物品-实体之间的连接路径,计算路径相似度(如KGCN(知识图谱卷积网络)、RippleNet)。
-
联合学习:同时训练推荐模型和KG嵌入,如KTUP(知识图谱与用户偏好联合学习)。
-
可解释性:通过KG中的路径为用户提供推荐理由(例如“因为你喜欢《盗梦空间》,而诺兰也是《星际穿越》的导演”)。
-
图神经网络在推荐系统中的主要挑战是什么?
答案要点:
-
可扩展性:十亿级节点、百亿级边的图难以在单机训练,需要分布式图存储和采样。
-
动态性:图结构实时变化(新用户、新交互),需要增量学习。
-
过平滑:多层GNN导致节点表示趋于一致,需控制层数或使用残差连接。
-
噪声:图中存在大量弱相关边,需设计合理的邻居采样策略。
- 强化学习在推荐系统中一般用于什么场景?
答案要点:
-
长期收益优化:不只是单次点击,而是最大化用户生命周期价值(LTV)。
-
探索与利用(E&E):动态决定探索新内容的流量比例。
-
交互式推荐:与用户多轮对话,实时调整推荐策略。
-
广告出价:动态调整出价策略以控制成本。
-
请简述DQN(深度Q网络)在推荐中的应用。
答案要点:
-
状态:用户历史行为、当前会话上下文。
-
动作:推荐给用户的物品(或物品列表)。
-
奖励:点击、转化、停留时长等。
-
挑战:动作空间巨大(百万级物品),通常采用动作嵌入或线性分解来近似Q值。
-
什么是“上下文赌博机”(Contextual Bandit)?与强化学习的区别?
答案要点:
-
Contextual Bandit:每个时间步,根据上下文(用户特征)选择动作(物品),获得即时奖励,目标是最小化累积遗憾(Regret)。不考虑长期影响,无状态转移。
-
与RL区别:
- RL考虑状态转移和未来奖励(MDP)。
-
Bandit假设动作不影响后续状态,适合推荐中的短期优化(如冷启动、探索)。
-
典型算法:LinUCB、Thompson Sampling。
-
在推荐系统中,如何将强化学习的“在线探索”与现有监督学习模型结合?
答案要点:
- 分层架构:
- 底层:监督学习模型(如CTR预估)提供精准打分。
-
上层:强化学习Agent根据业务目标(如长期留存)调整最终排序权重或选择探索物品。
-
E&E 策略:在排序阶段,将探索物品(新内容、低曝光内容)随机插入Top-K,并根据实时反馈更新探索策略。
-
价值网络:学习一个价值函数,评估推荐策略对长期指标的影响,作为监督模型输出的调整项。
- 大语言模型(LLM)在推荐系统中目前有哪些应用方向?
答案要点:
-
特征工程:利用LLM生成用户画像、物品标签、语义特征,提升冷启动效果。
-
交互式推荐:通过对话理解用户当前意图,生成个性化推荐。
-
排序模型增强:将LLM作为特征编码器,或利用其强大的语义理解能力进行多模态融合。
-
解释性:生成自然语言推荐理由,提高用户信任。
-
检索增强:用LLM做Query改写、语义召回。
-
如何将LLM应用到召回阶段?
答案要点:
-
语义召回:利用LLM将用户历史行为序列或查询映射为语义向量,与物品的语义向量进行相似度检索。
-
生成式召回:将推荐视为生成任务,LLM直接生成下一个可能感兴趣的物品ID或标题。
-
多模态召回:结合物品的图像、文本描述,通过多模态LLM统一表示。
-
挑战:LLM推理延迟高,通常用于离线生成向量或候选集。
-
在精排阶段,如何利用LLM提升CTR预估?
答案要点:
-
特征编码器:使用预训练LLM(如BERT)对物品标题、用户评论等文本进行编码,输出Embedding作为排序模型的输入。
-
交叉增强:将用户行为序列文本化,输入LLM进行语义理解,捕捉深层次意图。
-
多模态融合:LLM与ID特征、统计特征共同训练(如P5模型)。
-
注意:LLM参数量巨大,一般通过蒸馏或冻结大部分层来适配排序任务。
-
大模型推荐系统面临的主要工程挑战是什么?
答案要点:
-
推理延迟:LLM在线推理耗时通常在秒级,无法直接用于推荐主链路。解决方案:离线预计算、蒸馏为小模型、使用高效推理框架(如vLLM)。
-
成本:训练和部署成本高,需权衡收益。
-
数据隐私:用户行为序列用于LLM可能涉及敏感信息,需脱敏。
-
可解释性:LLM的黑盒特性可能增加调试难度。
-
什么是“推荐系统的大模型微调”?如何设计微调任务?
答案要点:
- 任务设计:
- 序列预测:将用户历史交互序列作为输入,预测下一个物品ID(作为文本生成)。
-
排序:输入用户和候选物品对,输出“点击/不点击”标签(分类)。
-
数据构造:将用户行为、物品属性格式化为自然语言模板(如“用户观看过A、B、C,请推荐下一个”)。
-
微调方式:
- 全参数微调:效果最好但资源要求高。
-
LoRA(低秩适应):高效微调,适合工业部署。
-
评估:离线指标(Hit Rate、NDCG)与在线AB测试。
-
LLM推荐的“可解释性”如何实现?
答案要点:
-
生成式解释:微调LLM,使其在推荐物品的同时生成一句自然语言解释(例如“因为你最近频繁搜索手机,推荐这款新上市的手机”)。
-
特征归因:利用LLM的注意力机制,提取对推荐决策影响最大的输入词(如用户行为中的关键物品)。
-
知识增强:结合知识图谱,LLM生成的解释可以引用实体关系,增强可信度。
- 新用户只有极少行为,如何快速建立兴趣画像?
答案要点:
-
跨域迁移:利用用户在其它产品(如视频、新闻)的行为迁移到当前产品。
-
人口属性+场景:基于年龄、地域、设备型号等基础特征,匹配相似人群的兴趣分布。
-
主动探索:推送热门内容或多样性内容,通过实时反馈快速建模。
-
即时会话特征:捕捉当前会话内的点击序列,生成短期兴趣向量。
-
对于长尾物品(低频交互),如何提升其曝光?
答案要点:
-
召回侧:增加基于内容(语义/图像)的召回通道,不依赖交互频次。
-
排序侧:对长尾物品的预估分数进行探索性加成(如+ε),或使用Bandit策略提高其被选中的概率。
-
流量调控:设定长尾物品的曝光配额,强制保证一定比例。
-
建模时:将长尾物品的Embedding向相似头部物品靠拢(利用“邻居”信息)。
-
什么是“元学习”(Meta-Learning)在冷启动中的应用?
答案要点:
-
核心思想:学习一个初始化参数,使模型能在少量新用户样本上快速适应(即“学会如何学习”)。
-
具体方法:
- MAML(模型无关元学习):在大量用户的任务上训练,找到对任务变化敏感的初始化参数,新用户只需几步梯度更新即可获得良好效果。
- 特征生成器:利用元学习为冷启动用户生成伪Embedding,结合少量交互快速调整。
- 除了AUC,排序模型还有哪些离线评估指标?各有什么侧重?
答案要点:
-
LogLoss(交叉熵损失):衡量预估概率的准确性(Calibration)。
-
GAUC(分组AUC):按用户分组计算AUC再平均,消除用户间差异,更能反映排序效果。
-
NDCG(归一化折损累计增益):考虑位置权重,适合多级相关度(如点击、收藏、购买)。
-
MRR(平均倒数排名):关注第一个正样本的位置,适合搜索场景。
-
Recall@K / Precision@K:衡量Top-K命中率。
-
在线AB实验中,如何确定实验的显著性?样本量需要多大?
答案要点:
-
显著性检验:通常使用t检验或卡方检验,P值<0.05认为显著。
-
样本量估算:取决于预期提升幅度(MDE)、基准指标方差和统计功效(通常80%)。
-
最小样本量公式:
n ≈ 16 * σ² / δ²,σ为指标标准差,δ为期望提升。 -
实时监控:使用序贯检验(如Sequential Probability Ratio Test)提前结束无效实验。
-
如何评估推荐系统的“多样性”和“新颖性”?
答案要点:
- 多样性:
- 类目覆盖度:推荐列表中不同类目的比例。
-
列表内平均相似度:计算列表中物品两两相似度,越低越多样。
-
新颖性:
- 物品的平均热度倒数:推荐列表中物品的流行度倒数均值,越高表示推荐越新颖。
-
用户未交互物品的比例。
-
在线指标:可以通过用户负反馈(如“不感兴趣”)、长尾物品曝光占比来衡量。
-
为什么有时候离线指标提升但线上指标下降?除了之前提到的原因,还有哪些?
答案要点:
-
新颖性/多样性受损:新模型可能更倾向于推荐热门物品,导致短期指标涨,但长期用户疲劳。
-
目标偏差:离线指标优化的是点击,而线上核心指标可能是时长或留存,二者不一致。
-
流量分布变化:新模型改变了用户对内容的感知,导致后续行为(如分享、评论)变化,离线无法体现。
-
冷启动恶化:新模型过度依赖ID特征,导致新物品更难获得曝光,影响生态健康。
- 设计一个短视频推荐系统,从数据、召回、排序、重排到评估,简要说明技术选型。
答案要点:
-
数据:用户行为(点赞、评论、完播、跳过)、内容特征(视频标签、作者、音频、视觉特征)。
-
召回:
-
向量召回(双塔,用完播率作为正样本)、热门召回、作者召回、多兴趣召回(MIND)。
-
排序:
- 多目标模型(MMoE/PLE)预测完播率、点赞率、关注率、负反馈率。
-
特征:用户序列(Transformer)、统计特征、实时上下文特征。
-
重排:
- 多样性打散(同一作者、同一类目不超过2个)、MMR(最大边际相关性)优化。
-
业务规则(如去重、广告插入)。
-
评估:离线GAUC、NDCG;在线AB测试关注人均时长、日活、留存。
-
你在做特征工程时,遇到过哪些坑?如何解决?
答案要点:
-
特征穿越:时间切分不严谨。解决:严格按时间划分数据集,特征计算使用滞后窗口。
-
线上特征缺失:离线使用实时特征,线上因延迟导致缺失。解决:特征平台统一管理,设置默认值,确保线上与离线逻辑一致。
-
高维稀疏导致过拟合:对低频特征进行截断或Embedding降维。
-
统计特征噪声:当样本量小时,统计值波动大。解决:使用贝叶斯平滑(如点击率平滑)。
-
如果现在有一个全新的推荐场景(如智能座舱车载推荐),没有历史数据,你如何从0到1搭建推荐系统?
答案要点:
- 冷启动阶段:
- 基于内容的推荐:利用车载场景的特点(如导航目的地、时间、天气)与内容标签匹配。
-
专家规则:预设热门内容、分类榜单。
-
快速收集数据:通过UI设计鼓励用户反馈(如“喜欢/不喜欢”),记录所有曝光和交互。
-
模型迭代:
- 先上线简单的协同过滤或LR,快速迭代。
-
积累足够数据后引入双塔召回、深度学习排序。
-
多模态利用:语音交互可作为特征,利用语音语义理解用户意图。
-
隐私与安全:车载场景对隐私要求高,需确保数据处理合规。
-
模型量化(Quantization)在推荐系统推理中如何应用?INT8量化对精度影响大吗?
答案要点:
-
应用:将模型权重和激活从FP32/FP16映射到INT8,减少显存占用和计算延迟。
-
方法:
- 训练后量化:使用校准集统计激活值范围,直接量化;可能精度下降1%~2%。
-
量化感知训练:在训练中模拟量化误差,微调恢复精度,通常损失很小(<0.5%)。
-
影响:对排序模型(如DeepFM)量化后,AUC下降通常可控;但对Embedding表量化需谨慎,稀疏特征敏感。
-
知识蒸馏(Knowledge Distillation)在推荐系统中如何用于模型压缩?
答案要点:
-
原理:用复杂的教师模型(如ensemble、大模型)指导学生模型(轻量级)学习软标签。
-
推荐场景:
- 排序蒸馏:教师模型输出logits作为软目标,学生模型学习排序分布。
-
召回蒸馏:用双塔教师指导学生塔,或蒸馏多兴趣向量。
-
优势:学生模型可大幅压缩(参数量减少10倍以上),且离线指标接近教师模型。
-
变体:互学习(两个学生互相学习)、自蒸馏(早期模型指导后期)。
-
什么是“模型剪枝”(Pruning)?在推荐系统中如何有效剪枝?
答案要点:
- 类型:
- 权重剪枝:移除绝对值小的权重,生成稀疏矩阵,需硬件支持(如GPU稀疏计算)。
- 神经元剪枝:删除对整个网络贡献小的神经元或通道。
-
Embedding剪枝:对低频ID的Embedding维度降维或完全移除。
-
推荐系统实践:
- 结构化剪枝:对DeepFM中的DNN层进行通道剪枝,保持网络结构规则。
-
Hash Embedding:将大Embedding表压缩为固定大小,自然实现剪枝效果。
-
迭代:通常采用“训练-剪枝-微调”循环。
-
在资源受限的端侧推荐(如手机、IoT设备)中,有哪些模型部署方案?
答案要点:
-
模型小型化:使用FM、LR等简单模型,或轻量级网络(如MobileNet风格)。
-
特征简化:只使用轻量特征(如ID类特征),去除复杂序列建模。
-
离线预计算:热门物品的Embedding和排序分数预先计算好,端侧只做查表。
-
端云协同:云端训练大模型,端侧运行轻量模型,云端定期更新端侧模型参数。
-
框架支持:TensorFlow Lite、Core ML、MNN等。
- 推荐系统中为什么需要因果推断?举例说明
答案要点:
-
相关性≠因果性:用户点击某物品可能因为曝光位置好(位置偏置),而非真正喜欢。
-
场景:
- 消除偏置:如位置偏置、选择偏置。
- 反事实推理:如果用户没看到该物品,会不会点击?
-
** uplift建模**:衡量推荐干预(如推送)带来的增量效果,而非自然点击。
-
什么是“倾向性得分”(Propensity Score)?如何用于去偏?
答案要点:
-
定义:给定用户和上下文,物品被曝光的概率。
-
应用:
- IPS(逆倾向得分加权):每个样本的损失按
1/p加权,使训练集分布近似于无偏分布。 -
双重稳健估计:结合倾向得分和结果模型,只要其一正确,估计就是无偏的。
-
挑战:倾向得分本身需要估计(可用另一模型预测曝光概率),估计误差会影响去偏效果。
-
如何消除推荐系统中的“位置偏置”(Position Bias)?
答案要点:
-
Shuffle方法:在AB测试中随机打乱列表位置,收集无偏数据,但会影响用户体验。
-
位置特征法:在排序模型中加入位置特征(如位置ID),训练时使用,预测时固定为统一位置(如1)。
-
IPS方法:估计每个位置的倾向得分,训练时按逆倾向加权。
-
PAL(位置感知学习):联合学习点击模型和位置偏置模型。
-
什么是“uplift建模”?在营销和推荐中有什么作用?
答案要点:
-
定义:预测某个干预(如发放优惠券、推荐某商品)带来的增量效果,即
uplift = P(转化|干预) - P(转化|未干预)。 -
方法:
- 双模型:分别建模干预组和对照组,差值即为uplift。
- 元学习器:如S-Learner、T-Learner、X-Learner。
-
直接uplift模型:如Uplift Tree、Causal Forest。
-
应用:精准营销(只对真正受干预影响的用户投放广告)、个性化推荐(判断推荐某物品是否真正提升用户满意度)。
- 在用户行为序列建模中,如何处理“多类型行为”(如点击、收藏、购买、分享)?
答案要点:
-
多通道融合:将不同类型的行为序列分别编码,再通过注意力或门控融合。
-
行为类型Embedding:每个行为除了物品ID,还加入行为类型ID Embedding,拼接或相加后输入序列模型。
-
层次化建模:先对同类型行为建模,再跨类型交互。
-
考虑行为权重:不同行为赋予不同权重(如购买权重高)。
-
Transformer在序列推荐中的局限性是什么?如何改进?
答案要点:
- 局限性:
- 复杂度:自注意力复杂度O(L²),L为序列长度,长序列无法处理。
- 位置编码:绝对位置编码可能不适用于变长序列。
-
缺乏时间间隔建模:忽略了行为间的时间间隔信息。
-
改进:
- 稀疏注意力(如Longformer、Reformer)降低复杂度。
- 相对位置编码(如Transformer-XL)捕捉相对顺序。
-
时间间隔嵌入:在输入中加入时间差Embedding。
-
如何将“时间间隔”信息融入序列模型?请列举两种方法
答案要点:
-
时间间隔特征作为输入:将相邻行为的时间差(如秒数)离散化或连续化,与物品Embedding拼接后输入序列模型。
-
注意力机制中的时间衰减:计算注意力权重时,乘以时间衰减因子(如
exp(-Δt/τ)),使近期行为权重更大。 -
时间感知位置编码:在位置编码中加入时间戳信息。
-
序列推荐中如何解决“噪声行为”问题(如误点击)?
答案要点:
-
行为过滤:剔除短时长、快速跳出的点击。
-
注意力权重剪裁:学习到的注意力权重低于阈值的行为被忽略。
-
行为纠偏:通过对比学习区分正常点击和误点(如CL4SRec)。
-
多任务学习:同时预测点击和后续转化,利用转化信号反推点击的质量。
- 自动特征工程(AutoFE)在推荐系统中如何实现?
答案要点:
-
搜索方法:基于强化学习或进化算法,搜索特征交叉组合。
-
生成式方法:利用预训练模型(如LLM)自动生成候选特征。
-
常用工具:
- FeatureTools(表格数据)
-
AutoCross(阿里,基于beam search)
-
工业实践:通常先由专家筛选一批基础特征,再用AutoFE做扩展,通过AUC增益筛选有效特征。
-
什么是“神经网络架构搜索”(NAS)?在推荐系统中有应用吗?
答案要点:
-
NAS:自动搜索最优网络结构(层数、连接方式、激活函数等)。
-
推荐应用:
- 搜索适合CTR预估的模型结构,如AutoGroup、AutoInt的自动结构学习。
-
针对不同场景(如小样本、实时性要求)自动适配结构。
-
挑战:搜索空间大,计算成本高;通常采用可微分NAS(如DARTS)或基于采样的方法。
-
超参数调优在推荐系统中常用哪些方法?
答案要点:
-
网格搜索/随机搜索:基础方法,但效率低。
-
贝叶斯优化:基于高斯过程,用较少的迭代找到较优参数。
-
多保真度优化(如Hyperband):早期淘汰表现差的配置,节省资源。
-
自动化平台:如Ray Tune、Optuna、Kubeflow。
- 在多模态推荐(如图文视频)中,如何融合不同模态的信息?
答案要点:
-
早期融合:将各模态特征拼接后输入模型。
-
晚期融合:各模态独立学习Embedding,最后加权融合。
-
交互式融合:使用注意力机制(如跨模态注意力)让各模态特征相互增强。
-
预训练模型:使用多模态预训练模型(如CLIP、VideoCLIP)提取统一表征。
-
如何利用图像特征提升电商推荐效果?
答案要点:
-
视觉相似度召回:利用图像Embedding进行向量召回,补充ID召回的不足。
-
多模态排序:将CNN提取的图像特征作为物品侧特征,与文本、ID特征融合。
-
视觉注意力:用户点击历史中的图片特征可用来预测对视觉风格的偏好。
-
冷启动:新商品只有图像时,可基于视觉相似推荐。
-
跨模态检索(如“用图搜商品”)在推荐系统中如何实现?
答案要点:
-
双塔模型:图像塔和物品塔共享嵌入空间,通过对比学习训练,使相关图文对距离近。
-
在线服务:用户上传图片,提取图像Embedding,在向量库中检索相似物品。
-
难点:模态差异大,需要精心设计的损失函数(如InfoNCE)和多模态训练数据。
-
视频推荐中,如何利用音频、视觉、文本多模态信息?
答案要点:
- 特征提取:
- 视觉:抽取关键帧,用CNN或ViT提取特征。
- 音频:提取MFCC或使用音频预训练模型。
-
文本:标题、字幕用BERT编码。
-
融合:多模态特征拼接后,通过Transformer进行交互,或使用跨模态注意力融合。
-
应用:提升推荐准确率,尤其在冷启动、长尾视频中效果明显。
- 什么是“近线”(Nearline)学习?与在线学习的区别?
答案要点:
-
近线学习:以分钟级或秒级频率更新模型,介于离线(小时/天)和在线(实时)之间。
-
实现:通过流式计算(Flink)收集最近几分钟的数据,触发模型增量训练。
-
区别:
- 在线学习:每条样本到达后立即更新模型(如在线SGD),对系统要求极高,易受噪声影响。
-
近线学习:微批更新,兼顾实时性和稳定性。
-
如何实现“增量学习”(Incremental Learning)而不遗忘旧知识?
答案要点:
-
弹性权重巩固(EWC):在损失函数中加入正则项,保护重要参数不被新数据大幅改变。
-
重放机制:保存部分旧样本,与新样本混合训练。
-
动态架构:为新任务增加新的神经元,保留旧网络(如Progressive Net)。
-
推荐场景:用户兴趣漂移时,需要增量学习,避免灾难性遗忘。
-
推荐系统如何处理“概念漂移”(Concept Drift)?
答案要点:
-
监测:监控模型预测分布与真实分布差异(如PSI),若漂移显著则触发重新训练。
-
应对:
- 定期全量重训(如每天)。
- 增量学习快速适应新分布。
-
在线学习连续更新。
-
场景:新闻推荐中热点事件变化快,需快速捕捉新兴趣。
- 请简要介绍“SENet”在推荐系统中的应用(如SENet双塔)
答案要点:
-
SENet:Squeeze-and-Excitation Network,原用于视觉,通过显式建模通道间依赖来重标定特征。
-
推荐应用:
- 对用户或物品的多个特征域进行动态权重调整,抑制无关特征,增强有效特征。
-
SENet双塔:在双塔中引入SENet模块,使模型更关注重要特征域,提升召回效果。
-
效果:在CTR预估和召回中均有明显提升。
-
什么是“生成式推荐”(Generative Recommendation)?与判别式推荐的区别?
答案要点:
-
生成式推荐:将推荐视为生成任务,如直接生成用户下一交互物品的ID或文本描述。
-
方法:
- 基于LLM:用自回归方式生成推荐序列。
-
基于扩散模型:从噪声生成用户兴趣表示。
-
区别:
- 判别式:学习P(y|x),分类物品是否被点击。
-
生成式:学习P(x,y)或P(x|y),可生成新物品、提供解释,且可处理冷启动。
-
挑战:计算量大,可控性差。
-
请解释“Contrastive Learning”(对比学习)在推荐系统中的应用。
答案要点:
-
原理:拉近正样本对(如用户与其点击物品),推远负样本对,学习更好的表征。
-
推荐应用:
- 用户/物品表征:在双塔训练中引入对比损失,增强向量区分度。
- 序列推荐:对用户序列做数据增强(如随机mask、裁剪),用对比学习使原序列与增强序列表征一致(如CL4SRec)。
-
多模态:对齐不同模态表征。
-
优势:缓解数据稀疏,提升泛化能力。
-
什么是“图对比学习”(Graph Contrastive Learning)?在图推荐中如何使用?
答案要点:
-
定义:对图结构进行数据增强(如节点dropout、边扰动),最大化原图和增强图的节点表征一致性。
-
推荐应用:
- SGL(简单图对比学习):在用户-物品交互图上进行随机游走采样增强,对比学习提高节点Embedding质量。
-
缓解稀疏性:通过自监督信号补充监督信号,提升长尾用户/物品效果。
-
优势:不依赖负样本,避免对比学习中负采样偏差。
- 你在项目中遇到的最大技术挑战是什么?如何解决的?
答案要点:
-
回答要结构化:背景 → 问题 → 尝试 → 最终方案 → 成果。
-
示例:
- 问题:长序列建模延迟高。
- 方案:使用SIM(搜索兴趣模型)+ 硬搜索筛选Top-100行为,再经过Attention。
-
成果:序列长度从1000降至100,延迟下降80%,AUC提升1%。
-
如果线上CTR突然暴跌,你会如何排查?
答案要点:
- 分层排查:
- 数据层:是否有数据源故障、特征缺失?
- 模型层:模型服务是否异常?模型版本是否被错误覆盖?
- 召回层:召回通道是否失效?是否出现空结果?
-
外部因素:流量来源变化、节假日、竞品活动等。
-
快速验证:回滚模型、对比旧版本、观察分维度指标(如用户分群、物品类目)。
-
你如何看待大模型对推荐系统的影响?未来趋势是什么?
答案要点:
- 正面影响:
- 提升语义理解,改善冷启动和跨域推荐。
-
提供可解释性和交互式推荐。
-
挑战:
- 推理延迟、成本高。
-
需要解决隐私、幻觉问题。
-
趋势:
- 大小模型协同(云端大模型+端侧小模型)。
- 多模态大模型统一表征。
-
生成式推荐与判别式推荐结合。
-
如果让你设计下一代推荐系统架构,你会考虑哪些关键点?
答案要点:
-
实时性:秒级更新用户兴趣,流批一体。
-
统一性:召回、排序、重排一体化训练(如全链路建模)。
-
多模态融合:利用大模型统一处理文本、图像、视频。
-
可解释性:提供透明、可控的推荐理由。
-
用户控制:允许用户自定义偏好和隐私设置。
-
绿色计算:通过量化、剪枝、知识蒸馏降低能耗。