第 138 题:FwFM的场感知权重,二阶交互的场间差异建模?
题目
FwFM的场感知权重,二阶交互的场间差异建模?
完整讲解
一、FM 与场(Field)
Field 指特征所属的语义组(如 user_id、item_id、category、position 各为一 field)。标准 FM 的二阶项 $\langle \boldsymbol{v}_i, \boldsymbol{v}_j \rangle$ 不区分 $(i,j)$ 来自哪两个 field,所有特征对共用同一套隐向量空间。实际上不同 field 对之间的交互强度与模式可能不同(如 user×item 与 position×category 应有不同权重),场感知即对「场对」建模差异。
二、FwFM 的场感知权重
FwFM(Field-weighted FM) 为每对 field $(f_i, f_j)$ 引入标量权重 $w_{f_i, f_j}$,二阶项写为
\(y_{\text{FwFM}} = \sum_{i<j} w_{f_i, f_j} \cdot \langle \boldsymbol{v}_i, \boldsymbol{v}_j \rangle x_i x_j.\)
即先算 FM 的 $\langle \boldsymbol{v}i, \boldsymbol{v}_j \rangle$,再乘上场对权重 $w{f_i, f_j}$。不同 field 对(user-item、item-category、position-item 等)有不同的 $w$,可学到「哪类场间交互更重要」,实现场间差异建模。
三、参数量与实现
- 若有 $F$ 个 field,场对数为 $F(F-1)/2$,即 $w$ 共 $O(F^2)$ 个标量,通常 $F$ 不大(十到几十),参数量可接受。
- 与 FM 对比:FM 仅靠 $\boldsymbol{v}$ 隐式区分;FwFM 显式给场对加权,可解释(可看哪对 field 权重大)、且对「场间重要性」建模更直接。
- 与 FFM(Field-aware FM)区别:FFM 是每个特征在不同 field 下有不同隐向量($v_{i,f_j}$),参数量 $O(n \cdot F \cdot k)$;FwFM 仍是每特征一个 $\boldsymbol{v}i$,只加场对标量 $w{f_i,f_j}$,更省参数、实现更简单。
四、工程要点
- 实现时按 field 对索引 $w$,前向时根据 $i,j$ 的 field 取对应 $w_{f_i,f_j}$ 乘到 FM 二阶项上即可。
- 可与 Deep 结合为 FwFM + DNN,共享嵌入;$w$ 可加 L2 或稀疏约束避免过拟合。
面试要点
- 能写出 FwFM 的二阶形式 $w_{f_i,f_j} \cdot \langle \boldsymbol{v}_i, \boldsymbol{v}_j \rangle$ 及场对权重的含义。
- 能说明与 FM 的对比(FM 不区分场对、FwFM 显式场对权重);与 FFM 的对比(FFM 多套隐向量、FwFM 只加标量)。
- 能说清参数量 $O(F^2)$、可解释性与实现要点。
记忆要点
- FwFM:二阶项乘场对权重 $w_{f_i,f_j}$,场间差异显式建模;参数量 $O(F^2)$。
- FM 不区分场对;FFM 每特征多套隐向量;FwFM 单隐向量+场对标量,更省参。
- 可解释:看哪对 field 权重大;可与 DNN 结合。