Enhancing Social Recommendation with Adversarial Graph Convolutional Networks个人笔记

J. Yu, H. Yin, J. Li, M. Gao, Z. Huang and L. Cui, “Enhancing Social Recommendation With Adversarial Graph Convolutional Networks,” in IEEE Transactions on Knowledge and Data Engineering, vol. 34, no. 8, pp. 3727-3739, 1 Aug. 2022, doi: 10.1109/TKDE.2020.3033673.

摘要

工业领域中社交推荐存在问题,其原因有:①社交网络中的很多用户只有非常少的朋友②有很多的社交关系是噪音数据并且许多人不分青红皂白就直接用③社交关系被认为是普遍运用于许多场景的,但实际上是多方面的,并且在不同场景中会有不同的作用。
针对这三个问题,作者给出了解决方案:针对①和②,利用一个基于图卷积网络的自动编码器将社交关系进一步细分,对高阶且复杂的社交关系编码表示,同时在重构社交关系的约束下?进行优化,以保证对可标识的邻居的可用性。针对③作者提出了基于图卷积网络的注意社交推荐模型。这个模型能够区分不同社交关系的异质性(应用于哪个领域更好)。最后作者采用对抗训练来统一所有组件,确保能够提升性能。

图 1 作者提出的框架的大致流程

首先展示框架中每一个组件如何解决作者提出的问题,然后展示对抗性训练如何通过playing a Minimax game来统一和强化所有组件。

符号的标记

用户集合:U={u1,u2,…,um},m表示用户个数项目集合:I={i1,i2,…,in},n表示项目个数被用户u点击过或者消费过的项目集合:N(u)项目i被消费或者被点击的用户集合:N(i)反馈矩阵:Y∈Rm×n,yui表示用户对项目的反馈,yui^表示预测分数yui=1iffeedbackispositiveelse0(u1,u2),su1,u2=1表示在社交网络中u1followsu2关系矩阵S∈Rm×m是不对称的.即用户之间的社交关系(作者特别提出用户之间的关系是follow关注)用户集合: U=\{u_1,u_2,\dots,u_m\}, m表示用户个数\\ 项目集合: I=\{i_1,i_2,\dots,i_n\}, n表示项目个数\\ 被用户u点击过或者消费过的项目集合:N(u)\\ 项目i被消费或者被点击的用户集合:N(i)\\ 反馈矩阵:Y∈R^{m×n},\ y_{ui}表示用户对项目的反馈,\ \hat{y_{ui}}表示预测分数\\ y_{ui}=1\ \ if \ \ feedback\ \ is \ \ positive \ \ else \ \ 0\\ (u_1,u_2),\ s_{u_1,u_2}=1表示在社交网络中u1\ follows \ u2\\ 关系矩阵S∈R^{m×m}是不对称的.即用户之间的社交关系(作者特别提出用户之间的关系是follow\ 关注) :U={u1,u2,,um},m:I={i1,i2,,in},nu:N(u)i:N(i):YRm×n,yui,yui^yui=1iffeedbackispositiveelse0(u1,u2),su1,u2=1u1followsu2SRm×m.(follow)

替代邻居生成Alternative Neighbourhood Generation

作者对于社交网络中用户结点的邻居选取,不像是Neural graph collaborative filtering中NGCF和Diffnet++: A neural influence and interest diffusion network for social recommendation中DiffNet++这种GCN-based模型用到的方法。它们利用距离distant或者multi-hop neighbours来获取高阶邻居信息。而作者会采取与这不同的方法。

作者特别提到了 motifs 这个概念。论文会围绕motifs来说明如何选择邻居。

高阶社交信息探索High-order Social Information Exploitation

在社交网络中,三角闭包triadic closure广泛出现,所以作者在该篇论文中仅考虑triangular motifs。其中M10能够帮助两个绿色结点(用户)相连,这与Social Boosted Recommendation With Folded Bipartite Network Embedding论文中提到的折叠二部图很相似。
motif−inducedadjacencymatrixAMk,表示在给定motifMk中,两个结点出现的频率(AMk)i,j=∑i∈U,j∈U1(i,joccurinMk)motif-induced\ adjacency\ matrix\ A_{M_k},表示在给定motif\ M_k中,两个结点出现的频率\\(A_{M_k})_{i,j}=\sum_{i∈U,j∈U}1(i,j\ occur\ in\ M_k) motifinducedadjacencymatrixAMk,motifMk(AMk)i,j=iU,jU1(i,joccurinMk)
例如

社交网络中,双向连接的邻接矩阵:B=S⊙STB=S⊙S^TB=SST,而单向连接的邻接矩阵: U=S−BU=S-BU=SB.其中S为社交网络中的社交关系矩阵。⊙是逐元素乘积。

图 computation of motif-induced adjacency matrices.

其中Y是feedback matrix。对于对称motifs,AM=CA_M=CAM=C,对于非对称motifs,AM=C+CTA_M=C+C^TAM=C+CT.

基于Motif的GCN领域生成Neighbour Generation with Motif-based GCN

对于一般的GCN可以有如下形式描述:
E(l+1)=σ(ZE(l)W(l)),Z=D−12A~D−12E^{(l+1)}=σ(ZE^{(l)}W^{(l)}),Z=D^{-\frac{1}{2}}\widetilde{A}D^{-\frac{1}{2}} E(l+1)=σ(ZE(l)W(l)),Z=D21A

D21
A~=A+I\widetilde{A}=A+IA

=
A+I
,DDDA~\widetilde{A}A

对角线度矩阵,σσσ是非线性激活函数。

GCNs在协同过滤中,特征转换和非线性激活函数这两种极为平常的设计的作用几乎是没有的。这是因为GCN最开始设计初衷就是用来在属性图上节点分类的,这种属性图中,每一个结点都有着极为丰富的属性并且会拿来作输入特征。然而在协同过滤中,每一个结点(用户或项目)仅用one-hot来描述标识,并且这里也没有具体的语义来辅助说明标识。

在这里作者采用何向南在论文Lightgcn: Simplifying and powering graph convolution network for recommendation中提到的LightGCN模型的设计,在GCN中移除特征转换和非线性函数激活这两个步骤。

至于邻接矩阵,作者定义为
A=S+AM1+⋯+AM10A=S+A_{M_1}+\dots+A_{M_10} A=S+AM1++AM10
加上了S是以防因为使用motifs而一些孤立的结点没有考虑到。

在改造后的GCN的每一层中,用户结点会被重新定义:通过他的motif-induced邻居的特征的加权和来定义。其邻居聚合操作定义如下:
eui(l+1)=∑j∈N(ui)aijeuj(l)Eθ(l+1)=DA−1AEθ(l)e^{(l+1)}_{u_i}=\sum_{j∈N(u_i)}a_{ij}e^{(l)}_{u_j}\\ E^{(l+1)}_θ=D^{-1}_AAE^{(l)}_θ eui(l+1)=jN(ui)aijeuj(l)Eθ(l+1)=DA1AEθ(l)
EθE_θEθ是所有用户的共同嵌入。

通过GCN多层传播高阶邻接信息后,作者获得了用户许多ddd维的表示,{eu0,eu1,…,eul}\{e_u^{0},e_u^{1},\dots,e_u^{l}\}{eu0,eu1,,eul}.这些是不同层获得的不同节点的交互和语义信息。

为了充分利用好每一层得到的用户嵌入,作者组合了所有层得到的用户嵌入.
最终用户表示:eu=∑l=0L1L+1eu(l)最终用户表示:e_u=\sum_{l=0}^L\frac{1}{L+1}e_u^{(l)} eu=l=0LL+11eu(l)
因为作者的目标是确保框架可以端到端地训练,邻居生成过程必须是可区分的,也就是说预测输出必须是离散的索引格式,即整数形式,这样能够清楚地表达用户ID。为此,一个具体的选择层Concrete autoencoders for differentiable feature selection and reconstruction用来离散用户选择。通过使用具体的分布The concrete distribution: A continuous relaxation of discrete random variables和重新参数化技巧Auto-encoding variational bayes,作者提出的框架就能够产生one-hot向量的松弛性来表示被选择的新邻居。松弛程度通过参数*τ∈(0,∞)τ∈(0,∞)τ(0,)来控制。具体来讲,具体的选择层有k个神经元,每一个神经元都有一个m维的参数hih_ihi*, 下标iii表示第iii个神经元。

对于每一个用户,作者把用户最终表示和所有用户的共同最终表示内积运算,(EθeuiT)(E_θe_{u_i}^T)(EθeuiT).然后把结果交给选择层。

选择层的操作:
Softmax((EθeuiT)⊙hi)=αiSoftmax((E_θe_{u_i}^T)⊙h_i)=α_i Softmax((EθeuiT)hi)=αi
然后输出one-hot向量的松弛程度:
vi=exp((logαi+g)/τ)∑j=1mexp((logαij+gj)/τ)v_i=\frac{exp((logα_i+g)/τ)}{\sum_{j=1}^mexp((logα_{ij}+g_j)/τ)} vi=j=1mexp((logαij+gj)/τ)exp((logαi+g)/τ)
*ggg*是一个m维向量,其中元素是独立同分布于Gumbel(0,1)Gumbel(0,1)Gumbel(0,1)

τ→0τ\rightarrow0τ0,具体的随机变量viv_ivi会很平滑地逼近一个离散分布,然后vijv_{ij}vij值会变1的概率为:αij/∑p=1mαipα_{ij}/\sum^{m}_{p=1}α_{ip}αij/p=1mαip.

vijv_{ij}vij值为1时, 第jjj个用户将会被认为是新邻居.

邻居噪音Neighbourhood Denoising

对于拥有大量社交关系的用户,选择他们的替代邻居就好比邻居噪音处理.

作者将motifM8−inducedrelationsmotif\ M_8-induced\ relationsmotifM8inducedrelations作为一种可靠的部分. 因为它是显式社交关系的一个子集, 同时它们还被购买行为加强可靠性了.

为了加强这种约束, 作者将motif-based GCN与mlp连接起来, 当作一个近似自动编码器.

Autoencoders have been widely used in feature selection to filter the irrelevant features.

从结构上来讲, GCN是一个编码器,而mlp是一个解码器.从数据流的角度来看, 输入部分为motif-based邻接矩阵, 选择层的输出即为学习到的表示.

让下式表示重构motif-based 社会关系
A~=fg(AM8,θ)\widetilde{A}=f_g(A_{M_8},θ) A

=fg(AM8,θ)
自动编码器的目标方程具体为:
Ls=argmin∣∣AM8−A~∣∣2L_s=arg\ min||A_{M_8}-\widetilde{A}||^2 Ls=argminAM8A

2

但是对于社交关系少并且购买记录少的用户而言,这些没多大用.

注意社交推荐Attentive Social Recommendation

得到了替代邻居,那么可以将一些本来就有的邻居替换掉, 来提升推荐性能.

Graph neural networks for social recommendation.

Neural graph collaborative filtering

作者使用attentive GCN-based recommendation.

Attentive Social Embedding Propagation Layer

作者在用户-用户对与用户-项目对之间进行嵌入传播.

对于user-item 对(u,i)(u,i)(u,i),作者定义了从项目iii信息传播至用户uuu的传播层lll:

X. He, K. Deng, X. Wang, Y. Li, Y. Zhang, and M. Wang, “Lightgcn: Simplifying and powering graph convolution network for recommendation,” arXiv preprint arXiv:2002.02126, 2020.

eu(l+1)=∑i∈Nu1∣N(u)∣∣N(i)∣ei(l)e_u^{(l+1)}=\sum_{i∈N_u}\frac{1}{\sqrt{|N(u)|}\sqrt{|N(i)|}}e^{(l)}_i eu(l+1)=iNuN(u)

N(i)

1ei(l)

类似地,从用户uuu信息传播至项目iiiei(l+1)e_i^{(l+1)}ei(l+1)计算也差不多.

对于user-user对 (u,v)(u,v)(u,v),作者定义了一种全新的注意社交嵌入信息传播层, 用来获得替代邻居之后的传播信息.这里vvv是替代邻居中的一个用户结点,用户信息传播至用户的过程定义为:
eu(l+1)=∑v∈Auαu,v(l)ev(l)e_u^{(l+1)}=\sum_{v∈A_u}α^{(l)}_{u,v}e^{(l)}_v eu(l+1)=vAuαu,v(l)ev(l)
AuA_uAu是用户u的替代邻居集合.

user-item对的消息传递是采用了中心性测量的,而user-user并没有。作者采用的是学习权重αu,v(l)α^{(l)}_{u,v}αu,v(l)来选择性的接收来自邻居的信息。

为了计算αu,v(l)α^{(l)}_{u,v}αu,v(l),作者采用了一种社交注意机制:

其中iii是从用户uuu的项目历史购买记录中的随机采样.q∈R2d,W1∈Rd×d,W2∈Rd×dq∈R^{2d},W_1∈R^{d×d},W_2∈R^{d×d}qR2d,W1Rd×d,W2Rd×d是注意层的参数.W1W_1W1是用户嵌入的蒸馏,W2W_2W2是项目嵌入的蒸馏.

通过上面的叙述,作者说明了第lll层不同实体对之间的信息传播。现在作者说明得到第lll层的ev(l)和ei(l)e_v^{(l)}和e_i^{(l)}ev(l)ei(l)之后如何得到第l+1l+1l+1层的用户表示(因为第l+1l+1l+1层的项目表示依然可以由第l+1l+1l+1层的用户表示来表示)

Model Prediction and Optimization

通过LLL层注意社交嵌入传播层处理, 用户和项目已经从lll-hop邻居中得到传播过的信息. 根据何向南的LightGCN的设计, 作者将不同层的不同嵌入向量组合起来, 形成最终的嵌入表示eu∗andei∗e_u^*\ and\ e_i^*euandei来模型预测.
e∗=∑l=0L1L+1e(l)e^*=\sum_{l=0}^L\frac{1}{L+1}e^{(l)} e=l=0LL+11e(l)
给定一个用户-项目对(u,i)(u,i)(u,i),其预测评分y^(u,i)=eu∗ei∗T\hat{y}(u,i)=e_u^*{e_i^*}^Ty^(u,i)=eueiT

因为该论文研究的是Top-N的社交推荐, 作者为每一位用户根据成对排名(pairwise ranking)对项目次序建模.

作者的优化方程如下 Bayesian Personalized Ranking loss,

S. Rendle, C. Freudenthaler, Z. Gantner, and L. Schmidt-Thieme, “Bpr: Bayesian personalized ranking from implicit feedback,” in Proceedings of the twenty-fifth conference on uncertainty in artificial intelligence. AUAI Press, 2009, pp. 452–461.

每一次输入都是一个三元组:当前用户uuu,正样本项目iii,负样本项目jjj(用户uuu不喜欢的或者没有评价过的),那么模型的训练目标就是对于uuu来讲iii的评分要高于jjj.

Unifying All Modules with Adversarial Training

对于仅由当前用户购买的给定商品,合理的假设是邻居不会对该商品表现出更高的兴趣,这类似于社交排名模型 [29] 的假设:用户倾向于的项目是她买过的而不是她朋友买过的.

T. Zhao, J. McAuley, and I. King, “Leveraging social connections to improve personalized ranking for collaborative filtering,” in Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management. ACM, 2014, pp. 261–270.

所以作者提出一种想法:一方面生成那些对目标用户购买过的项目产生兴趣的邻居,另一方面 让他们对项目的喜爱产生一些克制. =>对抗训练.

GANs的思想就是两个神经网络通过playing a Minimax game 来对抗训练.作者提出:需要选择一些新邻居使得邻居和目标用户之间的gap最小.同时,也要gap最大,因为用户会更喜欢自己购买过的项目.

GGG表示motif-based GCN, 其代表生成器. DDD表示注意推荐模块, 扮演判别器.

作者定义Minimax游戏为:

通过修正GGG的参数和最小化上述损失, DDD is optimized towards recognizing the generated neighbor u′u'u and making the gap (y^u,i−y^u′,i)(\hat{y}_{u,i}-\hat{y}_{u',i})(y^u,iy^u,i) larger.

最终 ,作者统一了目标方程

GANs的训练是极其不稳定的, 所以作者首先预训练了判别器LrL_rLr,然后预训练了生成器LsL_sLs.直到框架收敛.然后作者再进行对抗训练来加强框架.

Enhancing Social Recommendation with Adversarial Graph Convolutional Networks个人笔记相关推荐

  1. 知识图谱论文阅读(二十三)【SIGIR2020】Multi-behavior Recommendation with Graph Convolutional Networks

    题目: Multi-behavior Recommendation with Graph Convolutional Networks 论文地址: 论文代码: 想法 将相同行为的交互方式进行了聚合来计 ...

  2. 【GCN-RS】多行为推荐:Multi-behavior Recommendation with Graph Convolutional Networks (SIGIR‘20)

    Multi-behavior Recommendation with Graph Convolutional Networks (SIGIR'20) 场景是多交互行为场景,用户和物品的交互可能包括收藏 ...

  3. 基于图卷积的价格推荐论文(Price-aware Recommendation with Graph Convolutional Networks)

    基于图卷积的价格推荐论文概述 ICDE2020非常好的文章 Price-aware Recommendation with Graph Convolutional Networks paper lin ...

  4. Attentional Graph Convolutional Networks for Knowledge Concept Recommendation in MOOCs in a Heter---

    Attentional Graph Convolutional Networks for Knowledge Concept Recommendation in MOOCs in a Heteroge ...

  5. 论文笔记:Encoding Social Information with Graph Convolutional Networks forPolitical Perspective *****

    Encoding Social Information with Graph Convolutional Networks for Political Perspective Detection in ...

  6. FastGCN: fast learning with graph convolutional networks via importance sampling 论文详解 ICLR 2018

    文章目录 1 简单介绍 概率测度 probability measure 自助法 bootstrapping GCN面临的两个挑战 解决思路(创新点) 2 相关工作 3 通过采样进行训练和推理 定理1 ...

  7. SGC - Simplifying Graph Convolutional Networks 简化的图卷积网络 论文详解 ICML 2019

    文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Graph Convolution 简化的图卷积 2.1 ...

  8. 2018_WWW_Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification

    [论文阅读笔记]2018_WWW_Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification-(T ...

  9. 图融合GCN(Graph Convolutional Networks)

    图融合GCN(Graph Convolutional Networks) 数据其实是图(graph),图在生活中无处不在,如社交网络,知识图谱,蛋白质结构等.本文介绍GNN(Graph Neural ...

  10. Semi-Supervised Classification with Graph Convolutional Networks

    Kipf, Thomas N., and Max Welling. "Semi-supervised classification with graph convolutional netw ...

最新文章

  1. Oracle的连接与会话
  2. 现行高考政策公平 辩论_为这些考生高考加20分?这样的政策对其他考生公平吗?榕和奉献...
  3. 学Java有什么技巧和方法推荐?
  4. 分析log及校准学习总结
  5. 中国恒大拟出售恒大汽车2.66%股权 配股金额约106亿港元
  6. Spring的IoC解析
  7. 高等数学(第七版)同济大学 习题3-8 个人解答
  8. iOS 手势解锁密码
  9. Android webview 下载文件(文件名,扩展名)
  10. Windows7Windows10兼容红色警戒
  11. 这7大技术博客平台,编程偏爱,程序员的你知道几个?
  12. ssm框架 mysql 一对多_ssm2: :sparkles: 基于SSM框架简单的文章管理系统,使用MySQL多表存储方式实现留言回复功能...
  13. python中哈希是什么意思_利用Python如何生成hash值示例详解
  14. WARN: Establishing SSL connection without server‘s identity verification is not recommended
  15. (附源码)spring boot学科竞赛活动报名系统 毕业设计 012239
  16. JAVA 获取某天、某周、某月、某年的开始时间和结束时间
  17. shell中设置IFS,使用自定义分割符
  18. 北欧蓝rgb_2015年北欧游戏果酱
  19. (第16-17讲)STM32F4单片机,FreeRTOS中断管理简介【视频笔记、代码讲解】【正点原子】【原创】
  20. zuk z2 android 7.0,Lenovo 联想 ZUK Z2 PRO 尊享版ZUI 升级 2.5(基于安卓7.0)体验

热门文章

  1. Centos 7 | mariadb/mysql | [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
  2. MFC之对于文档类的DeleteContents和OnNewDocument说明29
  3. 飞机客运售票系统oracle分析,民航机场售票管理系统.doc
  4. Python的exec
  5. tftpd32服务器软件在Windows与linux 下的文件传输
  6. 产品营销策划方案:6个创意来源
  7. springboot毕设项目养老院信息管理系统kak2w(java+VUE+Mybatis+Maven+Mysql)
  8. 学习 慕课网【 PHP工程师计划】
  9. 东大oj1155 等凹函数
  10. 灵遁者第一部诗歌集《触摸世界》上集40首诗歌欣赏