深度学习Attention机制在短文本分类上的应用——qjzcy的博客

平常我们对分类的判断也是基于标题中的某些字,或者某些词性。比如《姚明篮球打的怎样》应该判别为体育,这时候“姚明”,“篮球”应该算对我们比较重要的词汇。词性我们关注点在“人名”和“名词”上面,深度学习的attention机制刚好符合这个特点。我们能不能利用attention机制来做分类呢,并且让注意力集中在我们期望的词上呢?


先贴个结果,
output是机器跑的分类结果,lable是人工打的分类结果。最后一段是机器对每个词的权重打分
准确率大概在95%左右。使用词性后准确率和attention的可解释性都得到了提升。
格式:
第一行‘输出’ ‘标签’
第二行 ‘输入’ ’总体准确率‘
第三行 不同词的attention值,从大到小排序
使用词性+attention后结果
这里写图片描述

仅使用attention结果
未使用词性+attention前

每列词性的分布减去词性平均分布得到排序前十,我们可以看到,前几列更侧重在专有名词,实体词方面。后几列更侧重在介词,组词,语气词方面。这和我们平时经验相吻合
这里写图片描述

不同位置词性的分布:
计算方法:不同位置词性的分布减去词性平均分布得到得分
这里写图片描述
算法原理:
Attention机制,论文中的公式如下。
这里写图片描述
我们对在公式2进行修改,eij=vaT*tanh(Wa*Si-1+Ua*hj+w3*pi),其中pi是为每个词扩展开的词性向量,w3为权重参数,这样我们就很好的把词性和词的attention机制结合起来。
代码实现:
如下图所示, 红线1位置实现w3*pi, 红线2位置实现eij=vaT*tanh(Wa*Si-1+Ua*hj+w3*pi)
这里写图片描述
词性attention扩展的不同方式延展思考:
如上所示我们可以把词性并列的扩展,然后把各权重值进行叠加。其实我们也可以把词性和词的扩展拼接在一起,完成对attention的词性扩展。从美学上来说这种方式应该更加合理。但是这种方式会增加更多的w权重参数。比如同样是batch*20个词*扩展256维进行词性扩展。并行的扩展添加的w3维度也是batch*120*256。如果采用拼接的方式除了需要词性w3维度batch*20*256 还需要额外把dt的w2维度扩展batch*1*256

微信扫码订阅
UP更新不错过~
关注
  • 1
    点赞
  • 6
    收藏
  • 打赏
    打赏
  • 5
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 5

打赏作者

qjzcy

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值