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},n表示项目个数被用户u点击过或者消费过的项目集合:N(u)项目i被消费或者被点击的用户集合:N(i)反馈矩阵:Y∈Rm×n, yui表示用户对项目的反馈, yui^表示预测分数yui=1 if feedback is positive else 0(u1,u2), su1,u2=1表示在社交网络中u1 follows u2关系矩阵S∈Rm×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)
motif−induced adjacency matrix AMk,表示在给定motif Mk中,两个结点出现的频率(AMk)i,j=i∈U,j∈U∑1(i,j occur in Mk)
例如
社交网络中,双向连接的邻接矩阵: B = S ⊙ S T B=S⊙S^T B=S⊙ST,而单向连接的邻接矩阵: U = S − B U=S-B U=S−B.其中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=D−21A
D−21
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)=j∈N(ui)∑aijeuj(l)Eθ(l+1)=DA−1AEθ(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=0∑LL+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 M8−induced 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 min∣∣AM8−A
∣∣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)=i∈Nu∑∣N(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)=v∈Au∑α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} q∈R2d,W1∈Rd×d,W2∈Rd×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=0∑LL+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)=eu∗ei∗T
因为该论文研究的是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,i−y^u′,i) larger.
最终 ,作者统一了目标方程
GANs的训练是极其不稳定的, 所以作者首先预训练了判别器 L r L_r Lr,然后预训练了生成器 L s L_s Ls.直到框架收敛.然后作者再进行对抗训练来加强框架.