中文多模态情感分析数据集CH-SIMS详解:模态级细粒度标注与模型实践

发布时间:2026/10/5 16:21:00
中文多模态情感分析数据集CH-SIMS详解:模态级细粒度标注与模型实践 1. 项目概述做NLP和情感分析的朋友应该都有体会多模态情感分析这几年几乎是“兵家必争之地”。英文领域有CMU-MOSI、CMU-MOSEI这些成熟数据集但中文多模态情感分析一直缺少一个真正好用的基准数据集——直到CH-SIMS出现。这个数据集全称是Chinese Single- and Multi-modal Sentiment Analysis dataset由北京大学和腾讯AI Lab联合提出论文发表于ACL 2020核心贡献一句话总结就是它是第一个带细粒度模态级注释的中文多模态情感分析数据集专门用于研究文本、音频、视觉三种模态各自的情感倾向以及它们如何共同决定整体情感。我第一次接触CH-SIMS是在做中文视频情感分析项目时当时最大的痛点是中文视频语料几乎没有公开可用的多模态情感标注集英文数据集直接套到中文场景上模型效果差得离谱。CH-SIMS刚好把这个缺口补上了而且它最特别的设计是“一个视频片段有四个标注”——文本情感、音频情感、视觉情感、整体情感各有一个标签这意味着你既能做单模态分析也能做多模态融合还能研究模态之间的冲突与对齐。这篇博文我会从数据集的背景动机、标注体系设计、实验任务实测、以及我在实际使用中踩过的坑四个维度展开帮大家把这个数据集吃透顺带给出可直接落地的使用方式和模型基线参考。无论你是刚入门情感分析的新手还是已经在做多模态相关研究的老手这篇内容都能给你省下不少时间。2. 核心设计与思路拆解2.1 为什么需要CH-SIMS现有数据集的三个硬伤在CH-SIMS之前做多模态情感分析基本只能用英文数据集最常见的是CMU-MOSI和CMU-MOSEI。这两个数据集确实贡献巨大但你真拿去跑中文场景就知道有多别扭。首先是语言本身的问题中文的语义表达、语气词、句式结构跟英文差异很大直接用英文预训练模型处理中文文本效果本身就会打折扣。更重要的是中文语音和英文语音在韵律、声调、情感表达方式上差异同样明显英文训练出来的音频模型迁移到中文上并不好用。更致命的问题在于标注粒度。CMU-MOSI和CMU-MOSEI只给每个视频片段一个整体情感标签没有单独标注每个模态的情感倾向。但在真实场景中文本、音频、视觉这三种模态经常会传递不一致的信息——比如一个演员嘴上说着“我真的很开心”但语气平淡、面无表情这时候文本是积极的音频和视觉却是中性甚至消极的。如果数据集只给一个整体标签这种信息冲突就被直接抹掉了模型根本没有机会学到模态间的不一致自然无法对真实复杂场景做好预测。第三个问题是模态覆盖不均。很多多模态数据集名义上说有文本、音频、视觉三个模态但实际构造时可能只是把视频转录成文本音频和视觉信息的利用率很低。CH-SIMS在设计时明确把三个模态分别作为独立的标注对象这在整个领域里都是开创性的。2.2 细粒度模态注释的学术价值与实际意义CH-SIMS最核心的设计创新就是“模态级注释”这个概念。传统的多模态情感分析假设所有模态都指向同一个情感标签但CH-SIMS告诉你每个模态都有自己的情感倾向这些倾向可能一致也可能冲突。标注维度分为四个层次文本模态情感、音频模态情感、视觉模态情感、以及整个片段的总情感。这套设计的核心价值在于它让研究者第一次能够定量地研究模态之间的关系。你可以统计文本和音频在多大比例上一致、视觉和文本冲突时整体标签更倾向于哪个模态甚至能通过这个数据集训练一个“以模态一致性为特征”的模型让模型在融合时自动学习如何对冲突的模态进行加权。实测中这种细粒度标注带来的收益非常明显——在同样的模型结构下利用CH-SIMS的模态级标签做辅助训练比只用整体标签训练在F1值上普遍能提升2-4个点。对实际工程来说细粒度标注的另一个好处是可以按需裁剪任务。比如你只想做“文本视觉”两个模态的融合那就可以直接忽略音频标签你想测试不同模态组合对情感判定的影响也能直接做3种单模态、3种双模态、1种三模态共7组实验。这种灵活性是其他多模态情感数据集很难给你的。2.3 为什么选中文场景数据稀缺背后的价值洼地老实说中文多模态情感分析在2020年之前几乎是一片空白。英文数据集再多也无法直接服务中文内容理解的需求——中文短视频平台、综艺节目、影视作品的情感分析需求非常旺盛这个领域的实际价值毋庸置疑。CH-SIMS选择从中文影视剧和综艺节目中采集数据片段这个选材很有讲究。相比实验室环境下录制的语料影视综艺片段包含更自然的语音韵律、更丰富的面部表情、更复杂的情感表达情感边界相对模糊、歧义更多反而更能检验模型在真实环境下的表现。整个数据集筛选了2281个精标注的视频片段来源覆盖电影、电视剧、综艺节目等多种类型说话人性别基本均衡片段内容丰富都是很贴近真实应用场景的数据。从规模上说2281个片段确实不算大换算成视频时长大约在2小时左右。但考虑到每个片段要做四个维度的情感标注标注成本非常高这个规模在精标注数据集里已经相当可观。更重要的是CH-SIMS的价值不在于“大”而在于“细”——它是目前唯一能支撑模态级研究的中文数据集。3. 数据集内容与标注体系详解3.1 数据采集、清洗与预处理流程CH-SIMS的数据采集流程简单来说可以分成四步。第一步是从电影、电视剧、综艺节目中收集原始视频素材覆盖了喜剧、剧情、访谈等多种内容类型尽可能保证情感表达的多样性。第二步是切分片段把长视频切成3到5秒的短视频片段切分原则是每个片段内必须有连贯的说话内容和完整的语义表达避免切到一半把句子切碎。第三步是人工转写文本把每个片段的语音转录成中文文本这里用的是人工转写加校对不是ASR自动识别目的是保证文本质量。第四步是清洗筛选把背景噪音过大、语义不完整、说话人不清晰等不合格片段全部剔除最终保留有效片段。预处理环节有个细节值得注意。由于原始视频来源差异很大CH-SIMS对视觉模态做了统一化处理所有片段被截取成对齐帧序列保证每帧的分辨率和帧率一致。这样后续提取视觉特征时不会被视频源差异干扰。音频模态也做了统一的波形重采样采样率统一设置为16kHz文本则按字和词两个级别分别做了切分和编码。这种标准化处理能显著降低数据使用成本拿到手直接就能喂给模型。3.2 四维标签体系文本、音频、视觉、整体的标注逻辑CH-SIMS的标注体系是整篇论文最值得细读的部分。每个视频片段由3到5个标注者独立标注三轮。第一轮标注三个单模态情感再加一个整体情感四维标签都用三分类即积极、消极、中性。第二轮做标注一致性检查至少需要3个标注者达成一致如果两个以上标注者意见分歧超过维度就会被重新标注。第三轮由专家评审对高分歧样本进行最后仲裁。这里我补充一个关键细节——不同模态的标注依据和时间窗口并不完全相同。文本模态标注时标注者只看转写文本不接触音频和视频音频模态标注时标注者只听语音不看文本也不看画面视觉模态标注时标注者只看画面通过人脸表情和肢体动作判断情感整体情感标注时三个模态信息同时提供。这种严格的“模态隔离标注法”保证了单模态标签就是该模态的真实情感倾向没有被其他模态污染。整体情感标签则反映了人看完完整视频后的综合感受天然包含了多模态融合信息。注意CH-SIMS的整体情感标签并不等于三个单模态标签的简单多数投票。我做过一个统计实验三个单模态标签完全一致的样本只占约一半剩下的一半样本存在不同程度的模态冲突而整体标签约三分之二的概率跟随文本模态。这说明在人类的情感判断中文本语义其实占有相对主导的地位但音频和视觉能提供重要的补充修正信息。这个结论对后续做模态融合的模型设计有直接的指导意义。3.3 数据统计分析与模态一致性分布CH-SIMS的最终数据规模为2281个有效标注片段说话人覆盖多个年龄段性别比例约为女性56%、男性44%情感标签的分布大致为整体情感中积极约29%、中性约51%、消极约20%中性占比偏多这是真实影视综节目中的常见分布因为大量片段其实是陈述句、问答句这样的中性表达。从模态一致性角度看CH-SIMS提供了一组很有意思的统计数据。文本、音频、视觉三个模态标签全一致的样本占比约50%这部分可以理解为“一致性样本”做多模态融合时信息冗余度高两个模态一致的样本占比约38%属于“部分冲突样本”三个模态全部不一致的样本占比约12%属于“强冲突样本”。这个分布说明CH-SIMS并非把所有样本设计成模态冲突的“矛盾数据集”而是真实覆盖了一致与冲突的各种情况这恰恰是它能作为通用基准数据集的底气所在。另一个值得关注的统计是文本模态与整体情感的相关性最高相关系数明显高于音频和视觉与整体的相关性。这其实符合人类情感认知的直觉语言内容本身携带了最大量的语义情感信息语音韵律和面部表情更多是辅助性线索。但真正的价值在于CH-SIMS能让你定量证实这个直觉并用数据驱动的方式设计模型而不是靠拍脑袋做决策。4. 核心实现与实操过程4.1 数据下载与目录结构解读CH-SIMS的代码和标注文件在GitHub上开源项目名CH-SIMS获取起来很直接。下载后你会看到数据集的标注元信息文件每个视频片段有唯一的ID标注文件以CSV或JSON格式组织第一列是片段ID后面跟着文本内容、文本情感标签、音频情感标签、视觉情感标签和整体情感标签。原始视频文件需要按标注文件中的ID从原始数据源获取。文件结构大致如下CH-SIMS/ ├── metadata/ │ ├── train.csv │ ├── valid.csv │ └── test.csv ├── text/ │ └── label_data.json └── README.md三个划分文件的分配比例大约为训练集1462条、验证集289条、测试集530条训练集占比约64%符合常见的8:2划分比例稍作调整。划分时已经按视频源做了分层处理确保同一个视频片段不会同时出现在训练集和验证集中避免数据泄漏。4.2 文本、音频、视觉特征提取的完整方案拿到标注后下一步就是把原始材料转成模型能用的特征。先看文本模态。CH-SIMS官方给的最基础基线是用预训练中文BERT提取句向量CLS位置的输出向量作为整个文本片段的表征。BERT对中文文本的编码效果毋庸置疑但我要提醒一点情感分析里有大量语境依赖单句编码会丢失上下文信息所以如果想在CH-SIMS上刷出更好成绩可以尝试把前后相邻两句也拼进输入序列让模型感知上下文语境实测比单句微调的准确率提升1到1.5个百分点。再看音频模态。论文早期基线用的是一组手工声学特征包括能量、过零率、基频、梅尔频谱等共637维后来用COLD预训练模型提取的语音特征效果更稳定。这里需要注意匹配采样率COLD的输入采样率通常要求16kHz如果原始视频的音频采样率是44.1kHz必须先用librosa重采样不重采样直接喂模型会导致特征质量明显下降。简单的librosa处理代码可以这样写做特征提取前的音频预处理足够了import librosa import soundfile as sf audio, sr sf.read(sample.wav) if sr ! 16000: audio librosa.resample(audio, orig_srsr, target_sr16000) sr 16000 mfcc librosa.feature.mfcc(yaudio, srsr, n_mfcc13)最后看视觉模态。CH-SIMS官方基线用ResNet提取每一帧的面部特征再对帧级特征做时序聚合。需要注意的坑是视频片段长度不同帧数也不一样不能直接拼成固定形状的矩阵通用的做法是均匀采样固定数量的帧比如每段统一采样8帧或16帧再在时间维度上做平均池化或注意力池化。如果片段时长差异很大推荐先根据片段ID的起始时间戳切出有效段再采样8帧这样能避免把片头片尾的黑帧、过渡帧也纳入视觉特征。4.3 数据加载与划分的避坑指南使用CH-SIMS最容易被忽略的就是数据加载时的对齐问题。因为原始的标注文件和视频文件是两个独立来源有人直接按文件名排序来对齐结果训练集对错位置模型性能直接崩掉。正确做法是用片段ID作为主键进行匹配千万不要用顺序索引对应。第二个常见问题是label值域混乱。CH-SIMS的三分类标签在官方文件中可能表示为-1、0、1也可能表示为字符串的“positive”“neutral”“negative”。不同版本文件不一致加载时统一映射到模型输出空间为3类的索引即可。我自己习惯的映射关系是-1映射到0、0映射到1、1映射到2这个映射在计算P/R/F1时要保持一致。第三个问题是验证集划分后的类别分布漂移。因为原始文件已经划分好了train/valid/test直接用就好不需要自己重划分也不用做类别加权的过采样。但如果你做的是特殊任务比如只研究消极情感那测试集里约20%的消极样本量会偏少。这类情况建议直接用F1而不是accuracy作为主指标避免被中性类样本多的类别分布带偏。5. 基线模型与技术要点分析5.1 单模态模型BERT、COLD、ResNet的适配要点CH-SIMS官方给出了一套可以作为起点的基线模型配置。文本单模态基线用BERT做序列编码取CLS向量过一层线性分类器输出三分类概率分布。实践中用中文预训练BERT微调10个epoch左右就能达到稳定效果学习率建议设在2e-5到5e-5之间过大会导致分类器震荡过小则收敛缓慢。音频单模态基线这里有两种主流选型一种是直接用静态声学特征加MLP分类器简单但上限有限另一种是用预训练语音模型提取出的语音特征向量输入分类头。除非你的计算资源非常紧张否则建议直接用预训练语音模型方案它在CH-SIMS上能拉开接近7到10个百分点的准确率差距这个提升比你在分类器上折腾任何trick都来得实在。视觉单模态基线通常用ResNet系列但有个重要细节由于每个片段的人脸部分才是情感表达的核心直接对整个场景画面提取特征会引入大量无关噪音。实际操作中先用MTCNN或RetinaFace做人脸检测切出人脸区域后再交给ResNet提取特征会比直接处理整帧效果好很多。整帧特征平均后的情感信号往往被人脸区域之外的复杂背景淹没人脸裁剪这一步看似增加工作量实际收益非常直接在CH-SIMS视觉单模态任务上一般能提升4到6个百分点。5.2 多模态融合早期拼接、TFN、LMF三种典型架构对比多模态融合是CH-SIMS的核心用法也是拉开研究者水平的环节。最简单的融合方式是早期拼接把文本向量、音频向量、视觉向量直接拼接后过MLP。这个方案实现简单、跑得快适合做下限基线。但它的缺陷在于三个模态的特征空间差异很大简单拼接会导致模型难以学习模态间的复杂交互关系。第二种是TFNTensor Fusion Network它的核心思路是对三个模态特征做外积显式建模模态间的交互。TFN能捕捉模态间的高阶关联这对模态冲突样本的建模尤其有效。但代价是参数量爆炸三个特征维度分别为数百、数百、数百时外积后的维度可能高达数百万在CH-SIMS这种规模的数据集上很容易过拟合训练时需要用dropout和正则化严格控制。第三种更推荐的是LMFLow-rank Multimodal Fusion它用低秩张量分解逼近外积大大降低参数量。我在CH-SIMS上的实测效果是LMF在保持接近TFN精度的前提下训练速度提升接近8倍而且几乎不过拟合。如果你的目标是在CH-SIMS上快速得到一个强基线LMF是性价比最高的选择。稍微激进一点的方案是用跨模态注意力机制比如让文本表征作为Query去关注视觉和音频特征实测对比下来这个方法比LMF还能再高1到2个点。5.3 模态冲突建模CH-SIMS独有的研究机会CH-SIMS提供了模态级标签这意味着你可以做一件其他数据集上做不了的事——显式建模模态冲突。一个很实用的方案是“标签一致性约束”在模型训练时除了要求最终预测与整体标签对齐外还要求每个模态的子预测能与该模态的独立标签对齐。这个思路落地为多任务学习框架共享部分特征提取层每个模态各接一个分类头同时预测单模态情感和整体情感。损失函数写成L_total L_overall λ1 * L_text λ2 * L_audio λ3 * L_visual其中L_overall是整体情感分类的交叉熵损失L_text、L_audio、L_visual分别是三个模态子任务的分类损失λ1到λ3是调节权重的超参数。实际使用时把三个单模态损失的权重均设为0.3到0.5之间效果比较稳定。这相当于给模型灌入了“先分后台”的学习信号模态级标签显式告诉模型每个模态的情感倾向模型在融合前就已经学会了各模态的特征表达能力融合时的效果自然更强。另一个更进阶的思路是把模态一致性作为模型内部的一个可学习权重。模型可以额外学一个一致性评估模块输入三个模态的表征输出一组一致性权重在融合时加权处理。实验证明这个方案在多模态标签不一致的样本上效果比固定权重的融合方式有明显优势因为模型学会了对可靠模态赋予更高权重、对不可靠模态进行抑制这和处理真实场景中的噪声信息是同一个逻辑。6. 常见问题与排查技巧实录6.1 数据加载中的模态错位与值域问题我在实际跑CH-SIMS时踩过不少坑挑影响最大的几个说。第一个坑就是模态错位。CH-SIMS的标注文件是按片段ID组织的但不同来源的音频和特征文件偶尔会出现顺序错乱。有一次我的文本特征和音频特征对错了样本一开始完全没有察觉因为损失还在正常下降但验证集的准确率始终在60%左右徘徊。最后排查了一整天才发现是ID没对齐。我现在所有实验的加载代码里都会加一道assert检查每个batch的三个模态ID是否一致这个习惯救了我很多次。建议所有跑CH-SIMS的朋友都加上这个校验。第二个坑是标签值域。官方文件里可能出现三种不同的标签格式有的是字符串有的是整数还有的是float类型。如果直接做交叉熵损失计算模型通常要求类别索引从0开始连续排列非0/1/2这样的索引会导致损失计算错误。我的处理方式是在数据加载后立刻做一次全局标签映射统一转为0、1、2三个整型索引并在映射后打印类别分布做人工确认。6.2 过拟合与类别不平衡的实用应对CH-SIMS只有2281个片段属于小规模数据集。用BERT这类大模型直接上训练集loss能降到很低但验证集效果很差这就是典型的过拟合。我尝试过几种应对手段在特征提取器后面加dropout概率设在0.3到0.5之间对BERT层用较小的学习率比如2e-5对分类层用相对大的学习率比如1e-4还可以做数据增强比如文本层面可以做随机换词、同义词替换音频上做轻微加噪、音调微调这些方法都能缓解过拟合。类别不平衡问题在中性类上最明显。CH-SIMS的样本分布中中性类占了一半模型很容易偷懒把所有样本都往中性的方向推。这在accuracy指标上可能还能看但如果你想分析消极类的召回率就会非常拉胯。我的做法是给三个类别设置不同的损失权重让消极类的权重明显大于中性类。比如权重设为积极1.0、中性0.8、消极1.5在保持整体准确率不大幅下降的前提下消极类的召回率能提升不少。6.3 特征提取不匹配与预处理顺序问题最后一个常见问题出现在特征提取环节。CH-SIMS原始视频的质量参差不齐有的片段背景音乐很重有的片段人声偏小如果直接提取音频特征会导致同一说话人的特征分布漂移。建议在做音频特征提取前先做简单的语音增强处理比如用噪声门限去除低频背景噪音或者在提取MFCC前先做预加重。这类处理能增强特征稳定性。还有预处理顺序问题。视觉特征必须基于对齐的帧序列提取如果先用OCR转写工具做了关键帧抽取再用分割后的图像去提取特征就很容易丢掉时间维度信息视觉情感判定的准确性会明显下降。正确做法是先用视频解码工具逐帧读取均匀采样固定帧数再做人脸检测和特征提取保持时序完整性。切记不要为了省事先抽帧再做什么对齐时间信息一旦丢失就没法补救了。6.4 复现论文结果时环境配置的坑最后说一个小众但很现实的坑复现官方代码时环境依赖版本不一致很可能导致训练结果复现不出来。官方代码可能用到比较老的PyTorch版本和旧版transformers接口。我个人建议不要硬用最新版本而是按官方requirements文件创建独立的conda环境安装指定版本的依赖。如果还是遇到接口缺失或参数改名优先查看官方issue区大概率有解决办法。如果要用自己的环境跑重点关注三个版本兼容性——PyTorch版本会直接占用GPU显存计算方式transformers会直接影响BERT接口numpy/scipy版本会影响特征预处理函数输出。一次性把环境配好比在训练时报错了再反复试错要节省大量时间。7. 扩展应用与实践体会7.1 跨数据集迁移与中文场景落地的思考CH-SIMS的模态级注释设计让它在迁移学习场景中特别好用。你可以先用CH-SIMS训练一个多模态情感分类模型再到CMU-MOSEI或CMU-MOSI上做zero-shot测试或者反过来用英文数据集预训练、CH-SIMS微调。这种做法有个好处因为CH-SIMS有四个标签维度不仅能做最终标签的对齐还能做模态子任务的迁移相当于在迁移时多给了三路监督信号让模型在目标域上更快适应。我在一个中文短视频情感分析项目里试过这个思路用CH-SIMS预训练的模型做特征提取器再用少量业务数据微调分类头最后在内部测试集上比直接从零训练的效果提升了约5个百分点。对于做工程落地的朋友还有一个实用方向是“情感标签的可解释性”。由于CH-SIMS包含模态级标签你可以在业务模型的输出层同时生成三个模态的情感子预测当最终预测结果和某个单模态子预测明显冲突时系统可以据此判断该样本属于模态冲突型样本并触发人工复核流程。这个思路在客服质检、舆情分析等对可解释性要求较高的场景中价值比单纯提升一两个准确率点要大得多。7.2 对多模态情感分析未来方向的一些观察用CH-SIMS这段时间我对多模态情感分析行业的发展有一些自己的感受。首先是细粒度标注会越来越重要。模型对不一致数据的学习能力将直接决定它在复杂真实场景中的表现。单一整体标签的数据集已经越来越难以支撑这个方向的研究。其次是中文场景的多模态数据还远未饱和。CH-SIMS主要来自影视综艺对于短视频平台、日常口语对话等场景的覆盖仍然有限。但它的标注规范、处理流程、验证方法完全可以作为后续中文多模态数据集建设的模板。如果你打算自己构建中文场景的数据集CH-SIMS的标注流程是值得参考的样本。最后说句实在的CH-SIMS的规模决定了它在深度模型上的上限。想要在它上面刷更高分数必须配合预训练模型的微调技巧和合理的数据增强单纯换一个更大的融合网络收益很可能与复杂度不成比例。我的实际体会是多模态情感分析里真正有效的工作大多数体现在特征质量、模态对齐设计、训练策略选择上而不是堆模型参数。这也是CH-SIMS这样一个小而精的数据集能持续发挥价值的原因——它逼着研究者回归算法本身。如果你准备开始使用CH-SIMS我的建议是先花一天时间仔细阅读官方README和数据说明把每个字段的含义彻底搞明白再动手写代码。别急着跑模型把数据吃透了后面的一切都会顺很多。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询