[GNN论文浅读] Graph4Rec

2022-08-01 14:56:25 浏览数 (1)

Graph4Rec是由百度同学研发的基于PaddlePaddle实现的推荐系统GNN应用工具包。

论文链接:

Graph4Rec: A Universal Toolkit with Graph Neural Networks for Recommender Systems

笔者认为,Graph4Rec存在以下三个方面值得借鉴和思考:

  1. 统一GNN训练范式
  2. 提供多种GNN实现策略和技巧
  3. 提供真实场景中的评测方法和评测数据集

统一GNN训练范式

Graph4Rec将GNN的训练过程拆分成以下五个步骤

  1. Graph Inputs:输入图数据,包含节点、节点类型、边、边类型、(特征,即side information)
  2. Random Walk Generation:通过设置元路径(异构图可选)、游走长度、游走轮数生成游走序列
  3. Ego Graphs Generation:采样子图
  4. Pairs Generation:设置窗口长度和负采样数,生成节点对作为训练输入
  5. GNNs Selection:选择GNN Encoder,设置参数训练GNN模型

提供多种GNN实现策略和技巧

在真实的推荐场景中落地GNN主要面临大规模训练和高效训练两方面问题。

针对大规模训练问题,Graph4Rec采用参数服务器来解决。

针对高效训练问题,Graph4Rec采用以下几个策略:

  • 使用Walk, Sample, Pair的顺序

对比Walk, Pair, Sample顺序

优点:减少重复采样相同节点子图的时间

缺点:减少训练样本的多样性

实验对比:速度翻倍,性能小幅下降

  • In-batch Negative Sampling:在同一个batch内采样负例

实验对比全局负采样:速度翻四倍,性能上无明显差异

  • Pre-training and Parameters Warm Start

首先训练random walk based图模型,基于训出来的模型参数,再用GNN-based 模型来加快收敛和提高性能。

实验只对比了纯random walk based图模型和纯GNN-based 模型的收敛性和性能,没有看到Warm up方式对效率和效果带来的影响。(如果我有看漏的,欢迎指出更正)

提供真实场景中的评测方法和评测数据集

在推荐系统中应用GNN的论文存在模型不好比、demo与落地存在GAP两个主要问题。

(1)模型不好比:没有统一的数据集和评测方式,无法直接评判模型的好坏

(2)demo与落地存在GAP:大多数论文只提供了一个小数据集上的demo,无法代表真实业务场景数据集的应用效果

Graph4Rec针对上述两个问题,首先选择了三种常用召回策略(UCF、ICF、U2I)定义了了topK的recall指标,接着选择了真实场景中的数据集最终完成实验。

ICF@topK:为user的每个交互item召回最相似的前N个item,返回出现最频繁K个item

UCF@topK:为user召回最相似的前N个user,返回这些user交互的最频繁K个item

U2I@topK:用user embedding检索最相似的前K个item

0 人点赞