美文网首页
推荐系统与深度学习(14)[腾讯 SIGIR'20] TFNet

推荐系统与深度学习(14)[腾讯 SIGIR'20] TFNet

作者: 银色尘埃010 | 来源:发表于2021-11-14 19:49 被阅读0次

    以下仅仅为个人对文章的阅读记录,如有错误,欢迎指正。如需转载注明来源即可~~ (哈哈哈哈哈,点个赞再走)

    Wu S, Yu F, Yu X, et al. TFNet: Multi-Semantic Feature Interaction for CTR Prediction[C]//Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval. 2020: 1885-1888.
    原文链接:https://arxiv.org/pdf/2006.15939.pdf

    一、简介与主要贡献

    提高CTR预测率的文章。以前的一些CTR预测模型例如FM、Wide&Deep、BFM、DeepFM等都大多数使用特征对之间的向量乘积(vector-product of each pair of features),但是忽略了不同语义空间中的特征交互(Multi-semantic Feature Interaction)。文中指出不同的特征交互可能发生在不同的语义空间中。例如:(user, ad)对和(banner-position,ad)在不同的语义空间下。前者学习用户对广告的喜好, 而后者后者代表广告主在这个广告上所支付的费用的影响。而这通过简单的向量乘积无法学到。
    所以本文引入了操作张量(operating tensor),通过多层矩阵来刻画特征之间的相互作用,从而获得多个语义空间的差异。如下图,中间的通道计算过程。


    TFNet模型完整结构

    二、TFNet 模型介绍

    TFNet模型和其他多塔结构(WDL、DeepFM)差不多,通过不同的通道学习不同的信息,TFNet模型主要由三个通道构成。图中最上面的通道学习高阶交互信息,将初始的embedding 矩阵 E \in \mathbb{R}^{n \times d }连接之后变成一维矩阵后输入到一个DNN矩阵,这一部分不用过多介绍;中间的学习多语义交互特征,接下来会介绍;最下层保留初始embedding特征。最后将三部分的输出连接输入到一个LR或者DNN层中获得最后的输出。

    2.1 多语义特征交互层实现。

    首先引入了一个三阶的operating tensor T_1 \in \mathbb{R}^{d \times m \times d}, 其中m是超参数,表示语义空间的大小,其中 T^{[i]}_1 \in \mathbb{R}^{d \times d}。原来的FM或者IPNN在对特征对<v_i,v_j> 都是使用內积或者哈德玛积,表示交互关系。但是在这里需要通过以下方式获得m个语义空间下的表示:
    \mathrm{s}_{i j}=\mathrm{v}_{i}^{T} \mathrm{~T}_{1} \mathrm{v}_{j} 其中 s_{ij} \in \mathbb{R}^{m}。i和j表示特征对,一共有q = n * (n-1)/2个特征对,所以交互矩阵 S \in \mathbb{R} ^{q \times m}
    具体的,对于特征对 <v_i,v_j> 和 某一个语义空间 T^{[i]}_1, 计算结果\ \mathbf{v}_{i}^{T} \mathbf{T}_{1}^{[i]} \mathbf{v}_{j}都是一个常量。

    在获得了交互矩阵S之后,作者设计了一个control gate 来选择重要的交互特征。\boldsymbol{g}_{c} \in \mathbb{R}^{q} 为初始的control gate,最后的输出为 \boldsymbol{s}_{h}=\boldsymbol{S}^{T} \boldsymbol{g}_{c} \in \mathbb{R}^{m} 。 这里 \boldsymbol{g}_{c} 应该也是随机初始化,然后学习的参数。
    \boldsymbol{s}_{h} 会和第一和第三通道的输出一起连接,然后求出最后的概率。

    2.2 计算 T_1

    作者表示不同的语义空间需要有不同的重要性,所以需要通过一个Adaptive Gate来学习T1。


    为了学习T1,需要初始化一个三阶矩阵 T_3 \in \mathbb{R}^{d \times m \times d},通过 T3计算Adaptive Gate \mathrm{g}_{a}=\operatorname{softmax}\left(\mathrm{v}_{i}^{T} \mathrm{~T}_{3} \mathrm{v}_{j}\right) \in \mathbb{R}^{m} 。 然后还需要去初始化一个meta-operating tensor T_2 \in \mathbb{R}^{d \times m \times d}, 然后 \mathrm{T}_{1}=\mathrm{g}_{a} \odot \mathrm{T}_{2}
    所以总结来说中间通道需要学习的参数有 T2,T3,g_c

    三、实验分析

    数据集: Avazu 和 Criteo。

    3.1 TFNet效果

    3.2 超参数分析

    • slice 数量
    • embedding 维度


    3.3 在线分析

    四、 个人小结

    主要在于多语义空间的设计,和Memory Based 方法有点类似。不过我有一些不理解。
    (1) 为了T1不能够初始化。而是需要通过T3、T2计算,要知道softmax还挺耗时的。而且第二个通道用了计算了两次特征对于三阶矩阵的乘法也是挺耗时的。回到最开始的问题,文中给出的理由是不同的语义空间需要有不同的权重,那么为什么不是在获得多语义空间矩阵S之后再计算重要性,如果是这样,只需要在Control Gate 之前或者之后 再 在语义空间方向上加一个门即可。而且T3、T2参数是初始化一个T1的两倍,空间复杂度也会下降。
    (2) 个人认为文中需要消融分析来进行说明,比如

    • 上面提到的直接初始化T1,而不是通过原文中计算出来。
    • 取消control gate,而是直接将S交给DNN。
    • 取消提出的多语义空间层,只保留第一和第三个通道。这样 直接说明 多语义空间层带来的提升。
    • 与前者进行对于,只保留第二个通道中的DNN之后的内容。即完整模型保留两个DNN。说明我们带来的效果是因为涉及了多语义空间部分。

    相关文章

      网友评论

          本文标题:推荐系统与深度学习(14)[腾讯 SIGIR'20] TFNet

          本文链接:https://www.haomeiwen.com/subject/vlexultx.html