✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。
我是Srlua小谢,在这里我会分享我的知识和经验。🎥
希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮
记得先点赞👍后阅读哦~ 👏👏
📘📚 所属专栏:传知代码论文复现
欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙
需要本文的详细复现过程的项目源码、数据和预训练好的模型可从该地址处获取完整版:地址
洞察你的内心:你真的这么认为吗?
随着用户生成的在线视频的指数级增长,多模态讽刺检测最近引起了广泛的关注。讽刺通常通过多种言语和非言语暗示来表达,例如语气变化、单词过分强调、音节拖长或表情严肃。 最近讽刺检测方面的大部分工作都是在文本数据上进行的。尽管取得了重大进展,但仍然存在两个主要挑战:
以前的工作主要依赖于词级特征交互来建立模态间和模态内之间的关系,这可能会导致基本情感信息的丢失; 他们仅获得与文本模态交互的不一致信息,这可能导致对不一致的忽略。 为了解决这些难点,我提出了一种用于多模态讽刺检测的新型话语级不一致学习网络,其中多模态话语级注意力和不一致学习网络是两个核心模块。首先,M-ULA 与话语级多模态信息交互,补充单词级特征。 此外,ILN 自动选择主要模态和辅助模态,并利用交叉注意力和自注意力来学习不一致的表示。 同时,我在流行的多模态任务–多模态讽刺的数据集–MUStARD 上对模型进行了测试,得到了不错的效果,证明了该模型的可靠性。
一、研究背景 讽刺是一种复杂的语言表达形式,其预期含义常常与字面解释形成对比。 这种隐含的情感表达给情感分析和意见挖掘等自然语言处理任务带来了重大挑战。 以前的讽刺检测方法主要关注分类任务的文本模态。 然而,用户生成的在线视频的激增为多模式讽刺检测带来了机遇和挑战。 另外,多模态情感特征提取仍然是一个具有挑战性的问题。 首先,仅仅依靠词级特征不足以捕捉模态之间复杂的相互作用。 其次,在任意的跨模态和模内模态上可能会出现不一致的信息。 因此,仅用其他方式从文本中探索不一致信息可能会导致全面不一致信息的丢失。
二、模型结构和代码 
如上图所示,提出的用于多模态讽刺检测方法的话语级不一致学习网络由三层组成。 对于话语级特征提取层,为了从模态内和模间间捕获更丰富的有效信息,首先使用单模态编码器和话语级注意力分别获取文本、音频和视觉特征。 然后,利用多模态话语级注意力(M-ULA)来获取交互的融合特征。 对于不一致学习网络层,首先需要确定主要模态,然后采用交叉注意机制来捕获不一致信息,最后采用自注意机制来获取增强的不一致信息。 对于预测层,通过 softmax 分类器预测多模态讽刺标签。
-
话语级特征提取 a) 单模态特征提取:该模块包括三个主要功能:词元级单模态特征提取、对齐以及话语级特征表示。对于文本模态,采用预训练的BERT-base模型将输入的文本词元编码为词嵌入。对于音频和视觉模态,参考之前的工作,利用长短期记忆网络(LSTM)提取初始特征,其表示为:


-
模态重建模块 提出了一个模态重建(MR)模块,基于这样一个关键观点:从提取的模态序列中重建完整的模态序列,可以引导提取模块学习缺失部分的语义。对于每种模态,首先在特征维度上执行自注意力机制,以捕获提取特征之间的交互。
. 融合模块 在重建损失的指导下,通过补充模态信息增强不完整的模态序列后,将它们融合为一个联合向量用于情感预测。提出了一个CNN门控编码器,用于分别编码增强的模态序列Hm; 




其中,h m 表示模态m的隐藏维度。 三个模态表示的连接被视为融合结果,并输入到一个简单的分类器中,以进行情感强度的最终预测:
其中,BN表示批量归一化操作,LeakyReLU作为激活函数使用。Token级别的特征交互可能会导致遗漏关键信息。因此,使用话语级注意力(ULA)来学习单模态的独特特性。然而,单模态的ULA模块只能探索单个模态内部的关系。将单模态特征作为输入,得到的话语级特征表示为: 






D. 不一致性学习网络 a) 主要模态选择:为了评估模态不一致性,首先需要确定主要模态。参考文献[17],根据每种模态对讽刺检测的贡献自动分配权重值,贡献越高,权重值越高。在每个训练批次中更新权重值,同时保持所有可训练权重值的总和为1。 b) 通过交叉注意力进行不一致性学习:为了从主要模态和辅助模态中获取不一致性信息,利用交叉注意力(CMA)机制获取交互后的辅助模态: 
c) 通过自注意力进行不一致性学习:将交互后的主要模态$ \tilde{P}{\tilde{A}1}, \tilde{P}{\tilde{A}2} 和和 \tilde{P}{\tilde{A}3} $进行拼接,然后利用自注意力(SA)机制识别其显著成分,作为最终的主要模态表示: 
E. 多模态讽刺分类 多模态讽刺检测任务旨在预测标签y∈{讽刺,非讽刺}因此,最终的句子级不一致性表示通过一个带有Softmax激活函数的全连接层来生成在多模态讽刺决策空间中的概率分布y: 
三、数据集介绍
-
多模态讽刺数据集:
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/ 文件夹下:
-
你需要确保下载到的文件包括以下两个文件:
<span style="background-color:#f8f8f8"><span style="color:#333333">data/bert-output.jsonl
data/bert-output-context.jsonl</span></span>
你可以将这两个文件直接放在 data/ 文件夹下
-
运行 在命令行中运行 python train_svm.py -h 查看可选项,以选择运行配置(或者可以修改 config.py),然后运行该脚本:
<span style="background-color:#f8f8f8"><span style="color:#333333">python train_svm.py <span style="color:#0000cc">-h</span></span></span>
根据查看到的选项,你可以选择适合的运行配置并执行。 完成上述步骤后,你的环境应该已经正确配置,可以继续运行模型或进行其他实验了。
六、运行过程 
注意:需要本文的详细复现过程的项目源码、数据和预训练好的模型可从该地址处获取完整版:地址
希望对你有帮助!加油!
若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!
多模态讽刺检测的话语级不一致学习网络


1049

被折叠的 条评论
为什么被折叠?



