论文阅读 - 《Neural Sentiment Classification with User and Product Attention》

作者:xg123321123

出处:http://blog.csdn.net/xg123321123/article/details/53121473

声明:版权所有,转载请联系作者并注明出处

1 问题定义

基于Document level的情感分析用于根据document确定用户对产品的整体情感倾向。

2 背景综述

1、传统方法

将情感分析作为一个文本分类问题,将标注好的情感倾向(比如positive,negative)或者情感分数作为类别label,用机器学习的方法训练文本分类器。
由于分类器的性能极大依赖于文本特征(例如bag of word),所以传统方法的重心在于如何设计出更好的特征提取器。

2、深度学习方法

利用设计好的神经网络来学习低维文本特征。然而,这些方法忽略了用户和产品的特征。

3、以往方法的缺点:

  • 只注重局部文本信息,忽略全局的用户偏好以及产品特点;
  • 鉴于模型复杂度,就算考虑用户偏好和产品特点,也只是单词层面的。

3 灵感来源

有论文尝试过将用户、产品的信息和神经网络结合起来。
在输入层将word embedding和preference matrix作为输入,利用CNN提取文本特征,然后将user/product vector和文本特征结合后输入到softmax。

然而模型的问题在于:

  • 数据量(用户评论)较少的情况下,训练preference matrix比较困难(效果不理想);
  • 只利用了word evel的用户和产品信息,忽略了document level信息的使用。

4 方法概述

  • 以word为单位输入LSTM,提取每个sentence的特征,再以sentence为单位输入LSTM,提取document的特征;
  • 根据attention机制在不同的语义层面加入产品和用户的信息。
  • 最后将得到的特征进行分类。

这里写图片描述

层级LSTM

  • word->sentence
    • 将每个word映射到低维语义空间,得到相应的词嵌入 wij ;
    • 每次输入一个词嵌入,LSTM的cell state cij 和hidden state hij 都得以更新,这样输入一个句子就得到一系列的hidden state [hi1,hi2,...,hili] ;
    • 将这一系列的hidden state输入average pooling layer,得到句子表示 si

其中 hij 推算如下:

hij=oijtanh(cij)
cij=fijcij1+iijc^ij
c^ij=tanh(W[hij1,wij]+b)
[iij,fij,oij]T=[σ,σ,σ]T(W[hij1,wij]+b)

这里 i,f,o 代表激活门, 代表点乘, σ 代表sigmoid函数。

  • sentence->document
    • 将上一步得到的sentence向量表示[s1,s2,...,sn]送进LSTM;

      • 经过如上的变换过程,一篇document得到一系列的hidden state [hi1,hi2,...,hili] ;
      • 将这一系列的hidden state输入average pooling layer,得到文档表示 d

    attention机制

    不同的word对于表达这个sentence含义的贡献应该是不一样的,同理,不同的sentence对于表达这个document含义的贡献也应该不一样。
    但上述建模过程中,由LSTM的隐层状态到更高一级的语义表示过程中,average pooling操作相当于每个word(sentence)对sentence(document)的语义表示贡献是一致的。

    attention机制通过赋予sentence和document中不同部分在语义表达中不同的贡献度来提取出特定user/product的关键词;同时考虑了用户和产品特点对最终情感倾向的影响。

    • word-level User Product Attention

      • 上面每个句子经过LSTM后得到了一系列的hidden state[hi1,hi2,...,hili]
      • 在利用这一系列hidden state得到sentence representation时,并不是利用average pooling操作,而是根据下式得到:
        si=j=1liαijhij
      • 上式中 αij 代表一句话中每个词的权重,表示为:
        αij=exp(e(hij,u,p))lik=1exp(e(hik,u,p))
      • 上式中u和p分别是用户(user)和产品(product)所映射到的连续实数空间中的向量,e则是衡量每个单词在这句话中重要性的score function,表示如下:
        e(hij,u,p)=vTtanh(WHhij+WUu+WPp+b)

        其中 WH,WU,WP 是权重矩阵; v 是权重向量。
    • sentence-level User Product Attention

      • sentence-level的attention机制和word-level的类似,表示如下:
        d=i=1nβihi
      • β 来表示句子在整个document中的权重,而不再用average pooling操作来获得整个document的表示。
      • 情感分类

        经过上述流程得到的document representation是文本的高维特征,可以将其作为情感分类的特征。

        • 先用非线性映射将特征 d 映射到C类的目标空间:
          d^=tanh(Wcd+bc)
        • 再用softmax函数进行分类:
          pc=exp(d^c)Ck=1exp(d^k)

          其中 C 是类别数,pc是属于类别 c 的概率;
        • 训练时,采用交叉熵作为损失函数:
          L=dDc=1Cpgc(d)log(pc(d))

          其中 pgc 是ground truth, D <script id="MathJax-Element-34" type="math/tex">D</script>是训练数据.

        5 模型分析

        • UPA机制对于模型性能都有提高,其中user信息对模型性能提高更多;
        • 在word level和document level加入attention机制,都能提高性能,其中word level的提高要更显著,可能原因是因为document主题多变,attention机制不容易抓住重点;
        • 排除了长度对于模型的影响,模型在各种长度的document上都有提升。

        6 未来展望

        • 注意利用user和product的profile信息;
        • 尝试将模型用在aspect level sentiment上。

        注:给定一个句子和句子中出现的某个aspect,aspect-level sentiment的目标是分析出这个句子在给定aspect上的情感倾向。

        例如:great food but the service was dreadful!
        在aspect “food”上,情感倾向为正,在aspect “service”上情感倾向为负。

        Aspect level的情感分析相对于document level来说粒度更细。


        本篇博客主要参考自
        《< Neural Sentiment Classification with User and Product Attention>学习笔记》

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值