推荐系统中的图神经网路

本文最后更新于:10 个月前

gnn图神经网络

gat图注意力网络

gcn 图卷积网络

什么是GNN

  1. CNN: 通过卷积得到下一层的feature map
  2. 在图结构中,通过对邻居节点的表示进行计算得到下一层feature map,再利用传播过程所得到的各层表示来进一步完成后续任务(例如节点分类/边预测/节点内积预测匹配度等等)
  3. 根据结构设计不同,GNN模型可以划分为以下几种,RecGNN、ConvGNN、STGNN和GAE

为什么使用GNN

  1. 一般推荐:将用户偏好视为静态的,学习用户和物品的静态表示
  2. 序列化推荐:认为用户偏好随时间动态变化,根据交互序列来预测用户下一个可能喜欢的物品

除了数据方面,对于具体的学习过程而言,GNN具有以下优点 :

  • 对于 general recommendation:GNN可以通过节点聚合显式地编码协同信号来增强用户和物品的表示学习能力,相比与其他模型,GNN对多跳信息的建模更加灵活方便。
  • 对于 sequential recommendation:将序列数据转换为序列图可以更灵活地进行项目选择的原始转换,并且,GNN可以通过环的结构捕获隐含在顺序行为中的复杂用户偏好。

图信号处理

图信号处理基本理论延伸到GCN中

  1. 拉普拉斯矩阵: \[ L = D - A \]

\[ D_{ii}=\sum_j{A{ij}} \text{ 表示节点}vi\text{的度} \]

​ 元素级别定义: \[ L_{ij}= \begin{cases} deg(v_i) &\text{if }i=j\\ -1 &\text{if }e_{ij} \in E\\ 0 &\text{otherwise} \end{cases} \]

​ 正则化形式: \[ L_{sym}=D^{-1/2}LD^{1/2} \] ​ 元素级别定义: \[ L_{sym}[i,j]= \begin{cases} 1 &\text{if }i=j\\ \frac{-1}{\sqrt{deg(v_i)deg(v_j)}} &\text{if }e_{ij} \in E\\ 0 &\text{otherwise} \end{cases} \]

  1. 图傅里叶变换

    将拉普拉斯矩阵正交对角化 \[ L = D - A = V \Lambda V^T \] 图傅里叶变换: \[ \hat{x}=V^Tx \]