本文将围绕多模态任务实践中的关键问题进行探讨。
目录
1. 多模态业务简介
当前多模态任务研究热点主要集中在Transformer架构上,主要有两种模式:
- 双流网络:文本和图片分别编码后再交互。
- 单流网络:文本与图片特征拼接后输入Transformer。
实际项目中可先建立简易baseline,如文本使用BERT,图片使用Resnet,两者输出的特征经多头注意力交互后,通过全连接层输出结果。这属于双流网络架构。
2. 数据问题与标注
多模态任务常见于文本+图片场景,有高质量的场景标注数据对模型效果至关重要。
缺乏足够标注数据的情况下,不建议贸然开展多模态任务,否则可能效果欠佳。
3. 提升预测速度的方法
实际业务场景对预测速度要求较高,不必所有case都采用多模态,可以采用以下策略:
- 优先使用文本模型预测;
- 对文本预测置信度低且包含图片的case,再采用多模态模型进行预测。
这种策略兼顾了速度与准确性。
4. 模型效果验证
验证多模态任务效果最直接的方法是对比文本、图片以及多模态模型各自的F1分数。
同时,也可以通过attention可视化方式,直观看到文本与图片交互的实际效果,确认模型有效性。
5. 多图片输入处理
针对多图片输入问题,Resnet模型能够动态适应输入图片数量变化,具体方式有:
- 将多张图片作为Transformer的多个输入token;
- 将多张图片合并成单张图片处理。
实际项目推荐使用动态池化方式,更加灵活。
6. Attention机制选择
推荐采用双向attention机制,即文本对图片与图片对文本均采用attention,这种方式能更好捕捉模态间的关系,提升整体效果。
7. 模型训练注意事项
多模态模型训练时,不同网络结构(如BERT与Resnet)容易造成训练不易收敛问题,因此需注意:
- 分别调整不同部分的学习率(如BERT和Resnet使用不同学习率)。
此法能有效提高模型收敛速度和稳定性。