美文网首页
推荐系统遇上深度学习(九十六)-[第四范式]考虑域内信息和多模块

推荐系统遇上深度学习(九十六)-[第四范式]考虑域内信息和多模块

作者: 文哥的学习日记 | 来源:发表于2020-10-08 09:46 被阅读0次

    本文介绍的论文是SIGIR20上第四范式发表的一篇文章,针对当前推荐系统模型没有利用域内信息,不同数据泛化性较差等问题,提出了Network On Network(简称NON),一起来学习一下。

    1、背景

    大多数推荐系统中所使用的数据都是表格型数据,如下图所示,每一列可以称为一个field:

    目前大多数推荐系统使用的是深度学习模型如Wide & Deep,DeepFM、xDeepFM或AutoInt,这些模型均由DNN和其他的操作如FM、Linear、Self-attention、CIN等一项或几项组成,在最后的输出层,将这几部分输出进行线性加权,最后经过sigmoid后得到点击率预估值:

    但上述的模型存在以下三方面的问题:

    1)往往只考虑不同域特征之间的交叉,域内信息没有充分考虑。这里个人感觉意思大概是说广告ID的embedding不仅能够表示这个广告,还应带有广告域的信息。所有广告ID对应的embedding应该具有一定的相似度。
    2)不同的模型结构是确定的,在不同数据上的泛化性能不能保证,无法根据不同数据的特性选择合适的结构。
    3)最后的输出层均采用的是线性加权的方式,忽略了不同模块输出之间的非线性关系。

    为了解决上述三方面的问题,论文提出了Network On Network(简称NON),我们将在下节进行介绍。

    2、Network On Network

    整个NON的模型结构如下图所示:

    整体模型可以拆分成三部分,分别是Field-wise network、Across field network和Operation fusion network。接下来对这三部分进行介绍。

    2.1 Field-wise network

    在Field-wise network,每一个域都有对应的DNN网络,因此称为Field-wise。域对应的DNN网络用来提取域内信息:

    在网络的最后部分,会对原始的embedding和经过NN网络处理的embedding进行融合:

    函数F可以是连接,对位相乘或者更加复杂的操作如门控机制。

    2.2 Across field network

    经过Field-wise network,每个域输出对应的embedding,接下来就是我们比较熟悉的方式了。Across field network包含了多个计算模块,包括:线性模块、DNN、self-attention、Bi-Interaction。其中Bi-Interaction是FM的泛化形式,计算公式如下:

    这里各部分的具体内容不再做介绍,不太了解的同学可以查阅相关资料。

    2.3 Operation fusion network

    在最后的Operation fusion network,首先将Across field network各模块的输出进行拼接,再经过DNN网络得到最终的输出:

    在这一部分,还使用辅助loss来帮助模型进行更好的学习,这里参考的论文是《Going deeper with convolutions》。其结构如下:

    具体的,对每一层网络的输出,都通过一层LR来预测对应的点击率,并与真实值计算logloss,这样每一层网络都能够有不错的区分性:

    最终的loss形式为:

    最后简单总结一下,模型的三部分分别对应第一节中提出的三个问题:

    1)使用Field-wise network来提取域内信息
    2)使用Across field network融合不同的计算模块,计算模块可任意组合
    3)通过Operation fusion network,以非线性的方式融合各模块的输出,并通过辅助loss来加速网络学习

    3、实验结果及分析

    最后,咱们来看一下实验结果。需要验证的问题主要有以下四个。

    首先,NON的结构设计是否合理?从下表来看,当包含所有的三个模块时,在所有的数据集上都达到了最好的结果:

    其次,与baseline模型相比,NON能否取得更好的效果?从下表看,在不同的数据集上,NON都取得了比baseline模型更好的结果:

    然后,对于不同的数据集来说,在Across field network使用的模块是否都是相同的?如果不同,不同的数据集使用的最优模块组合是什么?可以看到,不同数据集在使用不同模块组合时,AUC都是不相同的,最优状态下模块组合方式也不尽相同。不过可以总结出的一条经验是:对于小数据集来说,选择更少的模块能够取得更好的效果,对于大数据来说,需要更多更复杂的操作来取得更好的效果。

    最后,field-wise network能否有效提取域内信息?这里,随机选择不同数据集中两个field的数据,将不经过field-wise network的embedding和经过field-wise network得到的embedding分别使用t-SNE进行降维并绘制散点图。可以看到,经过field-wise network后的embedding,相同field的embedding更加接近,不同field间embedding的区分性更好。

    好了,论文就介绍到这里。论文中提出的网络结构,辅助loss这几个思路都不错,感兴趣的同学可以阅读原文或者在自己的业务上进行一定的尝试。

    相关文章

      网友评论

          本文标题:推荐系统遇上深度学习(九十六)-[第四范式]考虑域内信息和多模块

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