推荐模型到底在干什么:条件估计、信息组织与排序决策
大家有没有这种感觉:推荐模型看多了,脑子里全是 FM 做交叉、DIN 做兴趣、Transformer 做序列、RankMixer 做扩展——每个都懂一点,但合在一起就是一张散乱的标签清单。新论文出来就往上贴一张,越贴越碎,始终拼不出一张完整的地图。
后来我发现,换个视角会清晰很多。用"三个层次、一条主线、三条横向约束"来理解,大部分模型都能放回同一个框架里。
三个层次:
| 层次 | 核心任务 |
|---|---|
| 推荐系统 | 从候选空间中选择并排列内容 |
| 推荐模型 | 估计用户对候选的响应和候选价值 |
| 模型结构 | 组织信息的表示、交互、聚合和状态更新 |
贯穿全文的一条主线:
三条横向约束分别是:哪些信息应该共享参数,这条计算链能不能稳定训练,以及它能不能在推荐系统的延迟和吞吐要求下跑起来。这三条不是某个模块的专属问题,而是同时压在表示、交互、状态和预测每一段上。
后面出现的 MLP、FM、DCN、RNN、Attention、残差连接和 RankMixer,都可以放回这条主线。它们不是一堆彼此独立的技巧,而是在改变这条链上某一段的信息处理方式。

推荐模型为列表决策提供依据
推荐发生在一个具体时刻。系统面对的是处于当前状态的用户、当时可用的内容、具体的展示场景,以及用户已经产生的行为历史。
给定用户 \(u\)、场景 \(c\)、历史 \(H_u\) 和可用物品集合 \(\mathcal I\),推荐系统最终需要输出一个有序列表:
理想目标可以写成:
\(R\) 表示列表产生的综合价值,可以包含用户体验、内容消费、长期留存和业务价值。这里有一个容易忽略的点:整个推荐系统的最终对象是内容选择与列表决策,而不是单独预测一个点击标签。 精排模型的 AUC 只是中间站,不是终点。
工业推荐把这个大问题拆成不同阶段:
| 阶段 | 在系统中的作用 | 常见模型输出 |
|---|---|---|
| 召回 | 从大规模内容库中找到可能相关的候选 | 用户—物品匹配分数 |
| 粗排 | 用较低成本继续压缩候选集合 | 近似价值分数 |
| 精排 | 使用完整信息估计多种用户响应 | 点击、时长、互动、转化等预测 |
| 融合 | 将不同响应转换成可比较的候选价值 | 综合排序分数 |
| 重排与混排 | 组织候选之间的关系并满足列表约束 | 最终有序列表 |
为了后面讨论有个具体的锚点,用一个短视频精排请求作为贯穿全文的例子:某位用户晚上打开应用,历史里既看过篮球内容,也看过钢琴内容;当前候选里同时出现篮球教学、钢琴演奏和其他视频。
| 信息链位置 | 在这个请求中的具体含义 |
|---|---|
| 原始信息 | 用户属性、历史行为、候选内容、当前时间和入口 |
| 模型表示 | 用户、视频、作者、品类和每条历史行为的向量 |
| 信息交互 | 用户与候选、候选与历史、历史与历史之间的关系 |
| 用户状态 | 面向当前候选整理出的兴趣表示 |
| 条件响应 | 点击、观看时长、点赞等预测 |
| 候选价值 | 多个响应经过业务规则或价值模型后的综合分数 |
| 排序决策 | 候选之间比较后形成的展示顺序 |
后文谈到 Embedding、MLP、Attention、DIN 或 RankMixer 时,都可以放回这个请求来看:它们究竟改变了哪一段信息处理过程。
所以,"行为预测"适合描述精排模型的一项核心任务,但不能直接概括整个推荐系统。对精排模型,用"条件响应估计"更准确:
\(Y_k\) 可以是点击、观看时长、点赞或转化,\(E=1\) 表示候选获得了曝光。对于二元行为,这个条件期望就是行为概率;对于观看时长,它可以是期望时长或某种分布预测。
训练时,这类模型通常具有共同的监督学习形式:
其中 \(x_m\) 包含用户、候选、场景和历史,\(\ell\) 衡量预测与标签的差异,\(\Omega\) 用来约束模型复杂度。LR、GBDT、FM 和深度排序模型都可以放进这个形式。它们真正不同的地方,不是"是否做监督学习",而是 \(f_\theta\) 允许怎样组织信息、怎样形成关系、怎样共享参数。
点击和时长是能够被系统记录的行为信号,它们是用户体验的代理,而不是用户心理状态本身。模型首先要把这些可观测目标估计准确,系统再决定怎样将它们组合成最终价值。把"预测点击"等同于"理解用户",这中间隔着一层。
多个响应还要进一步转换为候选价值:
到了这里,推荐系统、推荐模型和模型结构的边界就清楚了:
- 推荐系统决定最终展示什么;
- 推荐模型为这个决策提供响应和价值估计;
- 模型结构决定这些估计如何由输入信息计算出来。
接下来真正需要理解的,就是第三层:模型怎样把分散的信息组织成一个可用于当前候选预测的状态。
一条信息链统一推荐模型结构
先把用户字段、物品字段、上下文和历史行为统一看成"模型中的基本信息单位"。设第 \(i\) 个信息单位在第 \(l\) 层的表示为:
\(i\) 可以是一项用户属性、一个物品字段、一条历史行为,也可以是已经形成的用户兴趣状态。
一层推荐模型可以用三个动作概括。
第一步是收集相关信息:
别被公式吓到。它只是在说:
- \(\mathcal N_l(i)\):第 \(i\) 个信息单位能看到谁;
- \(M_l\):两份信息用加法、乘法、内积还是 Attention 建立关系;
- \(r_{ij}\):两者之间的位置差、时间差或关系类型;
- \(q\):当前候选、场景或任务等额外条件;
- \(\operatorname{Aggregate}\):把多份信息求和、平均、拼接或加权汇总。
第二步是根据汇总信息形成新状态:
第三步是决定旧状态保留多少、新状态写入多少:
模型最后再通过预测头输出点击、时长或转化等结果:
下面这张表可以用来理解不同结构:
| 结构维度 | 我关注的内容 | 常见选择 |
|---|---|---|
| 信息单位 | 模型把什么看成一个独立对象 | 字段、行为、候选、兴趣 token |
| 连接方式 | 哪些对象可以交换信息 | 全连接、局部连接、时间链、候选到历史 |
| 关系函数 | 两份信息怎样发生作用 | 加法、乘积、内积、MLP、Attention |
| 聚合方式 | 多份信息怎样汇总 | 求和、平均、最大值、动态加权 |
| 状态更新 | 新旧信息怎样结合 | 替换、递归、门控、残差 |
| 参数共享 | 哪些对象共用同一套规则 | 全共享、字段专属、任务专家、MoE |
| 任务输出 | 内部状态变成什么预测 | 单目标、多目标、价值分数 |
这样再看常见模块,它们就不再处于同一个混乱层级:
| 模块 | 在信息链中的主要位置 |
|---|---|
| Embedding | 把离散 ID 转换成可计算表示 |
| MLP / FFN | 在一个表示内部进行线性混合和非线性变换 |
| FM / DCN | 给字段关系加入明确的乘法或低秩交互 |
| Attention | 根据当前输入动态决定谁读取谁 |
| RNN / LSTM | 沿时间顺序更新用户状态 |
| 位置与时间编码 | 给行为状态加入顺序和时间坐标 |
| 残差连接 | 保留旧状态并提供更直接的梯度路径 |
| 归一化 | 控制不同层表示的数值尺度 |
| 反向传播 | 沿整个计算图分配误差并更新参数 |
反向传播不是一种特征交互。候选和历史之间如果没有前向计算路径,梯度不能凭空学出候选相关兴趣;当前向路径已经存在但难以训练时,残差、归一化和优化器配置才成为主要问题。不是所有问题都能靠"加一层"解决。

有了这张地图,下面所有内容都可以沿着同一条信息链展开:先形成表示,再让信息发生关系,然后把关系汇总成用户与候选状态。
推荐信息进入向量空间
推荐数据同时包含用户 ID、物品 ID、类别、作者、设备、统计量和行为序列。模型不能直接理解这些业务含义,只能接收数值和向量。
一个离散 ID 的 Embedding 可以写成:
\(x_j\) 是 one-hot 向量,\(E\) 是 Embedding 表。直观上,这相当于为每个离散标识找到一组可以参与后续计算的连续坐标。
Embedding 不只是降维。它还在决定后续怎样共享信息:
- 同一个 ID 在不同样本中使用同一个向量;
- 相似对象可以在训练中形成相近方向;
- 一个特征向量可以参与它与许多其他字段的交互;
- 新物品如果没有行为,只能依赖内容、类别等可共享表示。
更重要的是,模型怎样切分这些向量,会直接决定后续结构:
- 把所有字段拼成一个大向量,MLP 会把它们作为整体处理;
- 把每个字段保留为 token,Attention 可以组织字段之间的关系;
- 把每条历史行为保留为 token,序列模型可以利用顺序和上下文;
- 把候选单独作为 Query,模型可以用候选选择相关历史。
所以,特征工程、Embedding 和 token 化并不是网络之前的边角料,它们在定义模型能够看到什么,以及模型把什么当成一个独立的信息单位。很多"模型不行"的问题,根源其实在 Embedding 层的切分方式上。
MLP 形成基础条件函数
推荐模型经常把用户、候选、场景和历史表示拼在一起,再送入 MLP:
矩阵 \(W_l\) 不只是把数字放大或缩小。它的每一行都在把多个输入坐标混合成一个新的判断方向:
如果激活函数使用 ReLU:
那么一个神经元可以理解成"带方向和阈值的线性判断单元":满足条件的一侧保留响应,另一侧输出零。同一层放入更多神经元,就能并行保留更多不同方向和阈值的响应。
宽度和深度可以这样理解:
宽度增加同一层能够并行保留的响应通道;深度增加这些中间响应被继续组合和复用的次数。
举个例子,当 \(x_1,x_2\in\{0,1\}\) 时:
这个神经元只在两个条件同时成立时激活。在推荐中,它可以对应"用户满足某个条件,并且候选属于某个品类"。
深度的作用可以通过一个简单函数观察:
\(g\) 在 \([0,1]\) 上是一条有两个线性片段的三角波。再计算 \(g(g(x))\),可以形成四个片段;连续复合 \(L\) 次,可以形成 \(2^L\) 个片段。这个例子说明,深层网络能够反复使用前一层已经形成的局部变换。
通用逼近定理告诉我们,足够宽的前馈网络可以在有限范围内逼近连续函数。但这只是"存在某组参数"的结论,并没有保证所需网络很小、有限数据能够识别它,也没有保证梯度下降一定找得到。
这也是 MLP 不能当万能答案的原因:它理论上能表示某种关系,不等于它会用有限样本和有限训练预算轻松学到这种关系。

推荐信息形成联合证据
有了向量表示以后,下一步是让用户、候选和场景共同形成判断依据。
"特征交互"可以理解为:
一个特征对结果的作用,会随着另一个特征的取值而改变。
比如,"年轻用户"本身不必然提高点击率,"篮球视频"本身也不必然提高点击率,但"年轻用户看到篮球视频"可能产生额外作用。这个额外部分就是联合关系。
线性模型使用加法结构:
如果没有提前加入交叉项,一个特征的作用不会随着另一个特征改变。
GBDT 和 XGBoost 使用树路径形成条件组合。一棵树可以写成:
\(R_r\) 是由多次特征判断形成的区域。一条路径可以表达"年龄小于某个值、最近看过篮球、当前处于晚间"这样的联合条件。多棵树再逐轮相加:
所以树模型同样在学习特征关系,只是它把关系组织成分段规则,而不是连续向量中的多层变换。
FM 把二阶关系直接写入预测函数:
乘积 \(x_ix_j\) 明确规定两个特征同时参与,向量内积 \(\langle v_i,v_j\rangle\) 则让同一个特征可以在多种组合中共享统计规律。
DCN-V2 让原始输入在每个交叉层继续参与乘法:
FM 和 DCN 的共同点,是把乘法关系写进网络结构,为这类关系提供更短、更直接的计算路径。
MLP 也可以形成非加法的联合关系,只是交互被分散在权重、激活状态和多层组合中。它没有为某一对字段预留一个可以直接命名的乘积项,所以通常被称为隐式交互。
Attention 则进一步形成动态交互:
\(s_{ij}\) 同时依赖 \(x_i\) 和 \(x_j\),因此在数学上已经形成两者的关系;随后,模型根据当前样本计算出的权重汇总其他信息。
所以 Attention 可以定义为:
一种随当前输入变化的信息交互与加权汇总方式。
它可以被理解为特征交互,但不能直接等同于传统的显式乘积。它显式计算"谁与谁相关",输出的却是融合上下文后的新表示,而不是一个单独保存的 \(x_ix_j\)。
同一个 Attention 公式,在推荐中的作用取决于 Q、K、V 分别代表什么:
| 信息单位 | Attention 在推荐中的作用 |
|---|---|
| 特征字段之间 | 形成动态字段关系 |
| 历史行为之间 | 形成行为上下文 |
| 候选作为 Query、历史作为 Key/Value | 提取候选相关兴趣 |
| 场景或任务作为 Query | 按当前条件选择信息 |
在自然语言模型中,Attention 让一个词融合句子中其他词的信息;在推荐中,它可以让一条行为融合其他行为,也可以让候选读取用户历史。数学算子相同,信息单位和业务含义不同。这个区别看起来简单,但实际做模型设计时很容易混淆。

历史行为形成当前用户状态
字段发生交互以后,历史行为还需要形成一个能够服务当前预测的用户状态。
这里的"状态"不是对用户真实心理的完整还原,而是模型为当前任务构造的压缩表示。它只需要保留对当前预测有用的信息。模型只是在做一个高效的压缩和匹配,离"理解用户"还差得远。
最简单的方式是求和或平均:
这种表示稳定、便宜,适合描述总体偏好;代价是行为顺序消失,不同兴趣被压进同一个固定向量,所有候选都使用同一份用户表示。
RNN 沿时间递归更新状态:
\(h_t\) 汇总了到时间 \(t\) 为止的历史。顺序天然进入模型,但较早信息需要沿着连续状态逐步传递。
Self-Attention 让每条行为直接读取其他行为:
模型不再只维护一个逐步压缩的摘要,而是保留一组包含上下文的行为状态。位置编码和时间编码告诉模型这些行为发生的先后和间隔;没有这些信息时,Self-Attention 更接近处理一个内容集合。
DIN 使用当前候选对历史行为进行加权:
同一用户面对篮球鞋和钢琴课程时,可以形成不同的 \(h(u,i)\)。它改变的不是简单的"交叉数量",而是把候选条件放到历史压缩之前,让模型先判断哪些历史与当前候选相关,再形成用户状态。
Pooling、RNN、Self-Attention 和 DIN 并不是同一种结构的替代版本,它们分别表达:
- Pooling:用户整体看过什么;
- RNN:用户状态怎样随时间推进;
- Self-Attention:不同行为怎样相互提供上下文;
- DIN:当前候选应该读取哪部分历史;
- DIEN:兴趣怎样演化,并怎样受到当前候选影响。
到这里,推荐模型的主计算链已经形成:原始信息进入向量空间,字段和行为发生关系,历史被整理成与当前候选相关的状态。接下来需要处理的是:这些能力怎样被有限参数稳定学到,并在工业系统中高效运行。

共享、训练与计算让结构真正生效
参数共享积累可复用规律
推荐数据极其稀疏。一个具体的用户—物品组合可能只出现一次,很多组合从未出现。模型要获得泛化能力,就必须让不同样本和不同组合共享一部分参数。
FM 中,同一个特征向量会参与它与多个其他特征的交互;RNN 在所有时间步复用同一个状态更新函数;Transformer 的不同位置共享 QKV 投影和 FFN;多任务模型则让点击、时长和转化共享底层表示。
共享参数相当于假设"这些对象可以使用一部分共同规律"。它能够减少样本需求,但共享过强也会带来干扰:
- 高频字段可能压制长尾字段;
- 用户 ID 与设备统计量未必适合相同变换;
- 点击任务和转化任务可能需要不同信息;
- 不同兴趣子空间可能需要专门参数。
因此,推荐模型通常在一条连续线上选择:
"参数更多"不等于"能力更强"。真正需要判断的是:哪些规律应该共享,哪些信息需要专门处理。
残差与归一化维持深层计算
模型有了合适的信息连接方式,并不代表它一定能够训练好。网络加深后,原始信息可能被不断改写,梯度也需要穿过更长的计算路径。
残差连接写成:
它让每一层学习"在当前状态上增加什么修正",而不是从头生成完整状态。其梯度中包含:
恒等项 \(I\) 为已有信息和梯度提供一条更直接的路径。残差主要改善状态保持和深层训练,并不会自动创造新的字段关系。
归一化则控制不同层表示的数值尺度,让连续堆叠的 Attention、FFN 和交互模块更稳定。门控结构进一步决定旧信息保留多少、新信息写入多少。
三者放在不同位置理解:
- 交互模块决定什么信息能够相互影响;
- 残差和门控决定新旧状态怎样结合;
- 归一化帮助连续计算保持稳定;
- 反向传播沿这些已经存在的路径更新参数。
多任务结构组织多个响应目标
推荐模型往往同时预测点击、时长、互动和转化。多任务学习不仅是在输出层多放几个预测头,还要决定任务之间怎样共享信息。
ESMM 把点击—转化漏斗写成概率关系:
MMoE 和 PLE 则用共享专家、任务门控和专属分支组织多个任务。它们主要改变的不是字段怎样交叉,而是点击、转化等任务怎样共享底层表示,以及怎样减少相互干扰。
这也说明,模型结构不只存在于"特征交互层"。标签之间的关系、任务之间的共享方式,同样可以被写进计算图。
RankMixer 平衡字段交互与工业效率
RankMixer 面向工业排序中的大量异构字段。它保留"先交换信息、再进行非线性变换"的基本思路,但没有使用标准 Self-Attention。
一个 RankMixer Block 可以概括为:
Token Mixing 把不同 token 的信息切分后重新排列,为跨字段通信建立固定通路。它不为每个样本计算 \(T\times T\) 的动态关系矩阵。
Per-token FFN 则让不同 token 使用不同参数:
因此,RankMixer 的选择可以归纳为:
- 用固定重排换取低成本的全局信息交换;
- 用 token 专属 FFN 处理异构特征子空间;
- 用残差和归一化支持深层堆叠;
- 用规则矩阵计算提高硬件利用率。
它不是对 Attention 的普遍替代,也不必替代 DIN 或序列 Transformer。序列模块可以先形成用户状态,RankMixer 再负责排序阶段的异构字段交互。它展示的是另一种结构思路:模型能力不仅来自数学表达,也来自参数怎样放置、计算怎样执行。

常见模型落在同一张结构地图上
当我把常见模型放进同一张表时,模型之间的关系会清楚很多:
| 模型 | 主要阶段 | 基本信息单位 | 主要关系或状态 | 参数组织 | 形成的能力 |
|---|---|---|---|---|---|
| 双塔召回 | 召回 | 用户向量、物品向量 | 末端内积匹配 | 用户塔与物品塔分离 | 大规模候选检索 |
| LR | 排序 | 稀疏标量特征 | 一阶加性关系 | 特征独立权重 | 稳定线性基线 |
| GBDT / XGBoost | 粗排或排序 | 数值与离散统计特征 | 树路径形成分段条件 | 逐轮增加决策树 | 自动学习条件规则 |
| FM | 排序 | 稀疏字段及隐向量 | 低秩二阶交互 | 向量跨组合共享 | 稀疏组合泛化 |
| Wide & Deep | 排序 | 人工交叉与 Embedding | 线性记忆与 MLP 并行 | Wide、Deep 分支协同 | 精确规则与共享泛化并存 |
| DeepFM | 排序 | 字段 Embedding | FM 与 MLP 并行 | 共享 Embedding | 低阶交互与自由非线性组合 |
| DCN-V2 | 排序 | 拼接后的字段表示 | 逐层乘性交互 | Cross 与 Deep 分支 | 有界阶数的显式交互 |
| AutoInt | 排序 | 特征字段 token | 字段 Self-Attention | QKV 跨字段共享 | 样本相关的字段关系 |
| DIN | 排序 | 候选与历史行为 | 候选相关聚合 | 激活网络跨行为共享 | 候选条件化兴趣 |
| DIEN | 排序 | 行为序列与候选 | 兴趣递归演化与候选更新 | 参数跨时间共享 | 兴趣演化与目标相关性 |
| SASRec | 序列推荐 | 带位置的行为 token | 因果 Self-Attention | 参数跨位置共享 | 序列上下文状态 |
| RankMixer | 排序 | 异构 feature token | 固定 Mixing 与 PFFN | token 专属参数 | 高效字段通信与容量扩展 |
| ESMM | 多目标排序 | 多阶段标签与共享表示 | 点击—转化概率链 | 任务分支共享 | 漏斗目标联合建模 |
| MMoE / PLE | 多目标排序 | 多任务状态 | 专家与任务门控 | 动态任务共享 | 多任务专门化 |
这张表不是模型排行榜。从中可以看到四条结构变化:
信息关系从固定走向条件化。
LR 使用加性关系,FM 和 DCN 写入乘法关系,Attention 根据当前样本动态决定交互权重。
用户表示从固定走向候选相关。
Pooling 得到统一用户向量,RNN 和 Self-Attention 加入顺序与上下文,DIN 进一步让当前候选参与兴趣选择。
参数组织从全共享走向有选择的专门化。
低秩向量、共享 FFN、任务专家、Per-token FFN 和 MoE,分别在统计共享与角色专门化之间选择不同位置。
结构设计从单纯追求表达走向同时考虑执行。
双塔通过分离编码支持大规模检索,RankMixer 通过规则计算和参数布局支持工业扩展。
所以,推荐模型的发展不只是"交叉越来越多"或"参数越来越大",而是在持续调整信息单位、连接方式、状态形式、共享范围和计算结构。有了这个视角,就不会被新模型的名字牵着走,而是能快速判断它到底改了哪一段。

统一框架指导模型优化
统一框架最重要的价值,是能够定位优化方向,而不是轮流尝试热门模型。
实际阅读一篇论文或诊断一个线上模型时,通常先画三张简单的图:
- 输入图:模型接收哪些信息,又把什么切成独立字段、行为或 token;
- 信息流图:谁能看见谁,候选和场景在什么时候进入,历史又在什么时候被压缩;
- 参数与计算图:哪些位置共享参数,哪些位置使用专属参数,主要计算量落在哪里。
这三张图分别对应"模型知道什么""模型怎样形成判断"和"这套能力能否被数据学到并在线上运行"。模型名称会变化,但这三个问题长期稳定。
沿着同一条信息链逐层检查:
| 观察到的现象 | 优先检查的结构位置 | 对应方向 |
|---|---|---|
| 增大 MLP 收益很小 | 目标、输入和交互形式 | 补充有效信息,调整交互结构 |
| 重要组合始终难学 | 关系函数 | FM、DCN 或字段关系模块 |
| 同一用户面对不同候选表示相同 | 历史聚合位置 | 候选相关聚合或 DIN |
| 长序列没有明显收益 | 时间信息和状态形成 | 顺序编码、时间编码、去噪和序列结构 |
| 高频字段压制长尾字段 | 参数共享范围 | Field-aware、Per-token FFN 或专家结构 |
| 深层模型连训练集都难拟合 | 信息与梯度通路 | 残差、归一化、初始化和优化器 |
| 多任务相互拖累 | 任务共享方式 | MMoE、PLE 或梯度协调 |
| 离线增益无法满足线上延迟 | 计算结构 | 分阶段、蒸馏、量化、Mixer 或稀疏专家 |
结构判断还需要受控实验支撑。几个基本原则:
- 固定数据切分、标签、特征和采样方式;
- 分别做等参数量和等 FLOPs 比较;
- 每次只改变一个主要结构因素;
- 同时观察总体指标、关键用户分组、校准、训练成本和线上延迟;
- 使用多个随机种子或置信区间判断微小收益是否稳定。
一些实验现象可以形成较明确的证据:
- 训练集和验证集都随宽度改善,说明容量仍可能有用;
- 训练集改善而验证集停滞,说明限制更接近泛化、样本或正则化;
- 等预算下 FM 或 DCN 稳定优于 MLP,说明乘性交互结构更适合当前数据;
- 打乱历史顺序后效果下降,说明模型确实利用了顺序信息;
- 更换候选 Query 后用户状态几乎不变,说明候选条件化路径没有真正发挥作用;
- 增加深度后训练损失也无法下降,说明训练通路比表达容量更值得优先检查;
- 精度接近而延迟差异明显,说明优化对象已经转向执行方式。
一次结构优化可以写成:
这套方法不能保证一次找到最优模型,但它能让实验具有明确目的:每个改动都在验证某一种信息处理假设,而不是只看模型名字是否更新。

结语
用三个递进层次总结全文:
推荐系统在多重条件和约束下完成候选选择与列表决策。
推荐模型通过条件响应估计和候选价值建模,为这个决策提供依据。
模型结构通过表示、交互、聚合、状态更新、参数共享和任务输出,实现这些估计。
理解一个推荐模型时,不再只问它用了 MLP、Attention 还是残差连接,而是沿着完整信息链判断:
- 它把什么定义为基本信息单位;
- 它让哪些信息发生关系;
- 它使用什么函数表达关系;
- 它怎样把历史整理成当前用户状态;
- 它是否让候选和场景在合适的时间进入计算;
- 它怎样共享参数并保持训练稳定;
- 它的输出怎样进入候选价值和最终排序。
推荐模型的发展不是简单地增加参数或增加特征交叉。它是在持续改变信息的表示方式、连接方式、状态形式、共享范围和执行结构,让模型能够在有限数据、训练预算和线上成本下,形成更有效的条件估计。
参考文献
- Hornik et al., Multilayer Feedforward Networks are Universal Approximators, 1989.
- Friedman, Greedy Function Approximation: A Gradient Boosting Machine, 2001.
- Chen and Guestrin, XGBoost: A Scalable Tree Boosting System, 2016.
- Cheng et al., Wide & Deep Learning for Recommender Systems, 2016.
- Rendle, Factorization Machines, 2010.
- Guo et al., DeepFM: A Factorization-Machine based Neural Network for CTR Prediction, 2017.
- Wang et al., Deep & Cross Network for Ad Click Predictions, 2017.
- Wang et al., DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems, 2020.
- Zhou et al., Deep Interest Network for Click-Through Rate Prediction, 2018.
- Zhou et al., Deep Interest Evolution Network for Click-Through Rate Prediction, 2019.
- Kang and McAuley, Self-Attentive Sequential Recommendation, 2018.
- Song et al., AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks, 2019.
- Vaswani et al., Attention Is All You Need, 2017.
- He et al., Deep Residual Learning for Image Recognition, 2016.
- Ma et al., Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate, 2018.
- Ma et al., Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts, 2018.
- Tang et al., Progressive Layered Extraction: A Novel Multi-Task Learning Model for Personalized Recommendations, 2020.
- Covington et al., Deep Neural Networks for YouTube Recommendations, 2016.
- Zhu et al., RankMixer: Scaling Up Ranking Models in Industrial Recommenders, 2025.
- Montúfar et al., On the Number of Linear Regions of Deep Neural Networks, 2014.
- Telgarsky, Benefits of Depth in Neural Networks, 2016.