Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络

本文主要是介绍Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文地址

论文地址:Context-augmented convolutional neural networks for twitter sarcasm detection - ScienceDirect

论文首页 

笔记大纲

用于微博讽刺检测的上下文增强卷积神经网络


📅出版年份:2018
📖出版期刊:Neurocomputing
📈影响因子:2
🧑文章作者:Ren Yafeng,Ji Donghong,Ren Han
📍 期刊分区:

JCR分区: Q2 中科院分区升级版: 计算机科学2区 中科院分区基础版: 工程技术2区 影响因子: 2.0 5年影响因子: 6.0 EI: 是 CCF: C 南农高质量: B


🔎摘要:

近年来,有关 Twitter 讽刺检测的研究越来越多。然而,现有研究有两个局限性。首先,现有工作主要使用离散模型,需要大量人工特征,而获取人工特征的成本可能很高。其次,现有工作大多侧重于根据推文本身进行特征工程,而没有利用目标推文的上下文信息。然而,目标推文的上下文信息(如对话或目标推文作者的历史推文)可能是可用的。为了解决上述两个问题,我们探索了用于微博讽刺检测的神经网络模型。在卷积神经网络的基础上,我们为这项任务提出了两种不同的语境增强神经网络模型。数据集上的结果表明,与最先进的离散模型相比,神经模型可以获得更好的性能。同时,所提出的语境增强神经模型能有效地从语境信息中解码讽刺线索,并相对提高了检测性能。


🌐研究目的:

探索用于微博讽刺检测的神经网络模型。

📰研究背景:

随着社交媒体的发展,twitter 已成为最受欢迎的微博服务之一。因此,基于 twitter 数据的情感分析和数据挖掘已成为一个热门研究课题 [1-3]。twitter 情感分析的目的是自动分析推文的极性。然而,twitter 中的讽刺性话语会将正面或负面话语的极性转化为相反的极性。这在一定程度上会影响情感分析任务的性能。因此,将讽刺性语句与正负极性语句区分开来非常重要。

然而,现有研究有两个局限性。首先,现有工作主要使用离散模型,需要大量人工特征,而获取人工特征的成本可能很高。其次,现有工作大多侧重于根据推文本身进行特征工程,而没有利用目标推文的上下文信息。然而,目标推文的上下文信息(如对话或目标推文作者的历史推文)可能是可用的。

🔬研究方法:


🔩模型架构:

CANN-KEY 模型-历史

在我们提出的 CANN-KEY 模型中,局部子网络由五层组成,分别称为输入层、卷积层、池化层、非线性组合隐藏层和输出层。

  • 左侧部分是本地子网络,使用目标推文的信息。

  • 右侧部分是上下文子网络,使用上下文推文的信息。 对于上下文子网络,我们将分别从基于对话的上下文和基于历史的上下文中自动提取特征。

本地子网络
  • 在输入层中,每个节点表示一条推文中的一个单词,节点的顺序按照原来的顺序排列,单词利用词嵌入表示。

  • 卷积层通常被用来捕捉词性 n-grams 信息。本文将卷积操作的窗口大小设为 3,并使用 tanh 作为激活函数。

  • 池化层,对于每条推文,在卷积层之后会得到不同数量的向量。我们利用池化技术来合并卷积层中不同数量的特征,形成一个具有固定维度的向量。 本文使用了所有三种汇集技术来全面捕捉讽刺证据,并将它们串联起来作为一个新的隐藏层 h2。

  • 隐藏层使用了一个非线性隐藏层来自动组合这些汇集特征。

  • 输出层用于根据最后一层隐藏层的特征对所有类别标签进行评分。

上下文子网络
  • 基于历史的上下文,然后将所有上下文推文视为一个文档,根据其 tf-idf 值对上下文推文中的所有单词进行排序。其次,我们选择最重要的关键词(tf-idf 值最高的关键词)作为该子网络的输入。

  • 输入层的每个词都是由词嵌入来表示。

  • 池化层依旧采用三种池化串联的方式。

  • 非线性隐藏层会自动结合目标推文和上下文推文的特征。

  • 与本地子网络不同,上下文子网络不使用任何卷积函数,因为上下文信息是一组突出词,不包含 n-grams 信息。

CANN-ALL 模型-对话

CANN-ALL 模型由六层组成,分别称为输入层、卷积层、池化层、非线性组合层、softmax 层和输出层。

  • 输入层包括三条推文(按时间顺序排列),最后一条推文是目标推文。

  • 这里的输入层、卷积层和池化层与第一个模型 CANN-KEY 的局部子网络相似。

  • 非线性组合层和 softmax 层,这两个层与 CANN- KEY 模型不同。

训练目标是最小化一组训练上的交叉熵损失,再加上一个 l2- 正则化项。按照之前的工作,在线 AdaGrad 被用来最小化目标函数。


🧪实验:

📇 数据集:

Wang 等人构建的数据集-Table1

  • 基本数据集由 1500 条推文组成,其中包含所有目标推文。

  • 基于历史的上下文包含 6774 条推文

  • 基于对话的上下文只包含 453 条推文

基于对话的上下文数量远远少于基于历史的上下文数量。请注意,基本数据集中的所有推文都有类别标签,而上下文信息中的所有推文都没有类别标签。

📏评估指标:

采用了十倍交叉验证法。

基本数据集被随机分成十等份,其中九份用于训练,第十份用于测试。

📉 优化器&超参数:

有五个超参数,包括两个部分。

  • 第一部分是网络结构参数,包括词向量的维数 D、卷积层的输出维数 C 和非线性组合层的输出维数 H;

  • 第二部分是训练参数,包括 AdaGrad 的 l2 规则化系数 λ 和初始学习率 α。

📊 消融实验:

  • 在基于对话的语境中,模型 MODEL-ALL优于模型 MODEL-KEY。这表明在基于对话的语境中,模型 MODEL-ALL 在捕捉讽刺的微妙线索方面具有更强的能力。

  • 在基于历史的语境中,模型 MODEL-KEY 的表现要优于模型 MODEL-ALL。

其中一个可能的原因是模型 MODEL-ALL 只将两条上下文推文作为输入,而模型 MODEL-KEY 则将更多的上下文推文作为输入。

📋 实验结果:

根据模型 MODEL-KEY(local)的结果,仅使用目标推文,神经模型就获得了 56.37% 的宏 F 1分数,高于最佳离散模型 LMS 的 55.31% 宏 F 分数。

我们的研究表明,将给定推文的上下文推文建模为一个集合,使用神经池函数自动从推文中提取最有用的特征,可以显著提高性能。


🚩研究结论:

与之前的研究相比,我们的神经网络模型将推文内容本身的特征和上下文特征以单词向量的形式整合到了一个模型中。实验结果表明,与最先进的离散模型和基于上下文的模型相比,我们提出的上下文增强神经网络模型具有更好的性能,证明了上下文增强神经网络模型在这项任务中的有效性。


📝总结

💡创新点:

  • 在卷积神经网络的基础上,我们为这项任务提出了两种不同的语境增强神经网络模型,以从语境信息中充分捕捉讽刺线索。

  • 目标推文的历史上下文数量相对较多,并且存在一些冗余信息,因此在建立用于讽刺检测的上下文增强神经网络模型时,我们只考虑部分关键词。

  • 第一个模型是通过整合关键上下文信息而建立的上下文增强神经网络模型(本文命名为 CANN-KEY)。其中池化层使用了所有三种汇集技术来全面捕捉讽刺证据。

  • 第二个模型被称为整合了所有上下文信息的上下文增强神经网络模型(本文命名为 CANN-ALL)。

🖍️知识补充:

  • CNN、RNN 和 LSTM 通常用于表示短语、句子和文档的语义构成。RNN 和 LSTM 更常用于对话语结构建模。

  • 未知词是使用预训练词嵌入的平均向量来表示的

这篇关于Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/951187

相关文章

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

《MybatisPlusJSqlParser解析sql语句及JSqlParser安装步骤》JSqlParser是一个用于解析SQL语句的Java库,它可以将SQL语句解析为一个Java对象树,允许... 目录【一】jsqlParser 是什么【二】JSqlParser 的安装步骤【三】使用场景【1】sql语

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

Java JSQLParser解析SQL的使用指南

《JavaJSQLParser解析SQL的使用指南》JSQLParser是一个Java语言的SQL语句解析工具,可以将SQL语句解析成为Java类的层次结构,还支持改写SQL,下面我们就来看看它的具... 目录一、引言二、jsQLParser常见类2.1 Class Diagram2.2 Statement

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

SQL 外键Foreign Key全解析

《SQL外键ForeignKey全解析》外键是数据库表中的一列(或一组列),用于​​建立两个表之间的关联关系​​,外键的值必须匹配另一个表的主键(PrimaryKey)或唯一约束(UniqueCo... 目录1. 什么是外键?​​ ​​​​2. 外键的语法​​​​3. 外键的约束行为​​​​4. 多列外键​