Data Mining Practice   

背景

社交软件中存在着海量的结构化关系数据,为数据挖掘提供了广阔的应用空间。 在实际场景中,我们可以通过分析社交 App 中用户的行为日志与社交关系,挖掘其兴趣偏好,从而为其推荐可能感兴趣的用户或内容。 本次大作业聚焦于关注预测:给定用户及其被推荐的候选用户,预测该用户是否会关注对方。

代码提交截止时间: 2025年12月24日 12:00(中午)

实验报告提交时间: 2025年12月24日 12:00(中午)

 
任务介绍

本次 Data Mining Practice 采用 Kaggle 线上竞赛形式进行,任务是预测“用户是否会关注推荐给 TA 的另一个用户”,可视为社交网络上的链接预测 / 二分类问题。

社交网络天然适合建模为图结构数据:节点为用户,边包括关注关系与交互关系(转推、@ 等),同时还提供用户的关键词、分类等属性作为节点特征。 由于真实社交网络规模较大且图结构通常偏稀疏,直接套用图神经网络等模型未必会取得理想效果,请同学们结合课堂所学思考合理的数据处理方法并设计模型策略。

比赛邀请链接: Kaggle 竞赛页面。 数据格式、字段说明、评测指标与提交要求均以 Kaggle 页面为准。

比赛页面(含数据下载与格式说明):点击访问

 

 
任务评估

1. Graph Structural Data Mining : 可以尝试使用图相关的数据挖掘方法建模该数据集中的社交网络关系(包括但不限于课堂方法、图嵌入表示学习、GNN等),也可以考虑结合推荐系统中成熟的特征工程做法。

你需要在14天内完成该问题的kaggle竞赛。我们提供每天至多5次的提交机会,你既可以自行使用训练集划分出验证、测试集来评测baseline,以节省提交次数用于测试你的方法,也可以直接提交至kaggle评测。对于baseline、方法的选择,你可以参考我们给出的指导意见。

评测机制:每位同学每天最多可提交 5 份 submission 参与公开榜(使用 60% 测试数据)评测,并需在截止日期前从中选择 2 份作为最终成绩,参与私有榜(剩余 40% 测试数据)评测。 Kaggle 提交截止时间为 12 月 24 日 12:00(以 Kaggle 页面显示为准)。

在实验报告中,你需要介绍实验方法(如果你使用的是现有方法,你需要解释为什么使用该方法,以及你如何使用该方法),并展示实验结果。 预测结果需按照 Kaggle 比赛页面规定的 submission 格式生成并提交。 代码需要包括可以运行的代码和代码说明文件,告知我们该如何运行你的代码获取你的结果;如需特殊环境,请提供可复现的环境说明或是docker镜像。

 

2. 实验报告评估

      对实验报告的评估将综合考量以下几点:内容(关于方法的介绍),核心思想(为什么使用该方法),创新性(方法是新颖的还是对现有方法的复用),逻辑性(是否条理清晰),语言(是否简明易读),格式(实验报告的格式是否符合要求)。

好的结果可能给你带来高的分数,但是本次大作业的分数不仅取决于实验结果的好坏,一份高质量的实验报告对分数来说也是非常重要的。总之,你既要关注模型的性能,还要认真完成实验报告。

请勿询问关于测试数据的信息!

如果发现抄袭或作弊行为, 本次大作业将没有分数
 

指导建议

为了帮助大家更好地完成本次大作业,提出以下指导和建议:

 

该任务的难点是什么?

  • 如何提取特征:  每个用户的特征是离散的:性别、兴趣、交互,如何提取对任务有价值的信息是值得思考的问题。

  • 如何建模社交网络:  用户的转推、评论、关注是单向的动作,且存在噪声。部分“大V”是社交媒体的中心,几乎与所有用户有关;部分用户则只有极少的社交关系,在对ta做推荐时存在冷启动问题。

  • 如何处理大规模图:  社交平台的用户量、交互量巨大。简单的建图会让GNNs难以训练。

 

如何决定使用什么方法?

  • 使用现有方法。  你可以尝试使用现有的数据挖掘方法,如vector space model,decision tree,kNN,SVM,XGBoost等等。你也可以尝试使用本课程介绍过的各类方法,包括图方法,如GNN、图嵌入表示学习等。

  • Baseline参考。  图方法中,GCN、GraphSage是较为普遍的baseline。由于社交网络很大,若不经过特征工程,较为复杂的图神经网络在本次的数据集中可能难以训练。图嵌入方法对于运算复杂度来说较为友好,例如LightNE、GEBE等,但能力偏弱。对于推荐系统,Wide&Deep则是一个不错的baseline。

  • 提出新的方法。 你可以结合现有方法提出新的方法,以更好地利用给定数据的特性,获得更好的预测效果。强烈鼓励大家设计新的方法!

  • 借助大语言模型  大语言模型诸如 ChatGPT, Llama, DeepSeek、QWen等经过充分的语料训练, 在语言理解和逻辑推理任务上取得不错的性能表现。 你也可以尝试使用以上某个大模型,结合一定的技术手段(如RAG、ICL等)来探索其在这个任务上的能力, 分析其能力边界以及讨论怎样扩充其边界?

如何写实验报告?

  • 实验报告的内容应该包含但不限于以下几点
    (1) 简要介绍你对本次任务的理解。
    (2) 讲述选择某种方法的理由。
    (3) 对方法细节进行详细介绍。
    (4) 选择两个baseline方法进行比较,以体现实验方法在该任务上的有效性。
    (5) 得出结论并进行总结。
  • 本次大作业的实验报告需要按照学术论文的格式进行书写,实验报告需要包含题目、摘要、正文、参考文献等内容。要求使用以下模板完成实验报告: ACL Template或者 Chinese Journal of Software
  • 严禁抄袭关于抄袭的定义详见:IEEE's "Five Levels of Plagiarism"

 

如何提交?

  • Kaggle 提交:请通过比赛邀请链接进入竞赛页面(点击访问),并按照 Kaggle 的数据格式与提交要求提交预测结果。

  • 代码及比赛结果提交(截止 12 月 24 日 12:00):请将可运行代码,说明文档以及Leaderboard 截图打包为 zip(请勿包含数据集),命名为“学号_姓名.zip”,并上传至 课程网盘链接(密码:DMCD_2025)。

  • 其中的Leaderboard 截图要求为:请截取显示你公榜成绩(无需等待比赛结束)的 Leaderboard 页面,命名为“学号_姓名_Kaggle昵称.[任意图片扩展名]”,与代码放置于同一压缩包内。

  • 实验报告提交:12 月 24 日 12:00。报告写作要求见本页面“如何写报告?”部分。

  • 课堂汇报材料:课堂汇报前,截止日期同样为12 月 24 日 12:00。请将汇报材料压缩并上传至同一链接,压缩包命名为“学号_姓名_课程汇报.zip”。

  • 不接受延迟提交!


关于本次大作业的任何问题,请联系老师或助教。