点击上方,选择星标置顶,每天给你送干货

阅读大概需要7分钟

跟随小博主,每天进步一丢丢

每日英文

We'd better struggle for the future rather than regret for the past.

后悔过去,不如奋斗将来。

Recommender:云不见

作者:张义策

学校:哈尔滨工业大学(深圳)

方向:自然语言处理

知乎:https://www.zhihu.com/people/zhang-yi-ce-84

编辑:王萌 澳门城市大学(深度学习自然语言处理公众号)

Adversarial and Domain-Aware BERT for Cross-Domain Sentiment Analysis(https://www.aclweb.org/anthology/2020.acl-main.370/)

这是ACL2020上的一篇长文,作者来自北京邮电大学。

这篇文章将BERT模型用在跨领域情感分析上,所使用的方法并没有非常新颖,不过实验和分析倒是挺多的。

大体思路

这篇文章所研究的“跨领域情感分析”,旨在通过源领域的标注数据对目标领域的无标注数据进行情感分类。源领域如餐饮领域,目标领域如电子产品领域,这两个领域之间存在一定的差异。为了克服领域间的差异,一大类工作的思路是在特征抽取阶段,抽取领域不变的特征。比如以下两个句子中,“不错”则是领域不变的特征,而“清晰”和“周到”则是领域特定的特征。

电子产品领域:这个屏幕不错,很清晰。
餐饮领域:他们的服务不错,很周到。

这篇文章也采用这种方法。此外,他们还适应BERT的特点,进行了后训练(post-training)。

后训练

后训练这种说法我最早是从下面的文章中看到的,大概是为了与预训练(pre-training)区分开来。这种说法虽然严谨,貌似用的人不多。

BERT Post-Training for Review Reading Comprehension and Aspect-based Sentiment Analysis(https://www.aclweb.org/anthology/N19-1242/)

在这篇文章中,作者使用了两个后训练任务:领域分类任务和mlm(mask language model)任务。下面分别介绍。

领域分类任务 在该任务中,作者构造了两种句子对,句子对由句子A和句子B构成。第一种句子对中句子A和句子B都是目标领域,第二种句子对中一个句子来自源领域,另一个来自其他领域。下图是例子。两种句子对都是随机采样的,各占50%。随后将这两种句子输入到BERT中,使用[CLS]处的向量进行分类。作者指出,该任务的目的是让模型增加对不同领域数据的感知,以增强接下来的对抗训练。

mlm任务 这里的mlm任务则和BERT预训练中的基本相同,区别在于文章只mask了目标领域句子中的词。但是这里我有个疑问。如果进行领域分类任务和mlm任务的联合训练,那么模型岂不是可以根据mask的情况找到领域分类任务的捷径?可惜这篇文章的代码没有开源。

对抗训练

前面提到大部分的模型都是通过抽取领域不变的特征来进行跨领域的情感分类。为了实现这一点,大部分的工作都是在进行情感分类的同时,添加一个领域分类任务,然后配合梯度反转层来进行对抗训练。关于梯度反转层,可以参见我的这篇文章(【梯度反转】https://zhuanlan.zhihu.com/p/75470256)。作者进行情感分类和领域分类的时候,也使用了[CLS]处的向量。

理论分析

与大多数工作不同的是,作者就其提出的方法进行了一定的理论分析,将感觉转变为可证明的定理。经过一番假设和推导后得到:

即目标领域错误的期望值的上界由三部分构成:(1) 源领域错误的期望值,(2)两个领域的差异,(3)一个常数。所以说,为了降低目标领域上的错误率,应该降低源领域上的错误率,并减少两个领域的差异。

实验部分

实验仍是在Amazon数据集上进行。实验结果如下表所示,其中BERT-AT是指只使用了对抗训练没有使用后训练,BERT-DA使用了后训练没有使用对抗训练。从表中可以看出,使用了后训练和对抗训练的策略,在BERT模型的基础上提高了将近2个百分点。而且作者指出,单纯地使用对抗训练提高并不大,而结合了后训练之后,对抗训练的效果才较为明显。

此外,作者还通过t-SNE进行了特征的可视化。如下二图所示,在左图中在源领域上的不同情感倾向句子的特征相距较远,而在目标领域上分离的就不够充分;经过了后训练,相比左图,在右图中,不同领域的特征分离的比较明显,而且相对来说目标领域上不同情感倾向的特征分离程度更高(作者这么说的,不过肉眼上好像也看不出来)。

如下二图所示,经过对抗训练后,在左图中和右图中两个领域的特征距离均比较接近。而在左图中,不同情感倾向句子的特征分离没有右图中的明显。经过一堆分析后,我们可以看到在文章提出的方法中,不同领域上的分离程度低,不同情感倾向上的分离程度高,结合前面的理论分析,所以提出的方法效果好。

文章还有关于领域差异度以及消融分析的实验,这里不介绍了。

总结

这篇文章的实验和分析的确是充分,而且也没有很强行。

不知道以后会不会有类似{D, B, K}->E的工作。

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读


整理不易,还望给个在看!

使用BERT进行跨领域情感分析相关推荐

  1. 人工智能应用场景案例:使用BERT进行跨领域情感分析

    这是ACL2020上的一篇长文,作者来自北京邮电大学. 这篇文章将BERT模型用在跨领域情感分析上,所使用的方法并没有非常新颖,不过实验和分析倒是挺多的. 大体思路 这篇文章所研究的"跨领域 ...

  2. [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...

  3. 武汉大学计算机学院 情感分析,跨语言情感分析方法研究

    跨语言情感分析方法研究 [摘要]:近些年来,随着自然语言处理技术和机器学习技术的发展,单语文本的情感分析已得到深入的研究和发展,各种关于词级.超词级.句子级.篇章级的情感分析研究已逐渐趋于成熟.然而, ...

  4. 文本情感分析方法研究小结

    文本情感分析总结 1. 文本情感分析简介 何谓文本情感分析,其实很简单,利用算法来分析提取文本中表达的情感.例如分析一个句子表达的好.中.坏等判断,高兴.悲伤.愤怒等情绪.如果能将这种文字转为情感的操 ...

  5. NLP研究方向的「情感分析领域」的简单调研

    情感分析领域相关内容,非正式综述,仅供参考.有些链接在可能在微信文章失效,请点击阅读原文获取. (https://blog.csdn.net/DoJintian/article/details/883 ...

  6. [深度学习-NLP]Imdb数据集情感分析之模型对比(贝叶斯, LSTM, GRU, TextCNN, Transformer, BERT)

    一,详细原理以及代码请看下面博客 1.Imdb数据集情感分析之离散贝叶斯 2.Imdb数据集情感分析之LSTM长短期记忆 3.Imdb数据集情感分析之卷积神经网络-TextCNN 4.Imdb数据集情 ...

  7. 《文本大数据情感分析》读书报告

    <文本大数据情感分析>(高凯 徐华 王九硕 岳重阳 高成亮著)一书介绍社交网络等海量异构信息采集算法:对文本挖掘与自然语言处理中涉及到情感分析.微博情绪诱因分析.电商产品评价与意见挖掘等内 ...

  8. 中文情感分析 (Sentiment Analysis) 的难点在哪?现在做得比较好的有哪几家?

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要25分钟 跟随小博主,每天进步一丢丢 来自: 知乎 编辑: 深度学习自然语言处理公众号 地址: https://www.zhihu.com/qu ...

  9. 百分点认知智能实验室出品:情感分析在舆情中的研发实践(上)

    大数据产业创新服务媒体 --聚焦数据 · 改变商业 编者按 文本情感分析是对带有主观感情色彩的文本进行分析.处理.归纳和推理的过程.互联网上每时每刻都会产生大量文本,这其中也包含大量的用户直接参与的. ...

  10. 如何实现情感分析在舆情场景下的千人千面效果——情感分析在舆情中的研发实践(上)

    编者按 文本情感分析是对带有主观感情色彩的文本进行分析.处理.归纳和推理的过程.互联网上每时每刻都会产生大量文本,这其中也包含大量的用户直接参与的.对人.事.物的主观评价信息,比如微博.论坛.汽车.购 ...

最新文章

  1. legend位置 pyecharts_可视化入门 | pyecharts全局配置项详解
  2. Seaborn可视化图像调整图像大小(figure size)方法实战(Adjust the Figure Size)
  3. Codeforces Round #476 (Div. 2) C. Greedy Arkady
  4. svn patch 功能
  5. SpringMVC-快速入门
  6. 『数学』--数论--组合数+卢卡斯定理+扩展卢卡斯定理
  7. 【10.20校内测试】【小模拟】【无向图建树判奇偶环】【树上差分】
  8. 为什么深度学习没有取代传统的计算机视觉?
  9. 持续集成与持续部署实践_持续集成和部署的3个最佳实践
  10. 单片机启动流程(以STM32为例)
  11. gpgga格式读取MATLAB,GPGGA格式解析
  12. 简易网页音乐播放器制作
  13. Linux制作U盘Windows启动盘,windows下制作linux U盘启动盘或者安装优盘(转)
  14. Kubernetes集群容器运行日志收集
  15. 10 个最佳 VSCode 插件,帮助你写出更优雅的代码
  16. 性别计算机英语怎么说,性别教育用英语怎么说?
  17. Java——继承——Extends
  18. CRF用于命名实体识别(快速上手实现)
  19. Mockito Verify的使用
  20. HIKEY970使用记录(一):烧录固件、启动

热门文章

  1. windows.location属性(常用知识点)
  2. Container类型元素累加
  3. 定制C# combobox的下拉框
  4. 在线数据库链接字符串查询
  5. 想要接触人工智能吗?先要学会如何阅读论文
  6. scrapy_全站爬取
  7. 【二分匹配】【匈牙利算法即由增广路求最大匹配模板】
  8. 高考志愿填报:java 软件 程序员 目前的就业现状
  9. 最常用的css垂直居中方法
  10. SQL Server里的自旋锁介绍