这篇论文主要提出了一个网络,成为Multi-Factor Generative Adversarial Network,直接翻译过来的话就是多因子生成对抗网络。主要是期望能够探究影响推荐的其他因子(因素)到底起到了多大的作用。这里的因子指的是上下文的信息。说明:后文中判别器和鉴别器是相同的。

里面的核心有两个部分:

  • 基于Transformer的生成器,将用户行为序列作为输入,推荐可能的下一个项目,并采用多个特定因素的判别器,从不同因素的角度评估生成的子序列。
  • 使用多因子的判别器,利用判别器的奖励信号来指导生成器的学习,也就是说使用了强化学习的方式进行训练。这些奖励信号来源于上下文的因子,使用的是多鉴别器的结构。

以前的论文主要还是基于Markov假设,并且使用了循环神经网络或者Transformer等网络结构来处理用户和物品的交互,这些方法利用了上下文的信息,能够很有效的表示了用户的行为。

序列的推荐器通常会使用极大似然估计进行优化,然而,很多论文发现基于MLE的训练很容易受到数据稀疏性或暴露偏差等问题的影响。

这篇论文的一个创新之处在于,利用生成对抗网络,希望能够从序列预测当中将因子利用部分解耦。对抗学习与推荐系统结构的方法,在这篇论文当中也有表述:在本文的框架中,生成器仅依靠用户与物品的交互数据预测未来的推荐物品,而判别器则根据现有的各种因素信息判断生成的推荐序列的合理性。这种方法可以更灵活地利用外部上下文形成顺序推荐,能够提高推荐的可解释性。

问题的假设为,有一组用户,每个用户都会对应一组物品,物品是具有时间顺序的。因子在这里也给出了例子,比如在音乐推荐中,因子(上下文)就表示如艺术家、专辑、人气等等。那么,最终要解决的问题就是,给出用户的一段交互历史,希望能预测该用户最可能的下一个交互的物品。

生成器就是比较常规的生成器,输入交互的物品序列,生成用户下一个交互物品的预测。而判别器有点不一样,判别器有多个,其数目取决于有多少因子(上下文),利用多角度的信息判断生成序列的合理性。每个判别器都会将物品序列作为输入,判别器的参数根据生成的交互物品序列以及真实的交互物品序列进行更新的。

【我不禁想到了如果因子很多很多,那岂不是要爆炸……所以感觉有点像是是面向数据集设计模型方法了。】

论文的结构图如下:

[SIGIR2020] Sequential Recommendation with Self-Attentive Multi-Adversarial Network-LMLPHP

MFGAN论文结构图

搞个这样的模型有三点原因:

  1. 使用最大似然损失的直接优化来训练一个基于生成的顺序推荐器是比较困难的。
  2. 将各种因子纳入到判别器进行处理,使模型更加灵活的处理多因子以及噪声。
  3. 使用多鉴别器将因子从原有的框架中解耦,提高可解释性,避免多因子蹂躏在一起相互影响。

生成器的主要组成模块:

  • 编码层,将one-hot的表示编码成d维的稠密表示,然后形成一个物品的编码矩阵以及位置位置编码矩阵。将这两个矩阵进行加和就成了生成器的输入表示。
  • 自注意力层。里面用的是多头的注意力模块,包括两个子层:多头注意力子层以及前向传播层。为了有效地提取不同表征子空间的信息,采用了多头注意力机制,而不是用单一的关注函数来关注用户序列的信息。值得一提的是,在顺序推荐中,只能利用当前时间步长之前的信息,对多头自注意力函数的输出进行掩码操作。
  • 预测层(预测下一个交互的物品),使用的是softmax操作进行预测。

对于鉴别器来说:

  • 由于这篇论文的鉴别器是针对因子所设计的多个鉴别器的组合,每个鉴别器对产生的序列进行了二分类的操作,分辨是真实的序列还是预测的序列。对不同的鉴别器使用不同的参数,并且他们之间互相独立。
  • 编码层。同样的,也是使用了一个编码矩阵以及位置矩阵进行加和。首先将一个因子的可能值分解成若干个bin,然后为每个bin设置一个唯一的编码向量,最后通过对输入序列中bin ID的编码进行连接,利用查找操作得出最后的编码矩阵。
  • 自注意力层。跟生成器结构类似,也是使用了注意力机制以及前向传播层。这里每个鉴别器都只用了一个注意力模块,防止太强而不能对生成器进行合适的优化。主要结构是双向结构并且没有mask进行掩码操作。用这种方式能够对序列当中的任意两个位置的交互进行建模。
  • 合理性预测层。使用了多层感知机的结构,用来对合理性进行预测。多个鉴别器产生的合理性分数能够指导生成器的学习(强化学习)。

由于物品集的采样是一个离散的过程,所以对于我们的推荐任务,不能直接应用梯度下降法来解决原来的GAN公式。所以需要强化学习进行指导。接下来说强化学习如何接管。按照强化学习的设定:

  • 状态s是前面的子序列
  • 动作a是所选择的下一个物品
  • 选择策略π是生成器网络,整个网络可以看做是策略
  • 奖励信号r就是不同鉴别器给出的合理性分数,Q-value函数使用的是不同鉴别器合理性分数的加权组合,权重是各个鉴别器合理性分数的\(\lambda\)参数化的softmax结果。

整体算法流程

04-11 00:17