Multi-Modal Sarcasm Detection in Twitter with Hierarchical Fusion Model(2019 ACL)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Multi-Modal Sarcasm Detection in Twitter with Hierarchical Fusion Model(2019 ACL)
  • 背景
  • 一、摘要
  • 二、相关工作
  • 三、层次融合模型
    • 编码层
    • 融合层
    • 分类层
  • 四、数据集与预处理(Preprocessing)
  • 五、实验
    • 训练设置
    • 结果对比
    • 实例分析(错误分析)
  • 六、总结

背景

反语(Irony)和讽刺(Sarcasm)是社会媒体中常用的修辞方法。反语是指运用跟本意相反的词语来表达此意,却含有否定、讽刺以及嘲弄的意思,是一种带有强烈感情色彩的修辞格,比如“I absolutely love to be ignored !” 讽刺则是用比喻、夸张等手法对人或事进行揭露、批评或嘲笑,比如“Good thing Trumpis going to bring back all those low education highpaying jobs.”。关于反语和讽刺的关系,可以认为讽刺是包含情绪(比如攻击性情绪)的一种反语[9]。为方便起见,后文统一称之为“反讽”,不再对反语和讽刺进行区分。
反讽识别任务源于文本任务,其目的是:判断一段文档是都含有反讽表达。在文本反讽任务中,主要分为上下文有关反讽与上下文无关反讽。上下文无关的反讽识别仅通过分析目标句判断是否为反讽,不需要结合上下文信息;而上下文有关的反讽识别则通过分析目标句与其上下文来判断是否为反讽。
在上下文无关反讽任务中,占比最大的是“前后情感矛盾式的反讽”(据统计占比69.9%),常用“词对”或“半句对”捕捉反讽的特点。
在上下文有关的反讽任务中,分为使用复杂上下文信息和简单上下文信息的方法。

上述方法仅仅是面向文本的反讽识别,目前,越来越多的社交平台使用多模态信息表达自己的情感,因此,仅适用文本进行反讽识别已不足以满足需求。本文提出了基于 Twitter 的数据集,并提出了层次融合模型,准确率达到83.44%。

一、摘要

文章重点关注了由文本和图像组成的推文的多模态讽刺检测。将文本特征图像特征图像属性视为三种模式,并提出了一个多模态的层次融合模型来解决这一任务。首先提取图像特征和属性特征,然后利用属性特性和双向LSTM网络来提取文本特征。然后重建三种模态的特征,并融合成一个特征向量进行预测。(主要贡献)创建了一个基于推特的多模态讽刺检测数据集。对数据集的评估结果证明了提出模型的有效性和这三种模态的有效性(后面有消融实验)。

原文:
“our fusion strategy successfully refines the representation of each modality and is significantly more effective than simply concatenating the three types of features.”

文章的主要贡献

  1. 提出了层次融合模型解决 多模态反讽识别 的挑战;
  2. 创建了一个新的多模式反讽检测数据集(基于 Twitter);
  3. 定量地展示了每种模态在反讽检测中的意义。为了充分释放图像的潜力,考虑图像属性(—— 一个弥合文本和图像之间的差距的高级抽象信息)。

二、相关工作

  • 反讽识别(文本反讽检测)
  • 其它多模态任务(包括多模态语义分析,融合,对齐,VQA,图像情感识别等)

三、层次融合模型

在图像和文本的基础上,增加了图像属性模态(Image attribute)(被定义为图像内容的高级概念,用于提高模型性能),然后基于上述三种模态提出了一种多模态层次融合模型,模型的整体框架图如下:

编码层

下面将分别从原始向量(raw vectors)和 指导向量(guidance vectors)的获取进行说明。

图像特征表示
使用预训练和微调的ResNet-50 V2 模型获取原始向量。输入一张图片,将其调整为 448×448448\times 448448×448,并将其划分为 14×1414\times 1414×14 的区域向量。每个region Ii(i=1,2,...,196)I_i(i=1,2,...,196)Ii(i=1,2,...,196) 通过 ResNet 模型,得到区域特征表示,也就是原始向量。
vregioni=ResNet(Ii)v_{{region}_i}=ResNet(I_i)vregioni=ResNet(Ii)
图像的指导向量为所有region向量的平均,即:
vimage=∑i=1NrvregioniNrv_{image}=\frac{\sum_{i=1}^{N_r}v_{{region}_i}}{N_r}vimage=Nri=1Nrvregioni
其中,NrN_rNr 是region的个数,即:Nr=196N_r=196Nr=196.

图像属性表示
灵感来源:以前的工作中,利用图像属性预测任务学习模型参数,然后通过共享促进图像表示的学习。
本文直接将属性视为连接 文本 和 图像 的额外模态。利用预训练和微调的ResNet-101 模型,为每个图像预测5个属性 ai(i=1,2,...,5)a_i(i=1,2,...,5)ai(i=1,2,...,5) 并将其 GloVe embeddings当做图像属性的原始向量 e(ai)e(a_i)e(ai)

通过加权平均,可得到图像属性的 guidance 向量。权重由一个双层神经网络学习得到:
αi=W2⋅tanh⁡(W1⋅e(ai)+b1)+b2α=softmax(αi)\alpha_i=W_2\cdot \tanh(W_1\cdot e(a_i)+b_1)+b2 \\ \alpha= softmax(\alpha_i)αi=W2tanh(W1e(ai)+b1)+b2α=softmax(αi)
其 guidance 向量可表示为:
vattr=∑i=1Naαie(ai)v_{attr}= \sum\limits_{i=1}^{N_a}\alpha_i e(a_i)vattr=i=1Naαie(ai)

文本特征表示
使用双向LSTM (Bi-LATM) 获得文本表示,LSTM 在时间 t 步的操作为:
it=σ(Wi⋅xt+Ui⋅ht−1)ft=σ(Wf⋅xt+Uf⋅ht−1)ot=σ(Wo⋅xt+Uo⋅ht−1)c~t=tanh⁡(Wc⋅xt+Uc⋅ht−1)ct=ft⊙ct−1+it⊙c~tht=ot⊙tanh⁡(ct)i_t=\sigma(W_i\cdot x_t + U_i \cdot h_{t-1}) \\ f_t=\sigma(W_f\cdot x_t + U_f \cdot h_{t-1}) \\ o_t=\sigma(W_o\cdot x_t + U_o \cdot h_{t-1}) \\ \tilde{c}_t=\tanh(W_c \cdot x_t + U_c \cdot h_{t-1}) \\ c_t=f_t \odot c_{t-1} + i_t \odot \tilde{c}_t \\ h_t=o_t \odot \tanh(c_t) it=σ(Wixt+Uiht1)ft=σ(Wfxt+Ufht1)ot=σ(Woxt+Uoht1)c~t=tanh(Wcxt+Ucht1)ct=ftct1+itc~tht=ottanh(ct)其中,W,UW,UW,U 是相应的权重矩阵,xt,htx_t,h_txt,ht 分别为 t 时刻的输入状态和隐藏状态。σ\sigmaσ 是 sigmoid 函数,⊙\odot 表示向量的元素对应相乘。

文本的 guidance 向量是每个时刻隐藏状态的平均值:
vtext=∑i=1LhtLv_{text}=\frac{\sum_{i=1}^L h_t}{L}vtext=Li=1Lht
其中,LLL 是指文本的长度。

融合层

早期融合
在文本分类任务中,Bi-LSTM的初始状态通常被设置为零。但通过注入多模态信息,可能促进对模型对文本的理解。该模型应用非线性变换的图像属性引导向量作为Bi-LSTM的初始状态。
[hf0;hb0;cf0;cb0]=ReLu⁡(W⋅vattr+b)\left[h_{f 0} ; h_{b 0} ; c_{f 0} ; c_{b 0}\right]=\operatorname{ReLu}\left(W \cdot v_{\mathrm{attr}}+b\right) [hf0;hb0;cf0;cb0]=ReLu(Wvattr+b)其中,hf0,cf0h_{f 0} , c_{f 0}hf0,cf0 是前向LSTM 初始状态,hb0,cb0h_{b 0} , c_{b 0}hb0,cb0 是后向LSTM 初始状态,[ ; ]是向量连接;ReLu表示修正线性单位激活函数;W 和 b 是权值矩阵和偏差。

注:文章也尝试使用图像引导向量进行早期融合,其中LSTM初始状态与上述的平均值相似,但它表现不是很好,将文章实验中有所讨论。

表示融合
Xm(i)X_m^{(i)}Xm(i) 是模态m(m是文本,图像或属性) 的 ithi^{th}ith 原始向量。这一阶段的关键是计算每个 Xm(i)X_m^{(i)}Xm(i) 的参数。它们的加权平均值即为模态m 的新表示。同样地,使用双层神经网络学习参数:
αmn(i)=Wmn2⋅tanh⁡(Wmn1⋅[Xm(i);vn]+bmn1)+bmn2αmn=softmax⁡(αmn)αm(i)=∑n∈{text, image, attr }αmn(i)3vm=∑i=1Lmαm(i)Xm(i)\alpha_{m n}^{(i)}=W_{m n_{2}} \cdot \tanh \left(W_{m n_{1}} \cdot\left[X_{m}^{(i)} ; v_{n}\right]+b_{m n_{1}}\right) +b_{m n_{2}} \\ \alpha_{m n} =\operatorname{softmax}\left(\alpha_{m n}\right) \\ \alpha_{m}^{(i)}=\frac{\sum_{n \in\{\text { text, image, attr }\}} \alpha_{m n}^{(i)}}{3} \\ v_{m}=\sum_{i=1}^{L_{m}} \alpha_{m}^{(i)} X_{m}^{(i)} αmn(i)=Wmn2tanh(Wmn1[Xm(i);vn]+bmn1)+bmn2αmn=softmax(αmn)αm(i)=3n{text, image, attr}αmn(i)vm=i=1Lmαm(i)Xm(i)其中,m,n∈{text,image,attr}m,n\in\{text,image,attr\}m,n{text,image,attr} 表示模态,αmn(i)\alpha_{m n}^{(i)}αmn(i) 是指在模态 nnn 的指导下,模态 mmmithi^{\text {th}}ith 原始向量对应的权重, αmn\alpha_{m n}αmn 包含所有 αmn(i)\alpha_{m n}^{(i)}αmn(i)αm(i)\alpha_{m}^{(i)}αm(i) 是模态 mmmithi^{\text {th}}ith 原始向量 最终的重构权重。LmL_{m}Lm 是序列 {Xm(i)}\left\{X_{m}^{(i)}\right\}{Xm(i)}的长度 ; Wmn1,Wmn2W_{m n_{1}}, W_{m n_{2}}Wmn1,Wmn2 是神经网络的权重矩阵, bmn1,bmn2b_{m n_{1}}, b_{m n_{2}}bmn1,bmn2 是偏置。

通过将指导向量(guidance vector)vtext,vimage,vattrv_{\text{text}}, v_{\text{image}}, v_{\text{attr}}vtext,vimage,vattr 进行表示融合,得到每个模态的特征向量,并准备作为下一层的输入。

模态融合
设每个模态m 的特征向量表示为 vmv_{m}vm. 首先将其转换为固定长度的形式 vm′v_{m}^{\prime}vm. 采用双层前馈神经网络计算各模态 m 的注意力权值,然后用于变换后的特征向量 vm′v_{m}^{\prime}vm 的加权平均值。最终结果为单一的,固定长度的向量 vfused v_{\text {fused }}vfused
α~m=Wm2⋅tanh⁡(Wm1⋅vm+bm1)+bm2α~=softmax⁡(α~)vm′=tanh⁡(Wm3⋅vm+bm3)vfused =∑m∈{text, image, attr}α~mvm′\tilde{\alpha}_{m}=W_{m_{2}} \cdot \tanh \left(W_{m_{1}} \cdot v_{\mathrm{m}}+b_{m_{1}}\right)+b_{m_{2}} \\ \tilde{\alpha}=\operatorname{softmax}(\tilde{\alpha}) \\ v_{m}^{\prime}=\tanh \left(W_{m_{3}} \cdot v_{m}+b_{m_{3}}\right) \\ v_{\text {fused }}=\sum_{m \in\{\text {text, image, attr}\}} \tilde{\alpha}_{m} v_{m}^{\prime} α~m=Wm2tanh(Wm1vm+bm1)+bm2α~=softmax(α~)vm=tanh(Wm3vm+bm3)vfused=m{text, image, attr}α~mvm其中,α~\tilde{\alpha}α~ 是包含 α~m\tilde{\alpha}_{m}α~m 的向量,Wm1,Wm2,Wm3W_{m_{1}}, W_{m_{2}}, W_{m_{3}}Wm1,Wm2,Wm3 是权重矩阵,bm1,bm2,bm3b_{m_{1}}, b_{m_{2}}, b_{m_{3}}bm1,bm2,bm3 是偏置。vmv_{\mathrm{m}}vm 是表示融合阶段得到的特征向量。

分类层

分类层:两层全连接的神经网络。
隐藏层和输出层的激活函数分别是元素级ReLu和sigmoid函数。
损失函数是交叉熵。

四、数据集与预处理(Preprocessing)

数据来源于 English tweets,包含图片、文本和标签。对数据集进行清理,人工检查 development
set 和 test set 中标签的准确性。
数据集规模(8:1:1):

预处理

  1. 用符号 < user > 替换提及。
  2. 用NLTK工具包分隔单词、表情符号和标签。
  3. 将标签符号# 与 标签 分开,并用小写字母替换大写字母。
  4. 只在训练集中出现一次的单词和没有在训练集中出现但只在开发集或测试集中出现的单词被某个符号 < unk > 替换。

五、实验

训练设置

预训练模型:ResNet
优化器:Adam optimizer
超参数设置:

结果对比

  1. 比较层次融合模型与几个baseline的效果

    All negative:都(不)是反讽?
    Random随机预测推文是否反讽;
    Text(Bi-LSTM):利用双向LSTM仅学习文本表示,预测是否反讽;
    Text(CNN):利用CNN 仅学习文本表示,预测是否反讽;
    Image:将 ResNet 池化层后的图像向量作为分类层的输入,预测是否反讽;
    Attr:将 属性特征向量作为分类层的输入,预测是否反讽;
    Concat(2)连接文本特征和图像特征作为分类层的输入,预测是否反讽;
    Concat(3)连接所有文本、图像和属性特征作为分类层的输入,预测是否反讽。

结果分析

  • 仅仅通过 图像 和 图像属性 模态得到的效果并不好,但是仅仅用文本得到的效果表现较好,说明文本模态对该任务更加重要。
  • 三个模态的拼接效果比两个模态的效果好,说明 图像属性 模态实际上引入了图像外部语义,可以帮助模型提取一些难以直接提取的图像特征。
  • 本文的层次融合模型效果更好,说明 这一方法能够更有效的利用三种模态特征。
  1. 比较层次融合模型与baseline的符号统计

    t+t^+t+:本文方法预测正确,其他方法预测错误的样本数。
    t−t^-t:本文方法预测错误,其他方法预测正确的样本数。
    ppp:显著性值。

结果分析

  • 所有显著性水平均小于0.05,提出模型的显著性水平明显优于baseline模型
    注:显著性水平的计算、具体含义及实际意义有待进一步学习。

  • 消融实验分析

    w/o:消除某组成成分; EF:早期融合; RF:表示融合; EF(img):利用图片指导早期融合。

结果分析

  • 早期融合可以提升文本表示。其中,属性 > 图像,说明图像属性是连接图像和文本的桥梁。
  • 表示融合 可以细化每个模态的特征表示。同样,有益于模态特征的表示。

实例分析(错误分析)

  • 模型预测正确的例子
    表明:只有 结合文本和图像信息才可以判断样本是否反讽。
  • 视觉注意力:
    在表示融合阶段,图像与文本特征表示的显著位置表明, 上述模型可以成功地关注图像的适当部分、句子中的基本单词和重要属性。
  • 错误分析

    上例预测错误的重要原因:缺乏常识引导,图片中手势与文本中 thanks for 形成明显的反讽。但由于缺乏对上述手势的理解,使得模型的注意力并没有集中在图像的手势

六、总结

本文提出了一种新的层次融合模型,充分利用三种模态(图像、文本和图像属性)来解决具有挑战性的多模态讽刺检测任务。评估结果表明:本文模型的有效性和这三种模态的有效性。在未来的工作中,可以将其他模态,如音频等纳入讽刺检测任务,也可以将常识在模型中使用常识知识。

2021-08-23 多模态反讽识别系列文章阅读(一)相关推荐

  1. 2021-08-25 多模态反讽识别系列文章阅读(二)

    面对文本的反讽识别 文章目录 面对文本的反讽识别 1.论反讽的几种形式(文学层次) 2.反讽分类(研究层面) 基于内容的反讽识别 基于上下文的反讽识别 图文反讽识别 3.社交文本的特点 1.论反讽的几 ...

  2. .Net Discovery系列文章阅读索引--带你探索未知的.Net世界

    .Net Discovery系列文章是讲述.Net平台机制的文章,目前已有12篇,分别讲述了.Net垃圾收集.实时编译.字符串等部件的机制,现在推出1周年之际总结文章阅读索引,希望对大家有所帮助.   ...

  3. 2021.08.23学习内容Pytorch与Torch的关系以及Torchvision作用

    ** PyTorch **: 是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序. 2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTo ...

  4. NeRF-Diffusion系列文章阅读

    文章目录 前置知识 <Latent-NeRF for Shape-Guided Generation of 3D Shapes and Textures>[CVPR'23] <NeR ...

  5. 2021年国考计算机网络原理,2021年公务员考试行测练习:文章阅读(135)

    阅读下文,完成各题. 随着人们对信息需求的日益增长,许多国家都在大力开发可视图文信息系统.这种系统把用户终端(计算机和电话机)通过现有的公用电信网与图文信息中心计算机的数据库连接起来,进行数据通信,向 ...

  6. 车牌识别系列(二)生成具有真实感的(realistic)车牌数据

    接上篇车牌识别系列,Tensorflow生成车牌数据(一),实际上上篇生成的数据仅仅是一个字符串序列,加上对应的label,使用Pygame或者其他库生成图片后,并不具备真实感觉的车牌.考虑到实际车牌 ...

  7. 纯Go实现的Firebase的替代品 | Gopher Daily (2021.08.11) ʕ◔ϖ◔ʔ

    每日一谚:Global variables should have longer names. Go技术生态 如何才能成功将Python切换到Go - https://itnext.io/opinio ...

  8. 2021.3.2-3.8 人工智能行业每周技术动态

    最近,发现很多公众号都在发Transformer的内容. 这是很好的事,说明行业内大家在不断的去尝试,不断的去突破. 之前的一个同事,最近也在一直和我聊,关于他对Transformer在股票分析的一些 ...

  9. 【Yolov5】1.认真总结6000字Yolov5保姆级教程(旧版本2021.08.03作为备份)

    旧版本2021.08.03 新版本https://blog.csdn.net/m0_53392188/article/details/119334634​​​​​​​ 以作备份 目录 一.前言 二.学 ...

最新文章

  1. GPU微观物理结构框架
  2. html5下拉智能,HTML5新增标签 + 智能表单
  3. 2018 Spring Team Contest D HDU - 6023、HDU - 6024、HDU - 6025 、HDU - 6027 、HDU - 6029
  4. Java 自定义 ClassLoader 实现 JVM 类加载
  5. android快捷开发之Retrofit网络加载框架的简单使用
  6. 三、“涤纶纤维和棉纤维两组分纤维在涤/棉混纺织物燃烧过程中有着明显的物理相互作用和化学相互作用”,解释这两种作用。
  7. Incorrect username or password (access token)
  8. 抽象类和接口到底是什么“垃圾“——教你分类
  9. Red Hat Enterprise Linux 7.5安装盘内容做本地YUM源
  10. Win10环境下使用VS2015编译PJProject
  11. WORD中如何进行双行合一
  12. JAVA计算机毕业设计大学生二手物品交易网站演示记录2021Mybatis+系统+数据库+调试部署
  13. 上位机plc编程入门_零基础自学plc编程怎么入门?
  14. [2020-07]如何获取百度访客搜索关键字(竞价、推广、SEO)
  15. 冰点还原精灵是怎么用的
  16. linux网络Netfilter与iptables技术
  17. 淘宝商品关键词搜索排名查询
  18. 【物联网取证篇】5G消息取证浅谈
  19. 怀念父亲母亲-端午节快乐
  20. 电脑的Mac地址怎么查看

热门文章

  1. python 魔兽世界升级脚本_How to use Python to automatically modify WoW toc file version
  2. pyplot 画多个图时搅合到了一起_家里来了好些小朋友,什么游戏可以让孩子们玩到一起?...
  3. 同方TF32A09加密芯片算法参数
  4. shell的并行执行
  5. Mac用Visual Studio Code编写C/C++安装配置教程
  6. 73. 使用自定义 Query 实现 SAP UI5 页面路由的书签功能
  7. w7计算机防火墙无法更改,Win7电脑系统防火墙设置无法更改解决方法
  8. 【基础】网络端口 80 和 443 区别解析
  9. vscode提示:“An SSH installation couldn‘t be found”
  10. 常用的sql语句(一)