本文介绍了一种新颖的跨平台推荐系统——paper2repo,旨在将学术论文与相关的 GitHub 代码仓库进行匹配。该系统通过构建论文与代码仓库的联合嵌入空间,利用图卷积神经网络(GCN)和文本编码技术,自动地在两者之间建立关联,从而帮助研究者更方便地找到与论文相关的开源代码。实验结果表明,paper2repo 在推荐准确性方面优于现有的方法,显著提高了命中率、MAP 和 MRR 等指标。
背景与动机
GitHub 平台特性
GitHub 是一个流行的社交代码托管平台,用户可以在上面发布和分享开源项目。每个仓库通常包含以下信息:
- 描述(Description):对仓库的简要介绍。
- 标签(Tags):用于标记仓库的关键字,反映其主题或功能。
- 用户星标(Starring):用户可以对感兴趣的仓库进行星标,表示关注。
跨平台推荐的挑战
- 数据异构性:学术论文和 GitHub 仓库的数据格式和内容特征不同,难以直接进行关联。
- 缺乏明确的关联:并非所有论文都会在文本中明确提及其对应的代码仓库。
- 跨平台嵌入:需要将论文和仓库的表示映射到同一嵌入空间,以计算相似度。
模型架构
paper2repo 的核心是一个联合模型,包括:
- 文本编码模块:对论文摘要和仓库的描述、标签进行文本编码,提取内容特征。
- 受限图卷积神经网络(Constrained GCN)模块:在构建的图结构上,结合文本特征,生成论文和仓库的嵌入表示,并通过约束条件将二者的嵌入空间统一起来。
构建上下文图
论文引用图
- 节点:论文。
- 边:论文之间的引用关系,构成无向图。
- 特征:论文的摘要文本编码向量。
仓库关联图
由于仓库之间没有直接的引用关系,本文利用以下策略构建仓库关联图:
- 用户共星标:如果两个仓库被同一用户星标,则在它们之间添加一条边。
- 标签重叠:如果两个仓库共享相同的标签,且该标签的 TF-IDF 分数超过阈值(如 0.3),则在它们之间添加一条边。
- 节点特征:仓库的描述和标签的文本编码向量。
文本编码模块
对仓库的文本编码
词嵌入表示:
- 将描述和标签的文本进行分词,得到序列
。 - 使用预训练的词向量(如 GloVe)将每个词映射为
维向量 。
- 将描述和标签的文本进行分词,得到序列
卷积层:
对文本序列进行卷积操作,使用多种窗口大小
的卷积核 。 卷积计算公式:
- 其中
表示从位置 到 的词向量序列。 为偏置项, 为非线性激活函数(如 ReLU)。
- 其中
最大池化层:
- 对每个卷积核的输出进行时间维度上的最大池化,得到特征向量。
标签编码:
- 对于标签,由于其没有顺序,直接将每个标签的词向量求平均,得到标签的表示。
- 使用全连接层对标签表示进行转换,使其维度与描述的特征向量一致。
特征融合:
- 将描述的特征向量和标签的特征向量进行融合(如相加或拼接),得到仓库的最终表示向量
。
- 将描述的特征向量和标签的特征向量进行融合(如相加或拼接),得到仓库的最终表示向量
对论文的文本编码
- 对论文摘要使用与仓库描述相同的卷积神经网络进行编码,得到论文的表示向量
。
受限图卷积神经网络(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.