最近在看反讽检测的文章,才读了几篇,写一下小结,看得还是挺费劲,也挺懵的,写个阅读笔记,让自己好好重新理解一下。
Towards Multimodal Sarcasm Detection
第一篇读的是Towards Multimodal Sarcasm Detection (An Obviously Perfect Paper) ,标题就很有意思,斜体的Obviously就是在这就带有自嘲,反语的含义,也切合了本文的主题,反讽检测。
这篇文章提出了一个数据集叫做[Multimodal Sarcasm Detection Dataset](https://github. com/soujanyaporia/MUStARD) (简称MUStARD), 数据集来源于流行的TV shows,不仅包含了最基本的文本信息,还包含了视觉和听觉的信息,文章用的是audiovisual utterance来表示一条数据,每个utterance都包含了它的context of historical utterances,这篇论文提出用多模态的方法来做反讽检测,因为多模态能提供更多的有利信息。
论文主要的贡献
- 创建了一个新的数据集MUStARD,包含了多模态(mutlimodal)和会话语境(conversational context)的特征。
- 举了些在某些特定场景下不同的模态中反讽中特有的矛盾or不协调很明显的例子,强调使用多模态方法的重要性。
- 和一些baseline对比,多模态比单模态表现出明显的优势。
- 提供了对话的前几轮,作为上下文信息。可能会引申出新的sub-task:基于上下文语境的反讽检测(类似的好像之前就已经有了,比如SARC,不过这篇论文强调他们提供了每个说话者之前说的话,SARC只是提供了当前评论的上一条评论)
论文谈了一些related work,Sarcasm in Text就不谈了,Sarcasm in Speech里说到了Rockwell (2000) 发现较慢的语速和强力的语调大概率是反讽的一个标志,这篇论文也是从这些工作中获得的motivation,加入了语音的信息。
论文的主要方法
-
文本特征使用了BERT,一条utterance用一个dim=768的vector表示,上下文语境是由average每个句子得到的。论文也尝试了pre-trained dim=300的GloVe,不过表现比较差。
-
语音特征提取的方法用了Librosa库,因为我本人没有语音方面的知识,因此在这不班门弄斧了。
-
图像特征是每f帧抽取一帧出来,用 pool5 layer of an ImageNet pretrained ResNet-152 来提取特征,每帧的图像是一个dim=2048的vector。
融合特征的方式就是简单的concatenate(这应该将来有更好的办法融合)。
实验结果
依赖speaker
不依赖speaker,表现明显相比上面下降,而且多模态相比单模态提升也很小。
提出的改进方向
- 分析音频信道的时间位置
- 捕捉说话者的面部表情和他正在说的话之间的mismatches
- 上下文语境信息用的是average pooling,丢失了时间信息
未来研究方向
- 多模态特征融合
- 多人对话语境
- 使用神经网络的baseline
- 对话者的目的,意图,依赖关系(Poria et al., 2019)
- 主要说话者的定位,抽帧的方式可能难以捕捉说话者的面部表情和手势的变化
Reasoning with Sarcasm by Reading In-between
第二篇读的是Reasoning with Sarcasm by Reading In-between,ACL 2018的一篇反讽检测论文,这篇论文不同于上一篇,使用的是上下文无关的方式,且只针对文本来做检测。提出了一个能够 look in-between 的 attention-based 的神经网络,使得模型能够较准确地对反讽语句中常见的矛盾/不协调(contrast and incongruity)进行建模,在 Twitter, Reddit 和 Internet Argument Corpus 数据集上达到了 state-of-the-art,并且提升了可解释性。
论文中提到了反讽检测可以给 opinion mining applications 带来巨大的 benefits。
反讽通常出现在两种情况:1.明显的矛盾、冲突的情感,比如“一部优秀的催眠影片”。2.作者表达的情感与其境况悬殊的差异,比如“我车被偷了,真棒!”。
提出反讽语句中通常具有矛盾的word pairs,表达两种冲突、相反的情绪,例如
- I absolutely love to be ignored!
- Yay!!! The best thing to wake up to is my neighbor’s drilling.
- Perfect movie for people who can’t fall asleep.
论文的主要贡献
-
基于上述原因,作者认为捕捉语句中的word pairs之间的关系很有用,即looking in-between,所以提出了一个 Multi-dimensional Intra-Attention Recurrent Network (MIARN) 来对句子中的每个 word pair 进行建模,作者说他们的Intra-attention可以被当做一个 self-targeted co-attention (Xiong et al., 2016),不仅可以捕捉词间关系(word-word relation),还可以捕捉长程依赖关系(long-range dependencies)
-
MIARN 在 Twitter, Reddit 和 IAC数据集上达到了 SOTA,且截至发表时是第一个在反讽检测任务上能够提供可解释性结果的 attention 模型
论文的主要方法
-
计算 word pair relation,对两个word ,,使用线性变换计算二者的关系,得到一个 scalar score
是这层的参数,[.;.]表示 vector concatenation,是一个 scalar,表示 word pairs的相关性 score,很明显是一个对称矩阵,接着在行上进行max-pooling,再经过softmax,得到
是学到的 intra-attention 权重,然后原句根据加权求和,得到输入句子 intra-attentive 表示
,n是embedding dim。作者提到为什么用max-pooling,原因是他们认为既然要强调句子中的冲突词对,而 attention 能够学会一个词对所有其他词的 score,就必须把最具有辨别性的,即最大的值作为特征提取出来,因此 max-pooling 是一个适合的选择。
这里还补充说了在 处的score是被mask掉的,毕竟一个词和自身的 score 可能会较大,从而影响 attention 的结果。这个模型其实应该叫SIARN(Single-dimensional Intra-Attention Recurrent Network)
作者说,因为他们想要建模的是 raw word representations之间的关系,而非被操作过的结果,例如LSTM中间输出的hidden state,其中不仅包含了当前词,还有之前的词的信息,所以是在输入句子经过embeding layer后直接进行求 intra-attention 的操作。这里就有一个词的歧义性问题,因为在没有上下文的情况下,这样直接对 raw embedding 进行求 intra-attention,会丢失很多信息,而且不是所有反讽的意味都需要通过冲突的词对来表达,如果没有这种冲突的词对的话,intra attention 究竟能学到什么是个问题。
-
作者们也发现了这个问题,他们说 the relationships between two words is often not straightforward, words are complex and often hold more than one meanings or word senses,所以又提出了对两个词之间进行 multiple views 的建模,这样两个词之间的交互得到的不再是一个 scalar,而是一个 vector,我觉得这里其实没有解决词的多义性的问题,因为用的embedding依旧是固定的,至于这个 multiple views 到底解决了哪个问题,还有待继续研究
这里的维度我认为原论文写错了,我自己认为这里,其实就是多了一层non-linear layer,接下来求 intra-attention的操作和上面一样。 -
因为仅仅的 intra-attention 难以编码整个句子的语义信息,因此又添加了一个LSTM,用来 encode 整句话,将最后输出的当做整句话的 representation 。和上面得到的 concatenation到一起,输入到一个 Dense layer 里,softmax 输出得到分类结果。
这才是真正的MIARN。
实验结果
作者在 Twitter, Reddit 和 IAC数据集上和几个 baseline 作了对比。
可以看到SIARN和MIARN基本超越了所有 baseline,在长句较多数据集IAC上的提升更明显,MIARN表现基本是优于SIARN的。
可视化 attention 的 weights 可以看到,intra-attention 要比普通的 attention 更能准确地捕捉句子中的冲突词对,这展现了模型能够提供良好的可解释性。
Reference
Santiago Castro, Devamanyu Hazarika, Verónica Pérez-Rosas, Roger Zimmermann, Rada Mihalcea and Soujanya Poria. 2019. Towards Multimodal Sarcasm Detection (An Obviously Perfect Paper) . ACL 2019
Yi Tay, Luu Anh Tuan, Siu Cheung Hui and Jian Su. 2018. Reasoning with Sarcasm by Reading In-between . ACL 2018