Graph Convolutional Neural Networks for Web-Scale Recommender Systems

简介

解决的问题

FAQ

模型的主要思路是什么

主要贡献点是什么

数据量有多大

图是如何构造的

节点的特征是如何构造的

评估方式有哪些

评估任务是:item-item推荐(即i2i推送相似的pin);homefeed任务?

向量的应用

文章做了哪些关键事情提升了扩展性

  1. On-the-fly convolutions:去掉了全拉普拉斯矩阵运算,基于邻居采样来计算即可
  2. Producer-consumer minibatch construction:producer-consumer 架构构造minibatch训练数据,保证在训练时最大限度地利用GPU
  3. Efficient MapReduce inference:加速推断效率

为什么卷积的时候要先做一层变换,而不是直接聚合

为什么聚合之后还要再来一层变换

为什么不降顶点自己的向量在第一层融合的时候就融合进去

怎么理解用concat比avg性能提升较大

为什么最后还要归一化

卷积时的采样是如何进行的

每个node的采样权重是如何构造

Pooling的重要性加权是如何做的

卷积的参数有哪些

训练的监督信号?

$$
J(z_q, z_i) = E_{n_k \sim P_n(q)} \max{ 0, z_q\cdot z_{n_k} - z_q\cdot z_i + \Delta }
$$

训练过程如何

Producer-consumer minibatch construction是什么

负采样的优化

Curriculum training 是怎么做的

为什么naive的方法无法最大限度利用GPU

正常情况下,在做卷积时需要查询图的邻接表获取邻居节点以及节点的特征,所以会带来GPU和CPU的通信(因为无法将所有顶点特征和邻接表都塞到GPU中)

为什么文章的方法可以最大限度利用GPU

先把这个batch用到的节点构成的子图邻接表和他们的特征抽出来,在这个batch开始的时候一起送到GPU内存,那么在卷积计算的时候就不用查询CPU了

MapReduce推断是如何做的

naive的方法为什么会有重复计算

Weak And 是什么

没搞清楚

试验的对比对象有哪些

  1. 只用视觉向量
  2. 只用文本向量
  3. 视觉+文本向量融合
  4. 本文的方法

相比内容的方法,本文的方法多了什么额外的信息

计算资源

离线评估指标

查看随机两个item的余弦相似度分布有什么用

余弦相似度分布

图结构和邻居采样是通过什么数据结构实现的

代码实现时用到了哪些库