当前位置: 首页 > article >正文

kdd比赛方案

解决方案概述

采用两阶段的方法来解决比赛任务。在第一阶段,采用与 SciBERT 集成的跨编码器模型来确定源论文是否是最重要的参考文献之一。在第二阶段,利用了从目标和源论文中得出的特征,以及第一阶段的输出,输入到几个二进制分类器中进行预测。最后,我们使用集成方法聚合了这些分类器的结果,以提高我们解决方案的整体准确性和稳健性。

数据内容结构

  • 训练集与验证集都包含若干篇论文的信息,每篇论文以字典形式存储。具体字段包括:
    • _id: 论文的唯一标识符。
    • title: 论文题目。
    • refs_trace: 重要参考文献列表(每个参考文献为一个字典,包含作者、组织、期刊/会议、年份及序号等详细信息)。
    • references: 参考文献列表。
    • authors: 作者信息。
    • venue: 发表地点(期刊或会议)。
    • year: 发表年份。

验证集和测试集都提供了提交样例文件(如 submission_example_valid.json),便于参赛者理解提交格式要求。 

比赛还提供了额外的训练数据 (paper_source_gen_by_rule.json),通过关键词如“motivated by”或“inspired by”从上下文中自动提取出参考文献标题。这部分数据并未人工标注,存在一定的错误可能性。

论文原文使用TEI格式标注,

额外数据:

本次比赛为参赛者提供了额外的训练数据,文件为paper_source_gen_by_rule.json,该文件包含4854条数据,其内容为一个字典,键是论文的_id,值为其重要参考文献的字典,该字典键为该参考文献在论文参考文献列表中的序号,值为对应的重要参考文献论文题目。例:

  1. "564b35960cf25e4e03c8752d": {
  2. "15": "Co-saliency detection based on hierarchical segmentation",
  3. "20": "Transfer learning by ranking for weakly supervised object annotation",
  4. ......
  5. "25": "Deep learners benefit more from out-of-distribution examples"
  6. }

注意!额外数据为使用规则的方法从论文数据集中收集。具体地,通过”motivated by”, “inspired by”等关键词抽取出现在相应关键词上下文的参考文献。该数据非标注数据,无法保证其正确性。 

测试集公开数据

paper_source_trace_test_wo_ans.json

测试集数据,该文件格式与paper_source_trace_valid_wo_ans.json相同。

submission_example_test.json

测试集提交样例。

这次使用了允许用于本次比赛的纸质属性数据集

  • DBLP 数据集

    • DBLP-Citation-network V15

DBLP 数据集:

6,404,473 篇论文和 62,492,559 条引文关系 (2024-02-05) 概述

该数据集仅用于研究目的。引文数据从 DBLP、ACM、MAG (Microsoft Academic Graph) 和其他来源提取。第一版包含 629,814 篇论文和 632,752 次引用。每篇论文都与摘要、作者、年份、地点和标题相关联。

该数据集可用于与网络和侧面信息进行聚类、研究引文网络中的影响力、查找最具影响力的论文、主题建模分析等。

DBLP-Citation-network V15: 6,275,271 篇论文和 42,104,228 个引文关系 (2023-11-22)

  • OAG 数据集

    • OAG V3.1 数据集
      • publication_1.zip ~ publication_14.zip

OAG 是通过链接两个大型学术图形生成的:Microsoft Academic Graph (MAG) 和 AMiner。

OAG 在 ODC-BY 许可下发布。2017 年年中,我们发布了 OAG v1,其中包含来自 MAG 的 166,192,182 篇论文和来自 AMiner 的 154,771,162 篇论文(见下文),并在两个图之间生成了 64,639,608 个链接(匹配)关系。它可以用作研究引文网络、论文内容等的统一大型学术图谱,也可以用于研究多个学术图谱的整合。

Open Academic Graph 3.1

概述

Open Academic Graph (OAG) 由 AMiner 生成。版本 3.0 数据集于 2023 年首次发布。基于 3.0 版本的数据集,我们通过合并重复论文并更新论文与研究人员、论文与机构、论文与期刊之间关系的匹配算法,大大提高了关系的准确性。现在我们发布 3.1 版数据集,如下所示。

目录中的文件如下所示。dataset

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>.
├── DBLP-Citation-network-V15.json
├── OAG
│   ├── v3.1_oag_publication_1_00.gz
│   ├── v3.1_oag_publication_1_00.json
│   ├──  .......
│   └── v3.1_oag_publication_14.json
└── PST
    ├── paper-xml
    │   ├── 53e99792b7602d9701f57e77.xml
    │   ├── 53e99796b7602d9701f5d380.xml
    │   ├── 6584f922939a5f408236fc36.xml
    │   ├──  ........
    │   └── 65922fe2939a5f40826ca612.xml
    ├── paper_source_gen_by_rule.json
    ├── paper_source_trace_test_wo_ans.json
    ├── paper_source_trace_train_ans.json
    ├── paper_source_trace_valid_wo_ans.json
    ├── submission_example_test.json
    └── submission_example_valid.json </code></span></span></span></span>
  • 原始的 OAG 数据集被划分为小规模数据集,因为我们在实现中使用以下命令在有限的内存上执行代码。
$ split -l 1000000 -d --additional-suffix=.json v3.1_oag_publication_X.json v3.1_oag_publication_X_ 
  • “context_feature” 表示 train_context.csv 和 test_pub_context.csv

前处理

$ <Inside container /works>
$ cd preprocess

从 DBLP 数据集中提取数据。

$ poetry run python process_kddcup_data.py

从提供的训练、验证和测试数据集以及 DBLP 数据集中解析 XML 文件,以提取标题、摘要、关键字、组织、地点、上下文等。

$ poetry run pytohn xml_parser.py

为最终提交的测试数据集中的缺失值生成论文标题。

$ poetry run python oagbert_title_gen.py
特征生成(填充上下文功能)

使用 Open Academic Graph 填写论文信息。在执行以下笔记本之前,请从 Open Academic Graph 下载 OAG 数据集。

Fill_paper_info_by_OAG.ipynb

第一阶段(训练和测试预测)

使用 sentence-transformers 库执行跨编码器模型。我们使用 SciBERT 模型,并使用 GroupKFold 进行 5 倍交叉验证。

$ <Inside container /works>
$ cd first_stage
$ poetry run python cross_encoder.py --ubm --output_dir ../ce/default --train --prediction

第二阶段

$ <Inside container /works>
$ cd second_stage

基于 DBLP 的功能

使用 DBLP 数据集和 XML 文件创建纸张元数据要素。此脚本基于 paper-source-trace/rf/process_data.py at main · THUDM/paper-source-trace · GitHub 上提供的公共基线代码

$ poetry run python dblp_feature.py

和修改版的 dblp_feature.py

$ poetry run python dblp_feature2.py

基于 OAGBERT 的功能

使用以下笔记本填写上下文特征 b 后计算基于 OAG-BERT 的余弦相似度特征。

OAGBERT_embedding_cossim.ipynb

使用 OAGBERT 模型对论文进行编码,并计算目标论文和源论文之间的余弦相似度。此脚本创建 OAGBERT 功能的另一个版本。

$ poetry run python oagbert.py 

生成特征

运行以下笔记本以设置特征的格式。

feature_generate4.ipynb
feature_generate5_feature_without_emb.ipynb
feature_generate6_with_oag.ipynb
feature_post_process.ipynb

运行分类器(训练和测试预测)

执行二元分类模型。CatBoost、LightGBM、RandomForest 和 SVM。使用 GroupKFold 实现 5 倍交叉验证。 在这里,我们训练了 6 个模型。2 个 CatBoost、2 个 LightGBM、1 个 RandomForest 和 1 个 SVM。

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>$ poetry run python classifier.py --model_name catboost_0 --input_dir ../output/0601/ --trial_name catboost_0
$ poetry run python classifier.py --model_name lightgbm_binary --input_dir ../output/0601/ --trial_name lgbm_binary
$ poetry run python classifier.py --model_name random_forest --input_dir ../output/0601/ --trial_name rf
$ poetry run python classifier.py --model_name svm --input_dir ../output/feat_without_emb --trial_name svm_feat_without_emb --fill
$ poetry run python classifier_weight.py --model_name catboost_0 --input_dir ../output/dblp_title_2_oag_clean/ --trial_name catboost_0_dblp_2_clean
$ poetry run python classifier_weight.py --model_name lightgbm_binary --input_dir ../output/dblp_title_2_oag_clean/ --trial_name lgbm_dblp_2_clean
</code></span></span></span></span>

整体

运行以下笔记本以集成分类器的结果。

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>ensemble_oag_clean.ipynb
</code></span></span></span></span>

现在目录中有最终的提交文件。submit

 


http://www.kler.cn/a/375798.html

相关文章:

  • qt QComboBox详解
  • Oracle 数据库历史备份数据恢复验证
  • 吞吐量最高飙升20倍!破解强化学习训练部署难题
  • Linux 多线程编程
  • 3D人体建模的前沿探索:细数主流模型与技术进展
  • Springboot 整合 Java DL4J 实现文本分类系统
  • C++【string的模拟实现】
  • Llama 3.2 Vision Molmo:多模态开源生态系统基础
  • 《双指针篇》---移动零
  • 「Mac畅玩鸿蒙与硬件20」鸿蒙UI组件篇10 - Canvas 组件自定义绘图
  • Spring Boot 与 Vue 共筑电影院选票新体验
  • Kong Gateway 指南
  • HTML 基础标签——链接标签 <a> 和 <iframe>
  • Javaweb 实验4 xml
  • 国内百家SRC平台
  • 20241102解决荣品PRO-RK3566开发板刷Rockchip原厂的Buildroot使用荣品的DTS出现
  • Vue基础知识——async指令、scope和样式穿透
  • Maven(20) 如何使用Maven进行版本管理?
  • npm入门教程18:npm发布npm包
  • CVPR2024:完全测试时域适应​​​​(Test-time Adaptation)的目标检测
  • [实战-12] flinkSql 时间属性
  • 互联网技术比游戏后端技术领先十年吗?
  • Android Pair
  • Yocto中的DISTRO和MACHINE的含义与机制
  • 使用 Java 实现从搜索引擎批量下载图片
  • 【STM32】内存管理