前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WSDM'22「第四范式」一文剖析基于GNN的协同过滤方法

WSDM'22「第四范式」一文剖析基于GNN的协同过滤方法

作者头像
秋枫学习笔记
发布2022-09-19 11:10:42
2650
发布2022-09-19 11:10:42
举报
文章被收录于专栏:秋枫学习笔记

关注我们,提升效率

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()函数用于合并不同层的输出表征。
\begin{array}{c} \mathbf{h}_{u}^{(0)}=\mathbf{e}_{u}, \mathbf{h}_{i}^{(0)}=\mathbf{e}_{i} \\ \mathbf{m}_{u \leftarrow i}^{(l)}=m\left(\mathbf{h}_{u}^{(l-1)}, \mathbf{h}_{i}^{(l-1)}\right)\\ \mathbf{h}_{u}^{(l+1)}=\sigma\left(f\left[\left\{\mathbf{m}_{u \leftarrow i}^{(l)}, \forall i \in \mathcal{N}(u)\right\}, \mathbf{h}_{u}^{(l)}\right]\right), \\ \mathbf{h}_{u}=g\left(\mathbf{h}_{u}^{(0)}, \mathbf{h}_{u}^{(1)}, \cdots, \mathbf{h}_{u}^{(L)}\right), \end{array}
  • 多组件:这部分通过将用户/商品表征分解为多个组件,学习如何从不同方面更好地建模不同的用户兴趣。比如,可以通过不同GNN得到不同的K类h表征,然后将这些表征进行结合,公式如下,其中c()是结合函数
\mathbf{h}_u=\{\mathbf{h}_{u,1},...,\mathbf{h}_{u,K}\}
  • 交互:用户表征和商品表征交互从而对可能交互的分数进行预测,
\hat{r}_{ui}=p(h_u,h_i)

,通常可以用内积,也可以是别的。

2.2 提出的设计空间

基于上述统一框架,可以得到上图上的9个设计维度,这几个维度可以被划分到4个模块中。为了探索每个设计维度的影响,本文对不同维度进行剖析。note:本文的目的不是提出最广泛的设计空间,而是帮助理解基于 GNN 的 CF 的不同设计维度的影响,并获得设计性能良好模型的见解。几个重要的设计维度如下,

  • 消息函数:通常是直接设计
m(\cdot)=h_u^{(l-1)}

,但是也有一些方法认为源节点和目标节点的交互应该被编码为消息,因此也可以设计为

m(\cdot)=h_u^{(l-1)}\odot h_i^{(l-1)}

,通过哈达玛积计算消息。

  • 聚合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 个备选方案。它激励我们可以进一步修剪原始设计空间以提高其质量,这将提高性能最佳模型的搜索效率

还有更多的实验,详见论文。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 统一框架
  • 2.2 提出的设计空间
  • 3.1 不同设计维度参数的影响
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档