三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

RankMixer 中 Semantic Split 与 Auto Split 的 Token 构造方式分析

RankMixer 中 Semantic Split 与 Auto Split 的 Token 构造方式分析

RankMixer 中 Semantic Split 与 Auto Split 的 Token 构造方式分析

在 RankMixer 中,原始推荐特征需要先被组织成若干 Token,再进入后续的 Token Mixing 和 Per-token FFN。不同 Token 构造方式,本质上决定了模型在进入 RankMixer 之前如何组织和压缩原始特征信息。

目前可以将 Token 构造方式概括为 Semantic Split 和 Auto Split 两种。

1. 两种 Token 构造方式

假设原始特征经过 Embedding 后拼接得到:

\[X\in R^D \]

最终希望构造 \(T\) 个 Token,每个 Token 的维度为 \(d\),则 RankMixer 的输入为:

\[H\in R^{T\times d} \]

例如需要构造 10 个 Token,每个 Token 为 24 维,则最终需要得到:

\[10\times24=240 \]

维的 Token 表示。

Semantic Split

Semantic Split 首先根据特征语义,将原始特征划分为 \(T\) 个组:

\[X=[X_1,X_2,\cdots,X_T] \]

其中第 \(i\) 组特征维度为 \(D_i\),并满足:

\[\sum_{i=1}^{T}D_i=D \]

每一组使用独立的投影矩阵:

\[Token_i=X_iW_i \]

其中:

\[W_i\in R^{D_i\times d} \]

最终得到:

\[[Token_1,Token_2,\cdots,Token_T] \]

因此,Semantic Split 的特点是先按照语义划分特征,再分别完成组内投影。

Auto Split

Auto Split 不提前划分语义组,而是将所有特征统一拼接后,直接进行一次全局投影:

\[Y=XW \]

其中:

\[W\in R^{D\times Td} \]

随后将输出的 \(Td\) 维向量 reshape 为:

\[T\times d \]

例如:

\[D\rightarrow240\rightarrow10\times24 \]

因此,Auto Split 实际上是先完成一次全局特征投影,再将投影结果切分为不同 Token。


2. 参数量差异

Semantic Split 中,每个特征组都有自己的投影矩阵 \(W_i\),总参数量为:

\[P_{Semantic} = \sum_{i=1}^{T}D_i d = Dd \]

Auto Split 使用一个统一的大权重矩阵:

\[W\in R^{D\times Td} \]

因此参数量为:

\[P_{Auto}=DTd \]

二者的比例为:

\[\frac{P_{Auto}}{P_{Semantic}}=T \]

也就是说,在最终 Token 数量相同的情况下,Auto Split 的 Tokenization 投影参数量约为 Semantic Split 的 \(T\) 倍。

例如最终划分为 7 个 Token,则 Auto Split 在这一层的参数量约为 Semantic Split 的 7 倍。


3. 信息交互范围不同

两种方案另一个重要区别,是 Tokenization 阶段能够看到的特征范围不同。

Semantic Split 中:

\[Token_i=X_iW_i \]

因此第 \(i\) 个 Token 只能由第 \(i\) 组特征生成。

例如:

\[X_1\rightarrow Token_1 \]

\[X_2\rightarrow Token_2 \]

不同语义组之间在 Tokenization 阶段没有直接的信息混合,跨 Token 的信息交互主要交给后续 Token Mixing 完成。

因此 Semantic Split 本质上首先完成的是组内特征压缩。

Auto Split 中:

\[[Token_1,\cdots,Token_T]=XW \]

由于 \(X\) 中包含全部原始特征,所以每一个输出 Token 都可以由全部输入特征共同决定。

因此 Auto Split 在完成 Token 构造的同时,已经进行了一次全局特征线性组合。


4. 更本质的区别:权重矩阵结构不同

image

两种方法最核心的差异,可以统一从权重矩阵的角度理解。

Semantic Split 看起来是多个独立的 Linear:

\[X_1W_1,\quad X_2W_2,\quad \cdots,\quad X_TW_T \]

但实际上可以统一写成:

\[[X_1,X_2,\cdots,X_T] \begin{bmatrix} W_1&0&\cdots&0\\ 0&W_2&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\cdots&W_T \end{bmatrix} \]

也就是说,Semantic Split 等价于使用一个具有明显块对角结构的权重矩阵。

其中大量跨语义组的连接被直接限制为 0。

例如,第一个 Token 对应的权重只作用于 \(X_1\),而不会直接读取 \(X_2\)、\(X_3\) 等其他语义组。

Auto Split 则使用一个完整的权重矩阵:

\[W= \begin{bmatrix} *&*&\cdots&*\\ *&*&\cdots&*\\ \vdots&\vdots&\ddots&\vdots\\ *&*&\cdots&* \end{bmatrix} \]

不同输入特征都可以连接到不同输出 Token。

因此,两种方式最终都可以理解为学习一个从原始特征空间到 Token 空间的权重矩阵,区别在于权重矩阵受到的结构约束不同。

Semantic Split 中,人工语义分组提前规定了哪些连接可以存在,模型实际学习的是多个局部权重矩阵:

\[W_1,W_2,\cdots,W_T \]

Auto Split 中,则直接学习一个完整的大权重矩阵 \(W\),由模型自行决定不同原始特征应该如何组合到不同 Token 中。

从这一角度看:

Semantic Split 是带人工语义结构约束的 Block-Diagonal Projection。

Auto Split 是没有显式语义约束的 Global Dense Projection。


5. 两种方式的能力差异

Semantic Split 引入了较强的人工先验。

人工提前规定哪些特征属于同一语义空间,可以减少模型需要学习的自由度,同时显著降低参数量。

它的主要特点是:

  • 参数量更小;
  • Token 语义更加明确;
  • 特征组织结构更加稳定;
  • 参数利用效率较高;
  • 更适合受到模型大小和线上计算成本约束的工业推荐场景。

Auto Split 则将 Token 划分本身也交给模型学习。

由于每个输出 Token 都可以读取全部输入特征,因此模型具有更大的表示自由度,也能够学习人工分组之外的跨特征组合。

同时,这种自由度的代价是更大的参数量。

因此 Auto Split 的能力主要来自两个方面:

一是更大的 Tokenization 参数规模;

二是从 Token 构造阶段开始就具备全局特征组合能力。

这也意味着,Token 不再需要严格对应某一个人工定义的业务语义,而可以形成模型自行学习得到的 latent feature space。


6. 工业场景下的选择

从工业推荐模型的角度来看,两种方法并不存在绝对优劣,更重要的是模型容量、计算成本和表达能力之间的权衡。

对比维度 Semantic Split Auto Split
Token 构造 按语义分组后独立投影 全局投影后切分
投影矩阵 多个 \(W_i\) 单个大矩阵 \(W\)
权重结构 Block-Diagonal Dense
参数量 \(Dd\) \(TDd\)
Tokenization 信息范围 组内 全局
人工先验 强 弱
表达自由度 较低 较高
参数效率 较高 较低
Token 可解释性 较强 较弱

在参数规模、计算量和线上延迟受到约束的情况下,Semantic Split 通常更加适合工业实践。人工语义先验可以有效减少无必要的跨组连接,以更少的参数完成 Token 表征。

当模型容量充足,并且更关注模型表达能力而非参数效率时,Auto Split 则提供了更大的学习空间,使模型能够自行完成特征组合和 Token 空间划分。

因此,两种 Token 构造方式的核心区别可以概括为:

Semantic Split 利用人工语义先验换取更高的参数效率,Auto Split 利用更大的参数规模和更高的建模自由度换取更强的全局特征组合能力。

← 返回列表