Project Icon

life2vec

生命事件序列模型预测人类生活轨迹

life2vec项目开发了基于Transformer的模型,利用生命事件序列预测人类生活。该模型能从个人生活事件中学习,预测死亡率、移民倾向和性格特征。这项研究将自然语言处理技术应用于社会科学,为理解人类行为模式和社会动态提供新视角。研究成果发表于Nature Computational Science期刊。

使用生活事件序列预测人类生活

DOI

本代码库包含了使用生活事件序列预测人类生活(life2vec)论文的代码。 我们只有一个与项目相关的网页(life2vec.dk),没有任何专门的Facebook、Twitter等账号。 更多信息请参考FAQ

life2vec的基本实现

我们将保持这个代码库现状不变。我们正在单独的代码库中发布life2vec模型的一些组件:

  1. 模型的基本实现发布在carlomarxdk/life2vec-light - 其中包含使用虚拟数据运行预训练的代码,
  2. 类距离加权交叉熵损失发布在carlomarxdk/cdw-cross-entropy-loss - 这个损失函数用于外向性特质预测任务。

源代码

此代码库包含用于数据处理、life2vec训练、统计分析和可视化的脚本和多个笔记本。模型权重、实验日志和相关模型输出可以按照丹麦统计局研究计划的规则获取。

在提交脚本到GitHub之前,路径(例如数据或模型权重的路径)已经被编辑

整体结构

我们使用Hydra来运行实验。/conf文件夹包含实验配置:

  1. /experiment包含预训练和微调的配置yaml文件,
  2. /tasks包含MLM、SOP等数据增强的规范,
  3. /trainer包含日志记录(未使用)和多线程训练(未使用)的配置,
  4. /data_new包含数据加载和处理的配置,
  5. /datamodule包含指定如何将数据加载到PyTorch和PyTorch Lightning的配置,
  6. callbacks.yaml指定PyTorch Lightning回调的配置,
  7. prepare_data.yaml可用于运行数据预处理。

/analysis文件夹包含用于事后评估的ipynb笔记本:

  1. /embedding包含嵌入空间的分析,
  2. /metric包含模型评估的笔记本,
  3. /visualisation包含空间可视化的笔记本,
  4. /tcav包括TCAV实现,
  5. /optimization超参数调优。

源文件夹/src包含数据加载和模型训练代码。由于hydra包的特性,以下是/src文件夹的概览:

  1. /src/data_new包含预处理数据以及准备数据加载到PyTorch或PyTorch Lightning的脚本,
  2. /src/models包含基线模型的实现,
  3. /src/tasks包含特定任务的代码,如MLM、SOP、死亡率预测、移民预测等,
  4. /src/tranformer包含life2vec模型的实现:
    1. performer.py中,我们重写了performer-pytorch包的功能,
    2. cls_model.py中,我们实现了用于二元分类任务(即早期死亡率和移民)的微调阶段,
    3. hexaco_model.py中,我们实现了用于人格细微差异预测任务的微调阶段,
    4. models.py包含life2vec预训练(即基础life2vec模型)的代码,
    5. transformer_utils.py包含自定义模块的实现,如损失函数、激活函数等,
    6. metrics.py包含自定义指标的代码,
    7. modules.pyattention.pyatt_utils.pyembeddings.py包含在transformer网络(即life2vec编码器)中使用的模块的实现。

train.pytest.pytune.pyval.py等脚本用于运行训练的特定阶段,而prepare_data.py用于运行数据处理(见下面的示例)。

运行脚本

要运行代码,你可以使用以下命令:

# 运行预训练:
HYDRA_FULL_ERROR=1 python -m src.train experiment=pretrain trainer.devices=[7]

# 超参数微调(用于预训练)
HYDRA_FULL_ERROR=1 python -m src.train experiment=pretrain_optim

# 组装通用数据集(GLOBAL_SET)
HYDRA_FULL_ERROR=1 python -m src.prepare_data +data_new/corpus=global_set target=\${data_new.corpus}

# 组装用于死亡率预测任务的数据集(SURVIVAL_SET)
HYDRA_FULL_ERROR=1 python -m src.prepare_data +data_new/population=survival_set target=\${data_new.population}

# 组装劳动力来源
python -m src.prepare_data +data_new/sources=labour target=\${data_new.sources}

# 运行移民微调
HYDRA_FULL_ERROR=1 python -m src.train experiment=emm trainer.devices=[0] version=0.01

其他代码贡献者

  1. Søren Mørk Hartmann.

如何引用

Nature Computational Science

@article{savcisens2024using,
      author={Savcisens, Germans and Eliassi-Rad, Tina and Hansen, Lars Kai and Mortensen, Laust Hvas and Lilleholt, Lau and Rogers, Anna and Zettler, Ingo and Lehmann, Sune},
      title={Using sequences of life-events to predict human lives},
      journal={Nature Computational Science},
      year={2024},
      month={Jan},
      day={01},
      volume={4},
      number={1},
      pages={43-56},
      issn={2662-8457},
      doi={10.1038/s43588-023-00573-5},
      url={https://doi.org/10.1038/s43588-023-00573-5}
}

ArXiv预印本

@article{savcisens2023using,
  title={Using Sequences of Life-events to Predict Human Lives},
  DOI = {arXiv:2306.03009},
  author={Savcisens, Germans and Eliassi-Rad, Tina and Hansen, Lars Kai and Mortensen, Laust and Lilleholt, Lau and Rogers, Anna and Zettler, Ingo and Lehmann, Sune},
  year={2023}
}

代码

@misc{life2vec_code,
  author = {Germans Savcisens},
  title = {Official code for the "Using Sequences of Life-events to Predict Human Lives" paper},
  note = {GitHub: SocialComplexityLab/life2vec},
  year = {2023},
  howpublished = {\url{https://doi.org/10.5281/zenodo.10118621}},
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号