关注我们,提升效率
title:Profiling the Design Space for Graph Neural Networks based Collaborative Filtering
link:http://www.shichuan.org/doc/125.pdf
from:WSDM 2022
1. 导读
GNN是很火的技术,现在广泛的应用于推荐系统协同过滤相关方法中,但是大部分方法都是针对特定场景涉及特定的方法,没有考虑不同设计的影响。本文剖析基于 GNN 的 CF 方法的设计空间。通过对设计空间的理解,可以增强最优模型搜索,提升效率。
通过阅读本文可以简单直接的理解基于GNN的推荐方法的基本设计思路,并且可以了解设计空间中的冗余部分,通过精简之后,在更加集中的空间中搜索最优模型。
2. 基于GNN的CF的设计空间
2.1 统一框架
现存的基于GNN的CF通常可以被划分为4个模块:初始化,GNN,多组件和交互。
- 初始化:初始化是将用户和商品的ID映射为稠密向量,通常可以通过look-up来查询得到
- GNN:将初始化阶段得到的embedding送入GNN层中,通过消息传播得到新的输出表征,通常计算流程如下,其中h是表征,l是GNN层,m()是消息函数用于对商品和用户间的消息进行编码,σ()是激活函数,N(u)是用户u的邻居节点,f()是聚合函数,g()函数用于合并不同层的输出表征。
- 多组件:这部分通过将用户/商品表征分解为多个组件,学习如何从不同方面更好地建模不同的用户兴趣。比如,可以通过不同GNN得到不同的K类h表征,然后将这些表征进行结合,公式如下,其中c()是结合函数
- 交互:用户表征和商品表征交互从而对可能交互的分数进行预测,
,通常可以用内积,也可以是别的。
2.2 提出的设计空间
基于上述统一框架,可以得到上图上的9个设计维度,这几个维度可以被划分到4个模块中。为了探索每个设计维度的影响,本文对不同维度进行剖析。note:本文的目的不是提出最广泛的设计空间,而是帮助理解基于 GNN 的 CF 的不同设计维度的影响,并获得设计性能良好模型的见解。几个重要的设计维度如下,
,但是也有一些方法认为源节点和目标节点的交互应该被编码为消息,因此也可以设计为
,通过哈达玛积计算消息。
- 聚合f():考虑四种常见且有效的 GNN 方法作为其设计选择:GCN,GAT,GIN和GraphSAGE。同时包括None的选择,这表示不利用图信息并通过 MLP 细化用户/商品表征,以扩大设计空间的容量以包括那些非基于 GNN 的模型。
- 结合层g():Stack 表示直接堆叠多个 GNN 层,并使用最后一层的输出来获得每个组件对应的表示。当然也可以使用Concat、Sum和Mean等。
- 组件结合c():比较直接的方式是拼接Concat,也可以使用注意力机制Att和均值Mean
- 交互函数p():比较常用的是点积Dot Product,也可以采用NN的方式,比如Concat+MLP或Sum+MLP。
3. 实验
3.1 不同设计维度参数的影响
通过实验结果,我们可以观察到设计空间中存在一些冗余。例如,初始embedding维度可以固定为 64,因为它明显优于其他 2 个备选方案。它激励我们可以进一步修剪原始设计空间以提高其质量,这将提高性能最佳模型的搜索效率。
还有更多的实验,详见论文。