TFNet: Multi-Semantic Feature Interaction for CTR Prediction 论文简读

TFNet: Multi-Semantic Feature Interaction for CTR Prediction 论文简读

TFNet

文章信息

广而告之

可以在微信中搜索 “珍妮的算法之路” 或者 “world4458” 关注我的微信公众号;另外可以看看知乎专栏 PoorMemory-机器学习, 以后文章也会发在知乎专栏中;

主要内容

本文介绍了 Tensor-based Feature interaction Network (TFNet) 模型, 它引入了一个 operating tensor, 由 multi-slice matrices 组成, 可以实现在多种语义层面的特征交叉. 网络结构图如下:

其中 tensor-based feature interaction layer 的实现如下:

假设每个 field 对应的 embedding v i ∈ R d \bm{v}_i\in\mathbb{R}^{d} viRd, 引入 T 1 ∈ R d × m × d \bm{T}_1\in\mathbb{R}^{d\times m\times d} T1Rd×m×d 这个 3 阶的 operating tensor, 其由 m m m 个大小为 T 1 [ i ] ∈ R d × d \mathrm{T}_{1}^{[i]} \in \mathbb{R}^{d \times d} T1[i]Rd×d 的 slice 组成, 它对要交叉的 feature pair ( v i , v j ) (\bm{v}_i, \bm{v}_j) (vi,vj) 进行操作, 得到在某个语义空间下的表示. 由于 T 1 \mathrm{T}_{1} T1 包含 m m m 个 slice matrix, 因此可以得到一个 feature pair 在 m m m 个语义空间下的表示:

s i j = v i T T 1 v j \mathbf{s}_{i j}=\mathbf{v}_{i}^{T} \mathbf{T}_{1} \mathbf{v}_{j} sij=viTT1vj

其中 s i j ∈ R m \mathbf{s}_{i j}\in\mathbb{R}^{m} sijRm. 最后将所有交叉特征的结果 concatenation 起来, 可以得到 S ∈ R q × m \bm{S}\in\mathbb{R}^{q\times m} SRq×m, 其中 q = n ∗ ( n − 1 ) / 2 q=n *(n-1) / 2 q=n(n1)/2.

注: feature pair ( v i , v j ) (\bm{v}_i, \bm{v}_j) (vi,vj) 在某一个语义空间中的表示为一个 scalar, 即 v i T T 1 [ i ] v j \mathbf{v}_{i}^{T} \mathbf{T}_{1}^{[i]} \mathbf{v}_{j} viTT1[i]vj 的结果为 scalar, 假设

v i = [ u 1 , u 2 ] T v j = [ v 1 , v 2 ] T T 1 [ i ] = [ a b c d ] \bm{v}_i = [u_1, u_2]^T \\ \bm{v}_j = [v_1, v_2]^T \\ \mathbf{T}_{1}^{[i]} = \left[ \begin{matrix} a & b\\ c & d \end{matrix} \right] vi=[u1,u2]Tvj=[v1,v2]TT1[i]=[acbd]

v i T T 1 [ i ] v j \mathbf{v}_{i}^{T} \mathbf{T}_{1}^{[i]} \mathbf{v}_{j} viTT1[i]vj 的结果为:

[ u 1 , u 2 ] ⋅ [ a b c d ] ⋅ [ v 1 v 2 ] = a u 1 v 1 + c u 2 v 1 + b u 2 v 1 + d u 2 v 2 [u_1, u_2]\cdot\left[ \begin{matrix} a & b\\ c & d \end{matrix} \right]\cdot\left[ \begin{matrix} v_1\\ v_2 \end{matrix} \right] = au_1v_1 + cu_2v_1 + bu_2v_1 + du_2v_2 [u1,u2][acbd][v1v2]=au1v1+cu2v1+bu2v1+du2v2

这个运算实际上可以转换为, 先做 v i v j T \mathbf{v}_{i} \mathbf{v}_{j}^T vivjT 生成大小为 d × d d\times d d×d 的矩阵后, 再和 T 1 [ i ] \mathbf{T}_{1}^{[i]} T1[i] 做哈达玛积, 最后对矩阵中的所有值求和:

sum ( [ u 1 u 2 ] ⋅ [ v 1 , v 2 ] ⊙ [ a b c d ] ) = sum ( [ u 1 v 1 u 1 v 2 u 2 v 1 u 2 v 2 ] ⊙ [ a b c d ] ) = a u 1 v 1 + c u 2 v 1 + b u 2 v 1 + d u 2 v 2 \begin{aligned} &\text{sum}\left(\left[ \begin{matrix} u_1\\ u_2 \end{matrix} \right]\cdot[v_1, v_2]\odot\left[ \begin{matrix} a & b\\ c & d \end{matrix} \right]\right) \\ =& \text{sum}\left(\left[ \begin{matrix} u_1v_1 & u_1v_2\\ u_2v_1 & u_2v_2 \end{matrix} \right]\odot\left[ \begin{matrix} a & b\\ c & d \end{matrix} \right]\right) \\ =& au_1v_1 + cu_2v_1 + bu_2v_1 + du_2v_2 \end{aligned} ==sum([u1u2][v1,v2][acbd])sum([u1v1u2v1u1v2u2v2][acbd])au1v1+cu2v1+bu2v1+du2v2

另外, 不同语义空间应该有不同的权重, 所以作者又介绍了 Adaptive Gate 来学习 T 1 \bm{T}_1 T1, 方法如下:

不做详细介绍了, 时间宝贵~ 其中:

g a = softmax ⁡ ( v i T T 3 v j ) \mathbf{g}_{a}=\operatorname{softmax}\left(\mathbf{v}_{i}^{T} \mathbf{T}_{3} \mathbf{v}_{j}\right) ga=softmax(viTT3vj)

最后再回到第一张图 (网络结构图), 其中 S ∈ R q × m \bm{S}\in\mathbb{R}^{q\times m} SRq×m, 其中 q q q 为交叉特征的个数, S \bm{S} S 保存了这些交叉特征在 m m m 个语义空间中的表达, 之后 g c ∈ R q \bm{g}_c\in\mathbb{R}^{q} gcRq 在论文中被称为 Control Gate, 用于选择重要的交叉特征, 因此得到 s h = S T g c ∈ R m \bm{s}_h = \bm{S}^T\bm{g}_c\in\mathbb{R}^{m} sh=STgcRm

另外本文可以结合 FiBiNet 中用到的 Bilinear Interaction Layer 一起看看, 相互对比下. (详见: FiBiNet 网络介绍与源码浅析)

结论

论文简读写的字还是得尽量少些~ 🤣

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值