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.rhkb.cn/news/463826.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音Ai图文故事号,AI一键生成故事图片变现,涨粉变现超快!

今天分享2个简单好上手&#xff0c;可批量复制&#xff0c;出单超快的Ai项目&#xff0c;那就是AI绘画壁纸号Ai图文故事号。 在抖音、小红书上&#xff0c;壁纸号火的一塌糊涂&#xff0c;新号3天涨粉1500&#xff0c;变现利润超过了4位数 壁纸看起来平平无奇&#xff0c;市场需…

面试题:JVM(三)

1. 面试题 说一说JVM的内存结构是什么样子的,每个区域放什么&#xff0c;各有什么特点&#xff1f;&#xff08;快手、搜狐&#xff09; JVM的内存结构&#xff0c;及各个结构的内容。&#xff08;vivo&#xff09; 详细介绍一下内存结构&#xff08;墨迹天气&#xff09; JVM…

ELK的ElasticStack语法

目录 传送门前言一、索引&#xff08;数据库&#xff09;1、创建索引2、获取索引3、删除索引 二、文档&#xff08;Row行&#xff09;1、创建文档2、获取文档3、修改文档4、删除文档5、高级查询&#xff08;精辟&#xff09;条件查询分页、指定、排序、范围查询全文检索、分组查…

leaflet绘制圆形方案

电子围栏绘制方案: 采用leaflet绘制电子围栏 可以看对应api文档 。原生是英文,所以要重定义,直接覆盖下面的 leaflet.draw-cn.js 文件L.drawLocal = {draw: {toolbar: {// #TODO: this should be reorganized where actions are nested in actions// ex: actions.undo or a…

新能源汽车空调压缩机:科技驱动的冷暖核心

一、新能源汽车空调系统概述 新能源汽车空调系统在车辆中起着至关重要的作用&#xff0c;它直接影响着驾乘人员的舒适度。新能源汽车空调系统主要由制冷系统、加热系统、送风系统、操纵控制系统和空气净化系统等组成。 制冷系统通常由电动压缩机、冷凝器、压力传感器、电子膨…

Javaweb梳理8——数据库设计

Javaweb梳理8——数据库设计 8 数据库设计8.1 数据库设计简介8.2 表关系(一对多)8.3 表关系&#xff08;多对多&#xff09;8.4 表关系&#xff08;一对一&#xff09; 8 数据库设计 8.1 数据库设计简介 软件的研发步骤 数据库设计概念 数据库设计就是根据业务系统的具体需…

IDEA - 快速去除 mapper.xml 黄色警告线和背景色----简化版

1.打开设置 2.去掉黄色警告线设置 3.去掉背景色设置 4.示范图

vue3中使用vue-diff工具来比较数据差异

1.安装vue-diff npm i vue-diff 2.main.js中全局注册 import VueDiff from "vue-diff"; import "vue-diff/dist/index.css";app.use(VueDiff) 3.使用 <template><div class"contain-page"><el-scrollbar height"100vh&…

w014基于Springboot校园管理系统的设计与实现

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

openGauss数据库-头歌实验1-3 创建和管理模式

一、创建和使用模式 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;基于 openGauss 学习创建模式的相关知识。 &#xff08;二&#xff09;相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.openGauss 的常用操作&#xff0c;2.SQL 创建模式相关语…

基于springboot+vue实现的任务管理系统(源码+L文)4-103

第4章 系统设计 4.1 总体功能设计 员工&#xff0c;经理&#xff0c;管理员都需要登录才能进入任务管理系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使用者为员工和经理&#xff0c;对员工只能提供任务信息显示查询&…

PlotNeuralNet学习与入门

最近在绘制神经网络结构图&#xff0c;发现了一个开源的工具&#xff1a;PlotNeuralNet Github网址链接&#xff1a; HarisIqbal88/PlotNeuralNet: Latex code for making neural networks diagrams 一些相关的教程&#xff1a; 视频教程链接&#xff1a;【Alu】PlotNeuralN…

c怎么与python交互

ctypes是Python的一个外部库&#xff0c;可以使用python语言调用已经编译好的C语言函数以及数据类型并进行数据交换等。ctypes的官方文档在https://docs.python.org/3/library/ctypes.html 1、ctypes基本数据类型映射表 2、python调用c语言的函数库 &#xff08;1&#xff09…

less解决function中return写法在浏览器被识别成Object导致样式失败的问题

问题描述&#xff1a; 一开始写的是: baseFontSize: 37.5px;//基于屏幕尺寸/10得出的基准font-size// return失败,浏览器显示为[object Object],[object Object] .pxToRem(px){value: px / baseFontSize * 1rem;return value; } 使用height: .pxToRem(40px);之后浏览器却是这…

VR 创业之路:从《I Expect You To Die》到未来展望

今年是 Reality Labs 成立 10 周年&#xff0c;Meta 每周都会与不同的 XR 先驱进行交流&#xff0c;探讨他们在行业中的经历、经验教训以及对未来的展望。本次&#xff0c;他们与游戏设计师、作家兼 Schell Games CEO Jesse Schell 进行了深入交谈&#xff0c;了解了他的个人故…

面试经典 150 题:189、383

189. 轮转数组 【参考代码】 class Solution { public:void rotate(vector<int>& nums, int k) {int size nums.size();if(1 size){return;}vector<int> temp(size);//k k % size;for(int i0; i<size; i){temp[(i k) % size] nums[i];}nums temp; }…

数据结构 —— AVL树

目录 1. AVL的概念 2.AVL树的结构 3.AVL树的插入 3.1 平衡因子更新 4. 旋转 4.1 旋转的原则 4.2 右单旋 4.2.1 右单旋代码实现 4.3 左单旋 4.3.1 左单旋代码实现 4.4 左右双旋 4.4.1 左右双旋代码实现 4.5 右左双旋 ​编辑 4.5.1 右左双旋代码实现 5. AVL树的判断…

交换机如何实现2.5G网络传输速率和网络变压器有关吗

华强盛电子导读&#xff1a;I19926430038 交换机实现2.5G网络传输速率涉及多个因素&#xff0c;其中包括硬件设计、端口支持、传输介质以及网络协议等。网络变压器在其中扮演了一个重要的角色&#xff0c;但并不是唯一的因素。 1. **硬件设计**&#xff1a;交换机需要有支持2.…

「C/C++」C++设计模式 之 抽象工厂模式(Abstract Factory)

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

【pycharm jupyter】启动报错

报错信息 upyter server process exited with code 1 ServerApp] A _jupyter_server_extension_points function was not found in jupyter_lsp. Instead, a _jupyter_server_extension_paths function was found and will be used for now. This function name will be depre…