Paper-Neural Factorization Machines for Sparse Predictive Analytics

Abstract

  • 许多预测任务需要对类别特征进行建模(如:ID),一般会对数据onehot,这会使得数据极其稀疏。要从这样的稀疏数据中学习,重要的是要考虑特征之间的相互作用[4, 23, 31]。
  • FM考虑特征之间的相互作用,但是只是线性关系,Wide&Deep和DeepCross中则有非线性关系,但是深层结构使其难以训练,结合一波。
  • 本文提出了一种NFM,比FM更具表达能力,因为FM可以被看作是NFM没有隐藏层的特殊情况。对两个回归任务的实证结果表明,有一个隐含层时NFM显著优于FM,相对改善率为7:3%。
  • 与近年来的Wide&Deep和DeepCross学习方法相比,NFM采用了较浅的结构,但其性能更高,在实践中更容易训练和调整。

1.INTRODUCTION

  • 已有的技术:
    • 手动变量交叉:由于需要大量的工程技术和有用的领域知识来设计特征,所以这些特征的代价是很高的。不能推广到训练数据中没有出现的组合特征。
    • 设计ML模型来自动地从原始数据中学习特征交互,将高维稀疏特征嵌入到低维潜在中空间,可以推广到看不见的特征组合:
      • FM,性能受其线性性质的限制,难以估计参数。
      • 基于神经网络的非线性模型
  • 本文通过建模高阶和非线性特征交互增强FM。通过设计神经网络中的新操作 - 双线性交互(双向交互)pooling(Bilinear Interaction (Bi-Interaction) pooling)——首次在神经网络框架下加入FM。通过在双向交互层(Bi-Interaction layer)上方堆叠非线性层,我们能够加深浅线性FM,有效地建模高阶和非线性特征的相互作用,以提高FM的表现力,双向交互pooling编码更多互相影响的特征(?)。传统方法简单地将低层的embedding向量连接or求平均,我们用双线性交互(双向交互)pooling编码更多交互特征信息,使得后面的层能学习更有意义的信息。
  • 本文贡献:
    • 引入双向交互池操作,并为FM提供一种新的神经网络视角。
    • 开发了一种新的NFM模型,用于在神经网络框架下深化FM,用于学习高阶和非线性特征交互。
    • 我们对两个实际任务进行了广泛的实验,研究了双向交互池和NFM模型,证明了NFM的有效性,并且在稀疏的预测中使用神经网络进行预测具有很大的希望。

2.现有的特征交互建模

2.1FM

  • FM开始用于协同推荐。
  • 模型详解:见论文。
  • 模型优缺点:
    • FM有很强的通用性,与仅仅建模两个实体(entity)关系的矩阵分解相反,FM用于学习任何实值的特征向量。通过指定输入特征,FM可以模仿许多特定的分解模型,如标准MF,并行因子分析和SVD ++。
    • FM试用特征间的二阶分解相互作用来增强LR。
    • 仍然是线性的。
  • 模型变体:CoFM、FFM、AFM、

2.2DNN

  • 面临问题:DNN很少用到IR和DM中来,IR和DM任务的大多数数据稀疏,例如用户行为,文档/查询等。尽管DNN在密集数据中表现出很强的学习能力,但在稀疏数据上的使用却不大行。
  • 相关工作:
    • 提出了neural collaborative Filtering (NCF) 框架,后来NCF框架被扩展为属性感知(attribute-aware)CF的模型属性交互(?)。然而,该方法仅适用于学习两个实体之间的交互,并不直接支持监督学习的一般情况。
    • FNN:通过FM学到的特征嵌入来初始化DNN。
    • Wide&Deep:连接嵌入特征向量以学习特征交互。
    • DeepCross:用于广告预测。把Wide&Deep的MLP用先进的残差网络替换。
  • 原理:网络结构相似,都是在embedding向量的串联之上堆叠多个层以学习特征交互,期望多层可以隐式方式学习任意阶的组合特征。
  • 关键弱点:简单地连接(concat)特征embedding向量带来了太少的低级特征交互的信息。一个研究[16]表明简单地连接用户和item的embedding向量导致协同过滤的结果很差。要解决这个问题,必须加深网络层次来学习有意义的交互。但是深层学习可能又会产生梯度消失/爆炸,这使得模型训练困难,这又引出了模型难训练的问题。
  • 解决:我们提出了一种新的Bi-Interaction操作来模拟二阶特征交互,而不是连接特征嵌入向量。进一步探索了使用FM学习的特征嵌入来初始化DNN,这可以被视为一个预训练步骤。

3.神经因子机

3.1NFM模型

  • 公式:其中的的f(x)是网络模型部分,是一个多层NN。

  • 图示:

  • 组成:

    • embedding层:全连接,将特征投影到稠密向量表示。vi是第i个特征对应的一个实数embedding向量。有:Vx={x1v1,……,xnvn}(其中xi是实数,xi≠0的才能留在这个embedding向量中)。注意:我们用输入特征值调整了embedding向量,这里不仅仅是一个简单的lookup表。

    • Bi-Interaction层:池化操作,将一组embedding向量Vx转化为一个向量。与平均、最大池化相同。

      • 符号:
        • 中间的符号:表示两个向量的对应位元素乘法。
        • v2:v中间的符号v
      • 公式:

      • 意义:其编码embedding空间中的特征之间的二阶交互。
      • 优点:这个操作没有引入额外模型参数,且可以在线性时间内计算。

    • 隐藏层:全连接,学习特征的高阶交互。

    • 预测层:最后是线性的,无sigmoid和softmax

  • 与FM关系:FM是一种浅层、线性的模型,可以看作NFM的没有隐藏层的特例。将隐藏层高度设置为0,直接将Bi-Interaction pooling 输出映射为预测值,将这个模型记为NFM-0,通过将h设置为一个常数向量(1,……,1),可以得到一个FM模型。

  • 拓展:可以在Bi-Interaction层加入dropout。
  • 与Wide&Deep、DeepCross的关系:略,见论文。
  • 时间复杂度:略,见论文

3.2学习过程

  • 目标函数:
    • 回归:平方损失
    • 分类:hinge损失或log损失
    • 排序: pairwise personalized ranking损失或contrastive max-margin损失
  • 学习算法:SGD(Adagrad)。学习率可以在训练阶段自我调整,这减轻了选择正确学习率的痛苦,并导致比vanilla SGD更快的收敛。
  • dropout:
    • 在Bi-Interaction层上采用,获取fBI(Vx)后随机丢弃ρ。由于没有隐藏层的NFM就成为了FM,因此可以将这个操作视为正则化FM的新方法。
    • 在每个隐藏层上使用。
  • BN:
    • dnn训练的一个难点就是协方差飘移(covariance shift)。这意味着每个层输入的分布在训练期间会发生变化(因为前一个层的参数会发生变化)。 结果,后一层需要在更新其参数时适应这些变化(噪声很大),这会不利地减慢训练速度。
    • 在Bi-Interaction层上采用,避免输入到隐藏层或预测层的数据分布被特征embedding改变。
    • 在每个隐藏层上使用。

4.实验

5.结论&未来工作

  • 这项工作是弥合线性模型和深度学习之间差距的第一步。
  • 更深层次的模型并不一定会导致好的结果,因为更深层次的模型不太透明,更难以优化和调整。因此,我们预计未来对IR深度学习的研究应该更多地关注设计神经元件或特定任务的架构,而不是依靠更深层次的模型进行微小改进。
  • 将来,我们将通过使用散列技术[32,41]来提高NFM的效率,使其更适合大规模应用,并研究其其他IR任务的性能,例如搜索排名和目标广告。

一些问题

  • 为什么 要从这样的稀疏数据中学习,重要的是要考虑特征之间的相互作用
  • LR是线性的?
  • FM可以模仿许多特定的分解模型?

  • embedding是怎么来的?见[27]
  • 协方差飘移?见[20]