作者:王玉菡 单位:武汉理工大学 方向:跨域推荐
本文是一篇发表在WWW2021上的基于图卷积神经网络的多样性推荐系统的研究——DGCN: Diversified Recommendation with Graph Convolutional Networks,主要包括研究内容的介绍、总结以及个人思考。
论文: dl.acm.org/doi/abs/10.1145/3442381.3449835
代码: https://github.com/tsinghua-fib-lab/DGCN
汇报: https://www.bilibili.com/video/av375826851?vd_source=207249dbfbe9517d1996d5729fd2b169
1 背景
推荐系统在初期阶段往往不能很好的服务用户,因为其只以“投其所好”为主要目标。然而,由于“信息茧房”问题越来越突出,推荐系统需要反思如何能够在提升用户满意度的同时,为用户提供更丰富多样的信息和服务。更多信息茧房内容可阅读深度剖析 | 推荐系统中的信息茧房问题——因果强化学习在交互式推荐的前沿探索。除了推荐内容的相关性外,许多因素也会影响用户对推荐内容的感知,如多样性、惊喜度、可解释性等。
该研究针对推荐系统的多样性,避免用户接收重复类型的推荐项目而带来信息冗余问题。具体而言,在推荐过程中不仅要关注用户和推荐项目之间的相近性(similarity),还要关注反映推荐系统多样性表现的项目间的差异程度(disimilarity)。针对推荐系统,通常会考虑两种类型多样性[1]:个体层次的多样性和系统层次的多样性。本研究主要针对个体层次的多样性(intra-user level)。
- 个体层次的多样性(intra-user level):衡量每个用户推荐物品的差异性,即推荐列表中项目在不同主题、不同方向上分布的平衡程度。
- 系统层次的多样性(inter-user level):考虑整个推荐系统的推荐结果是否分布均衡,也称为消除长尾效应的推荐(long-tail recommendation or decentration)。
现有多样性推荐方法主要分为三类:①后处理方法(Post-processing);②基于行列式点过程的方法(Determinantal Point Process);③基于排序学习的方法(Learning To Rank)。①②类方法均为解耦设计(decoupled design),即生成候选项目阶段和多样化处理操作是分离的,仍然可能带来冗余的推荐项目而导致多样化推荐的性能受到限制,第③类工作对数据集有所要求,需要构建列表式数据集(listwise dataset)。
针对上述挑战,该研究将多样化处理向前推进到推荐系统的相关性匹配,即matchcing阶段(如Fig.1所示),设计一种端到端的多样化推荐方法DGCN。
Figure 1: A typical recommendation pipeline.
2 研究问题
DGCN方法主要包含三个特殊设计:基于GCN的邻居采样策略,类别增强的负采样策略以及基于对抗的模型优化策略。其中,引入图卷积神经网络的原因为:
- 图高阶连通性使模型更容易获取多样化的项目。
- 在GCN中执行多样化也缓解了现有工作的将多样化与上游相关性匹配模型分离的问题。
首先,在图神经网络的消息传播步骤中设计了邻居节点的平衡采样方法,这种新型采样方法可以有效地平衡物品分布;其次,在图神经网络模型优化的负采样阶段,进一步引入平衡性,从而降低了邻居节点中头部物品的权重,提高了邻居节点中尾部物品的重要性。最终,为了解决准确性和多样性之间的平衡问题,DGCN模型设计了针对项目表征向量的对抗性训练方法,使得图神经网络模型能够捕获独立于物品类别的用户偏好(item-level embedding),即图神经网络学习到的表征尽量与物品类别无关,从而进一步提高了推荐的多样性。
接下来将对上述三个特殊设计进行介绍。
3 方法设计
DGCN模型如Fig.2所示。首先,将用户项目交互生成用户-项目二部图,其中用户和项目表示图中两类节点,二者间的交互表示为图中的边。进而采用GCN对图中进行信息传播与聚合操作,最终通过对抗训练生成多样化推荐。
Figure 2: Overview of proposed DGCN.
3.1 平衡的邻居发现策略 Rebalanced Neighbor Discovering
本研究旨在将多样化处理融合到GCN表征学习的过程中(GCN具体细节本文不做详细介绍,文中Section3.2介绍了常规的GCN流程可进行查阅)。为了使得推荐系统能够选择更多类别的项目,由于GCN包含信息传播与聚合操作,DGCN对其中的邻居发现过程进行平衡化处理(Algorithm1 & Algorithm2),从而使用户嵌入根据GCN的逻辑吸收更加多样化的项目嵌入,同时对原始图进行一定的子图采样。其中,针对用户和项目节点进行不同的处理:
Algorithm1. Rebalanced Neighbor Discovering
a. 针对用户节点的邻居发现过程
针对单独一个用户,首先依据其历史交互得到项目类别分布的直方图(histogram) (Algorithm2 step1),进而对histogram进行求逆 (Algorithm2 step3→4) 以调整主要类别(dominant categories)和小众类别(disadvantage categories)的采样概率。
Algorithm2. HistogramAndRebalance
b. 针对项目节点的邻居发现过程
项目节点的邻居均为用户节点,DGCN直接平等地对链接节点进行均匀采样(Algorithm1 step8→9)。
3.2 类别增强的负采样 Category-Boosted Negative Samplingg
在负采样的过程中,通过设置超参数β,控制选择similar but negative样本的比例,即提升用户偏好类别中的负样本比例。如Algorithm 3所示,随机生成r∈(0,1)。
- 如果r<β,则在用户偏好类别的项目集合内进行负样本采样 (Algorithm3 step7→8);
- 如果r>β,则通过常规的整体项目集合内进行负样本采样(Algorithm3 step9→10)。
Algorithm 3. Category-Boosted Negative Sampling
如Fig.3所示,通过该类别增强的负采样操作,最终达到从偏好类别中采样更多的负样本(items of positive categories),以避免类别冗余的项目推荐,从而产生更加多样的候选推荐。
Figure 3: An illustration of the sample space.
3.3 基于对抗训练的模型优化 Adversarial Learning-based Model Optimization
在模型的优化训练部分,DGCN参考GAN的设计,额外设置一个项目类别分类器与推荐任务优化器进行对抗学习,使得推荐模型能够欺骗分类器,从而学习到独立于项目类别的用户偏好——item-level(而非category-level)项目嵌入。其中,DGCN参考迁移学习中的基于对抗学习的域自适应模型DANN[2],设置梯度反转层GRL以优雅地完成对抗式训练过程~
GRL的作用:在模型训练的前向传播过程中GRL实现恒等变换,而在反向传播时其自动改变梯度方向。 引入GRL的原因:由于模型采用对抗训练的思想,为了避免类似于对抗生成网络GAN中分阶段的训练,引入GRL加快模型训练的收敛,使DGCN模型实现端到端的训练。
a. 基于对抗训练的模型设计
对抗训练的实现如Fig.4所示。该图中容易令人产生疑问的是中间的黄色A和蓝色D部分,通过本人与作者的沟通确认,这里的A和D代表图的左部分的两个节点,即user A与item D。
Figure 4: Implementaion of adversarial learning.
- 图的上半部分是常规的推荐任务打分部分,使用inner product计算用户与项目的相近性,即A和D进行匹配,描述的是推荐任务主要优化目标。
- 图的下半部分是项目类别分类任务,此处希望通过item D的向量无法区分其类别(即向量中尽可能地不包含类别信息),推荐效果不受类别影响,从而实现多样化的推荐效果。通过引入GRL方法实现,图中的“D-GRL-D”代表在此处插入GRL实现了对抗效果(即从“准确分类”到“尽可能分不准”的转变),从而使模型学习到独立于项目类别的偏好信息。
b. 训练模型的损失函数
接下来对损失函数进行讲解。针对单个训练样本,其中,表示用户与项目产生过交互,否则;而是项目的所属类别。DGCN模型的训练包含两个任务的优化,分别是推荐任务和项目类别分类任务。
- 推荐任务的损失函数如下,其中和分别表示模型基于GCN学习到的用户和项目的嵌入表示。
- 项目类别分类任务的损失函数如下,其中,表示分类器基于GCN学习的项目嵌入预测的所属类别。
- 整体损失函数: 。
其中,引入参数来平衡主要的推荐任务和额外的类别分类的对抗性任务。虽然项目类别分类器的目标在于最小化,但是DGCN整体目标是希望通过对抗训练达到最小化推荐任务损失的同时,最大化项目类别任务损失。
总的来说,该研究基于GCN对模型进行了三个特殊的设计,分别是基于GCN的邻居采样策略,类别增强的负采样策略以及基于对抗的模型优化策略,其主要思想是将多样性处理融合到推荐系统的候选推荐的生成阶段,避免了现有多样性推荐工作解耦设计的不足之处。
参考资料
[1] 高宸,李勇.《图神经网络推荐系统》. 中国计算机学会通讯第18卷 第5期.
[2] Ganin Y, Ustinova E, Ajakan H, et al. Domain-Adversarial Training of Neural Networks[J]. J Mach Learn Res, 2016, 17: 59:1-59:35.