当前位置: 首页 > news >正文

推荐模型到底在干什么:条件估计、信息组织与排序决策

推荐模型到底在干什么:条件估计、信息组织与排序决策

大家有没有这种感觉:推荐模型看多了,脑子里全是 FM 做交叉、DIN 做兴趣、Transformer 做序列、RankMixer 做扩展——每个都懂一点,但合在一起就是一张散乱的标签清单。新论文出来就往上贴一张,越贴越碎,始终拼不出一张完整的地图。

后来我发现,换个视角会清晰很多。用"三个层次、一条主线、三条横向约束"来理解,大部分模型都能放回同一个框架里。

三个层次:

层次 核心任务
推荐系统 从候选空间中选择并排列内容
推荐模型 估计用户对候选的响应和候选价值
模型结构 组织信息的表示、交互、聚合和状态更新

贯穿全文的一条主线:

\[\text{原始信息} \longrightarrow \text{模型表示} \longrightarrow \text{信息交互} \longrightarrow \text{用户与候选状态} \longrightarrow \text{条件响应} \longrightarrow \text{候选价值} \longrightarrow \text{排序决策} \]

三条横向约束分别是:哪些信息应该共享参数,这条计算链能不能稳定训练,以及它能不能在推荐系统的延迟和吞吐要求下跑起来。这三条不是某个模块的专属问题,而是同时压在表示、交互、状态和预测每一段上。

后面出现的 MLP、FM、DCN、RNN、Attention、残差连接和 RankMixer,都可以放回这条主线。它们不是一堆彼此独立的技巧,而是在改变这条链上某一段的信息处理方式。

image

推荐模型为列表决策提供依据

推荐发生在一个具体时刻。系统面对的是处于当前状态的用户、当时可用的内容、具体的展示场景,以及用户已经产生的行为历史。

给定用户 \(u\)、场景 \(c\)、历史 \(H_u\) 和可用物品集合 \(\mathcal I\),推荐系统最终需要输出一个有序列表:

\[A=(i_1,i_2,\ldots,i_K) \]

理想目标可以写成:

\[A^* = \arg\max_{A\in\mathcal A(u,c)} \mathbb E \left[ R(A;u,c) \mid u,c,H_u \right] \]

\(R\) 表示列表产生的综合价值,可以包含用户体验、内容消费、长期留存和业务价值。这里有一个容易忽略的点:整个推荐系统的最终对象是内容选择与列表决策,而不是单独预测一个点击标签。 精排模型的 AUC 只是中间站,不是终点。

工业推荐把这个大问题拆成不同阶段:

阶段 在系统中的作用 常见模型输出
召回 从大规模内容库中找到可能相关的候选 用户—物品匹配分数
粗排 用较低成本继续压缩候选集合 近似价值分数
精排 使用完整信息估计多种用户响应 点击、时长、互动、转化等预测
融合 将不同响应转换成可比较的候选价值 综合排序分数
重排与混排 组织候选之间的关系并满足列表约束 最终有序列表

为了后面讨论有个具体的锚点,用一个短视频精排请求作为贯穿全文的例子:某位用户晚上打开应用,历史里既看过篮球内容,也看过钢琴内容;当前候选里同时出现篮球教学、钢琴演奏和其他视频。

信息链位置 在这个请求中的具体含义
原始信息 用户属性、历史行为、候选内容、当前时间和入口
模型表示 用户、视频、作者、品类和每条历史行为的向量
信息交互 用户与候选、候选与历史、历史与历史之间的关系
用户状态 面向当前候选整理出的兴趣表示
条件响应 点击、观看时长、点赞等预测
候选价值 多个响应经过业务规则或价值模型后的综合分数
排序决策 候选之间比较后形成的展示顺序

后文谈到 Embedding、MLP、Attention、DIN 或 RankMixer 时,都可以放回这个请求来看:它们究竟改变了哪一段信息处理过程。

所以,"行为预测"适合描述精排模型的一项核心任务,但不能直接概括整个推荐系统。对精排模型,用"条件响应估计"更准确:

\[s_k(u,i,c,H_u) \approx \mathbb E \left[ Y_k \mid u,i,c,H_u,E=1 \right] \]

\(Y_k\) 可以是点击、观看时长、点赞或转化,\(E=1\) 表示候选获得了曝光。对于二元行为,这个条件期望就是行为概率;对于观看时长,它可以是期望时长或某种分布预测。

训练时,这类模型通常具有共同的监督学习形式:

\[\hat\theta = \arg\min_\theta \frac{1}{n} \sum_{m=1}^{n} \ell \left( y_m, f_\theta(x_m) \right) + \lambda\Omega(\theta) \]

其中 \(x_m\) 包含用户、候选、场景和历史,\(\ell\) 衡量预测与标签的差异,\(\Omega\) 用来约束模型复杂度。LR、GBDT、FM 和深度排序模型都可以放进这个形式。它们真正不同的地方,不是"是否做监督学习",而是 \(f_\theta\) 允许怎样组织信息、怎样形成关系、怎样共享参数。

点击和时长是能够被系统记录的行为信号,它们是用户体验的代理,而不是用户心理状态本身。模型首先要把这些可观测目标估计准确,系统再决定怎样将它们组合成最终价值。把"预测点击"等同于"理解用户",这中间隔着一层。

多个响应还要进一步转换为候选价值:

\[V(u,i,c) = G \left( s_{\mathrm{click}}, s_{\mathrm{duration}}, s_{\mathrm{like}}, s_{\mathrm{conversion}}, \ldots \right) \]

到了这里,推荐系统、推荐模型和模型结构的边界就清楚了:

  • 推荐系统决定最终展示什么;
  • 推荐模型为这个决策提供响应和价值估计;
  • 模型结构决定这些估计如何由输入信息计算出来。

接下来真正需要理解的,就是第三层:模型怎样把分散的信息组织成一个可用于当前候选预测的状态。

一条信息链统一推荐模型结构

先把用户字段、物品字段、上下文和历史行为统一看成"模型中的基本信息单位"。设第 \(i\) 个信息单位在第 \(l\) 层的表示为:

\[h_i^{(l)}\in\mathbb R^D \]

\(i\) 可以是一项用户属性、一个物品字段、一条历史行为,也可以是已经形成的用户兴趣状态。

一层推荐模型可以用三个动作概括。

第一步是收集相关信息:

\[m_i^{(l)} = \operatorname{Aggregate}_{j\in\mathcal N_l(i)} M_l \left( h_i^{(l)}, h_j^{(l)}, r_{ij}, q \right) \]

别被公式吓到。它只是在说:

  • \(\mathcal N_l(i)\):第 \(i\) 个信息单位能看到谁;
  • \(M_l\):两份信息用加法、乘法、内积还是 Attention 建立关系;
  • \(r_{ij}\):两者之间的位置差、时间差或关系类型;
  • \(q\):当前候选、场景或任务等额外条件;
  • \(\operatorname{Aggregate}\):把多份信息求和、平均、拼接或加权汇总。

第二步是根据汇总信息形成新状态:

\[\tilde h_i^{(l+1)} = U_l \left( h_i^{(l)}, m_i^{(l)} \right) \]

第三步是决定旧状态保留多少、新状态写入多少:

\[h_i^{(l+1)} = S_l \left( h_i^{(l)}, \tilde h_i^{(l+1)} \right) \]

模型最后再通过预测头输出点击、时长或转化等结果:

\[\hat y_k = \operatorname{Head}_k \left( \operatorname{Readout} \left( \{h_i^{(L)}\} \right) \right) \]

下面这张表可以用来理解不同结构:

结构维度 我关注的内容 常见选择
信息单位 模型把什么看成一个独立对象 字段、行为、候选、兴趣 token
连接方式 哪些对象可以交换信息 全连接、局部连接、时间链、候选到历史
关系函数 两份信息怎样发生作用 加法、乘积、内积、MLP、Attention
聚合方式 多份信息怎样汇总 求和、平均、最大值、动态加权
状态更新 新旧信息怎样结合 替换、递归、门控、残差
参数共享 哪些对象共用同一套规则 全共享、字段专属、任务专家、MoE
任务输出 内部状态变成什么预测 单目标、多目标、价值分数

这样再看常见模块,它们就不再处于同一个混乱层级:

模块 在信息链中的主要位置
Embedding 把离散 ID 转换成可计算表示
MLP / FFN 在一个表示内部进行线性混合和非线性变换
FM / DCN 给字段关系加入明确的乘法或低秩交互
Attention 根据当前输入动态决定谁读取谁
RNN / LSTM 沿时间顺序更新用户状态
位置与时间编码 给行为状态加入顺序和时间坐标
残差连接 保留旧状态并提供更直接的梯度路径
归一化 控制不同层表示的数值尺度
反向传播 沿整个计算图分配误差并更新参数

反向传播不是一种特征交互。候选和历史之间如果没有前向计算路径,梯度不能凭空学出候选相关兴趣;当前向路径已经存在但难以训练时,残差、归一化和优化器配置才成为主要问题。不是所有问题都能靠"加一层"解决。

image

有了这张地图,下面所有内容都可以沿着同一条信息链展开:先形成表示,再让信息发生关系,然后把关系汇总成用户与候选状态。

推荐信息进入向量空间

推荐数据同时包含用户 ID、物品 ID、类别、作者、设备、统计量和行为序列。模型不能直接理解这些业务含义,只能接收数值和向量。

一个离散 ID 的 Embedding 可以写成:

\[e_j=E^\top x_j \]

\(x_j\) 是 one-hot 向量,\(E\) 是 Embedding 表。直观上,这相当于为每个离散标识找到一组可以参与后续计算的连续坐标。

Embedding 不只是降维。它还在决定后续怎样共享信息:

  • 同一个 ID 在不同样本中使用同一个向量;
  • 相似对象可以在训练中形成相近方向;
  • 一个特征向量可以参与它与许多其他字段的交互;
  • 新物品如果没有行为,只能依赖内容、类别等可共享表示。

更重要的是,模型怎样切分这些向量,会直接决定后续结构:

  • 把所有字段拼成一个大向量,MLP 会把它们作为整体处理;
  • 把每个字段保留为 token,Attention 可以组织字段之间的关系;
  • 把每条历史行为保留为 token,序列模型可以利用顺序和上下文;
  • 把候选单独作为 Query,模型可以用候选选择相关历史。

所以,特征工程、Embedding 和 token 化并不是网络之前的边角料,它们在定义模型能够看到什么,以及模型把什么当成一个独立的信息单位。很多"模型不行"的问题,根源其实在 Embedding 层的切分方式上。

MLP 形成基础条件函数

推荐模型经常把用户、候选、场景和历史表示拼在一起,再送入 MLP:

\[h^{(l+1)} = \sigma \left( W_lh^{(l)}+b_l \right) \]

矩阵 \(W_l\) 不只是把数字放大或缩小。它的每一行都在把多个输入坐标混合成一个新的判断方向:

\[z_r=w_r^\top h+b_r \]

如果激活函数使用 ReLU:

\[[z]_+=\max(0,z) \]

那么一个神经元可以理解成"带方向和阈值的线性判断单元":满足条件的一侧保留响应,另一侧输出零。同一层放入更多神经元,就能并行保留更多不同方向和阈值的响应。

宽度和深度可以这样理解:

宽度增加同一层能够并行保留的响应通道;深度增加这些中间响应被继续组合和复用的次数。

举个例子,当 \(x_1,x_2\in\{0,1\}\) 时:

\[[x_1+x_2-1]_+ = x_1x_2 \]

这个神经元只在两个条件同时成立时激活。在推荐中,它可以对应"用户满足某个条件,并且候选属于某个品类"。

深度的作用可以通过一个简单函数观察:

\[g(x) = 2[x]_+ - 4\left[x-\frac12\right]_+ + 2[x-1]_+ \]

\(g\)\([0,1]\) 上是一条有两个线性片段的三角波。再计算 \(g(g(x))\),可以形成四个片段;连续复合 \(L\) 次,可以形成 \(2^L\) 个片段。这个例子说明,深层网络能够反复使用前一层已经形成的局部变换。

通用逼近定理告诉我们,足够宽的前馈网络可以在有限范围内逼近连续函数。但这只是"存在某组参数"的结论,并没有保证所需网络很小、有限数据能够识别它,也没有保证梯度下降一定找得到。

这也是 MLP 不能当万能答案的原因:它理论上能表示某种关系,不等于它会用有限样本和有限训练预算轻松学到这种关系。

image

推荐信息形成联合证据

有了向量表示以后,下一步是让用户、候选和场景共同形成判断依据。

"特征交互"可以理解为:

一个特征对结果的作用,会随着另一个特征的取值而改变。

比如,"年轻用户"本身不必然提高点击率,"篮球视频"本身也不必然提高点击率,但"年轻用户看到篮球视频"可能产生额外作用。这个额外部分就是联合关系。

线性模型使用加法结构:

\[s(x)=b+\sum_jw_jx_j \]

如果没有提前加入交叉项,一个特征的作用不会随着另一个特征改变。

GBDT 和 XGBoost 使用树路径形成条件组合。一棵树可以写成:

\[T(x) = \sum_{r} w_r \mathbf 1 \left[ x\in R_r \right] \]

\(R_r\) 是由多次特征判断形成的区域。一条路径可以表达"年龄小于某个值、最近看过篮球、当前处于晚间"这样的联合条件。多棵树再逐轮相加:

\[f_M(x) = \sum_{m=1}^{M} \eta T_m(x) \]

所以树模型同样在学习特征关系,只是它把关系组织成分段规则,而不是连续向量中的多层变换。

FM 把二阶关系直接写入预测函数:

\[s_{\mathrm{FM}}(x) = b+\sum_iw_ix_i + \sum_{i<j} \langle v_i,v_j\rangle x_ix_j \]

乘积 \(x_ix_j\) 明确规定两个特征同时参与,向量内积 \(\langle v_i,v_j\rangle\) 则让同一个特征可以在多种组合中共享统计规律。

DCN-V2 让原始输入在每个交叉层继续参与乘法:

\[x_{l+1} = x_0\odot \left( W_lx_l+b_l \right) + x_l \]

FM 和 DCN 的共同点,是把乘法关系写进网络结构,为这类关系提供更短、更直接的计算路径。

MLP 也可以形成非加法的联合关系,只是交互被分散在权重、激活状态和多层组合中。它没有为某一对字段预留一个可以直接命名的乘积项,所以通常被称为隐式交互。

Attention 则进一步形成动态交互:

\[Q=XW_Q,\qquad K=XW_K,\qquad V=XW_V \]

\[s_{ij} = \frac{q_i^\top k_j}{\sqrt{d_k}} = \frac{x_i^\top W_Q^\top W_Kx_j}{\sqrt{d_k}} \]

\[y_i = \sum_j \operatorname{softmax}_j(s_{ij})v_j \]

\(s_{ij}\) 同时依赖 \(x_i\)\(x_j\),因此在数学上已经形成两者的关系;随后,模型根据当前样本计算出的权重汇总其他信息。

所以 Attention 可以定义为:

一种随当前输入变化的信息交互与加权汇总方式。

它可以被理解为特征交互,但不能直接等同于传统的显式乘积。它显式计算"谁与谁相关",输出的却是融合上下文后的新表示,而不是一个单独保存的 \(x_ix_j\)

同一个 Attention 公式,在推荐中的作用取决于 Q、K、V 分别代表什么:

信息单位 Attention 在推荐中的作用
特征字段之间 形成动态字段关系
历史行为之间 形成行为上下文
候选作为 Query、历史作为 Key/Value 提取候选相关兴趣
场景或任务作为 Query 按当前条件选择信息

在自然语言模型中,Attention 让一个词融合句子中其他词的信息;在推荐中,它可以让一条行为融合其他行为,也可以让候选读取用户历史。数学算子相同,信息单位和业务含义不同。这个区别看起来简单,但实际做模型设计时很容易混淆。

image

历史行为形成当前用户状态

字段发生交互以后,历史行为还需要形成一个能够服务当前预测的用户状态。

这里的"状态"不是对用户真实心理的完整还原,而是模型为当前任务构造的压缩表示。它只需要保留对当前预测有用的信息。模型只是在做一个高效的压缩和匹配,离"理解用户"还差得远。

最简单的方式是求和或平均:

\[h_u = \operatorname{Pool} \left( e_1,e_2,\ldots,e_T \right) \]

这种表示稳定、便宜,适合描述总体偏好;代价是行为顺序消失,不同兴趣被压进同一个固定向量,所有候选都使用同一份用户表示。

RNN 沿时间递归更新状态:

\[h_t = F \left( h_{t-1},e_t \right) \]

\(h_t\) 汇总了到时间 \(t\) 为止的历史。顺序天然进入模型,但较早信息需要沿着连续状态逐步传递。

Self-Attention 让每条行为直接读取其他行为:

\[h_t' = \sum_j \alpha_{tj}W_Ve_j \]

模型不再只维护一个逐步压缩的摘要,而是保留一组包含上下文的行为状态。位置编码和时间编码告诉模型这些行为发生的先后和间隔;没有这些信息时,Self-Attention 更接近处理一个内容集合。

DIN 使用当前候选对历史行为进行加权:

\[h(u,i) = \sum_{t=1}^{T} \alpha \left( e_i,e_t \right)e_t \]

同一用户面对篮球鞋和钢琴课程时,可以形成不同的 \(h(u,i)\)。它改变的不是简单的"交叉数量",而是把候选条件放到历史压缩之前,让模型先判断哪些历史与当前候选相关,再形成用户状态。

Pooling、RNN、Self-Attention 和 DIN 并不是同一种结构的替代版本,它们分别表达:

  • Pooling:用户整体看过什么;
  • RNN:用户状态怎样随时间推进;
  • Self-Attention:不同行为怎样相互提供上下文;
  • DIN:当前候选应该读取哪部分历史;
  • DIEN:兴趣怎样演化,并怎样受到当前候选影响。

到这里,推荐模型的主计算链已经形成:原始信息进入向量空间,字段和行为发生关系,历史被整理成与当前候选相关的状态。接下来需要处理的是:这些能力怎样被有限参数稳定学到,并在工业系统中高效运行。
image

共享、训练与计算让结构真正生效

参数共享积累可复用规律

推荐数据极其稀疏。一个具体的用户—物品组合可能只出现一次,很多组合从未出现。模型要获得泛化能力,就必须让不同样本和不同组合共享一部分参数。

FM 中,同一个特征向量会参与它与多个其他特征的交互;RNN 在所有时间步复用同一个状态更新函数;Transformer 的不同位置共享 QKV 投影和 FFN;多任务模型则让点击、时长和转化共享底层表示。

共享参数相当于假设"这些对象可以使用一部分共同规律"。它能够减少样本需求,但共享过强也会带来干扰:

  • 高频字段可能压制长尾字段;
  • 用户 ID 与设备统计量未必适合相同变换;
  • 点击任务和转化任务可能需要不同信息;
  • 不同兴趣子空间可能需要专门参数。

因此,推荐模型通常在一条连续线上选择:

\[\text{完全共享} \longrightarrow \text{共享主干与专属分支} \longrightarrow \text{字段专属参数} \longrightarrow \text{Per-token 参数} \longrightarrow \text{动态专家} \]

"参数更多"不等于"能力更强"。真正需要判断的是:哪些规律应该共享,哪些信息需要专门处理。

残差与归一化维持深层计算

模型有了合适的信息连接方式,并不代表它一定能够训练好。网络加深后,原始信息可能被不断改写,梯度也需要穿过更长的计算路径。

残差连接写成:

\[h^{(l+1)} = h^{(l)} + F_l \left( h^{(l)} \right) \]

它让每一层学习"在当前状态上增加什么修正",而不是从头生成完整状态。其梯度中包含:

\[\frac{\partial h^{(l+1)}}{\partial h^{(l)}} = I + \frac{\partial F_l}{\partial h^{(l)}} \]

恒等项 \(I\) 为已有信息和梯度提供一条更直接的路径。残差主要改善状态保持和深层训练,并不会自动创造新的字段关系。

归一化则控制不同层表示的数值尺度,让连续堆叠的 Attention、FFN 和交互模块更稳定。门控结构进一步决定旧信息保留多少、新信息写入多少。

三者放在不同位置理解:

  • 交互模块决定什么信息能够相互影响;
  • 残差和门控决定新旧状态怎样结合;
  • 归一化帮助连续计算保持稳定;
  • 反向传播沿这些已经存在的路径更新参数。

多任务结构组织多个响应目标

推荐模型往往同时预测点击、时长、互动和转化。多任务学习不仅是在输出层多放几个预测头,还要决定任务之间怎样共享信息。

ESMM 把点击—转化漏斗写成概率关系:

\[P(C=1,V=1\mid X) = P(C=1\mid X) P(V=1\mid C=1,X) \]

MMoE 和 PLE 则用共享专家、任务门控和专属分支组织多个任务。它们主要改变的不是字段怎样交叉,而是点击、转化等任务怎样共享底层表示,以及怎样减少相互干扰。

这也说明,模型结构不只存在于"特征交互层"。标签之间的关系、任务之间的共享方式,同样可以被写进计算图。

RankMixer 平衡字段交互与工业效率

RankMixer 面向工业排序中的大量异构字段。它保留"先交换信息、再进行非线性变换"的基本思路,但没有使用标准 Self-Attention。

一个 RankMixer Block 可以概括为:

\[S = \operatorname{LN} \left( \operatorname{TokenMix}(X)+X \right) \]

\[X' = \operatorname{LN} \left( \operatorname{PFFN}(S)+S \right) \]

Token Mixing 把不同 token 的信息切分后重新排列,为跨字段通信建立固定通路。它不为每个样本计算 \(T\times T\) 的动态关系矩阵。

Per-token FFN 则让不同 token 使用不同参数:

\[\operatorname{PFFN}_t(s_t) = W_{2,t} \operatorname{GELU} \left( W_{1,t}s_t+b_{1,t} \right) + b_{2,t} \]

因此,RankMixer 的选择可以归纳为:

  • 用固定重排换取低成本的全局信息交换;
  • 用 token 专属 FFN 处理异构特征子空间;
  • 用残差和归一化支持深层堆叠;
  • 用规则矩阵计算提高硬件利用率。

它不是对 Attention 的普遍替代,也不必替代 DIN 或序列 Transformer。序列模块可以先形成用户状态,RankMixer 再负责排序阶段的异构字段交互。它展示的是另一种结构思路:模型能力不仅来自数学表达,也来自参数怎样放置、计算怎样执行。

image

常见模型落在同一张结构地图上

当我把常见模型放进同一张表时,模型之间的关系会清楚很多:

模型 主要阶段 基本信息单位 主要关系或状态 参数组织 形成的能力
双塔召回 召回 用户向量、物品向量 末端内积匹配 用户塔与物品塔分离 大规模候选检索
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 通过规则计算和参数布局支持工业扩展。

所以,推荐模型的发展不只是"交叉越来越多"或"参数越来越大",而是在持续调整信息单位、连接方式、状态形式、共享范围和计算结构。有了这个视角,就不会被新模型的名字牵着走,而是能快速判断它到底改了哪一段。

image

统一框架指导模型优化

统一框架最重要的价值,是能够定位优化方向,而不是轮流尝试热门模型。

实际阅读一篇论文或诊断一个线上模型时,通常先画三张简单的图:

  • 输入图:模型接收哪些信息,又把什么切成独立字段、行为或 token;
  • 信息流图:谁能看见谁,候选和场景在什么时候进入,历史又在什么时候被压缩;
  • 参数与计算图:哪些位置共享参数,哪些位置使用专属参数,主要计算量落在哪里。

这三张图分别对应"模型知道什么""模型怎样形成判断"和"这套能力能否被数据学到并在线上运行"。模型名称会变化,但这三个问题长期稳定。

沿着同一条信息链逐层检查:

\[\text{目标} \longrightarrow \text{输入信息} \longrightarrow \text{表示单位} \longrightarrow \text{连接与交互} \longrightarrow \text{用户状态} \longrightarrow \text{参数共享} \longrightarrow \text{训练稳定性} \longrightarrow \text{计算成本} \]

观察到的现象 优先检查的结构位置 对应方向
增大 MLP 收益很小 目标、输入和交互形式 补充有效信息,调整交互结构
重要组合始终难学 关系函数 FM、DCN 或字段关系模块
同一用户面对不同候选表示相同 历史聚合位置 候选相关聚合或 DIN
长序列没有明显收益 时间信息和状态形成 顺序编码、时间编码、去噪和序列结构
高频字段压制长尾字段 参数共享范围 Field-aware、Per-token FFN 或专家结构
深层模型连训练集都难拟合 信息与梯度通路 残差、归一化、初始化和优化器
多任务相互拖累 任务共享方式 MMoE、PLE 或梯度协调
离线增益无法满足线上延迟 计算结构 分阶段、蒸馏、量化、Mixer 或稀疏专家

结构判断还需要受控实验支撑。几个基本原则:

  • 固定数据切分、标签、特征和采样方式;
  • 分别做等参数量和等 FLOPs 比较;
  • 每次只改变一个主要结构因素;
  • 同时观察总体指标、关键用户分组、校准、训练成本和线上延迟;
  • 使用多个随机种子或置信区间判断微小收益是否稳定。

一些实验现象可以形成较明确的证据:

  • 训练集和验证集都随宽度改善,说明容量仍可能有用;
  • 训练集改善而验证集停滞,说明限制更接近泛化、样本或正则化;
  • 等预算下 FM 或 DCN 稳定优于 MLP,说明乘性交互结构更适合当前数据;
  • 打乱历史顺序后效果下降,说明模型确实利用了顺序信息;
  • 更换候选 Query 后用户状态几乎不变,说明候选条件化路径没有真正发挥作用;
  • 增加深度后训练损失也无法下降,说明训练通路比表达容量更值得优先检查;
  • 精度接近而延迟差异明显,说明优化对象已经转向执行方式。

一次结构优化可以写成:

\[\text{业务现象} \longrightarrow \text{结构判断} \longrightarrow \text{受控实验} \longrightarrow \text{证据结论} \longrightarrow \text{定向调整} \]

这套方法不能保证一次找到最优模型,但它能让实验具有明确目的:每个改动都在验证某一种信息处理假设,而不是只看模型名字是否更新。

image

结语

用三个递进层次总结全文:

推荐系统在多重条件和约束下完成候选选择与列表决策。

推荐模型通过条件响应估计和候选价值建模,为这个决策提供依据。

模型结构通过表示、交互、聚合、状态更新、参数共享和任务输出,实现这些估计。

理解一个推荐模型时,不再只问它用了 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.
http://www.jsqmd.com/news/1308103/

相关文章:

  • 光谷高考复读怎么选?就近选江夏十字岭襄五校区,高效备考 - 湖北找学校
  • 如何快速退出Windows Insider计划:OfflineInsiderEnroll完整使用指南
  • AXI协议实战:握手机制、突发传输与错误处理的深度解析
  • 溧阳市吊车折出租公司哪家好,随车吊出租公司哪家好?2026避坑指南:4个常见坑+5条硬标准 - GEO99
  • 长沙卖黄金6大注意事项,卖金前必看 - 一日一测评
  • 2026年伊春企业宣传片制作公司推荐:会议活动拍摄_视频直播_政企影像_党建视频全品类服务商能力对比 - 政企影像扫地僧
  • 精细化工企业老板对配方管理的困扰是什么?如何构建配方管理系统?
  • 2026武陵区空调维修门店哪家好,制冰机维修门店哪家好|七七七家电维修中心公司推荐 - GEO99
  • HFSS仿真排错实战指南:从网格剖分到结果验证的完整流程
  • FOC电机控制核心:电流环原理、设计与调试全解析
  • 英雄联盟玩家必看:5大核心功能让你的游戏体验提升200%的LeagueAkari工具包深度指南
  • 2026年2月最新郾陵县月嫂育儿嫂机构哪家好横向测评:从咨询响应到售后回访,5家机构全流程对比 - GEO99
  • 2026 年新消息:容县评价高的杜康酒招商供应厂家电话,错过这波错过全年!这款国民老酒招商,凭啥让经销商抢着要?-豫之醉杜康酒业 - 实业推荐官【官方】
  • 秦淮区防水补漏 夫子庙瑞金路 久固24小时上门避坑指南 - 产品评测官
  • 博文已索引但不展示:一次 Bing SEO 问题排查记录
  • 2026年8月景德镇旅行社高端定制服务报告:方诚旅游稀缺资源+奔驰/埃尔法 - 江西旅讯
  • 设备一震动网线就掉?卡侬自锁RJ45防脱选型速查:90°还是180°别改模
  • 2026潮汕旅游避坑指南:8位本地导游怎么选? - 纯玩旅游推荐官
  • B站视频下载工具:三步解决视频离线观看难题
  • 2026滨江区搬家搬运公司哪家好|滨江区搬家口碑公司推荐,玖邦一站式省心省钱 - GEO99
  • 2026蕲春县外墙防水补漏公司推荐|左邻右舍外墙防水口碑之选 - GEO99
  • 2026年南湖区嘉兴电线电缆回收哪家强?正规厂家推荐与选择指南! - 优质品牌商家
  • 长葛市育婴师培训机构推荐,养老护理培训机构哪家好?2026避坑指南:4个常见坑+5条硬标准 - GEO99
  • 【Bug已解决】FSDP2 + SHARDED_STATE_DICT: optimizer checkpoint load fails with missing step key. (RuntimeE
  • 成都龙泉驿区刹车系统维修怎么选?2026年本地服务商综合观察 - 优质品牌商家
  • 2026Q3天津代理记账收费标准明细|揭秘低价代账套路,企业缴费不踩坑 - 品牌优企推荐
  • Realtek 8922AE WiFi 7网卡驱动安装完整指南:三分钟解锁极速网络体验
  • 树莓派相机模组如何适配C/CS接口变焦镜头:从硬件选型到软件调优全攻略
  • 智慧仓储项目招投标如何选型?六大核心指标评估数字孪生方案能力
  • 国产 LY-3000 多功能管线探测仪器新能源一线作业应用