嘿,记得给“机器学习与推荐算法”添加星标


作者:王玉菡

单位:武汉理工大学

方向:跨域推荐

本文是一篇发表在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.


欢迎干货投稿 \ 论文宣传 \ 合作交流

推荐阅读

论文周报 | 推荐系统领域最新研究进展

350篇文献总结可信推荐系统前沿进展

基于对抗学习的隐私保护推荐算法

由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。

喜欢的话点个在看吧

WWW2021 | 基于图卷积神经网络的多样化推荐系统相关推荐

  1. Chemistry.AI | 基于图卷积神经网络(GCN)预测分子性质

    GCN: Graph Convolutional Network(图卷积网络) 环境准备 Python版本:Python 3.6.8 PyTorch版本:PyTorch1.1.0 RDKit版本:RD ...

  2. (21) 出行需求预测新视角---基于图卷积神经网络GCN的出租车OD需求预测

    交通预见未来(21): 出行需求预测新视角---基于图卷积神经网络GCN的出租车OD需求预测 1.文章信息 <Origin-Destination Matrix Prediction via G ...

  3. (16) 基于图卷积神经网络的轨道交通流量预测

    交通预见未来(16) 基于图卷积神经网络的轨道交通流量预测 1.文章信息 <Predicting Station-Level Short-Term Passenger Flow in a Cit ...

  4. (15) 基于图卷积神经网络的共享单车流量预测

    交通预见未来(3) 基于图卷积神经网络的共享单车流量预测 1.文章信息 <Bike Flow Prediction with Multi-Graph Convolutional Networks ...

  5. (DEAP)基于图卷积神经网络的脑电情绪识别(附代码)

    1. 数据集介绍以及特征部分见上篇文章: DEAP数据集介绍以及特征提取部分 深度学习基于DEAP的脑电情绪识别情感分类(附代码)_qq_3196288251的博客-CSDN博客 2. 图卷积神经网络 ...

  6. 论文解析-基于图卷积神经网络的癌症基因预测模型,利用LRP算法增加模型可解释性

    论文解析:Integration of multiomics data with graph convolutional networks to identify new cancer genes a ...

  7. 基于图卷积神经网络的微博疫情情感分析

    一.前言 参考论文:Graph Convolutional Networks for Text Classification 官方Github源码:text_gcn 关于微博疫情情感分析,博主之前有过 ...

  8. 基于图卷积神经网络的城市轨道交通流量预测

    1.文章信息 <Predicting Station-Level Short-Term Passenger Flow in a Citywide Metro Network Using Spat ...

  9. 基于haar特征的adaboost算法_SuperGlue一种基于图卷积神经网络的特征匹配算法

    ETHZ ASL与Magicleap联名之作,CVPR 2020 Oral(论文见文末),一作是来自ETHZ的实习生,二作是当年CVPR2018 SuperPoint 的作者Daniel DeTone ...

最新文章

  1. 全国计算机在线做题,2020全国一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
  2. Qualcomm式创新融入中国 有何深层逻辑?
  3. Diffie-Hellman密钥交换协议
  4. 【MySQL】在centos7 纯IPv6环境下,安装mysql5.7
  5. 仿射变换 c语言,c语言数字图像处理(三):仿射变换
  6. 阻止中文输入法输入拼音的时候触发input事件
  7. 阿里云服务器 CentOS 7上-- Docker 安装 网关(API-Getway)--KONG
  8. python脚本如何编译_如何编译用于FORTRAN的Python脚本?
  9. cmake could not find openssl_使用CMake构建C++项目
  10. Objective-C 继承新的认识以及作用
  11. 电商平台微服Dubbox实战,实现高并发抢购
  12. mysql 页大小_查找最佳页面大小
  13. centos离线安装docker-ce 18.03.0-ce
  14. MySQL之my.cnf配置文件
  15. Joyoshare Media Cutter for Mac(智能媒体剪辑软件)激活版
  16. Mac OS X中virtualenv里python shell无法使用光标键问题的解决
  17. 公立计算机大学排名,全国公办软件工程大学排名
  18. 什么是时间戳?Vue 转换时间戳
  19. [KVM应用案例] 湖南电视台高清电视转播车KVM矩阵项目
  20. 利用HTA文件绕过杀软及邮件钓⻥

热门文章

  1. 看Java、C#大比拚
  2. 四则运算安卓版ver.mk2
  3. 【有奖互动】2019 最难忘的三行代码
  4. Leaflet简单使用
  5. Win 11 通过脚本打开自带的IE浏览器
  6. 解释器模式--相亲的公式
  7. 解决微信服务号Scope 参数错误或没有 Scope 权限
  8. 项目立项管理 试题分析
  9. subprocess句柄无效
  10. 网页开发之仿华为商城案例(内附压缩包下载链接)