项目介绍
Multimodal-Toolkit简介
Multimodal-Toolkit是一个支持多模态数据的工具包,专门用于文本数据的分类和回归任务。它主要依托于HuggingFace的transformers作为文本特征的基础模型,并通过组合模块将transformers的输出与分类和数值特征结合在一起,从而生成丰富的多模态特征以用于后续的分类或回归层。在预训练的transformer模型的基础上,组合模块的参数和transformer的参数会根据监督任务进行训练。
安装指南
此工具包用Python 3.7开发,支持PyTorch和Transformers 4.26.1版本。有关多模态的特定代码放置在multimodal_transformers
文件夹中。安装方式如下:
pip install multimodal-transformers
支持的Transformers
Multimodal-Toolkit支持多种HuggingFace Transformers用于处理表格数据,包括:
- BERT
- ALBERT
- DistilBERT
- RoBERTa
- XLM
- XLNET
- XLM-RoBERTa
数据集支持
该工具包包含以下Kaggle数据集,适用于文本数据和丰富的表格特征:
- 女性服装电子商务评论:用于推荐预测(分类)
- 墨尔本Airbnb开放数据:用于价格预测(回归)
- PetFindermy收养预测:用于宠物收养速度预测(多类分类)
使用示例
用户可以在包含预设配置的数据集上快速查看这些模型的实际效果:
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
集成方法
Multimodal-Toolkit中提供了多种特征组合的方法,包括:
- 仅文本
- 直接连接
- 对分类特征进行MLP处理然后与其他特征连接
- 分别对分类和数值特征进行MLP处理后连接
- 对连接后的特征进行MLP处理后再与transformer输出连接
- 基于注意力的特征组合
- 对特征进行加权求和
实验结果
使用工具包在不同数据集上进行预测有显著的改善:
推荐预测
在女性服装电子商务评论数据集上(包含2个文本、3个分类、3个数值特征),最佳模型实现了F1得分0.968。
价格预测
在墨尔本Airbnb开放数据集上(包含3个文本、74个分类、15个数值特征),最佳模型的MAE为65.68。
收养速度预测
在PetFindermy收养预测数据集上(包含2个文本、14个分类、5个数值特征),最佳F1微观平均得分为0.380。
结语
通过这个工具包,研究者和开发者可以更容易地在文本数据的基础上,结合丰富的表格数据,为分类和回归任务提供更优的解决方案。