STAR-GCN: Stacked and Reconstructed Graph Convolutional Networks for Recommender Systems (2019)
目的:学习节点表达来提升推荐系统的效果。
模型结构:一组GCN的encoder-decoder,结合中间监督(intermediate supervision),来提高预测结果。
- 其他图卷积矩阵补全模型的输入是节点的one-hot,STAR-GCN学习的是低维空间的用户和商品潜在特征,这些特征作为输入来控制模型的空间复杂度;
- 新的节点,可以作为重建的被masked的输入节点,来获得节点向量,这种方式,可以解决冷启动的问题。
Contribution
- 为推荐系统提供了新模型来学习用户和商品的潜在特征,并应用到在trasductive和inductive任务;
- 在做link-prediction任务时,发现以GCN为基础的模型会产生label leakage,并阐述了一种sample-and-remove的训练策略来解决这个问题;
- 实验结果表明,该模型在multiple rating prediction上,4/5的transductive任务结果都达到SOTA,在inductive任务上(冷启动),结果优于其他模型。
背景
对内容提供者,电商,搜索引擎来说,分析用户倾向,从而提供目标商品的推荐系统是不可或缺的。在推荐系统中,主要的数学问题就是矩阵补全。如果有n个用户m个商品,那么推荐算法主要目标就是在 的矩阵上,根据已有的数据,填上其他缺失的数据。解决办法有以下几种:
矩阵分解,通过学习潜在的特征或者用户/商品的向量来获得分数;
GCN,通过局部参数共享操作器(又称为图聚合器),经过转换和聚合局部节点的特征,生成节点表达。由于局部邻接集合可以被视为卷积核中的receptive field,因此这种聚合邻接的方法为图卷积;
Monti et al. [2017] 首创了GCN在推荐系统中的应用。GCN从user-user和item-item这两个图上,聚合信息,每经过聚合,更新user和item的特征,用GCN和MF作为损失函数来训练模型;
-
Berg et al. [2017]提出了Graph Convolutional Matrix Completion (GC-MC) model,用户和商品构成的图,通过预测边标签来学习特征表达,并获得很好的实验结果。但它还是有2个缺陷:
- 为区别节点,节点的输入是one-hot,输入的维度和整个图的节点数有关,不适用巨大图;
- 由于无法将未知点转成one-hot,无法对未知点进行预测(这种对新用户/新商品的预测又称为冷启动问题)。
实验任务:
- transductive rating: 测试的节点在训练数据中
- inductive ratng:对新节点的预测
Rating prediction tasks
任务目标:给定一小部分的用户对商品的打分,预测用户对其他商品的打分情况。
图由(用户U,商品V,评分R)组成,评分级别表示用户u和商品v连接类型。在训练图上的所有rating pairs,都会在测试集上。
- Transductive: 使用协同过滤,比如矩阵分解来预测评分。
- inductive:测试图上的 , ,不在训练图中,在预测前,这些节点首先经过一些评分边,协同过滤是没有办法对未知节点进行预测的。Collaborative Deep Learning (CDL) [Wang et al., 2015] model and DropoutNet可以通过学习节点内容来进行预测。STAR-GCN不仅可以学习到节点内容,还能考虑到结构信息。因此,当节点的内容信息无法使用时,还可以根据节点的结构信息来得到节点表达。
Graph convolutional matrix completion
GC-MC[Berg et al.,2017]. 使用multi-link图卷积encoder生成节点表达。每个link的类型r经过转换,将商品信息传递到用户,
其中:
:连接类型r的聚合输出
:
:归一化常数
STAR-GCN采用同样的方法。
Model
STAR-GCN由多个block组成,每个block,有一个encoder-decoder,block之间参数共享。
Input Node Representations
为了能对未知节点进行向量表示,使用掩码技术,随机对部分(比如20%的)节点进行掩蔽,一定概率的节点的向量初始化为0,剩余概率的节点保持不变,然后重建这些节点向量。使用掩码技术,一方面可以对未知节点进行向量学习,在冷启动时,初始化新节点向量为0,然后通过一组GCN encoder-decoder调整向量表达。比如,在第一个block,通过邻接数据来预测新节点向量,在第二个block,预测分数并调整向量,使得向量表达和评分损失一起达到最优。
当节点内容不适用时,输入的节点向量为:
当节点有其他特征时,这些特征首先进入一个网络,然后和节点向量合并,此时输入的节点向量为:
encoder: a stack of gcn
decoder: 恢复输出的节点向量
Loss
下游任务损失:
重构损失:
比如:对两种节点进行掩码,在评分预测任务中的损失为:
Linkage issue
Sample-and-remove
每次迭代,从rating pairs中采样固定数量的样本,在训练前,将这些被采样的样本(边)从训练图中移除。
实验
在5个推荐数据集上进行transductive和inductive的评分预测。评价指标为RMSE。模型结果如下: