The following article is from 电脑之心 SOTA 数学模型 Author 电脑之心 SOTA 数学模型
电脑之心时评
本时评将逐个科孔语义处理、计算机系统听觉等领域下的常用各项任务,并对
责任编辑将分 3 期进行连载中,共介绍18个在推荐系统各项任务上曾取得 SOTA 的经典之作数学模型。
第 1 期:CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM
第 2 期:MemNet、AT-LSTM、IAN、AF-LSTM
第 3 期:Bert on ABSA、ASGCN、GAN、Sentic GCN
数学模型同时实现标识符、预体能训练数学模型及 API 等资源。
第 1 期简述:
下期收录于数学模型德展健康
ct/memnet-2
收录于同时实现数目:7
全力支持架构:PyTorch,TensorFlowAspect Level Sentiment Classification with Deep Memory NetworkAT-LSTMhttps://sota.jiqizhixin.com/project/at-lstmAttenion-Based LSTM for Aspect-level Sentiment ClassificationIANhttps://sota.jiqizhixin.com/project/ian
收录于同时实现数目:3
全力支持架构:PyTorch,TensorFlowInteractive Attention Networks for Aspect-Level Sentiment ClassificationAF-LSTMhttps://sota.jiqizhixin.com/project/af-lstm
收录于同时实现数目:1
全力支持架构:PyTorchLearning to Attend via Word-Aspect Associative Fusion for Aspect-Based Sentiment Analysis感情分析(sentiment analysis)是指利用计算机系统技术对文本、图像、音频、视频甚至跨模态的数据进行情绪挖掘与分析。广义上讲,感情分析还包括对观点、态度、倾向的分析等。感情分析是语义处理的一个重要的研究领域。感情分析主要涉及两个对象,即评价的对象(包括商品、服务、组织、个体、话题、问题、事件等)和对该对象的态度、感情等。感情分析在社会的舆情管理、解中使用的重要技术(如无特别说明,下文中提到的感情分析均为文本感情分析)。
在语义处理中,感情分析属于典型的文本分类问题,即把需要进行感情分析的文本划分为其所属类别。主流的感情分析方法有两种:基于词典的方法和基于电脑学习算法的方法。基于词典的方法主要通过制定一系列产品的感情词典和规则,拆解文本、提取关键词、计算感情值,最后通过感情值来作为文本的感情倾向判断依据。这种方法往往会忽略其词顺序、语法和句法,将这段文本仅仅看做是一个词集合,因此不能充分的表达文本语义信息。而引入深度学习技术的电脑学习方法,利用词嵌入技术可以避免文字长短不均带来的处理困难;使用深度学习抽象特征,可以避免大量人工提取特征的工作;模拟词与词之间的联系,有局部特征抽象化和记忆功能,因此,深度学习技术在感情分析中发挥了越来越重要的作用。
目前感情分析用到的深度学习神经网络有多层神经网络(MLP)、卷积神经网络(CNN)和长短期记忆数学模型(LSTM),具体不同的数学模型通过交叉验证技术选取最优参数(比如,几层数学模型、每层节点数、Dropout 概率等)。感情分析的数学模型主要分为三个层面,分别为:Document level、Sentence level 和 Aspect level。其中,Document level 是将整个文本作为分析单元并假设该文本讨论的对象为单一实体且感情、观点都是鲜明、清晰的,即 neural、positive or negative 。Sentence level 则是以每个句子作为单独的分析对象,由于句子与句子间可能存在某些关联,因此我们不能将其认为是观点明确的。而对于 Aspect level 其分类粒度更细,即我们需要抽取出 targets 不同层面相互独立的评价,并进行归纳综合得到最后的感情。
责任编辑简述感情分析中必不可少的 TOP 数学模型。一些经典之作的语义处理领域的数学模型,例如 XLNet、Bert 及各种变体,适用于 NLU、文本聚合、感情分析等多个领域,责任编辑均不涉及。责任编辑只专注于专门的 sentiment analysis 数学模型。
一、Aspect level1、 MemNet
责任编辑引入 memory network,并且和 LSTM 不同的是注意力计算的输入是直接的 word embedding 而不是经过 LSTM 之后的隐藏层。给定一句话,包括 n 个 words 和一个 aspect word w_i ,之后通过预测句子 s 的感情极性来当作该 aspect 的感情极性。
图 1 深度记忆网络有三个计算层(跳,hops),用于属性级感情分类的说如图 1 所示,图左边部分,给定一个句 e_n(因为实际情况中 aspect 可能不止一个单词,所以为了方便能都用 w_i 表示,在 aspect 为多个 word 的情况时,得到其中每个 word 的 embedding vector 之后求和取平均。)之后将这些 words 分为两部分:aspect 部分和 context 部分,其中 context 部分的 word vectors {e_1,e_2, … ,e_{i-1},e_{i+1}, … e_n} 被合在一起作为外部记忆 m ∈ R^{d × ( n-1 ) }。
图右边部分由多个计算层组成,每个计算层都是两路的,一路是 attention layer,另一路是 linear layer。在 hop 1 中利用注意力机制来同时实现对外部记忆的内容寻址,其中 aspect vector 作为 Attention 中的查询向量。之后将 Attention layer 的结果和 aspect vector 经过线性变换之后的结果求和作为最终结果,并作为下一个 hop 的输入。之后按 hop1 同样的方式执行多次,这样可以使更多的外部记忆中的内容(context 内容)选择。因为当第三次 context 中有的部分被送入 Attention 中,那么第二次查询时,查询向量就包含了一部分原本是 context 的内容,那么之后找到的内容肯定更多(因为查询中有 context 内容,所以能匹配的内容也更多)。最后,将最后一层的 hop 的输出作为整个句子的表示并用于感情分类。每个计算层(hop)中的参数是共享的,所以无论构建一个计算层还是多个计算层其参数目是相同的。
责任编辑的 Attention 部分包含 Content Attention(注意内容)和 Location Attention(注意地址)两部分。一方面,不同 context word 对于句子的语义表示贡献不一样;另一方面,不同的 context word 对于特定 aspect 的感情倾向的重要性也是不一样的。
content attention:在 hop1 的 attention 中,可以把关键词向量 W_i 认为是 query,word 词嵌入认为是 key 和 value,寻找句子和属性词之间的关系:
location attention:作用是加大对属性词的周围词的注意力,具体作者在文中提出了四种 location attention。
Model 1:作者用下面这个公式计算 memory vector m_i:
Model 2:这是 model 1 的简化版本,对不同跳数的 w_i 使用相同的位置向量 v_i。位置向量 v_i 的计算方法如下:
Model 3:将位置向量 v_i 看作是一个参数,用向量加法计算一块内存,即:
Model 4:位置向量也被看作是参数。与 Model 3 不同的是,位置表征被视为神经门,以控制多少百分比的词的语义写入存储器中。将位置向量 v_i 送入一个 sigmoid 函数 σ,用元素相乘法计算 m_i:
多层计算层的必要性
首先多层计算层在得到抽象表示方面被广泛使用。因为单层计算层只包含一个 attention layer,不足以处理复杂计算,即数学模型能力不强,所以作者提出使用多层计算层来提升数学模型的处理能力。
分类部分
直接使用 softmax 来进行分类。
当前 SOTA!平台收录于 MemNet 共 7 个数学模型同时实现。
项目SOTA!平台项目详情页MemNet
oject/memnet-2
2、 AT-LSTM
Aspect level sentiment 是个 fine-grained 细粒度的各项任务,是针对一个句子中陈述的不同属性 ( aspect ) 进行分类,过去是直接对一个整句子判断感情极性,而不考虑句子内部不同部分的 sentiment。这种方法提出时,神经网络数学模型在属性级感情分类各项任务的表现差强人意。例如上文介绍的 TD-LSTM、TC-LSTM 方法只考虑了 target 没有考虑 aspect。进一步可以理解为之前的工作只考虑一句话中选定的一个 target(即 entity or aspect),然而,一句话中可能出现多个 aspect 。作者考虑引入 attention。
LSTM with Aspect Embedding ( AE-LSTM ) 。因为 aspect 信息很重要,所以作者提出要给 aspect 找 embedding vector。因为一句话中可能出现多个 aspect ,所以每个 aspect 应当有各自对应的 embedding vector 。作者用 v_{a_i} 来代表第 i 个 aspect 的 embedding vector,其维度为 d_a,所以可以表示为 v_{a_i} ∈ R^{d_a}。而所有 aspect 的 embedding vector 组成的 embedding matrix 用 A 表示,A ∈ R^{d_a × |A|},其中,|A| 代表 A 中的向量个数。
Attention-based LSTM ( AT-LSTM ) 。为了抓住一句话中对应于属性重要部分的信息,作者提出了一种 attention mechanism,示意图如下:
图 2 基于注意力的 LSTM 结构。属性嵌入用来决定注意力权重和句子表征。{w_1, w_2, …., w_N } 表示长度为 N 的句子中的词向量,v_a 表示属性嵌入,α 是注意权重,{h_1, h_2, …… , h_N } 是隐藏向量首先将 sequence 经过LSTM layor 之后得到的 output h_i 与当前考虑的 aspect v_a 进行拼接。用 H 表示 [ h_1, … ,h_N ] 这个矩阵,其中 N 为该 sequence 的长度,H ∈ R^{d × N}, d 为 h_i 的维度也即 LSTM layer 中神经元个数。之后对拼接后的向量做 Attention 操作得到整句话的表示 r :
最后的句子表示法是:得到这个句子最后的表示之后,将其放入一个 linear layor 得到维度为感情类别个数的输出,之后用 softmax 处理来得到最后结果。Attention-based LSTM with Aspect Embedding ( ATAE-LSTM ) 。将 AE、AT 合起来,其形式如下图:
图 3 基于注意力的 LSTM 的结构与属性嵌入。属性嵌入与词的嵌入一起被作为输入。{w_1, w_2, …., w_N } 代表一个长度为 N 的句子中的词向量,v_a 代表属性嵌入,{h_1, h_2, …… , h_N } 是隐藏向量在 AE-LSTM 中使用属性信息的方法是让属性嵌入在计算注意权重时发挥作用。为了更好地利用属性信息,将输入的属性嵌入附加到每个词的输入向量中。这样一来,输出的隐藏表征(h_1, h_2, …, h_N)可以拥有来自输入属性(v_a)的信息。因此,在接下来计算注意力权重的步骤中,词语和输入属性之间的相互依赖性可以被建模。
最后,体能训练的目标是使所有句子的 y 和 y 的交叉熵误差最小:
项目SOTA!平台项目详情页in.com/project/at-lstm3、 IAN
责任编辑作者认为目标和情境都可以单独建模,需要通过交互学习来学习它们自己的表现形式。在此基础上,提出了交互式注意网络 ( interactive attention networks, IAN ) ,同时实现了目标和语境的注意力交互学习,并分别聚合目标和语境的注意力表征。具体的,责任编辑提出了基于长短期记忆网络 ( LSTM ) 和注意力机制的交互式注意上下文的交互信息监督目标的建模,这有助于判断感情。最后,将目标表示和上下文表示连接起来,IAN 预测了目标在其上下文中的感情极性。
图 4 IAN 结构图IAN 数学模型由两部分组成,对目标和上下文进行交互建模。以单词嵌入为输入,采用 LSTM 网络来分别获得目标和其上下文在单词层面的隐藏状态。使用目标的隐藏状态和上下文的隐藏状态的平均值来监督注意力向量的聚合,通过注意力机制来捕捉上下文和目标中的重要信息。通过这种设计,目标和上下文可以交互地影响其表示的聚合。最后,串联目标表征和上下文表征作为最终表征,并被送入 softmax 函数用于属性级感情分类。
单词嵌入层:将每个单词嵌入到一个低维实值向量中。词的嵌入可以看作是神经网络的参数,也可以看作是通过语言数学模型从适当的语料库中预先体能训练出来的。
LSTM 隐藏层:
得到上下文语境的隐藏状态、目标隐藏状态,以及上下文和目标的初始表征:注意力层:将上下文与目标的表征分别送入注意力层,考虑目标对上下文的影响和上下文对目标的影响:最终,得到目标与上下文的表征:最后,将目标表征和上下文表征连接成一个向量 d 作为分类器。这里,使用一个非线性层将 d 投射到目标 C 类的空间中:当前 SOTA!平台收录于 IAN 共 3 个数学模型同时实现。项目SOTA!平台项目详情页IAN
roject/ian4、 AF-LSTM
责任编辑主要是针对ATAE-LSTM的改进,提出了 AF-LSTM。通过增加一个 Word- Aspect Fusion(aspect 与 word 融合层)分离各层的职责,使数学模型首先对 aspect 和 words 之间的关系进行建模,然后使注意力层专注于学习已经经过融合的上下文 words 的相对重要性。
图 5 AF-LSTM 整体架构Word-Aspect Fusion Attention Layer:数学模型输入是句子向量和 aspect 向量 s,句子长度为 L, 词向量维度为 k。
LSTM layer:句子向量作为 LSTM 数学模型的输入,输出是隐藏层向量 H,数学模型参数向量维度为 d。
Word-Aspect Fusion Attention Layer:这一层是数学模型的重点。首先,对于 LSTM 的每个输出向量 hi H,都会学习 word 与 aspect 的联合表示,结果记为 mi R^d 。它对上下文单词 h_i 和 aspect 之间的关系进行了编码,为了学习 h 和 s 的联合表示,论文使用了 associative memory operators 来得到 m_i 。随后,经过编码的联合表示 m1 ,m2,…,mL 作为注意力层的输入,得到的结果进入 Weighted Sum 层进行加权求和。相对于 ATAE-LSTM 数学模型,这里最大的不同就是增加了一个 word-aspect 融合层,代替了原来的直接拼接的操作。这个操作就是用来建模 acpect 与 words 的关系,论文中对于这个操作定义了两个运算符,circular correlation 和 circular convolution ,分别定义如下:
总的来说,关联层的输出定义如下:在学习 h_i 和 s 的关联之前,还使用了一个可选的归一化层。接下来,将每个隐藏状态 h_t 和属性向量 s 通过关联运算符的组成用于学习注意力:最终表示如下:将句子的加权表示 r 传递到最后一层,该层将加权表示 r 转换为概率分布。这一层也包括一个线性转换层,然后是一个 softmax 函数。最后一层定义如下:采用交叉熵损失函数进行优化:当前 SOTA!平台收录于 AF-LSTM 共 1 个数学模型同时实现。项目SOTA!平台项目详情页AF-LSTM
现资源:https://sota.jiqizhixin.com/project/af-lstm练数学模型及 API 等资源。
网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com
移动端访问:在微信移动端中搜索服务号名称「电脑之心 SOTA 数学模型」或 ID 「sotaai」