paper2repo:GitHub Repository Recommendation for Academic Papers
Chen Kai Architect

本文介绍了一种新颖的跨平台推荐系统——paper2repo,旨在将学术论文与相关的 GitHub 代码仓库进行匹配。该系统通过构建论文与代码仓库的联合嵌入空间,利用图卷积神经网络(GCN)和文本编码技术,自动地在两者之间建立关联,从而帮助研究者更方便地找到与论文相关的开源代码。实验结果表明,paper2repo 在推荐准确性方面优于现有的方法,显著提高了命中率、MAP 和 MRR 等指标。

背景与动机

GitHub 平台特性

GitHub 是一个流行的社交代码托管平台,用户可以在上面发布和分享开源项目。每个仓库通常包含以下信息:

  • 描述(Description):对仓库的简要介绍。
  • 标签(Tags):用于标记仓库的关键字,反映其主题或功能。
  • 用户星标(Starring):用户可以对感兴趣的仓库进行星标,表示关注。

跨平台推荐的挑战

  • 数据异构性:学术论文和 GitHub 仓库的数据格式和内容特征不同,难以直接进行关联。
  • 缺乏明确的关联:并非所有论文都会在文本中明确提及其对应的代码仓库。
  • 跨平台嵌入:需要将论文和仓库的表示映射到同一嵌入空间,以计算相似度。

模型架构

paper2repo 的核心是一个联合模型,包括:

  1. 文本编码模块:对论文摘要和仓库的描述、标签进行文本编码,提取内容特征。
  2. 受限图卷积神经网络(Constrained GCN)模块:在构建的图结构上,结合文本特征,生成论文和仓库的嵌入表示,并通过约束条件将二者的嵌入空间统一起来。

构建上下文图

论文引用图

  • 节点:论文。
  • :论文之间的引用关系,构成无向图。
  • 特征:论文的摘要文本编码向量。

仓库关联图

由于仓库之间没有直接的引用关系,本文利用以下策略构建仓库关联图:

  • 用户共星标:如果两个仓库被同一用户星标,则在它们之间添加一条边。
  • 标签重叠:如果两个仓库共享相同的标签,且该标签的 TF-IDF 分数超过阈值(如 0.3),则在它们之间添加一条边。
  • 节点特征:仓库的描述和标签的文本编码向量。

文本编码模块

对仓库的文本编码

  1. 词嵌入表示

    • 将描述和标签的文本进行分词,得到序列
    • 使用预训练的词向量(如 GloVe)将每个词映射为 维向量
  2. 卷积层

    • 对文本序列进行卷积操作,使用多种窗口大小 的卷积核

    • 卷积计算公式:

      • 其中 表示从位置 的词向量序列。
      • 为偏置项, 为非线性激活函数(如 ReLU)。
  3. 最大池化层

    • 对每个卷积核的输出进行时间维度上的最大池化,得到特征向量。
  4. 标签编码

    • 对于标签,由于其没有顺序,直接将每个标签的词向量求平均,得到标签的表示。
    • 使用全连接层对标签表示进行转换,使其维度与描述的特征向量一致。
  5. 特征融合

    • 将描述的特征向量和标签的特征向量进行融合(如相加或拼接),得到仓库的最终表示向量

对论文的文本编码

  • 对论文摘要使用与仓库描述相同的卷积神经网络进行编码,得到论文的表示向量

受限图卷积神经网络(Constrained GCN)

GCN 的基本原理

GCN 是一种在图结构上进行卷积运算的神经网络,能够利用节点的特征和图的结构信息来学习节点的嵌入表示。

GCN 的层间传播公式为:

  • :第 层的节点表示矩阵,行表示节点,列表示特征维度。
  • :加上自环后的邻接矩阵。
  • 的度矩阵,
  • :第 层的权重矩阵。
  • :激活函数,如 ReLU。

受限 GCN 模型

由于论文和仓库的嵌入是在不同的图上生成的,直接应用 GCN 会导致它们的嵌入位于不同的空间。为了解决这一问题,本文引入了一个约束条件,将桥接论文和桥接仓库的嵌入对齐。

约束条件

对于每一对桥接论文 和其对应的桥接仓库 ,要求它们的嵌入表示尽可能接近。使用余弦相似度作为度量,约束条件为:

  • 为了简化计算,嵌入向量进行了归一化处理,即 ,因此余弦相似度简化为内积。

因此,约束条件可以表示为:

  • 是一个小的容忍误差,例如 0.001。

损失函数

为了优化模型,引入了加权近似排序对(WARP)损失函数,旨在使相关的仓库在推荐列表中排名靠前。

WARP 损失函数

WARP 损失函数定义为:

  • :正样本对,表示论文 与相关的仓库

  • :论文和仓库的相似度(内积)。

  • :负样本仓库。

  • :边际超参数,控制正负样本之间的间隔,取值在

  • :取非负部分。

  • :将排名转换为损失的函数,定义为:

  • :正样本的边际排名,定义为:

    • :指示函数,当条件为真时取 1,否则取 0。
    • 表示有多少负样本满足 ,即负样本得分比正样本高出

优化目标

原始的优化问题是:

  • :桥接论文-仓库对的数量。

为了将约束条件融入优化目标,采用了拉格朗日乘子法,将优化问题转换为:

  • :拉格朗日乘子,控制损失函数和约束项之间的权重。

然而,由于训练过程中 会动态变化,难以选择合适的 。为了解决这一问题,模型将 替换为动态变化的 ,并对约束误差进行归一化,得到新的优化目标:

  • :平均约束误差,定义为:

    • 由于 已归一化, 的取值范围为 ,因此 的取值范围为

这个新的优化目标避免了手动调整 的问题,使损失函数和约束项在同一量级上,方便模型训练。

模型训练

正负样本的选择

  • 正样本

    • 桥接论文与其对应的桥接仓库构成正样本对。
    • 为了增加正样本数量,假设如果用户同时星标了仓库 和仓库 ,且频率较高,那么仓库 相关性较高。
    • 基于此,从星标桥接仓库的用户中,统计他们还星标的其他仓库,选择共星标次数较高的仓库作为额外的正样本。
  • 负样本

    • 从整个仓库集合中随机采样负样本。
    • 负样本的数量一般比正样本多,以确保模型能够学到区分正负样本的能力。

训练过程

  • 输入

    • 论文和仓库的文本特征(经过文本编码模块处理后的向量)。
    • 论文引用图和仓库关联图。
  • 目标

    • 最小化新的优化目标
  • 优化算法

    • 使用梯度下降法(如 Adam)更新模型参数,包括 GCN 的权重矩阵和文本编码模块的参数。
  • 输出

    • 学习到的论文和仓库的嵌入表示。
    • 在嵌入空间中,相关的论文和仓库距离更近。

实验与结果

数据集

  • 论文数据集

    • 来源:Microsoft Academic API。
    • 数量:32,029 篇论文(2010 年至 2018 年的顶级会议和期刊论文)。
  • 仓库数据集

    • 来源:GitHub API。
    • 数量:7,571 个仓库,包括 2,107 个桥接仓库。

实验设置

  • 评估指标

    • HR@K(Hit Ratio at K):前 K 个推荐结果中包含相关仓库的比例。
    • MAP@K(Mean Average Precision at K):考虑推荐结果的排名,对正确的推荐给予更高的权重。
    • MRR@K(Mean Reciprocal Rank at K):第一个相关仓库的排名的倒数的平均值。
  • 对比方法

    • NSCR:一种跨域推荐框架,结合了深度全连接层和图拉普拉斯算子。
    • KGCN:利用知识图谱和 GCN 的推荐方法。
    • CDL:联合深度表示学习和协同过滤的推荐方法。
    • NCF:神经协同过滤模型。
    • LINE:一种大规模网络嵌入方法。
    • MF:矩阵分解的推荐方法。
    • BPR:基于贝叶斯个性化排序的矩阵分解方法。

实验结果

  • 总体表现

    • paper2repo 在所有评估指标上均优于对比方法,特别是在 HR@10 上有明显提升。
  • 结果分析

    • 结合文本特征和图结构的信息,以及对嵌入空间的约束,有助于提高跨平台推荐的准确性。
    • 受限 GCN 模型能够有效地将论文和仓库的嵌入映射到同一空间,使得相似度计算更加准确。

讨论与局限性

冷启动问题

  • 对于新加入的仓库,缺乏用户星标和标签信息,导致仓库关联图的构建受到限制,可能影响推荐效果。

桥接论文数量

  • 模型依赖于桥接论文-仓库对来对齐嵌入空间。如果桥接对数量较少,可能无法充分学习跨平台的映射关系。

计算复杂度

  • GCN 的计算复杂度较高,特别是在大规模图数据上,可能存在性能瓶颈。

结论与未来工作

本文提出了一个有效的跨平台推荐系统 paper2repo,通过联合文本编码和受限 GCN,实现了学术论文与 GitHub 仓库的高效关联和推荐。实验结果表明,该方法在跨平台推荐任务中具有优越的性能。

未来工作方向

  • 扩展图结构:引入更多的节点和边类型(如作者、机构等),构建更丰富的异构图,提高模型的表达能力。

  • 改进模型效率:采用更高效的 GCN 变体或图采样技术,提升模型在大规模数据集上的可扩展性。

  • 处理冷启动问题:结合生成模型或迁移学习,增强对新论文和新仓库的推荐能力。

  • 提高泛化能力:探索无桥接论文情况下的跨平台嵌入方法,提升模型在其他领域的适用性。

参考文献

[1] Shao, H., Sun, D., Wu, J., Zhang, Z., Zhang, A., Yao, S., Liu, S., Wang, T., Zhang, C., & Abdelzaher, T. (2020). paper2repo: GitHub Repository Recommendation for Academic Papers. Proceedings of The Web Conference 2020, 580–590.

[2] Kipf, T. N., & Welling, M. (2017). Semi-Supervised Classification with Graph Convolutional Networks. International Conference on Learning Representations (ICLR).

[3] Weston, J., Bengio, S., & Usunier, N. (2011). WSABIE: Scaling Up to Large Vocabulary Image Annotation. Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI), 2764–2770.

  • Post title:paper2repo:GitHub Repository Recommendation for Academic Papers
  • Post author:Chen Kai
  • Create time:2024-10-17 19:00:00
  • Post link:https://www.chenk.top/paper2repo:GitHub Repository Recommendation for Academic Papers/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments