Project Icon

Multimodal-Toolkit

通用多模态数据与文本特征融合工具包

一个用于分类和回归任务的工具包,结合HuggingFace Transformers的文本特征与表格数据,生成多模态特征以提高模型性能。该工具包支持多种模型和组合方法,提供详尽的示例和数据集,包括BERT、ALBERT等模型,以及电商评论、Airbnb数据和宠物领养预测等实际应用。

多模态Transformers | 带表格数据的Transformers


文档 | Colab笔记本 | 博客文章

这是一个用于在文本数据基础上整合多模态数据的工具包,适用于分类和回归任务。它使用HuggingFace transformers作为文本特征的基础模型。该工具包添加了一个组合模块,该模块利用transformer的输出以及分类和数值特征,生成丰富的多模态特征用于下游分类/回归层。给定一个预训练的transformer,组合模块和transformer的参数根据监督任务进行训练。有关简要的文献综述,请查看Georgian Impact博客上的相关博文

安装

该代码在Python 3.7环境下使用PyTorch和Transformers 4.26.1开发。 多模态相关代码位于multimodal_transformers文件夹中。

pip install multimodal-transformers

支持的Transformers

以下Hugging Face Transformers支持处理表格数据。详见此文档

包含的数据集

该存储库还包含两个包含文本数据和丰富表格特征的kaggle数据集

工作示例

要快速查看这些模型在上述数据集之一上使用预设配置的运行情况,请执行:

$ python main.py ./datasets/Melbourne_Airbnb_Open_Data/train_config.json

或者如果你更喜欢使用命令行参数,请运行:

$ python main.py \
    --output_dir=./logs/test \
    --task=classification \
    --combine_feat_method=individual_mlps_on_cat_and_numerical_feats_then_concat \
    --do_train \
    --model_name_or_path=distilbert-base-uncased \
    --data_path=./datasets/Womens_Clothing_E-Commerce_Reviews \
    --column_info_path=./datasets/Womens_Clothing_E-Commerce_Reviews/column_info.json

main.py需要一个json文件,详细说明数据集中哪些列包含文本、分类或数值输入特征。它还需要一个存储数据的文件夹路径,包含train.csvtest.csv(如果提供的话,还有val.csv)。有关参数的更多详细信息,请参见multimodal_exp_args.py

笔记本介绍

要查看这些模块如何在笔记本中组合使用:
在Colab中打开

包含的方法

特征组合方法描述是否同时需要分类和数值特征
text_only仅使用由HuggingFace transformer处理的文本列,然后进入最终分类器层。本质上等同于HuggingFace的ForSequenceClassification模型
concat在最终分类器层之前将transformer输出、数值特征和分类特征一次性连接
mlp_on_categorical_then_concat对分类特征使用MLP,然后在最终分类器层之前连接transformer输出、数值特征和处理后的分类特征否 (需要分类特征)
individual_mlps_on_cat_and_numerical_feats_then_concat对分类特征和数值特征分别使用独立的MLP,然后在最终分类器层之前将transformer输出与处理后的数值特征和分类特征连接
mlp_on_concatenated_cat_and_numerical_feats_then_concat对连接的分类和数值特征使用MLP,然后在最终分类器层之前与transformer输出连接
attention_on_cat_and_numerical_feats在最终分类器层之前,基于注意力机制对transformer输出、数值特征和分类特征进行求和,其中transformer输出作为查询
gating_on_cat_and_num_feats_then_sum在最终分类器层之前,对transformer输出、数值特征和分类特征进行门控求和。灵感来自在大型预训练Transformers中整合多模态信息,该论文对每个token执行此机制
weighted_feature_sum_on_transformer_cat_and_numerical_feats在最终分类器层之前,对transformer输出、数值特征和分类特征的每个特征维度进行可学习的加权特征求和

简单基线模型

实际上,将分类和数值特征保持原样,只是将它们标记化并作为额外的文本句子与文本列连接,是一个强大的基线。要在此处实现这一点,只需将所有分类和数值列指定为文本列,并将combine_feat_method设置为text_only。例如,对于./datasets中包含的每个示例数据集,在train_config.json中将combine_feat_method更改为text_only,并将column_info_path更改为./datasets/{dataset}/column_info_all_text.json

在下面的实验中,此基线对应于特征组合方法为unimodal

结果

下表显示了通过运行main.py在两个包含的数据集各自的测试集上的结果,未指定的参数为默认值。

评论预测

具体训练参数可以在datasets/Womens_Clothing_E-Commerce_Reviews/train_config.json中查看。

2个文本列、3个分类列和3个数值列。

模型特征组合方法F1PR AUC
Bert Base Uncasedtext_only0.9570.992
Bert Base Uncasedunimodal0.9680.995
Bert Base Uncasedconcat0.9580.992
Bert Base Uncasedindividual_mlps_on_cat_and_numerical_feats_then_concat0.9590.992
Bert Base Uncasedattention_on_cat_and_numerical_feats0.9590.992
Bert Base Uncasedgating_on_cat_and_num_feats_then_sum0.9610.994
Bert Base Uncasedweighted_feature_sum_on_transformer_cat_and_numerical_feats0.9620.994

价格预测

具体训练参数可以在datasets/Melbourne_Airbnb_Open_Data/train_config.json中查看。

3个文本列、74个分类列和15个数值列。

模型特征组合方法MAERMSE
Bert Base Multilingual Uncasedtext_only82.74254.0
Bert Base Multilingual Uncasedunimodal79.34245.2
Bert Base Uncasedconcat65.68239.3
Bert Base Multilingual Uncasedindividual_mlps_on_cat_and_numerical_feats_then_concat66.73237.3
Bert Base Multilingual Uncasedattention_on_cat_and_numerical_feats74.72246.3
Bert Base Multilingual Uncasedgating_on_cat_and_num_feats_then_sum66.64237.8
Bert Base Multilingual Uncasedweighted_feature_sum_on_transformer_cat_and_numerical_feats71.19245.2

宠物收养预测

具体训练参数可以在datasets/PetFindermy_Adoption_Prediction中查看 有2个文本列、14个分类列和5个数值列。

模型特征组合方法F1_macroF1_micro
Bert Base Multilingual Uncasedtext_only0.0880.281
Bert Base Multilingual Uncasedunimodal0.0890.283
Bert Base Uncasedconcat0.1990.362
Bert Base Multilingual Uncasedindividual_mlps_on_cat_and_numerical_feats_then_concat0.2440.352
Bert Base Multilingual Uncasedattention_on_cat_and_numerical_feats0.2540.375
Bert Base Multilingual Uncasedgating_on_cat_and_num_feats_then_sum0.2750.375
Bert Base Multilingual Uncasedweighted_feature_sum_on_transformer_cat_and_numerical_feats0.2660.380

引用

我们现在有一篇论文可以引用Multimodal-Toolkit。

@inproceedings{gu-budhkar-2021-package,
    title = "A Package for Learning on Tabular and Text Data with Transformers",
    author = "Gu, Ken  and
      Budhkar, Akshay",
    booktitle = "Proceedings of the Third Workshop on Multimodal Artificial Intelligence",
    month = jun,
    year = "2021",
    address = "Mexico City, Mexico",
    publisher = "Association for Computational Linguistics",
    url = "https://www.aclweb.org/anthology/2021.maiworkshop-1.10",
    doi = "10.18653/v1/2021.maiworkshop-1.10",
    pages = "69--73",
}
项目侧边栏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号