本文所涉及所有资源均在这里可获取。
本文所涉及所有资源均在这里可获取。
随着用户生成的在线视频的指数级增长,多模态讽刺检测最近引起了广泛的关注。讽刺通常通过多种言语和非言语暗示来表达,例如语气变化、单词过分强调、音节拖长或表情严肃。 最近讽刺检测方面的大部分工作都是在文本数据上进行的。尽管取得了重大进展,但仍然存在两个主要挑战:
以前的工作主要依赖于词级特征交互来建立模态间和模态内之间的关系,这可能会导致基本情感信息的丢失;
他们仅获得与文本模态交互的不一致信息,这可能导致对不一致的忽略。
为了解决这些难点,我提出了一种用于多模态讽刺检测的新型话语级不一致学习网络,其中多模态话语级注意力和不一致学习网络是两个核心模块。首先,M-ULA 与话语级多模态信息交互,补充单词级特征。 此外,ILN 自动选择主要模态和辅助模态,并利用交叉注意力和自注意力来学习不一致的表示。
同时,我在流行的多模态任务–多模态讽刺的数据集–MUStARD 上对模型进行了测试,得到了不错的效果,证明了该模型的可靠性。
【注】 文章中所用到的数据集,都经过重新特征提取形成新的数据集特征文件(.pkl),当然我也提供了原视频数据以便大家自己提取特征,下载链接都放在了附件中的 readme文件中,感兴趣的小伙伴可以进行下载,谢谢支持!
一、研究背景
讽刺是一种复杂的语言表达形式,其预期含义常常与字面解释形成对比。 这种隐含的情感表达给情感分析和意见挖掘等自然语言处理任务带来了重大挑战。 以前的讽刺检测方法主要关注分类任务的文本模态。 然而,用户生成的在线视频的激增为多模式讽刺检测带来了机遇和挑战。 另外,多模态情感特征提取仍然是一个具有挑战性的问题。 首先,仅仅依靠词级特征不足以捕捉模态之间复杂的相互作用。 其次,在任意的跨模态和模内模态上可能会出现不一致的信息。 因此,仅用其他方式从文本中探索不一致信息可能会导致全面不一致信息的丢失。
二、模型结构和代码
如上图所示,提出的用于多模态讽刺检测方法的话语级不一致学习网络由三层组成。 对于话语级特征提取层,为了从模态内和模间间捕获更丰富的有效信息,首先使用单模态编码器和话语级注意力分别获取文本、音频和视觉特征。 然后,利用多模态话语级注意力(M-ULA)来获取交互的融合特征。 对于不一致学习网络层,首先需要确定主要模态,然后采用交叉注意机制来捕获不一致信息,最后采用自注意机制来获取增强的不一致信息。 对于预测层,通过 softmax 分类器预测多模态讽刺标签。
-
话语级特征提取
a) 单模态特征提取:该模块包括三个主要功能:词元级单模态特征提取、对齐以及话语级特征表示。对于文本模态,采用预训练的BERT-base模型将输入的文本词元编码为词嵌入。对于音频和视觉模态,参考之前的工作,利用长短期记忆网络(LSTM)提取初始特征,其表示为:
-
模态重建模块
提出了一个模态重建(MR)模块,基于这样一个关键观点:从提取的模态序列中重建完整的模态序列,可以引导提取模块学习缺失部分的语义。对于每种模态,首先在特征维度上执行自注意力机制,以捕获提取特征之间的交互。
-
融合模块
D. 不一致性学习网络
E. 多模态讽刺分类
三、数据集介绍
- 多模态讽刺数据集:
MUStARD: 该数据集包含 690 个话语(345 个讽刺示例和 345 个非讽刺示例),这些话语源自著名电视节目,例如《老友记》、《生活大爆炸》、《黄金女郎》和《讽刺狂》。 实验数据集的详细统计数据如表一所示。
四、性能展示
五、实现过程
在下载附件并准备好数据集并调试代码后,进行下面的步骤,附件已经调通并修改,可直接正常运行;
-
数据集准备
附件中 data/sarcasm_data.json是已经标记好的讽刺标签
以下是执行上述任务的详细步骤: -
下载预训练的 GloVe 词向量(Common Crawl, 300d, 840B tokens):
下载链接在附件中readme.md; -
下载预提取的视觉特征并放置到 data/ 文件夹下:
你需要确保将视觉特征下载并解压到 data/features/ 文件夹中,使其包含 context_final/ 和 utterances_final/ 这两个子文件夹; -
下载预提取的 BERT 特征并放置到 data/ 文件夹下:
你需要确保下载到的文件包括以下两个文件:
data/bert-output.jsonl
data/bert-output-context.jsonl
你可以将这两个文件直接放在 data/ 文件夹下
- 运行
在命令行中运行 python train_svm.py -h 查看可选项,以选择运行配置(或者可以修改 config.py),然后运行该脚本:
python train_svm.py -h
根据查看到的选项,你可以选择适合的运行配置并执行。
完成上述步骤后,你的环境应该已经正确配置,可以继续运行模型或进行其他实验了。
六、运行过程
训练过程
最终结果
详细复现过程的项目源码、数据和预训练好的模型可从该文章下方链接获取:https://www.aspiringcode.com/content。
关于 今天的文章七七就先分享到这里了,如果你认为这篇文章对你有帮助,请给七七点个赞吧,如果发现什么问题,欢迎评论区留言!!💕💕