machine-learning
  • Welcome
  • 动手学深度学习
    • 1. 前言
    • 2. 预备知识
    • 3. 线性神经网络
    • 4. 多层感知机
    • 5. 深度学习计算
    • 6. 卷积神经网络
    • 7. 现代卷积神经网络
    • 8. 循环神经网络
    • 9. 现代循环神经网络
    • 10. 注意力机制
    • 11. 优化算法
    • 12. 计算性能
    • 13. 计算机视觉
    • 14. 自然语言处理:预训练
    • 15. 自然语言处理:应用
    • 16. 附录:深度学习工具
  • 百面机器学习
    • 1. 特征工程
    • 2. 模型评估
    • 3. 经典算法
    • 4. 降维
    • 5. 非监督学习
    • 6. 概率图模型
    • 7. 优化算法
    • 8. 采样
    • 9. 前向神经网络
    • 10. 循环神经网络
    • 11. 强化学习
    • 12. 集成学习
    • 13. 生成式对抗网络
    • 14. 人工智能的热门应用
  • 百面深度学习
    • 1. 卷积神经网络 CNN
    • 2. 循环神经网络 RNN
    • 3. 图神经网络 GNN
    • 4. 生成模型
    • 5. 生成式对抗网络 GAN
    • 6. 强化学习 RL
    • 7. 元学习
    • 8. 自动化机器学习 AutoML
    • 9. 计算机视觉 CV
    • 10. 自然语言处理 NLP
    • 11. 推荐系统
    • 12. 计算广告
    • 13. 视频处理
    • 14. 计算机听觉
    • 15. 自动驾驶
  • 统计学习方法
  • 推荐系统实践
    • 1. 推荐系统
    • 2. 特征工程
    • 3. Embedding
    • 4. 精排
    • 5. 召回
    • 6. 粗排/重排
    • 7. 多任务/多场景
    • 8. 冷启动
    • 9. 评估调试
    • 10. 自我修养
  • 深度学习推荐系统
    • 1. 推荐系统
    • 2. 进化之路
    • 3. 深度学习的应用
    • 4. Embedding
    • 5. 多角度审视
    • 6. 工程实现
    • 7. 评估方法
    • 8. 前沿实践
    • 9. 知识框架
  • 强化学习的数学原理
    • 1. 基础概念
    • 2. 贝尔曼公式
    • 3. 贝尔曼最优公式
    • 4. 值迭代与策略迭代
    • 5. 蒙特卡洛方法
    • 6. 随机近似与随机梯度下降
    • 7. 时序差分方法
    • 8. 值函数近似
    • 9. 策略梯度方法
    • 10. Actor-Critic方法
Powered by GitBook
On this page
  • 3.1 GNN 基础结构 ***
  • 3.2 GNN 在推荐系统中的应用 PinSage
  • 3.3 GNN 的推理能力 ****
  1. 百面深度学习

3. 图神经网络 GNN

3.1 GNN 基础结构 ***

常见架构:Y=σ(D^−1A^XW)Y=\sigma(\hat D^{-1}\hat A XW)Y=σ(D^−1A^XW)

  • 图谱(Graph Spectrum)和图傅里叶变换(GFT)

    • 拉普拉斯矩阵 L=D−AL=D-AL=D−A,其中 AAA 为邻接矩阵,DDD 为对角度矩阵

    • 特征值分解 L=UΛUTL=U\Lambda U^TL=UΛUT,其中 Λ\LambdaΛ 是从小到大的特征值,是 G 的 图谱

      • 特征值 - 频域频率,特征向量 - 基波

      • 特征值越小,特征向量(波)越平缓

    • 图傅里叶变换(GFT) x^=UTx\hat x=U^Txx^=UTx,图逆傅里叶变换(IGFT) x=Ux^x=U\hat xx=Ux^

  • 基于 频域 的 GNN:GCN

    • 卷积定理:两个函数卷积后的 FT,是他们各自 FT 后的乘积

    • 卷积:x∗h=U⋅diag(h^)⋅UTxx*h=U\cdot diag(\hat h)\cdot U^Txx∗h=U⋅diag(h^)⋅UTx,各自 FT 乘积的 IFT

    • y=σ(U⋅(∑k=0KαkΛk)⋅UTx)=σ(∑k=0KαkLkx)y=\sigma(U\cdot(\sum_{k=0}^K \alpha_k \Lambda^k)\cdot U^T x)=\sigma(\sum_{k=0}^K \alpha_k L^k x)y=σ(U⋅(∑k=0K​αk​Λk)⋅UTx)=σ(∑k=0K​αk​Lkx)

    • 本质:将每个节点的 K 步范围内的邻居特征融合起来

  • 基于 空域 的 GNN:GAT,GraphSAGE

    • GAT:基于多头注意力机制的邻域卷积,yi=σ(1M∑m=1M∑j∈Niαij(m)(xj⋅W(m)))y_i=\sigma(\frac1M \sum_{m=1}^M \sum_{j\in \mathcal N_i}\alpha_{ij}^{(m)}(x_j \cdot W^{(m)}))yi​=σ(M1​∑m=1M​∑j∈Ni​​αij(m)​(xj​⋅W(m)))

    • GraphSAGE:K 度邻居特征融合(max-pooling, average-pooling, LSTM)

      • 融合目标节点邻域的特征 hNi=aggregate({xj∣j∈Ni})h_{\mathcal N_i}=aggregate(\{x_j|j\in\mathcal N_i\})hNi​​=aggregate({xj​∣j∈Ni​})

      • 使用 邻域+自身 拼接特征更新 yi=σ(concat(xi,hNi)⋅W)y_i=\sigma(concat(x_i,h_{\mathcal N_i})\cdot W)yi​=σ(concat(xi​,hNi​​)⋅W)

3.2 GNN 在推荐系统中的应用 PinSage

  • 网络构建

    • 二部图:图片 - 图板

    • 图片特征:视觉、文本标注、流行度

  • 模型结构(GraphSAGE)

    • 节点邻域定义:随机游走,K 度邻居中,抽出 T 个重要节点

    • aggregate 操作:按照重要性,加权平均

    • 负样本抽取:课程学习,每轮选取难以分辨的负样本

  • 任务总结

    • 点分类 p(vi)=Softmax(hi)p(v_i)=Softmax(h_i)p(vi​)=Softmax(hi​)

    • 边预测 p(Aij)=σ(hihjT)p(A_{ij})=\sigma(h_ih_j^T)p(Aij​)=σ(hi​hjT​)

    • 图分类 p(G)=Softmax(∑i∈Vhi)p(G)=Softmax(\sum_{i\in V}h_i)p(G)=Softmax(∑i∈V​hi​)

3.3 GNN 的推理能力 ****

  • 推理能力

    • 关系推理(Relational Reasoning):根据实体间关系,做出逻辑判断

    • 组合泛化(Combinational Generalization):组合零碎知识,解决新问题

  • GNN 基本计算框架

    • 更新 e 向量表示

    • 聚合,更新 v 向量表示

    • 聚合所有 e 的向量表示,聚合所有 v 的向量表示,更新 G 向量表示

  • 有何优势

    • 具备推断关系的能力:关系的强度、方向可以学习

    • 充分利用训练数据:建模图中任意一对邻接节点之间的关系,泛化能力强

    • 模型输出与节点标号顺序无关

  • 推理机制 在其他领域的应用

    • 自注意力机制:zi=∑j=1nαij(xjWV)z_i=\sum_{j=1}^n \alpha_{ij} (x_jW^V)zi​=∑j=1n​αij​(xj​WV),αij=softmax(eij)\alpha_{ij}=softmax(e_{ij})αij​=softmax(eij​)

      • 其中 eij=(xiWQ)(xjWK)Tdze_{ij}=\frac{(x_iW^Q)(x_jW^K)^T}{\sqrt{d_z}}eij​=dz​​(xi​WQ)(xj​WK)T​,代表元素 i, j 之间的相关性

      • 完全图,ZZZ 视为节点向量,eije_{ij}eij​ 视为边,自注意力机制 = 完全图神经网络

      • 层次结构 Transformer 多个自注意力累计 = 图神经网络多层卷积

    • 基于度量的元学习:y=∑ikθ(x,xi)⋅yiy=\sum_i k_\theta (x,x_i)\cdot y_iy=∑i​kθ​(x,xi​)⋅yi​,其中 kθ(⋅,⋅)k_\theta(\cdot,\cdot)kθ​(⋅,⋅) 是衡量相似性的核函数

    • 分解机:y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n⟨vi,vj⟩⋅xixjy(x)=w_0+\sum_{i=1}^n w_ix_i +\sum_{i=1}^n \sum_{j=i+1}^n \langle v_i,v_j\rangle \cdot x_ix_jy(x)=w0​+∑i=1n​wi​xi​+∑i=1n​∑j=i+1n​⟨vi​,vj​⟩⋅xi​xj​,其中 v 是辅助表示向量

  • GNN 推理能力重点:对关系建模

Previous2. 循环神经网络 RNNNext4. 生成模型

Last updated 3 years ago