作者:王玉菡
单位:武汉理工大学
方向:跨域推荐
论文: 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
推荐系统在初期阶段往往不能很好的服务用户,因为其只以“投其所好”为主要目标。然而,由于“信息茧房”问题越来越突出,推荐系统需要反思如何能够在提升用户满意度的同时,为用户提供更丰富多样的信息和服务。更多信息茧房内容可阅读深度剖析 | 推荐系统中的信息茧房问题——因果强化学习在交互式推荐的前沿探索。除了推荐内容的相关性外,许多因素也会影响用户对推荐内容的感知,如多样性、惊喜度、可解释性等。
该研究针对推荐系统的多样性,避免用户接收重复类型的推荐项目而带来信息冗余问题。具体而言,在推荐过程中不仅要关注用户和推荐项目之间的相近性(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。
DGCN方法主要包含三个特殊设计:基于GCN的邻居采样策略,类别增强的负采样策略以及基于对抗的模型优化策略。其中,引入图卷积神经网络的原因为:
首先,在图神经网络的消息传播步骤中设计了邻居节点的平衡采样方法,这种新型采样方法可以有效地平衡物品分布;其次,在图神经网络模型优化的负采样阶段,进一步引入平衡性,从而降低了邻居节点中头部物品的权重,提高了邻居节点中尾部物品的重要性。最终,为了解决准确性和多样性之间的平衡问题,DGCN模型设计了针对项目表征向量的对抗性训练方法,使得图神经网络模型能够捕获独立于物品类别的用户偏好(item-level embedding),即图神经网络学习到的表征尽量与物品类别无关,从而进一步提高了推荐的多样性。
接下来将对上述三个特殊设计进行介绍。
DGCN模型如Fig.2所示。首先,将用户项目交互生成用户-项目二部图,其中用户和项目表示图中两类节点,二者间的交互表示为图中的边。进而采用GCN对图中进行信息传播与聚合操作,最终通过对抗训练生成多样化推荐。
本研究旨在将多样化处理融合到GCN表征学习的过程中(GCN具体细节本文不做详细介绍,文中Section3.2介绍了常规的GCN流程可进行查阅)。为了使得推荐系统能够选择更多类别的项目,由于GCN包含信息传播与聚合操作,DGCN对其中的邻居发现过程进行平衡化处理(Algorithm1 & Algorithm2),从而使用户嵌入根据GCN的逻辑吸收更加多样化的项目嵌入,同时对原始图进行一定的子图采样。其中,针对用户和项目节点进行不同的处理:
针对单独一个用户,首先依据其历史交互得到项目类别分布的直方图(histogram) (Algorithm2 step1),进而对histogram进行求逆 (Algorithm2 step3→4) 以调整主要类别(dominant categories)和小众类别(disadvantage categories)的采样概率。
项目节点的邻居均为用户节点,DGCN直接平等地对链接节点进行均匀采样(Algorithm1 step8→9)。
在负采样的过程中,通过设置超参数β,控制选择similar but negative样本的比例,即提升用户偏好类别中的负样本比例。如Algorithm 3所示,随机生成r∈(0,1)。
如Fig.3所示,通过该类别增强的负采样操作,最终达到从偏好类别中采样更多的负样本(items of positive categories),以避免类别冗余的项目推荐,从而产生更加多样的候选推荐。
在模型的优化训练部分,DGCN参考GAN的设计,额外设置一个项目类别分类器与推荐任务优化器进行对抗学习,使得推荐模型能够欺骗分类器,从而学习到独立于项目类别的用户偏好——item-level(而非category-level)项目嵌入。其中,DGCN参考迁移学习中的基于对抗学习的域自适应模型DANN[2],设置梯度反转层GRL以优雅地完成对抗式训练过程~
GRL的作用:在模型训练的前向传播过程中GRL实现恒等变换,而在反向传播时其自动改变梯度方向。
引入GRL的原因:由于模型采用对抗训练的思想,为了避免类似于对抗生成网络GAN中分阶段的训练,引入GRL加快模型训练的收敛,使DGCN模型实现端到端的训练。
对抗训练的实现如Fig.4所示。该图中容易令人产生疑问的是中间的黄色A和蓝色D部分,通过本人与作者的沟通确认,这里的A和D代表图的左部分的两个节点,即user A与item D。
接下来对损失函数进行讲解。针对单个训练样本 ,其中, 表示用户 与项目 产生过交互,否则 ;而 是项目 的所属类别。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.由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。