Interest-aware Message-Passing GCN for Recommendation(www 21)

论文地址:https://arxiv.org/abs/2102.10044

 BACKGROUND

GCN信息聚合的模式非常适合推荐,但众所周知在模型设计的时候通常只能堆叠2-3层,再多就会出现过平滑问题(结点特征之间没有区分度),LightGCN证明了GCN中的特征转化和非线性激活不适用于协同过滤,通过去除这两个组件可在一定程度上缓解过平滑问题,使得模型可以堆叠更多层(将层数拓展到了4层左右),LightGCN信息聚合方式如下,可以看到是对邻居特征进行简单加权求和,无筛选机制,在高层信息聚合时会因兴趣不相同邻居用户的存在,而引入噪声,使得学到的特征向量次优。本文提出了一种根据用户兴趣对用户进行分组(组图)的方法,进一步去除兴趣不同用户造成的干扰,将GNN层数拓展到了7层左右。

METHOD

G_s  =  S\epsilon \{1,2,\cdot \cdot \cdot \cdot \cdot \cdot ,N_s\} 代表一个分组/子图(兴趣一样的用户组成的集合)

本文根据用户兴趣对用户进行了分组,用户相似的用户及其交互过的物品构成子图

一、message-passing

1.1 一层邻居聚合

e_u^{(1)} = \sum_{i \epsilon N_u}\frac{1}{\sqrt{\left | N_u \right |}\sqrt{\left | N_i \right |}}e_i^{(0)}

e_i^{(1)} = \sum_{u \epsilon N_i }\frac{1}{\sqrt{\left | N_i \right |}\sqrt{\left | N_u \right |}}e_u^{(0)}   

其中 e_u^{(0)},e_i^{(0)}代表 ID embedding

1.2 高层邻居聚合

 e_u^{(k+1)} = \sum_{is \epsilon N_u}\frac{1}{\sqrt{\left | N_u \right |}\sqrt{\left | N_i \right |}}e_{is}^{(k)}        

e_{is}^{(k+1)} = \sum_{u \epsilon N_i^s}\frac{1}{\sqrt{\left | N_i \right |}\sqrt{\left | N_u \right |}}e_u^{(k)}

e_{is}^{(k)}:子图(分组)s中的物品i经过k层图卷积后的embedding向量

角标 is\ \epsilon \ N_u:子图s中用户u的邻居节点i

注:此处的GCN是在兴趣分组中进行的,分组按用户兴趣进行划分,用户交互过的物品属于用户所在分组。每个用户仅属于一个分组,而物品可属于多个分组(分属于两个分组的用户u_1,u_2 都与物品i发生过交互)

因为物品可属于多个分组,所以此处将物品的特征向量,表示成各分组中特征的和e_i^{(k)} = \sum_{s\epsilon S}e_{is}^{(k)}

1.3 层间连接 

e_u = \sum_{i=0}^{K}\frac{1}{K+1}e_u^{i} 

二、Subgraph Generation Module

本文将子图划分当作节点分类任务

特征提取:F_u = \sigma (W_1(e_u^{(0)}+e_u^{(1)})+b1),对id_embedding和一阶邻居聚合结果进行特征提取

用户节点分类:U_o = W_3(\sigma (W_2F_u+b_2)))+b_3U_o的维度等于用户分组的数目。

三、优化

3.1 预测

\widehat{r}_{ui} = u\top v

3.2损失函数

猜你喜欢

转载自blog.csdn.net/qq_42018521/article/details/130508557
GCN