十二、GraphGAN

  1. 目前的Graph Rresentation Learning 图表示学习方法可以分为两类:

    • 用于学习图的 underlying connectivity distribution 底层连接分布的生成模型。

      类似于经典的生成模型(如混合高斯模型、LDA 模型),生成式图表示学习学习模型假设对每个顶点 十二、GraphGAN - 图1 ,都存在一个潜在的真实连接分布 十二、GraphGAN - 图2 。这个真实的连接分布表明了 十二、GraphGAN - 图3 和图中其它顶点之间的连接性偏好。因此可以将图中存在的边视为从这些条件分布中生成的观测样本,并且生成模型可以通过最大化图中边的概率来学习顶点的 embedding

      DeepWalk 使用随机游走来为每个顶点采样上下文顶点,然后最大化给定顶点观测到的上下文顶点的对数似然。Node2vec 通过提出一个有偏的随机游走过程进一步拓展了这个思想,当为给定顶点选择上下文顶点时,这会提供更大的灵活性。

    • 用于预测一对顶点pair 对之间存在边的可能性的判别模型。

      与生成模型不同,判别模型不再将边视为从潜在的条件分布中产生,而是学习用于直接预测边的存在性的分类器。

      通常判别模型联合一对顶点 pair十二、GraphGAN - 图4 作为特征,然后预测这对顶点之间存在边的概率 十二、GraphGAN - 图5

      SDNE 使用高维稀疏的顶点邻接向量作为每个顶点的原始特征,并通过应用自编码器,基于边是否存在的监督信息来提取顶点的 embeddingPPNE 通过在正样本(连接的顶点pair 对)、负样本(断开的顶点 pair 对)上进行监督学习,直接学习顶点 embedding ,并在学习过程中保留顶点的固有属性。

    GAN 启发,论文 《GraphGAN: Graph Representation Learning with Generative Adversarial Nets》 提出了 GraphGAN 模型,一种结合了上述两种方法的新的图表示学习框架。

    具体而言,GraphGAN 在学习过程中训练两个模型:

    • 生成器 十二、GraphGAN - 图6 :它试图尽可能地拟合底层的真实连接分布 十二、GraphGAN - 图7 ,并生成与顶点 十二、GraphGAN - 图8 最可能连接的顶点,即 fake 顶点。
    • 判别器 十二、GraphGAN - 图9:它试图区分well-connected 顶点对与 ill-connected 顶点对,并计算顶点 十二、GraphGAN - 图10十二、GraphGAN - 图11 之间存在边的概率。

    生成器 十二、GraphGAN - 图12 和判别器 十二、GraphGAN - 图13min-max game 中分别扮演两个角色:

    • 生成器 十二、GraphGAN - 图14 在判别器 十二、GraphGAN - 图15 提供的指导下生成最难区分的 fake 顶点。
    • 判别器 十二、GraphGAN - 图16 试图区分真实顶点和 fake 顶点,从而避免被生成器欺骗。

    通过在game 中相互竞争,最终它们都提高了自己的能力,直到生成器 十二、GraphGAN - 图17十二、GraphGAN - 图18 无法区分为止。

  2. 传统 softmax 及其变体不适于生成器,原因有两个:

    • 对给定的顶点 十二、GraphGAN - 图19softmax 对所有其它顶点一视同仁,完全没有考虑到图的结构信息。
    • softmax 的计算涉及到图中的所有顶点,这既低效又耗时。

    为克服这些限制, GraphGAN 提出了一种新的图 softmax ,称作 Graph Softmax。论文证明了 Graph Softmax 满足归一性normalization、结构感知graph structure awareness、计算高效computational efficiency 等优点。

    另外,GraphGAN 对生成器提出了一种基于随机游走的生成策略,该策略与 Graph Softmax 的定义一致,从而大大降低了计算复杂度。

  3. 论文在五个真实世界的图数据集上执行三个任务(链接预测、顶点分类、推荐),实验结果表明 GraphGANSOA 基准方法上取得相当大的提升。这归功于统一的对抗学习框架,以及捕获了图结构信息的 Graph Softmax

12.1 模型

  1. 设图 十二、GraphGAN - 图20 ,其中 十二、GraphGAN - 图21 为顶点集合, 十二、GraphGAN - 图22 为边集合。

    给定顶点 十二、GraphGAN - 图23 ,定义 十二、GraphGAN - 图24十二、GraphGAN - 图25 直接相连的顶点集合,定义 十二、GraphGAN - 图26 的底层真实连接分别为 十二、GraphGAN - 图27

    • 十二、GraphGAN - 图28 反映了 十二、GraphGAN - 图29 和所有其它顶点的连接分布。
    • 十二、GraphGAN - 图30 可以视为从 十二、GraphGAN - 图31 中采样到的观测样本。
  2. 给定图 十二、GraphGAN - 图32GraphGAN 的目标是学习两个方法:

    • 生成器 generator 十二、GraphGAN - 图33 :它的目标是逼近 十二、GraphGAN - 图34 ,然后针对 十二、GraphGAN - 图35 生成最有可能和它连接的顶点。更准确的说,是从 十二、GraphGAN - 图36 中选择和 十二、GraphGAN - 图37 最有可能连接的顶点。
    • 判别器 discriminator 十二、GraphGAN - 图38:它的目标是判断顶点 pair十二、GraphGAN - 图39 之间的连接性。它输出一个标量,代表顶点 十二、GraphGAN - 图40十二、GraphGAN - 图41 之间存在边的概率。

    生成器 十二、GraphGAN - 图42 和判别器 十二、GraphGAN - 图43 扮演两种角色:

    • 生成器 十二、GraphGAN - 图44 试图完美拟合 十二、GraphGAN - 图45 ,然后生成fake 顶点。这些生成的顶点和 十二、GraphGAN - 图46 真实连接的邻居顶点相似,从而欺骗判别器。
    • 判别器 十二、GraphGAN - 图47 试图检测这些顶点是否是 十二、GraphGAN - 图48 的真实相连的顶点,还是由生成器 十二、GraphGAN - 图49 生成的 fake 顶点。

    形式化的,生成器 十二、GraphGAN - 图50 和判别器 十二、GraphGAN - 图51 正在参与具有以下值函数 十二、GraphGAN - 图52 的双人 min-max 游戏:

    十二、GraphGAN - 图53

    其中生成器和判别器的参数可以通过交替最大化和最小化值函数 十二、GraphGAN - 图54 来学习。

  3. GraphGAN 整体框架如下图所示。每次迭代过程中,我们使用来自 十二、GraphGAN - 图55 的正样本(绿色顶点)和来自生成器 十二、GraphGAN - 图56 的负样本(带蓝色条纹的顶点)来训练判别器 十二、GraphGAN - 图57 ,并在 十二、GraphGAN - 图58 的指导下使用策略梯度更新生成器 十二、GraphGAN - 图59

    十二、GraphGAN - 图60十二、GraphGAN - 图61 之间的竞争趋势它们都改进自己的参数,直到 十二、GraphGAN - 图62十二、GraphGAN - 图63 无法区分。

    十二、GraphGAN - 图64

12.1.1 判别器

  1. 给定从真实连接而来的正样本,以及从生成器而来的负样本,判别器 十二、GraphGAN - 图65 的目标是最大对数似然。

    如果判别器 十二、GraphGAN - 图66 是可微的,则可以通过针对 十二、GraphGAN - 图67 的梯度上升来解决。

  2. GraphGAN 中,我们简单的定义判别器 十二、GraphGAN - 图68 为两个输入顶点的 embedding 内积的 sigmoid 函数:

    十二、GraphGAN - 图69

    其中 十二、GraphGAN - 图70 分别是判别器 十二、GraphGAN - 图71 中顶点 十二、GraphGAN - 图72十二、GraphGAN - 图73十二、GraphGAN - 图74representation 向量,十二、GraphGAN - 图75

    注意到这里仅包含 十二、GraphGAN - 图76十二、GraphGAN - 图77 ,这意味着给定一对样本 十二、GraphGAN - 图78 ,我们仅仅需要通过对应的梯度上升来更新 十二、GraphGAN - 图79十二、GraphGAN - 图80

    十二、GraphGAN - 图81

    既:没必要更新全网顶点的 embedding

  3. 理论上 SDNE 等任何判别式模型都可以用作判别器 十二、GraphGAN - 图82 ,论文将如何选择合适的判别器作为未来的研究。

12.1.2 生成器

  1. 和判别器相比,生成器 十二、GraphGAN - 图83 的目标是:使得判别器 十二、GraphGAN - 图84 区分 十二、GraphGAN - 图85 生成的fake 顶点的概率最小化。

    即:生成器通过调整参数 十二、GraphGAN - 图86 ,从而增加其生成的 fake 顶点在判别器 十二、GraphGAN - 图87 中的得分。

  2. 由于生成器采样的顶点 十二、GraphGAN - 图88 是离散的,因此遵循 Schulman 等人的做法,论文建议通过策略梯度policy gradient计算 十二、GraphGAN - 图89十二、GraphGAN - 图90 的梯度:

    十二、GraphGAN - 图91

    十二、GraphGAN - 图92 为生成器采样的顶点数量。

    其中倒数第二行是因为 十二、GraphGAN - 图93

    梯度 十二、GraphGAN - 图94 的物理意义为 十二、GraphGAN - 图95 的加权和,权重为 十二、GraphGAN - 图96

    • 十二、GraphGAN - 图97 更容易被判别器 十二、GraphGAN - 图98 识别时,十二、GraphGAN - 图99 得分较小,则加权的权重较大。
    • 十二、GraphGAN - 图100 更不容易被判别器 十二、GraphGAN - 图101 识别时,十二、GraphGAN - 图102 得分较大,则加权的权重较小。

    这表明:当我们对 十二、GraphGAN - 图103 应用梯度下降时,更容易被判别器 十二、GraphGAN - 图104 区分的fake顶点将“拉扯”生成器,使其得到一个较大的更新。

  3. 生成器 十二、GraphGAN - 图105 最简单直接的实现方式是通过 softmax 函数来实现:

    十二、GraphGAN - 图106

    其中 十二、GraphGAN - 图107 为分别是生成器 十二、GraphGAN - 图108 中顶点 十二、GraphGAN - 图109十二、GraphGAN - 图110十二、GraphGAN - 图111representation 向量,十二、GraphGAN - 图112

  4. 为了在每轮迭代中更新 十二、GraphGAN - 图113,我们首先基于 十二、GraphGAN - 图114 计算近似的连接分布,然后根据该分布随机采样一组 十二、GraphGAN - 图115 ,然后通过随机梯度下降法来更新 十二、GraphGAN - 图116

12.1.3 Graph Softmax

  1. 在生成器中应用 softmax 有两个限制:

    • 计算 十二、GraphGAN - 图117softmax 函数时,包含图中的所有顶点的embedding 。这意味着对于每个生成的样本 十二、GraphGAN - 图118 ,我们需要计算梯度 十二、GraphGAN - 图119,然后更新所有顶点。

      这种方式计算效率太低,尤其是对于具有数百万个顶点的真实世界的大型Graph

    • 图的结构信息编码了顶点之间丰富的邻近信息,但是 softmax 函数完全未考虑图的结构信息,因为它不加区分的对待所有顶点。

    最近 hierarchical softmax 和负采样技术是 softmax 的流行替代方案。尽管这些方法可以在一定程度上减少计算量,但是它们也没有考虑图的结构信息,因此应用于图的表示学习时也无法获得令人满意的性能。

  2. 未解决softmax 的问题,GraphGAN 提出了 Graph Softmax,其关键思想是:重新对生成器 十二、GraphGAN - 图120 定义一个满足下面三个属性的理想的softmax 方法:

    • normalized 归一化:生成器 十二、GraphGAN - 图121 应该是一个有效的概率分布。即: 十二、GraphGAN - 图122
    • graph-structure-aware 结构感知:生成器 十二、GraphGAN - 图123 应该利用图的结构信息。即:顶点之间的最短距离越小,则它们连接的概率越大;顶点之间的最短距离越大,则它们连接的概率越小。
    • 计算高效 computationally efficient:和计算全量 softmax 不同,计算 十二、GraphGAN - 图124 应该仅仅包含图中的一小部分顶点。
  3. 为计算 十二、GraphGAN - 图125 ,我们首先从顶点 十二、GraphGAN - 图126 开始对原始图 十二、GraphGAN - 图127 进行广度优先搜索 BFS ,这得到一棵以 十二、GraphGAN - 图128 为根的 BFS十二、GraphGAN - 图129

    给定 十二、GraphGAN - 图130 我们将 十二、GraphGAN - 图131 表示为 十二、GraphGAN - 图132十二、GraphGAN - 图133 的邻居的集合,即:和 十二、GraphGAN - 图134 直连的顶点,包括 十二、GraphGAN - 图135 的父顶点和所有子顶点。注意:十二、GraphGAN - 图136 既依赖于顶点 十二、GraphGAN - 图137 ,又依赖于顶点 十二、GraphGAN - 图138 。如果根顶点 十二、GraphGAN - 图139 不同,则BFS十二、GraphGAN - 图140 也不同,则 十二、GraphGAN - 图141 的邻居集合也不同。

    对于给定的顶点 十二、GraphGAN - 图142 及其邻居顶点 十二、GraphGAN - 图143 ,我们定义给定 十二、GraphGAN - 图144 的条件下 十二、GraphGAN - 图145 的概率为:

    十二、GraphGAN - 图146

    这其实是定义在 十二、GraphGAN - 图147 上的一个 softmax 函数。

    注意到 十二、GraphGAN - 图148 中的每个顶点 十二、GraphGAN - 图149 可以从根节点 十二、GraphGAN - 图150 通过唯一的一条路径达到,定义该路径为 十二、GraphGAN - 图151 ,其中 十二、GraphGAN - 图152 。则 Graph Softmax 定义为:

    十二、GraphGAN - 图153

    其中 十二、GraphGAN - 图154 由上式定义。

  4. 可以证明这种定义的 Graph Softmax 满足归一性、结构感知、计算高效等性质。

    • 定理一:Graph Softmax 满足 十二、GraphGAN - 图155 。证明见原始论文。

    • 定理二:在原始图中如果 十二、GraphGAN - 图156十二、GraphGAN - 图157 的最短路径增加,则 十二、GraphGAN - 图158 下降。

      证明:由于 十二、GraphGAN - 图159 是通过广度优先 BFS 得到的,因此路径 十二、GraphGAN - 图160 同时也定义了一条从 十二、GraphGAN - 图161十二、GraphGAN - 图162 的最短路径,该路径长度为 十二、GraphGAN - 图163 。随着最短路径增加,则 十二、GraphGAN - 图164 中的概率乘积越多,因此 十二、GraphGAN - 图165 越小。

    • 定理三:计算 十二、GraphGAN - 图166 依赖于 十二、GraphGAN - 图167 个顶点,其中 十二、GraphGAN - 图168 是所有顶点的平均 degree十二、GraphGAN - 图169 为所有顶点的大小。

      证明:计算 十二、GraphGAN - 图170 依赖于两种类型的顶点:

      • 在路径 十二、GraphGAN - 图171 上的顶点。路径的最长长度为 十二、GraphGAN - 图172 ,它是 BFS 树的深度。
      • 路径上顶点直接相连的顶点。路径上每个顶点平均有 十二、GraphGAN - 图173 个邻居顶点相连。
  5. 生成器 十二、GraphGAN - 图174 生成 fake 顶点的一个简单方法是:为所有的 十二、GraphGAN - 图175 顶点计算 十二、GraphGAN - 图176 ,然后根据这个概率按比例执行随机采样。

    这里我们提出一种在线的顶点生成方法,该方法计算效率更高并且与 Graph Softmax 的定义一致:根据转移概率 十二、GraphGAN - 图177十二、GraphGAN - 图178 中执行一个从根节点 十二、GraphGAN - 图179 开始的随机游走。在随机游走过程中,如果 十二、GraphGAN - 图180 首次需要访问 十二、GraphGAN - 图181 的父顶点,则选择 十二、GraphGAN - 图182 作为生成的顶点。

    下图给出了 fake 顶点的在线生成过程,以及 Graph Softmax 计算过程。蓝色数字表示概率 十二、GraphGAN - 图183 ,蓝色实线箭头表示随机游走的方向,蓝色条纹顶点是被采样的顶点。最后一幅图的带颜色顶点(绿色、橙色、蓝色、蓝色带条纹)是需要更新参数的顶点。

    • 在每个随机游走步通过概率 十二、GraphGAN - 图184 随机选择当前顶点 十二、GraphGAN - 图185 的一个邻居顶点(标记为蓝色)。
    • 一旦 十二、GraphGAN - 图186,则将 十二、GraphGAN - 图187 作为采样顶点并返回(标记为蓝色带条纹)。
    • 然后根据 十二、GraphGAN - 图188 对路径 十二、GraphGAN - 图189 上的所有路径顶点、以及它们直接相连的顶点的参数进行更新。

    十二、GraphGAN - 图190

  6. 生成器 十二、GraphGAN - 图191 在线生成算法:

    • 输入:

      • 十二、GraphGAN - 图192
      • BFS十二、GraphGAN - 图193
      • 顶点的embedding 十二、GraphGAN - 图194
    • 输出:生成的顶点 十二、GraphGAN - 图195

    • 算法步骤:

      • 初始化:十二、GraphGAN - 图196

      • 十二、GraphGAN - 图197

        • 根据概率 十二、GraphGAN - 图198 随机选择一个顶点 十二、GraphGAN - 图199
        • 如果 十二、GraphGAN - 图200 ,则 十二、GraphGAN - 图201 ,直接返回 十二、GraphGAN - 图202
        • 否则 十二、GraphGAN - 图203
  7. 生成器 十二、GraphGAN - 图204 在线生成算法最多执行 十二、GraphGAN - 图205 个迭代步,因为随机游走路径最迟会在到达叶结点时终止。类似于 Graph Softmax,在线生成方法的计算复杂度为 十二、GraphGAN - 图206 ,这大大低于离线生成方法的 十二、GraphGAN - 图207

12.1.4 GraphGan

  1. GraphGAN 算法:

    • 输入:

      • embedding 维度 十二、GraphGAN - 图208
      • 生成样本数 十二、GraphGAN - 图209
      • 判别样本数 十二、GraphGAN - 图210
    • 输出:

      • 生成器 十二、GraphGAN - 图211
      • 判别器 十二、GraphGAN - 图212
    • 算法步骤:

      • 初始化和预训练 十二、GraphGAN - 图213 以及 十二、GraphGAN - 图214

      • 对每个顶点 十二、GraphGAN - 图215,构建 BFS十二、GraphGAN - 图216

      • 迭代直到 GraphGAN 收敛,迭代步骤为:

        • 十二、GraphGAN - 图217

          • 根据生成器在线生成算法,生成器 十二、GraphGAN - 图218 对每个顶点 十二、GraphGAN - 图219 采样 十二、GraphGAN - 图220 个顶点
          • 根据 十二、GraphGAN - 图221 更新 十二、GraphGAN - 图222
        • 十二、GraphGAN - 图223

          • 对每个顶点 十二、GraphGAN - 图224 ,从真实邻居顶点中采样 十二、GraphGAN - 图225 个正样本,从 十二、GraphGAN - 图226 中采样 十二、GraphGAN - 图227 个负样本。
          • 根据 十二、GraphGAN - 图228 来更新 十二、GraphGAN - 图229
      • 返回 十二、GraphGAN - 图230
  2. 由于构建每棵BFS 树的算法复杂度为 十二、GraphGAN - 图231 ,则构建所有 BFS 树的计算复杂度十二、GraphGAN - 图232 。其中 十二、GraphGAN - 图233 为顶点的平均degree

    G-steps ,每一行的算法复杂度都是 十二、GraphGAN - 图234 ;在 D-steps,第一行的算法复杂度为 十二、GraphGAN - 图235 ,第二行的算法复杂度为 十二、GraphGAN - 图236 。由于 十二、GraphGAN - 图237 都是常数,因此 GraphGAN 每次迭代的算法复杂度为 十二、GraphGAN - 图238

    因此总的算法复杂度为 十二、GraphGAN - 图239 ,由构建 BFS 树的部分决定。

12.2 实验

  1. 我们评估 GraphGAN 在一系列真实数据集上的性能,覆盖链接预测、顶点分类、推荐等三个任务。

  2. 数据集:

    • arXiv-AstroPh 数据集:来自 arXiv 上天文物理领域的论文,包含了作者之间的合作关系。顶点表示作者,边表示co-author 关系。该图包含 18772 个顶点、198110 条边。
    • arXiv-GrQc 数据集:来自 arXiv 上广义相对论与量子宇宙学领域的论文,包含了作者之间的合作关系。顶点表示作者,边表示co-author 关系。该图包含 5242 个顶点、14496 条边。
    • BlogCatalog 数据集:来自 BlogCatelog 网站上给出的博客作者的社交关系网络。顶点标签表示通过博客作者提供的元数据推断出来的作者兴趣。该图包含 10312 个顶点、333982 条边、39 个不同的标签。
    • Wikipedia 数据集:来自维基百科,包含了英文维基百科 dump 文件的前 十二、GraphGAN - 图240 个字节中的单词共现网络。顶点的标签表示推断出来的单词词性Part-of-Speech:POS 。该图包含 4777 个顶点、184812 条边、40 个不同的标签。
    • MovieLens-1M 数据集:是一个二部图,来自 MovieLens 网站上的大约 100万 个评分(边),包含 6040 位用户和 3706 部电影。
  3. 基准模型:

    • DeepWalk:通过随机游走和 skip-gram 来学习顶点 embedding
    • LINE:保留了顶点的一阶邻近关系和二阶邻近关系。
    • Node2Vec:是 DeepWalk 的一个变种,通过一个biased 有偏的随机游走来学习顶点 embedding
    • Struct2Vec:捕获了图中顶点的结构信息。
  4. 参数配置:

    • 所有方法的embedding 的维度 十二、GraphGAN - 图241

    • 所有基准模型的超参数都是默认值。

    • 在所有任务上,GraphGAN 的学习率都是 0.001十二、GraphGAN - 图242十二、GraphGAN - 图243 为测试集的正样本数,然后分别执行 G-stepsD-steps 30 次。这些超参数都是通过交叉验证来选取的。

      最终学到的顶点 embedding十二、GraphGAN - 图244

  5. 我们首先实验了图中连接分布的模式,即:边的存在概率如何随着图中最短路径的变化而变化。

    我们首先分别从 arXiv-AstroPharXiv-GrQc 数据集中随机抽取 100 万 个顶点 pair 对。对于每个选定的顶点 pair 对,我们删除它们之间的连接(如果存在),然后计算它们之间的最短距离。我们计算所有可能的最短距离上边存在的可能性,如下图所示。

    • 显然,顶点 pair 对之间最短距离的增加会极大降低它们之间存在边的可能性。

    • 从对数概率曲线几乎为线性可以看出,顶点 pair 对之间的边存在概率和它们最短距离的倒数成指数关系。

      这进一步证明了 Graph Softmax 捕获了真实世界 Graph 的结构信息。

    十二、GraphGAN - 图245

  6. 在链接预测任务中,我们的目标是预测两个给定顶点之间是否存在边。因此该任务显式了不同的图表示学习方法预测链接的能力。

    我们随机将原始图中 10% 的边作为测试集,并在图上删掉这些边,然后用所有的顶点和剩下的边来训练模型。训练后,我们根据所有顶点训练得到的 embedding 向量,然后用逻辑回归来预测给定顶点 pair 对之间存在边的概率。

    测试集包含原始图中删掉的 10% 条边作为正样本,并随机选择未连接的相等数量的pair 对作为负样本。

    我们使用 arXiv-AstroPharXiv-GrQc 作为数据集,并在下表报告准确率和 Macro-F1 的结果。

    结论:

    • LINEstruct2vec 的性能在链接预测方面相对较差,因为它们不能完全捕获图中链接存在的模式。
    • DeepWalknode2vec 的性能优于 LINEstruct2vec,这可能优于 DeepWalknode2vec 都利用了基于随机游走的 skip-gram 模型,该模型在提取顶点之间邻近度方面表现更好。
    • GraphGAN 优于所有基准方法。与基准方法的单个模型训练相比,对抗训练为 GraphGAN 提供了更高的学习灵活性。

    十二、GraphGAN - 图246

  7. 为直观了解 GraphGAN 学习的稳定性,我们进一步给出了生成器和判别器在 arXiv-GrQc 上的学习曲线。可以看到:

    • GraphGAN 中的 mini-max game 达到了平衡,其中生成器表现出色。
    • 判别器的性能首先增强,然后但逐渐降到 0.8以下。 注意,判别器不会降级到随机盲猜的水平,因为在实践中生成器仍然提供很多真实的负样本。

    十二、GraphGAN - 图247

  8. 我们在 BlogCatalogWikipedia 数据集上执行顶点分类任务。我们在整个图上训练模型,然后将顶点 embedding 作为逻辑回归分类器的输入。其中训练集、测试集按照 9:1 的比例进行拆分。

    我们报告了测试集的准确率和 Macro-F1 结果。

    可以看到:GraphGAN 性能在这两个数据集上都优于所有基准模型。这表明:尽管GraphGAN 设计用于建模顶点之间的连接性分布,但是它仍然可以有效的将顶点信息编码到顶点 embedding 中。

    十二、GraphGAN - 图248

  9. 我们使用 Movielens-1M 作为推荐数据集,我们的目标是对每个用户向他/她推荐一组尚未观看、但是可能被用户喜欢的电影。

    我们首先将所有的4星5星 评级视为边,从而得到一个二部图。然后将原始图的 10% 边随机隐藏作为测试集,并为每个用户构建 BFS 树。

    注意:和之前的两个任务不同,在之前任务中,对于给定的顶点我们定义了它与所有其它顶点的连接性分布。但是推荐任务中,我们仅在一小部分顶点上定义连接性分布,如电影顶点(而不包括用户顶点)。因此我们在用户的 BFS 树中,对于除根顶点之外的所有用户顶点,我们将它们和位于当前 BFS 树中的电影顶点添加直连边来 shortcut

    在训练并获得用户和电影的embedding 之后,对于每个用户,我们基于user embeding 和电影 embedding 的相似度来挑选 十二、GraphGAN - 图249 个用户未观看的电影来作为推荐结果。我们给出测试集上的 Precision@KRecall@K 指标。可以看到:GraphGAN 始终优于所有基准方法,并在两个指标上均有显著改进。

    十二、GraphGAN - 图250