sgr-interview-300

第 133 题:NFM的Bi-Interaction Pooling,特征交互的显式建模?

题目

NFM的Bi-Interaction Pooling,特征交互的显式建模?


完整讲解

一、NFM 与 Bi-Interaction Layer

NFM(Neural Factorization Machine) 在 FM 基础上加隐层,将二阶交互的向量表示再经 MLP 得到高阶非线性。核心是 Bi-Interaction Pooling:对嵌入矩阵 $\boldsymbol{E}$(每行一特征嵌入),先做逐元素二阶交互再池化,得到固定维向量,再送 MLP。

二、Bi-Interaction Pooling 的形式

设特征嵌入为 ${\boldsymbol{v}_i x_i}$(非零特征对应的嵌入),Bi-Interaction 定义为 \(f_{\text{BI}}(\mathcal{V}) = \sum_{i<j} (\boldsymbol{v}_i \odot \boldsymbol{v}_j) x_i x_j = \frac{1}{2}\left[ \left(\sum_i \boldsymbol{v}_i x_i\right)^2 - \sum_i (\boldsymbol{v}_i x_i)^2 \right],\) 其中 $\odot$ 为逐元素乘,$(\cdot)^2$ 为逐元素平方。即先对「嵌入的和」平方、再减去「嵌入平方的和」,得到与 FM 二阶等价的向量(而非 FM 的标量),该向量维度与单嵌入相同,显式编码了所有二阶交互的向量表示。

三、显式建模与 FM 的区别

四、复杂度与实现


面试要点


记忆要点

返回模块 返回总览