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

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 = { u 1 , u 2 , … , u m } , m 表 示 用 户 个 数 项 目 集 合 : I = { i 1 , i 2 , … , i n } , n 表 示 项 目 个 数 被 用 户 u 点 击 过 或 者 消 费 过 的 项 目 集 合 : N ( u ) 项 目 i 被 消 费 或 者 被 点 击 的 用 户 集 合 : N ( i ) 反 馈 矩 阵 : Y ∈ R m × n ,   y u i 表 示 用 户 对 项 目 的 反 馈 ,   y u i ^ 表 示 预 测 分 数 y u i = 1    i f    f e e d b a c k    i s    p o s i t i v e    e l s e    0 ( u 1 , u 2 ) ,   s u 1 , u 2 = 1 表 示 在 社 交 网 络 中 u 1   f o l l o w s   u 2 关 系 矩 阵 S ∈ R m × m 是 不 对 称 的 . 即 用 户 之 间 的 社 交 关 系 ( 作 者 特 别 提 出 用 户 之 间 的 关 系 是 f o l l o w   关 注 ) 用户集合: 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=1  if  feedback  is  positive  else  0(u1,u2), su1,u2=1u1 follows u2SRm×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论文中提到的折叠二部图很相似。
m o t i f − i n d u c e d   a d j a c e n c y   m a t r i x   A M k , 表 示 在 给 定 m o t i f   M k 中 , 两 个 结 点 出 现 的 频 率 ( A M k ) i , j = ∑ i ∈ U , j ∈ U 1 ( i , j   o c c u r   i n   M k ) 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) motifinduced adjacency matrix AMk,motif Mk(AMk)i,j=iU,jU1(i,j occur in Mk)
例如在这里插入图片描述

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

图 computation of motif-induced adjacency matrices.

在这里插入图片描述

其中Y是feedback matrix。对于对称motifs, A M = C A_M=C AM=C,对于非对称motifs, A M = C + C T A_M=C+C^T AM=C+CT.

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

对于一般的GCN可以有如下形式描述:
E ( l + 1 ) = σ ( Z E ( l ) W ( l ) ) , Z = D − 1 2 A ~ D − 1 2 E^{(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+I A =A+I, D D D A ~ \widetilde{A} A 对角线度矩阵, σ σ σ是非线性激活函数。

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

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

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

在改造后的GCN的每一层中,用户结点会被重新定义:通过他的motif-induced邻居的特征的加权和来定义。其邻居聚合操作定义如下:
e u i ( l + 1 ) = ∑ j ∈ N ( u i ) a i j e u j ( l ) E θ ( l + 1 ) = D A − 1 A E θ ( 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多层传播高阶邻接信息后,作者获得了用户许多 d d d维的表示, { e u 0 , e u 1 , … , e u l } \{e_u^{0},e_u^{1},\dots,e_u^{l}\} {eu0,eu1,,eul}.这些是不同层获得的不同节点的交互和语义信息。

为了充分利用好每一层得到的用户嵌入,作者组合了所有层得到的用户嵌入.
最 终 用 户 表 示 : e u = ∑ l = 0 L 1 L + 1 e u ( 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维的参数 h i h_i hi*, 下标 i i i表示第 i i i个神经元。

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

选择层的操作:
S o f t m a x ( ( E θ e u i T ) ⊙ h i ) = α i Softmax((E_θe_{u_i}^T)⊙h_i)=α_i Softmax((EθeuiT)hi)=αi
然后输出one-hot向量的松弛程度:
v i = e x p ( ( l o g α i + g ) / τ ) ∑ j = 1 m e x p ( ( l o g α i j + g j ) / τ ) 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)/τ)
* g g g*是一个m维向量,其中元素是独立同分布于 G u m b e l ( 0 , 1 ) Gumbel(0,1) Gumbel(0,1)

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

v i j v_{ij} vij值为1时, 第 j j j个用户将会被认为是新邻居.

邻居噪音Neighbourhood Denoising

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

作者将 m o t i f   M 8 − i n d u c e d   r e l a t i o n s motif\ M_8-induced\ relations motif M8induced relations作为一种可靠的部分. 因为它是显式社交关系的一个子集, 同时它们还被购买行为加强可靠性了.

在这里插入图片描述

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

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

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

让下式表示重构motif-based 社会关系
A ~ = f g ( A M 8 , θ ) \widetilde{A}=f_g(A_{M_8},θ) A =fg(AM8,θ)
自动编码器的目标方程具体为:
L s = a r g   m i n ∣ ∣ A M 8 − A ~ ∣ ∣ 2 L_s=arg\ min||A_{M_8}-\widetilde{A}||^2 Ls=arg minAM8A 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),作者定义了从项目 i i i信息传播至用户 u u u的传播层 l l l:

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.

e u ( l + 1 ) = ∑ i ∈ N u 1 ∣ N ( u ) ∣ ∣ N ( i ) ∣ e i ( 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)

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

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

Model Prediction and Optimization

通过 L L L层注意社交嵌入传播层处理, 用户和项目已经从 l l l-hop邻居中得到传播过的信息. 根据何向南的LightGCN的设计, 作者将不同层的不同嵌入向量组合起来, 形成最终的嵌入表示 e u ∗   a n d   e i ∗ e_u^*\ and\ e_i^* eu and ei来模型预测.
e ∗ = ∑ l = 0 L 1 L + 1 e ( 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 ) = e u ∗ e i ∗ T \hat{y}(u,i)=e_u^*{e_i^*}^T y^(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.

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

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最大,因为用户会更喜欢自己购买过的项目.

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

作者定义Minimax游戏为:

在这里插入图片描述

通过修正 G G G的参数和最小化上述损失, D D D 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的训练是极其不稳定的, 所以作者首先预训练了判别器 L r L_r Lr,然后预训练了生成器 L s L_s Ls.直到框架收敛.然后作者再进行对抗训练来加强框架.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值