全球新闻数据可视化(3)--新闻文本情感分析

一、Bert模型

1、Bert介绍

BERT是2018年10月由Google AI研究院提出的一种预训练模型。BERT的全称是Bidirectional Encoder Representation from Transformers。BERT在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩: 全部两个衡量指标上全面超越人类,并且在11种不同NLP测试中创出SOTA表现,包括将GLUE基准推高至80.4% (绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进5.6%),成为NLP发展史上的里程碑式的模型成就。

2、Bert架构

BERT 模型是基于 Transformer 的 Encoder(编码器)

(1)Transformer 是组成 BERT 的核心模块,而 Attention 机制又是Transformer 中最关键的部分

全球新闻数据可视化(3)--新闻文本情感分析_第1张图片 Transformer模块

 

(2)Attention机制 

为了有区分地利用上下文字信息增强目标字的语义表示,就可以用到 Attention 机制

全球新闻数据可视化(3)--新闻文本情感分析_第2张图片 Attention机制

 

(3)multi-head Self-Attention

为了增强 Attention 的多样性,进一步利用不同的 Self-Attention 模块获得文本中每个字在不同语义空间下的增强语义向量,并将每个字的多个增强语义向量进行线性组合,从而获得一个最终的与原始字向 量长度相同的增强语义向量,如下图所示。

全球新闻数据可视化(3)--新闻文本情感分析_第3张图片 Self-Attention模块

 

(4)Transformer Encoder

Transformer Encoder 在 Multi-head Self-Attention 之上又添加了三种关键操作:

  • · 残差连接(ResidualConnection):将模块的输入与输出直接相加,作为最后的输出。这种操作背后的一个基本考虑是修改输入比重构整个输出更容易。这样一来,可以使网络更容易训练。
  • · Layer Normalization:对某一层神经网络节点作0均值1方差的标准化。
  • · 线性转换:对每个字的增强语义向量再做两次线性变换,以增强整个模型的表达能力。这里,变换后的向量与原向量保持长度相同。
  • 全球新闻数据可视化(3)--新闻文本情感分析_第4张图片 Transformer Encoder模块

 3、Bert的输入输出

输入:

全球新闻数据可视化(3)--新闻文本情感分析_第5张图片 Bert的输入

 

BERT的输入为每一个token对应的表征(图中的粉红色块就是token,黄色块就是token对应的表征),

并且单词字典是采用WordPiece算法来进行构建的。为了完成具体的分类任务,除了单词的token之外,作者还在输入的每一个序列开头都插入特定的分类token([CLS]),该分类token对应的最后一个Transformer层输出被用来起到聚集整个序列表征信息的作用。由于BERT是一个预训练模型,其必须要适应各种各样的自然语言任务,因此模型所输入的序列必须有能力包含一句话(文本情感分类,序列标注任务)或者两句话以上(文本摘要,自然语言推断,问答任务)。BERT采用了两种方法去确定句子的范围:

1)在序列tokens中把分割token([SEP])插入到每个句子后,以分开不同的句子tokens。

2)为每一个token表征都添加一个可学习的分割embedding来指示其属于句子A还是句子B。

输出:

介绍完BERT的输入,实际上BERT的输出也就呼之欲出了,因为Transformer的特点就是有多少个输入就有多少个对应的输出,如下图:

全球新闻数据可视化(3)--新闻文本情感分析_第6张图片 Bert的输出

 

 

C为分类token([CLS])对应最后一个Transformer的输出, 则代表其他token对应最后一个Transformer的输出。对于一些token级别的任务(如,序列标注和问答任务),就把 输入到额外的输出层中进行预测。对于一些句子级别的任务(如,自然语言推断和情感分类任务),就把C输入到额外的输出层中,这里也就解释了为什么要在每一个token序列前都要插入特定的分类token。

二、Bert训练结果

经过几轮训练最终训练准确率达到 93.83%

全球新闻数据可视化(3)--新闻文本情感分析_第7张图片

 

你可能感兴趣的:(人工智能,机器学习)