GNNRecom/plan.md

245 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 工作计划
## 总体计划
* [x] 2020.12~2021.3 继续阅读相关文献,考虑改进方法
* [x] 2021.3~2021.7 实现现有的异构图神经网络模型
* [x] 2021.7~2021.10 改进异构图神经网络模型,完成与现有方法的对比实验
* [ ] 2021.9~2021.10 构造学术网络数据集,实现基于图神经网络的推荐算法
* [x] 2021.10~2021.11 整理实验结果,实现可视化系统,撰写毕业论文初稿
* [ ] 2021.11~2021.12 准备毕业答辩
## 论文阅读
### 异构图表示学习
#### 综述
* [x] 2020 [Heterogeneous Network Representation Learning: A Unified Framework with Survey and Benchmark](https://arxiv.org/pdf/2004.00216)
* [x] 2020 [A Survey on Heterogeneous Graph Embedding: Methods, Techniques, Applications and Sources](https://arxiv.org/pdf/2011.14867)
#### 图神经网络
* [x] 2014 KDD [DeepWalk](https://arxiv.org/pdf/1403.6652)
* [x] 2016 KDD [node2vec](https://arxiv.org/pdf/1607.00653)
* [x] 2017 KDD [metapath2vec](https://ericdongyx.github.io/papers/KDD17-dong-chawla-swami-metapath2vec.pdf)
* [x] 2017 ICLR [GCN](https://arxiv.org/pdf/1609.02907)
* [x] 2018 ESWC [R-GCN](https://arxiv.org/pdf/1703.06103)
* [x] 2018 ICLR [GAT](https://arxiv.org/pdf/1710.10903)
* [x] 2019 KDD [HetGNN](https://dl.acm.org/doi/pdf/10.1145/3292500.3330961)
* [x] 2019 WWW [HAN](https://arxiv.org/pdf/1903.07293)
* [x] 2020 WWW [MAGNN](https://arxiv.org/pdf/2002.01680)
* [x] 2020 WWW [HGT](https://arxiv.org/pdf/2003.01332)
* [x] 2020 [HGConv](https://arxiv.org/pdf/2012.14722)
* [x] 2020 KDD [GPT-GNN](https://arxiv.org/pdf/2006.15437)
* [x] 2020 ICLR [GraphSAINT](https://openreview.net/pdf?id=BJe8pkHFwS)
* [x] 2020 [SIGN](https://arxiv.org/pdf/2004.11198)
* [x] 2020 [NARS](https://arxiv.org/pdf/2011.09679)
* [x] 2021 ICLR [SuperGAT](https://openreview.net/pdf?id=Wi5KUNlqWty)
* [x] 2021 [R-HGNN](https://arxiv.org/pdf/2105.11122)
#### 自监督/预训练
* [x] 2020 [Self-Supervised Graph Representation Learning via Global Context Prediction](https://arxiv.org/pdf/2003.01604)
* [ ] 2020 ICML [When Does Self-Supervision Help Graph Convolutional Networks?](http://proceedings.mlr.press/v119/you20a/you20a.pdf)
* [x] 2020 ICLR [Strategies for Pre-Training Graph Neural Networks](https://www.openreview.net/pdf?id=HJlWWJSFDH)
* [x] 2021 WWW [Self-Supervised Learning of Contextual Embeddings for Link Prediction in Heterogeneous Networks](https://arxiv.org/pdf/2007.11192)
* [x] 2021 KDD [HeCo](https://arxiv.org/pdf/2105.09111)
#### 其他
* [x] 2021 ICLR [C&S](https://arxiv.org/pdf/2010.13993)
### 基于图神经网络的推荐算法
#### 综述
* [x] 2020 IEEE [A Survey on Knowledge Graph-Based Recommender Systems](https://arxiv.org/pdf/2003.00911)
* [x] 2020 [Graph Neural Networks in Recommender Systems: A Survey](http://arxiv.org/pdf/2011.02260)
#### 基于嵌入的方法
* [x] 2016 KDD [CKE](https://www.kdd.org/kdd2016/papers/files/adf0066-zhangA.pdf)
* [x] 2018 [CFKG](https://arxiv.org/pdf/1803.06540)
* [ ] 2018 WSDM [SHINE](https://arxiv.org/pdf/1712.00732)
#### 基于路径的方法
* [x] 2013 IJCAI [Hete-MF](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.380.3668&rep=rep1&type=pdf)
* [x] 2014 ICDM [Hete-CF](https://arxiv.org/pdf/1412.7610)
* [x] 2013 RecSys [HeteRec](http://hanj.cs.illinois.edu/pdf/recsys13_xyu.pdf)
* [ ] 2015 CIKM [SemRec](https://papers-gamma.link/static/memory/pdfs/152-Shi_Semantic_Path_Based_Personalized_Recommendation_on_Weighted_HIN_2015.pdf)
* [ ] 2019 WWW [RuleRec](https://arxiv.org/pdf/1903.03714)
* [ ] 2018 KDD [MCRec](https://dl.acm.org/doi/pdf/10.1145/3219819.3219965)
* [ ] 2018 RecSys [RKGE](https://repository.tudelft.nl/islandora/object/uuid:9a3559e9-27b6-47cd-820d-d7ecc76cbc06/datastream/OBJ/download)
#### 嵌入和路径结合的方法
* [x] 2018 CIKM [RippleNet](https://arxiv.org/pdf/1803.03467)
* [ ] 2019 KDD [AKUPM](https://dl.acm.org/doi/abs/10.1145/3292500.3330705)
* [x] 2019 WWW [KGCN](https://arxiv.org/pdf/1904.12575)
* [x] 2019 KDD [KGAT](https://arxiv.org/pdf/1905.07854)
* [ ] 2019 [KNI](https://arxiv.org/pdf/1908.04032)
## 复现模型
### 异构图表示学习
* [x] [GCN](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/gcn)
* [x] [R-GCN](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/rgcn)
* [x] [GAT](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/gat)
* [x] [HetGNN](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/hetgnn)
* [x] [HAN](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/han)
* [x] [MAGNN](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/magnn)
* [x] [HGT](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/hgt)
* [x] [metapath2vec](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/metapath2vec)
* [x] [SIGN](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/sign)
* [x] [HGConv](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/hgconv)
* [x] [SuperGAT](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/supergat)
* [x] [R-HGNN](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/rhgnn)
* [x] [C&S](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/cs)
* [x] [HeCo](https://github.com/ZZy979/pytorch-tutorial/tree/master/gnn/heco)
### 基于图神经网络的推荐算法
* [ ] CKE
* [ ] RippleNet
* [ ] KGCN
* [ ] KGAT
## 具体计划
* 2020.12.21~12.25
* [x] 阅读论文CKE
* [x] 实现GCN
* [x] 阅读论文R-GCN
* 2020.12.28~2021.1.1
* [x] 实现R-GCN
* [x] 阅读论文RippleNet
* [x] 阅读论文Hete-MF
* 2021.1.4~1.8
* [x] 实现GAT
* [x] 实现HAN
* [x] 阅读论文Hete-CF
* [x] 阅读论文CFKG
* 2021.1.11~1.15
* [x] 实现MAGNN
* [x] 阅读论文KGCN
* [x] 阅读论文HeteRec
* 2021.1.18~1.22
* [x] 阅读论文KGAT
* [x] 使用OGB数据集做实验
* 2021.2.22~2.26
* [x] 实现ogbn-mag数据集baseline: MLP和Full-batch GCN
* [x] 查找最新异构图表示学习论文
* 2021.3.1~3.5
* [x] 实现ogbn-mag数据集 R-GCN模型
* [x] 阅读论文HGConv
* 2021.3.8~3.12
* [x] 实现ogbn-mag数据集 HGConv模型
* [x] 尝试解决ogbn-mag数据集 HAN模型内存占用过大的问题
* [x] 阅读论文NARS
* 2021.3.15~3.19
* [x] 阅读论文SIGN
* [x] 阅读论文GraphSAINT
* [x] 阅读论文SuperGAT
* 2021.3.22~3.26
* 继续看上周的论文(找实习面试好难啊😢)
* 2021.4.1 人生中第一个offer🎉
* 2021.4.5~4.9
* [x] 重新训练ogbn-mag数据集 HGConv模型
* [x] 实现SuperGAT
* 2021.4.12~4.18
* [x] 阅读论文GPT-GNN
* [x] 实现metapath2vec
* 2021.4.19~4.25
* [x] 使用子图采样的方法在ogbn-mag数据集上训练HAN模型
* [x] 使用metapath2vec预训练ogbn-mag数据集的顶点特征重新跑HGConv模型
* [x] 阅读综述A Survey on Heterogeneous Graph Embedding
* 2021.4.26~5.9
* [x] 实现HGT
* [x] 实现HetGNN
* [x] 实现ogbn-mag数据集 HGT模型
* [x] 实现ogbn-mag数据集 HetGNN模型
* [x] 尝试改进HetGNN的内容聚集+HGConv
* 2021.5.10~5.16
* [x] 阅读论文Strategies for Pre-Training Graph Neural Networks
* [x] 阅读论文Self-Supervised Graph Representation Learning via Global Context Prediction
* 2021.5.17~5.23
* [x] 继续尝试异构图表示学习模型的改进
* [x] 阅读论文Self-Supervised Learning of Contextual Embeddings for Link Prediction in Heterogeneous Networks
* [x] 整理OAG数据集
* 2021.5.24~5.30
* 实习第一周
* [x] 阅读论文R-HGNN
* 2021.5.31~6.6
* [x] 实现R-HGNN
* 2021.6.7~6.13
* [x] 利用OAG数据集构造计算机领域的子集
* 2021.6.14~6.20
* [x] 阅读论文C&S
* [x] 完成SciBERT模型的fine-tune获取OAG-CS数据集的paper顶点输入特征
* 2021.7.5~7.18
* [x] 实现C&S
* [x] 阅读论文HeCo
* 2021.7.19~7.25
* [x] 实现HeCo
* 2021.7.26~8.1
* [x] 尝试改进HeComini-batch训练、元路径编码器改为其他方式、Loss增加分类损失
* 7.29 和吴嘉伟讨论HeCo的改进思路
* 正样本选择策略在下游任务上预训练一个两层HGT第二层的注意力权重是一阶邻居对目标顶点的权重
第一层的注意力权重是二阶邻居对一阶邻居的权重,取类型与目标顶点相同的二阶邻居,并将两个权重相加,
得到二阶邻居同类型对目标顶点的权重取top-k作为目标顶点的正样本
* 使用上面得到的正样本可以构造一个目标类型顶点的同构图,用于替换元路径编码器中基于元路径的同构图
* [x] 确认HGT中对注意力权重做softmax的方式同类型/跨类型)→同类型
* 2021.8.2~8.8
* [x] 实现使用预训练的HGT计算的注意力权重选择HeCo的正样本的方法
* [x] 将HeCo迁移到ogbn-mag数据集上尝试效果 → 24.67%
* [x] 元路径视图编码器替换为正样本图上的GCN编码器
* [x] 适配mini-batch训练
* 2021.8.9~8.15
* [x] 将HeCo训练方式改为半监督loss增加分类损失尝试效果 → 26.32%
* [x] 尝试C&S Baseline在ogbn-mag数据集上的效果 → 不加Correct步骤能提升更多正样本图>引用图
* [x] 尝试增加C&S后处理步骤重点是标签传播图的构造
* [x] R-HGNN+C&S → 正样本图上微提升,引用图上下降
* [x] HeCo+C&S → 26.32% -> 27.7%
* 2021.8.16~8.22
* [x] 尝试HeCo的最终嵌入使用z_sc → 提升10%
* [x] 尝试将HeCo的网络结构编码器替换为R-HGNN
* 2021.8.23~8.29
* [x] 写中期报告
* 2021.8.30~9.5
* [x] 尝试将RHCO的网络结构编码器改为两层 → 提升4.4%
* [x] 尝试其他构造正样本图的方法训练集使用真实标签验证集和测试集使用HGT预测 → 提升0.6%
* 2021.9.6~9.12
* [x] 尝试将构造正样本图的方法改为使用预训练的R-HGNN模型计算的注意力权重、训练集使用真实标签 → 下降2.6%
* [x] 使用metapath2vec预训练oag-cs数据集的顶点嵌入备用
* 2021.9.13~9.19
* [x] RHCO模型删除输入特征转换和dropout网络结构编码器已包含、增加学习率调度器对比损失权重为0时应该达到与R-HGNN相似的性能 → +10%
* [x] 设计推荐算法使用SciBERT+对比学习实现召回一篇论文的标题和关键词是一对正样本使用一个或两个SciBERT分别将标题和关键词编码为向量
计算对比损失以此方式进行微调使用微调后的SciBERT模型将论文标题和输入关键词编码为向量计算相似度即可召回与查询最相关的论文
* 2021.9.20~9.26
* [x] 在oag-cs数据集上使用SciBERT+对比学习进行微调
* [x] 实现输入关键词召回论文的功能
* 2021.9.27~10.10
* [x] 实现推荐算法的精排部分
* [x] 重新构造oag-cs数据集使field顶点包含所有领域词
* [x] 在oag-cs数据集上训练RHCO模型预测任务期刊分类获取顶点表示向量
* [x] 修改训练代码,使其能够适配不同的数据集
* TODO 预测任务改为学者排名相关例如学者和领域顶点的相似度需要先获取ground truth学者在某个领域的论文引用数之和排序
* [x] 初步实现可视化系统
* [x] 创建Django项目直接使用当前根目录即可
* [x] 创建数据库将oag-cs数据导入数据库
* [x] 实现论文召回的可视化
* 2021.10.11~10.17
* 精排部分GNN模型训练思路
* 1对于领域t召回论文得到论文关联的学者集合通过论文引用数之和构造学者排名
* 2从排名中采样N个三元组(t, ap, an)其中学者ap的排名在an之前采样应包含简单样本例如第1名和第10名和困难样本例如第1名和第3名
* 3计算三元组损失triplet_loss(t, ap, an) = d(t, ap) - d(t, an) + α
* [x] 可视化系统:实现查看论文详情、学者详情等基本功能
* [x] 开始写毕业论文
* [x] 第一章 绪论
* 2021.10.18~10.24
* [x] 异构图表示学习增加ACM和DBLP数据集
* [x] 写毕业论文
* [x] 第二章 基础理论
* [x] 第三章 基于对比学习的异构图表示学习模型
* 2021.10.25~10.31
* [x] 完成毕业论文初稿
* [x] 第四章 基于图神经网络的学术推荐算法
* [x] 第五章 学术推荐系统设计与实现
* [x] 异构图表示学习
* [x] 正样本图改为类型的邻居各对应一个(PAP, PFP),使用注意力组合
* [x] 尝试网络结构编码器由R-HGNN改为HGConv → ACM: -3.6%, DBLP: +4%, ogbn-mag: -1.86%
* 2021.11.1~11.7
* [x] 异构图表示学习
* [x] 完成参数敏感性分析
* [x] 推荐算法精排部分
* [x] 抓取AMiner AI 2000的人工智能学者榜单作为学者排名验证集
* [x] 参考AI 2000的计算公式使用某个领域的论文引用数加权求和构造学者排名ground truth训练集采样三元组
* [x] 训练使用三元组损失训练GNN模型
* 2021.11.8~11.14
* [ ] 异构图表示学习
* [x] 增加oag-cs期刊分类数据集
* [ ] 完成消融实验
* [ ] 推荐算法精排部分
* [ ] 训练:目前的评价方式有问题,改为先召回论文再计算相关学者与领域的相似度(即与预测步骤相同)
* [ ] 预测:对于召回的论文构造子图,利用顶点嵌入计算查询词与学者的相似度,实现学者排名