Update README.md
A 榜成绩 1.3940(dataset1 与 dataset2 的 MRR 之和)。
两个场景分别建模,计算核心都是图上的加权消息传播,用 Jittor 的 gather 与 jt.scatter(..., reduce='add') 实现。
jt.scatter(..., reduce='add')
超参数由一个不使用任何测试集标签的离线 MRR 评估器搜索得到。评估器利用“99 个负 样本从候选池均匀采样”这一事实,把 MRR 写成只依赖测试集输入与打分函数的无偏 估计,因此可以在提交之前直接算出真实榜单分数。推导见 code/tools/oracle.py, 更完整的说明见提交的技术说明文档。
code/tools/oracle.py
Ubuntu 22.04 + CUDA 12.4 + Python 3.10 + Jittor 1.3.10。
pip install -r requirements.txt
cd code python tools/selftest.py # 几秒钟的环境自检 python main.py --data-root /path/to/data_A --out ../submission
会在输出目录下为每个场景生成同名 csv 并打包成 result.zip。--data-root 下每 个同时含 train.csv 与 test.csv 的子目录都会自动跑一遍,二部图与非二部图由 数据本身判定,换数据集不需要改命令。
result.zip
--data-root
train.csv
test.csv
耗时取决于源节点数量,A 榜数据上单个场景在数分钟量级。没有 GPU 时加 --cpu,结果一致。
--cpu
python tools/oracle.py dataset2 --data-root /path/to/data_A python tools/tune.py dataset1 --data-root /path/to/data_A --grid w_pop=0.05,0.15,0.3
src/ main.py 入口 config.py 超参数 dataio.py 读数据与写提交 propagation.py Jittor 稀疏传播算子 models.py 两类场景的打分模型 tools/ 自检、离线评估器、扫参 requirements.txt
除赛题提供的数据集外未使用任何其他数据,不依赖预训练权重。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
第六届计图挑战赛 赛道一:基于图学习的动态推荐
A 榜成绩 1.3940(dataset1 与 dataset2 的 MRR 之和)。
方法
两个场景分别建模,计算核心都是图上的加权消息传播,用 Jittor 的 gather 与
jt.scatter(..., reduce='add')实现。超参数由一个不使用任何测试集标签的离线 MRR 评估器搜索得到。评估器利用“99 个负 样本从候选池均匀采样”这一事实,把 MRR 写成只依赖测试集输入与打分函数的无偏 估计,因此可以在提交之前直接算出真实榜单分数。推导见
code/tools/oracle.py, 更完整的说明见提交的技术说明文档。环境
Ubuntu 22.04 + CUDA 12.4 + Python 3.10 + Jittor 1.3.10。
运行
会在输出目录下为每个场景生成同名 csv 并打包成
result.zip。--data-root下每 个同时含train.csv与test.csv的子目录都会自动跑一遍,二部图与非二部图由 数据本身判定,换数据集不需要改命令。耗时取决于源节点数量,A 榜数据上单个场景在数分钟量级。没有 GPU 时加
--cpu,结果一致。复现超参数
目录
说明
除赛题提供的数据集外未使用任何其他数据,不依赖预训练权重。