【论文笔记】基于语义依赖和上下文矩的深度掩码记忆网络在方面级情感分类中的应用(英文题目太长)

本文介绍了IJCAI-2019会议上的一篇论文,该论文提出了一种名为DMMN-SDCM的深度掩码记忆网络模型,用于方面级情感分类。模型利用语义依赖和上下文矩来提升情感分析的性能,包括语义依赖掩码注意力、交互方面语义建模和上下文时刻情感学习三个关键组件。通过结合语义信息和记忆网络,模型能够学习到其他方面的情感信息,为目标方面的分类提供上下文背景。
摘要由CSDN通过智能技术生成

Deep Mask Memory Network with Semantic Dependency and Context Moment for Aspect Level Sentiment Classification

这篇论文来自IJCAI-2019,其结果也是目前非Bert模型中已发表论文的最高水平。
这个模型相较于上面那一篇要复杂很多,是一篇名副其实的IJCAI论文。
这篇论文较于上一篇的改进之处在于:

  1. 整合了语义分析信息到记忆网络中而不是位置信息。
  2. 设计了辅助任务来学习整个句子的情感分布,这可以为目标aspect的情感分类提供想要的背景信息。

该论文提出模型被称作deep mask memory network with semantic dependency and context moment (DMMN-SDCM)。它基于记忆网络,引入语义分析信息来指导attention机制并有效学习其他aspect(非目标aspect)提供的信息。同时论文提出的context moment嵌入到了整个句子的情感分类,被设计用于为目标aspect提供背景信息

模型主要包括以下三个部分:

词向量,英文名叫Word Embedding,按照字面意思,应该是词嵌入。
词嵌入是一种语义空间到向量空间的映射,简单说就是把每个词语都转换为固定维数的向量,并且保证语义接近的两个词转化为向量后,这两个向量的相似度也高。

Embedding层就是以one hot为输入、中间层节点为字向量维数的全连接层!而这个全连接层的参数,就是一个“字向量表”!从这个层面来看,字向量没有做任何事情!它就是one hot,别再嘲笑one hot的问题了,字向量就是one hot的全连接层的参数!

Embedding 嵌入,我们可以将其理解为一种降维行为。可以将高维数据映射到低维空间来解决稀疏输入数据的问题
embedding层做了什么呢?
它把我们的稀疏矩阵,通过一些线性变换(在CNN中用全连接层进行转换,也称为查表操作),变成了一个密集矩阵,这个密集矩阵用了N个特征来表征所有的文字,在这个密集矩阵中,表象上代表着密集矩阵跟单个字的一一对应关系,实际上还蕴含了大量的字与字之间,词与词之间甚至句子与句子之间的内在关系他们之间的关系,用的是嵌入层学习来的参数进行表征。
从稀疏矩阵到密集矩阵的过程,叫做embedding,很多人也把它叫做查表,因为他们之间也是一个一一映射的关系。
更重要的是,这种关系在反向传播的过程中,是一直在更新的,因此能在多次epoch后,使得这个关系变成相对成熟,即:正确的表达整个语义以及各个语句之间的关系。这个成熟的关系,就是embedding层的所有权重参数。

Embedding是NPL领域最重要的发明之一,他把独立的向量一下子就关联起来了。
这就相当于你是你爸的儿子,你爸是A的同事,B是A的儿子,似乎跟你是八竿子才打得着的关系。结果你一看B,是你的同桌。Embedding层就是用来发现这个秘密的武器。

  • Memory Building模块使用一个双向的LSTM网络来获取记忆 m 1 ∗ , m 2 2 , . . . , m n ∗ m_1^*,m_2^2,...,m_n^* m1,m22,...,mn,其中 m i ∗ = ( h i ← , h i → ) m_i^*=(\overleftarrow{h_i},\overrightarrow{h_i}) mi=(hi ,hi )
  • The semantic-dependency-mask attention模块提取语义信息,并且为不同层选择不同的记忆元素来指导attention机制,该模块的输出记作 v s d v_{sd} vsd
  • The inter-aspect semantic modeling模块使用语义依赖信息attention机制来获取其他aspect的有用信息,其输出记为 v i m v_{im} vim
  • The context-moment sentiment learning使用一个被称为context moment learning的任务来学习整个句子中所有aspect的信息,其输出记为 v c m v_{cm} vcm

以上三个模块的输出构成了sentiment representation(情感表征): v = { v s d , v i m , v c m } v = \left\{ v_{sd}, v_{im},v_{cm} \right\} v={ vsd,vim,vcm}

Classification模块就是一个前馈网络,将 v v v映射到目标分类: y = s o f t m a x ( W c v + b c ) y=softmax(W_cv+b_c) y=softmax(Wcv+bc)
文中使用的loss包含三个部分,交叉熵+辅助任务loss + L 2 L_2 L2正则:
在这里插入图片描述
辅助任务的loss稍后介绍。

损失函数loss的作用
  • 损失函数用来评价模型的预测值真实值不一样的程度,深度学习训练模型的时候就是通过计算损失函数,更新模型参数,从而减小优化误差,直到损失函数值下降到目标值或者达到了训练次数。
  • 不同的模型用的损失函数一般也不一样。损失函数设置的越好,通常模型的性能越好。
  • loss函数可以自定义
损失函数loss和准确率accuracy的比较
  • 分类问题中,准确率accuracy更加直观,也更具有可解释性;对于回归问题,accuracy不可用,只能用loss
  • 准确率accuracy不可微分,无法直接用于网络训练,而反向传播算法要求损失函数是可微的
  • 损失函数loss可微分,可以求梯度,运用反向传播更新参数。

Semantic-Dependency-Mask Attention

该模块依据语义依赖分析树(semantic dependency parsing tree),来对不同计算跳数的context memory施加mask。在每一个计算步骤,该模块在aspect的表示和记忆单元之间使用attention机制。
语义分析树使用开源工具spaCy生成。
原作者将语义分析树上aspect

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值